diff --git a/index.3a41ef80.js b/index.7915afcb.js similarity index 92% rename from index.3a41ef80.js rename to index.7915afcb.js index e65f10510..add64e39c 100644 --- a/index.3a41ef80.js +++ b/index.7915afcb.js @@ -846,17 +846,17 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho `,Ba=function(b,I){if(!(!I.icon&&!I.iconHtml)){var Z=b.innerHTML,d1="";if(I.iconHtml)d1=Q8(I.iconHtml);else if(I.icon==="success")d1=mr,Z=Z.replace(/ style=".*?"/g,"");else if(I.icon==="error")d1=ka;else if(I.icon){var I1={question:"?",warning:"!",info:"i"};d1=Q8(I1[I.icon])}Z.trim()!==d1.trim()&&v5(b,d1)}},$o=function(b,I){if(!!I.iconColor){b.style.color=I.iconColor,b.style.borderColor=I.iconColor;for(var Z=0,d1=[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"];Z').concat(b,"")},z2=function(b,I){var Z=d2();if(!!Z){if(!I.imageUrl){H5(Z);return}i2(Z,""),Z.setAttribute("src",I.imageUrl),Z.setAttribute("alt",I.imageAlt||""),L5(Z,"width",I.imageWidth),L5(Z,"height",I.imageHeight),Z.className=n1.image,ct(Z,I,"image")}},Z0=function(b,I){var Z=O1(),d1=X1();if(!(!Z||!d1)){if(I.toast){L5(Z,"width",I.width),d1.style.width="100%";var I1=E1();I1&&d1.insertBefore(I1,j1())}else L5(d1,"width",I.width);L5(d1,"padding",I.padding),I.color&&(d1.style.color=I.color),I.background&&(d1.style.background=I.background),H5(y2()),we(d1,I)}},we=function(b,I){var Z=I.showClass||{};b.className="".concat(n1.popup," ").concat(E5(b)?Z.popup:""),I.toast?(J2([document.documentElement,document.body],n1["toast-shown"]),J2(b,n1.toast)):J2(b,n1.modal),ct(b,I,"popup"),typeof I.customClass=="string"&&J2(b,I.customClass),I.icon&&J2(b,n1["icon-".concat(I.icon)])},J8=function(b,I){var Z=D2();if(!!Z){var d1=I.progressSteps,I1=I.currentProgressStep;if(!d1||d1.length===0||I1===void 0){H5(Z);return}i2(Z),Z.textContent="",I1>=d1.length&&f1("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),d1.forEach(function(l2,Z2){var Y2=qo(l2);if(Z.appendChild(Y2),Z2===I1&&J2(Y2,n1["active-progress-step"]),Z2!==d1.length-1){var Ge=Ko(I);Z.appendChild(Ge)}})}},qo=function(b){var I=document.createElement("li");return J2(I,n1["progress-step"]),v5(I,b),I},Ko=function(b){var I=document.createElement("li");return J2(I,n1["progress-step-line"]),b.progressStepsDistance&&L5(I,"width",b.progressStepsDistance),I},jo=function(b,I){var Z=u2();!Z||(xa(Z),ji(Z,I.title||I.titleText,"block"),I.title&&Ji(I.title,Z),I.titleText&&(Z.innerText=I.titleText),ct(Z,I,"title"))},e3=function(b,I){Z0(b,I),o1(b,I),J8(b,I),Cr(b,I),z2(b,I),jo(b,I),p1(b,I),f0(b,I),Fa(b,I),z3(b,I);var Z=X1();typeof I.didRender=="function"&&Z&&I.didRender(Z)},Qo=function(){return E5(X1())},za=function(){var b;return(b=oe())===null||b===void 0?void 0:b.click()},P5=function(){var b;return(b=Q5())===null||b===void 0?void 0:b.click()},Z3=function(){var b;return(b=f5())===null||b===void 0?void 0:b.click()},G3=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),Jo=function(b){b.keydownTarget&&b.keydownHandlerAdded&&(b.keydownTarget.removeEventListener("keydown",b.keydownHandler,{capture:b.keydownListenerCapture}),b.keydownHandlerAdded=!1)},Nm=function(b,I,Z){Jo(b),I.toast||(b.keydownHandler=function(d1){return e9(I,d1,Z)},b.keydownTarget=I.keydownListenerCapture?window:X1(),b.keydownListenerCapture=I.keydownListenerCapture,b.keydownTarget.addEventListener("keydown",b.keydownHandler,{capture:b.keydownListenerCapture}),b.keydownHandlerAdded=!0)},Qn=function(b,I){var Z,d1=R2();if(d1.length){b=b+I,b===d1.length?b=0:b===-1&&(b=d1.length-1),d1[b].focus();return}(Z=X1())===null||Z===void 0||Z.focus()},Jn=["ArrowRight","ArrowDown"],wm=["ArrowLeft","ArrowUp"],e9=function(b,I,Z){!b||I.isComposing||I.keyCode===229||(b.stopKeydownPropagation&&I.stopPropagation(),I.key==="Enter"?ie(I,b):I.key==="Tab"?Tm(I):[].concat(Jn,wm).includes(I.key)?V0(I.key):I.key==="Escape"&&ur(I,b,Z))},ie=function(b,I){if(!!c1(I.allowEnterKey)){var Z=Oa(X1(),I.input);if(b.target&&Z&&b.target instanceof HTMLElement&&b.target.outerHTML===Z.outerHTML){if(["textarea","file"].includes(I.input))return;za(),b.preventDefault()}}},Tm=function(b){for(var I=b.target,Z=R2(),d1=-1,I1=0;I11},G0=function(){if(lt(document.body,n1.iosfix)){var b=parseInt(document.body.style.top,10);zt(document.body,n1.iosfix),document.body.style.top="",document.body.scrollTop=b*-1}},Um=function(){var b=document.createElement("div");b.className=n1["scrollbar-measure"],document.body.appendChild(b);var I=b.getBoundingClientRect().width-b.clientWidth;return document.body.removeChild(b),I},X3=null,t3=function(b){X3===null&&(document.body.scrollHeight>window.innerHeight||b==="scroll")&&(X3=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(X3+Um(),"px"))},a9=function(){X3!==null&&(document.body.style.paddingRight="".concat(X3,"px"),X3=null)};function t7(G,b,I,Z){V5()?o9(G,Z):(l1(I).then(function(){return o9(G,Z)}),Jo($)),t9?(b.setAttribute("style","display:none !important"),b.removeAttribute("class"),b.innerHTML=""):b.remove(),je()&&(a9(),G0(),e6()),xm()}function xm(){zt([document.documentElement,document.body],[n1.shown,n1["height-auto"],n1["no-backdrop"],n1["toast-shown"]])}function i3(G){G=n9(G);var b=W3.swalPromiseResolve.get(this),I=i7(this);this.isAwaitingPromise?G.isDismissed||(Za(this),b(G)):I&&b(G)}var i7=function(b){var I=X1();if(!I)return!1;var Z=R1.innerParams.get(b);if(!Z||lt(I,Z.hideClass.popup))return!1;zt(I,Z.showClass.popup),J2(I,Z.hideClass.popup);var d1=O1();return zt(d1,Z.showClass.backdrop),J2(d1,Z.hideClass.backdrop),t6(b,I,Z),!0};function r9(G){var b=W3.swalPromiseReject.get(this);Za(this),b&&b(G)}var Za=function(b){b.isAwaitingPromise&&(delete b.isAwaitingPromise,R1.innerParams.get(b)||b._destroy())},n9=function(b){return typeof b>"u"?{isConfirmed:!1,isDenied:!1,isDismissed:!0}:Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},b)},t6=function(b,I,Z){var d1=O1(),I1=z0&&cr(I);typeof Z.willClose=="function"&&Z.willClose(I),I1?Y3(b,I,d1,Z.returnFocus,Z.didClose):t7(b,d1,Z.returnFocus,Z.didClose)},Y3=function(b,I,Z,d1,I1){!z0||($.swalCloseEventFinishedCallback=t7.bind(null,b,Z,d1,I1),I.addEventListener(z0,function(l2){l2.target===I&&($.swalCloseEventFinishedCallback(),delete $.swalCloseEventFinishedCallback)}))},o9=function(b,I){setTimeout(function(){typeof I=="function"&&I.bind(b.params)(),b._destroy&&b._destroy()})},W0=function(b){var I=X1();if(I||new Q3,I=X1(),!!I){var Z=E1();V5()?H5(j1()):Zt(I,b),i2(Z),I.setAttribute("data-loading","true"),I.setAttribute("aria-busy","true"),I.focus()}},Zt=function(b,I){var Z=F1(),d1=E1();!Z||!d1||(!I&&E5(oe())&&(I=oe()),i2(Z),I&&(H5(I),d1.setAttribute("data-button-to-replace",I.className),Z.insertBefore(d1,I)),J2([b,Z],n1.loading))},s9=function(b,I){I.input==="select"||I.input==="radio"?km(b,I):["text","email","number","tel","textarea"].some(function(Z){return Z===I.input})&&(H1(I.inputValue)||P1(I.inputValue))&&(W0(oe()),a7(b,I))},l9=function(b,I){var Z=b.getInput();if(!Z)return null;switch(I.input){case"checkbox":return Fm(Z);case"radio":return c9(Z);case"file":return d9(Z);default:return I.inputAutoTrim?Z.value.trim():Z.value}},Fm=function(b){return b.checked?1:0},c9=function(b){return b.checked?b.value:null},d9=function(b){return b.files&&b.files.length?b.getAttribute("multiple")!==null?b.files:b.files[0]:null},km=function(b,I){var Z=X1();if(!!Z){var d1=function(l2){I.input==="select"?r7(Z,C9(l2),I):I.input==="radio"&&Bm(Z,C9(l2),I)};H1(I.inputOptions)||P1(I.inputOptions)?(W0(oe()),_1(I.inputOptions).then(function(I1){b.hideLoading(),d1(I1)})):a(I.inputOptions)==="object"?d1(I.inputOptions):L1("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(a(I.inputOptions)))}},a7=function(b,I){var Z=b.getInput();!Z||(H5(Z),_1(I.inputValue).then(function(d1){Z.value=I.input==="number"?"".concat(parseFloat(d1)||0):"".concat(d1),i2(Z),Z.focus(),b.hideLoading()}).catch(function(d1){L1("Error in inputValue promise: ".concat(d1)),Z.value="",i2(Z),Z.focus(),b.hideLoading()}))};function r7(G,b,I){var Z=B0(G,n1.select);if(!!Z){var d1=function(l2,Z2,Y2){var Ge=document.createElement("option");Ge.value=Y2,v5(Ge,Z2),Ge.selected=n7(Y2,I.inputValue),l2.appendChild(Ge)};b.forEach(function(I1){var l2=I1[0],Z2=I1[1];if(Array.isArray(Z2)){var Y2=document.createElement("optgroup");Y2.label=l2,Y2.disabled=!1,Z.appendChild(Y2),Z2.forEach(function(Ge){return d1(Y2,Ge[1],Ge[0])})}else d1(Z,Z2,l2)}),Z.focus()}}function Bm(G,b,I){var Z=B0(G,n1.radio);if(!!Z){b.forEach(function(I1){var l2=I1[0],Z2=I1[1],Y2=document.createElement("input"),Ge=document.createElement("label");Y2.type="radio",Y2.name=n1.radio,Y2.value=l2,n7(l2,I.inputValue)&&(Y2.checked=!0);var m7=document.createElement("span");v5(m7,Z2),m7.className=n1.label,Ge.appendChild(Y2),Ge.appendChild(m7),Z.appendChild(Ge)});var d1=Z.querySelectorAll("input");d1.length&&d1[0].focus()}}var C9=function G(b){var I=[];return b instanceof Map?b.forEach(function(Z,d1){var I1=Z;a(I1)==="object"&&(I1=G(I1)),I.push([d1,I1])}):Object.keys(b).forEach(function(Z){var d1=b[Z];a(d1)==="object"&&(d1=G(d1)),I.push([Z,d1])}),I},n7=function(b,I){return!!I&&I.toString()===b.toString()},i6=void 0,L0=function(b){var I=R1.innerParams.get(b);b.disableButtons(),I.input?X0(b,"confirm"):a6(b,!0)},Ga=function(b){var I=R1.innerParams.get(b);b.disableButtons(),I.returnInputValueOnDeny?X0(b,"deny"):a3(b,!1)},zm=function(b,I){b.disableButtons(),I(G3.cancel)},X0=function(b,I){var Z=R1.innerParams.get(b);if(!Z.input){L1('The "input" parameter is needed to be set when using returnInputValueOn'.concat(m1(I)));return}var d1=b.getInput(),I1=l9(b,Z);Z.inputValidator?Zm(b,I1,I):d1&&!d1.checkValidity()?(b.enableButtons(),b.showValidationMessage(Z.validationMessage)):I==="deny"?a3(b,I1):a6(b,I1)},Zm=function(b,I,Z){var d1=R1.innerParams.get(b);b.disableInput();var I1=Promise.resolve().then(function(){return _1(d1.inputValidator(I,d1.validationMessage))});I1.then(function(l2){b.enableButtons(),b.enableInput(),l2?b.showValidationMessage(l2):Z==="deny"?a3(b,I):a6(b,I)})},a3=function(b,I){var Z=R1.innerParams.get(b||i6);if(Z.showLoaderOnDeny&&W0(Q5()),Z.preDeny){b.isAwaitingPromise=!0;var d1=Promise.resolve().then(function(){return _1(Z.preDeny(I,Z.validationMessage))});d1.then(function(I1){I1===!1?(b.hideLoading(),Za(b)):b.close({isDenied:!0,value:typeof I1>"u"?I:I1})}).catch(function(I1){return Wa(b||i6,I1)})}else b.close({isDenied:!0,value:I})},m9=function(b,I){b.close({isConfirmed:!0,value:I})},Wa=function(b,I){b.rejectPromise(I)},a6=function(b,I){var Z=R1.innerParams.get(b||i6);if(Z.showLoaderOnConfirm&&W0(),Z.preConfirm){b.resetValidationMessage(),b.isAwaitingPromise=!0;var d1=Promise.resolve().then(function(){return _1(Z.preConfirm(I,Z.validationMessage))});d1.then(function(I1){E5(y2())||I1===!1?(b.hideLoading(),Za(b)):m9(b,typeof I1>"u"?I:I1)}).catch(function(I1){return Wa(b||i6,I1)})}else m9(b,I)};function $3(){var G=R1.innerParams.get(this);if(!!G){var b=R1.domCache.get(this);H5(b.loader),V5()?G.icon&&i2(j1()):Gm(b),zt([b.popup,b.actions],n1.loading),b.popup.removeAttribute("aria-busy"),b.popup.removeAttribute("data-loading"),b.confirmButton.disabled=!1,b.denyButton.disabled=!1,b.cancelButton.disabled=!1}}var Gm=function(b){var I=b.popup.getElementsByClassName(b.loader.getAttribute("data-button-to-replace"));I.length?i2(I[0],"inline-block"):Yn()&&H5(b.actions)};function Mi(){var G=R1.innerParams.get(this),b=R1.domCache.get(this);return b?Oa(b.popup,G.input):null}function hr(G,b,I){var Z=R1.domCache.get(G);b.forEach(function(d1){Z[d1].disabled=I})}function u9(G,b){var I=X1();if(!(!I||!G))if(G.type==="radio")for(var Z=I.querySelectorAll('[name="'.concat(n1.radio,'"]')),d1=0;d10&&arguments[0]!==void 0?arguments[0]:"data-swal-template";j3[G]=this,Hr||(document.body.addEventListener("click",b9),Hr=!0)}var b9=function(b){for(var I=b.target;I&&I!==document;I=I.parentNode)for(var Z in j3){var d1=I.getAttribute(Z);if(d1){j3[Z].fire({template:d1});return}}},jm=Object.freeze({__proto__:null,argsToParams:Ya,bindClickHandler:R9,clickCancel:Z3,clickConfirm:za,clickDeny:P5,enableLoading:W0,fire:S9,getActions:F1,getCancelButton:f5,getCloseButton:r2,getConfirmButton:oe,getContainer:O1,getDenyButton:Q5,getFocusableElements:R2,getFooter:U1,getHtmlContainer:v2,getIcon:j1,getIconContent:o2,getImage:d2,getInputLabel:Rt,getLoader:E1,getPopup:X1,getProgressSteps:D2,getTimerLeft:qm,getTimerProgressBar:Z1,getTitle:u2,getValidationMessage:y2,increaseTimer:Lr,isDeprecatedParameter:fr,isLoading:Ki,isTimerRunning:Km,isUpdatableParameter:o6,isValidParameter:pr,isVisible:Qo,mixin:D9,resumeTimer:l7,showLoading:W0,stopTimer:q0,toggleTimer:y9}),N9=function(){function G(b,I){r(this,G),this.callback=b,this.remaining=I,this.running=!1,this.start()}return o(G,[{key:"start",value:function(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}},{key:"stop",value:function(){return this.started&&this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=new Date().getTime()-this.started.getTime()),this.remaining}},{key:"increase",value:function(I){var Z=this.running;return Z&&this.stop(),this.remaining+=I,Z&&this.start(),this.remaining}},{key:"getTimerLeft",value:function(){return this.running&&(this.stop(),this.start()),this.remaining}},{key:"isRunning",value:function(){return this.running}}]),G}(),c7=["swal-title","swal-html","swal-footer"],w9=function(b){var I=typeof b.template=="string"?document.querySelector(b.template):b.template;if(!I)return{};var Z=I.content;h(Z);var d1=Object.assign(T9(Z),E9(Z),Qm(Z),P9(Z),I9(Z),Jm(Z),c(Z,c7));return d1},T9=function(b){var I={},Z=Array.from(b.querySelectorAll("swal-param"));return Z.forEach(function(d1){A(d1,["name","value"]);var I1=d1.getAttribute("name"),l2=d1.getAttribute("value");typeof dt[I1]=="boolean"?I[I1]=l2!=="false":a(dt[I1])==="object"?I[I1]=JSON.parse(l2):I[I1]=l2}),I},E9=function(b){var I={},Z=Array.from(b.querySelectorAll("swal-function-param"));return Z.forEach(function(d1){var I1=d1.getAttribute("name"),l2=d1.getAttribute("value");I[I1]=new Function("return ".concat(l2))()}),I},Qm=function(b){var I={},Z=Array.from(b.querySelectorAll("swal-button"));return Z.forEach(function(d1){A(d1,["type","color","aria-label"]);var I1=d1.getAttribute("type");I["".concat(I1,"ButtonText")]=d1.innerHTML,I["show".concat(m1(I1),"Button")]=!0,d1.hasAttribute("color")&&(I["".concat(I1,"ButtonColor")]=d1.getAttribute("color")),d1.hasAttribute("aria-label")&&(I["".concat(I1,"ButtonAriaLabel")]=d1.getAttribute("aria-label"))}),I},P9=function(b){var I={},Z=b.querySelector("swal-image");return Z&&(A(Z,["src","width","height","alt"]),Z.hasAttribute("src")&&(I.imageUrl=Z.getAttribute("src")),Z.hasAttribute("width")&&(I.imageWidth=Z.getAttribute("width")),Z.hasAttribute("height")&&(I.imageHeight=Z.getAttribute("height")),Z.hasAttribute("alt")&&(I.imageAlt=Z.getAttribute("alt"))),I},I9=function(b){var I={},Z=b.querySelector("swal-icon");return Z&&(A(Z,["type","color"]),Z.hasAttribute("type")&&(I.icon=Z.getAttribute("type")),Z.hasAttribute("color")&&(I.iconColor=Z.getAttribute("color")),I.iconHtml=Z.innerHTML),I},Jm=function(b){var I={},Z=b.querySelector("swal-input");Z&&(A(Z,["type","label","placeholder","value"]),I.input=Z.getAttribute("type")||"text",Z.hasAttribute("label")&&(I.inputLabel=Z.getAttribute("label")),Z.hasAttribute("placeholder")&&(I.inputPlaceholder=Z.getAttribute("placeholder")),Z.hasAttribute("value")&&(I.inputValue=Z.getAttribute("value")));var d1=Array.from(b.querySelectorAll("swal-input-option"));return d1.length&&(I.inputOptions={},d1.forEach(function(I1){A(I1,["value"]);var l2=I1.getAttribute("value"),Z2=I1.innerHTML;I.inputOptions[l2]=Z2})),I},c=function(b,I){var Z={};for(var d1 in I){var I1=I[d1],l2=b.querySelector(I1);l2&&(A(l2,[]),Z[I1.replace(/^swal-/,"")]=l2.innerHTML.trim())}return Z},h=function(b){var I=c7.concat(["swal-param","swal-function-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);Array.from(b.children).forEach(function(Z){var d1=Z.tagName.toLowerCase();I.includes(d1)||f1("Unrecognized element <".concat(d1,">"))})},A=function(b,I){Array.from(b.attributes).forEach(function(Z){I.indexOf(Z.name)===-1&&f1(['Unrecognized attribute "'.concat(Z.name,'" on <').concat(b.tagName.toLowerCase(),">."),"".concat(I.length?"Allowed attributes are: ".concat(I.join(", ")):"To set the value, use HTML within the element.")])})},T=10,k=function(b){var I=O1(),Z=X1();typeof b.willOpen=="function"&&b.willOpen(Z);var d1=window.getComputedStyle(document.body),I1=d1.overflowY;w1(I,Z,b),setTimeout(function(){h1(I,Z)},T),je()&&(b1(I,b.scrollbarPadding,I1),Em()),!V5()&&!$.previousActiveElement&&($.previousActiveElement=document.activeElement),typeof b.didOpen=="function"&&setTimeout(function(){return b.didOpen(Z)}),zt(I,n1["no-transition"])},j=function G(b){var I=X1();if(!(b.target!==I||!z0)){var Z=O1();I.removeEventListener(z0,G),Z.style.overflowY="auto"}},h1=function(b,I){z0&&cr(I)?(b.style.overflowY="hidden",I.addEventListener(z0,j)):b.style.overflowY="auto"},b1=function(b,I,Z){i9(),I&&Z!=="hidden"&&t3(Z),setTimeout(function(){b.scrollTop=0})},w1=function(b,I,Z){J2(b,Z.showClass.backdrop),Z.animation?(I.style.setProperty("opacity","0","important"),i2(I,"grid"),setTimeout(function(){J2(I,Z.showClass.popup),I.style.removeProperty("opacity")},T)):i2(I,"grid"),J2([document.documentElement,document.body],n1.shown),Z.heightAuto&&Z.backdrop&&!Z.toast&&J2([document.documentElement,document.body],n1["height-auto"])},z1={email:function(b,I){return/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(b)?Promise.resolve():Promise.resolve(I||"Invalid email address")},url:function(b,I){return/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(b)?Promise.resolve():Promise.resolve(I||"Invalid URL")}};function s2(G){G.inputValidator||(G.input==="email"&&(G.inputValidator=z1.email),G.input==="url"&&(G.inputValidator=z1.url))}function T2(G){(!G.target||typeof G.target=="string"&&!document.querySelector(G.target)||typeof G.target!="string"&&!G.target.appendChild)&&(f1('Target parameter is not valid, defaulting to "body"'),G.target="body")}function K2(G){s2(G),G.showLoaderOnConfirm&&!G.preConfirm&&f1(`showLoaderOnConfirm is set to true, but preConfirm is not defined. showLoaderOnConfirm should be used together with preConfirm, see usage example: https://sweetalert2.github.io/#ajax-request`),T2(G),typeof G.title=="string"&&(G.title=G.title.split(` -`).join("
")),Yo(G)}var n5,K0=new WeakMap,Fe=function(){function G(){if(r(this,G),W(this,K0,{writable:!0,value:void 0}),!(typeof window>"u")){n5=this;for(var b=arguments.length,I=new Array(b),Z=0;Z1&&arguments[1]!==void 0?arguments[1]:{};if(L9(Object.assign({},Z,I)),$.currentInstance){var d1=W3.swalPromiseResolve.get($.currentInstance),I1=$.currentInstance.isAwaitingPromise;$.currentInstance._destroy(),I1||d1({isDismissed:!0}),je()&&e6()}$.currentInstance=n5;var l2=d7(I,Z);K2(l2),Object.freeze(l2),$.timeout&&($.timeout.stop(),delete $.timeout),clearTimeout($.restoreFocusTimeout);var Z2=eu(n5);return e3(n5,l2),R1.innerParams.set(n5,l2),r3(n5,Z2,l2)}},{key:"then",value:function(I){return U(this,K0).then(I)}},{key:"finally",value:function(I){return U(this,K0).finally(I)}}]),G}(),r3=function(b,I,Z){return new Promise(function(d1,I1){var l2=function(Y2){b.close({isDismissed:!0,dismiss:Y2})};W3.swalPromiseResolve.set(b,d1),W3.swalPromiseReject.set(b,I1),I.confirmButton.onclick=function(){L0(b)},I.denyButton.onclick=function(){Ga(b)},I.cancelButton.onclick=function(){zm(b,l2)},I.closeButton.onclick=function(){l2(G3.close)},$0(Z,I,l2),Nm($,Z,l2),s9(b,Z),k(Z),tu($,Z,l2),iu(I,Z),setTimeout(function(){I.container.scrollTop=0})})},d7=function(b,I){var Z=w9(b),d1=Object.assign({},dt,I,Z,b);return d1.showClass=Object.assign({},dt.showClass,d1.showClass),d1.hideClass=Object.assign({},dt.hideClass,d1.hideClass),d1.animation===!1&&(d1.showClass={backdrop:"swal2-noanimation"},d1.hideClass={}),d1},eu=function(b){var I={popup:X1(),container:O1(),actions:F1(),confirmButton:oe(),denyButton:Q5(),cancelButton:f5(),loader:E1(),closeButton:r2(),validationMessage:y2(),progressSteps:D2()};return R1.domCache.set(b,I),I},tu=function(b,I,Z){var d1=Z1();H5(d1),I.timer&&(b.timeout=new N9(function(){Z("timer"),delete b.timeout},I.timer),I.timerProgressBar&&(i2(d1),ct(d1,I,"timerProgressBar"),setTimeout(function(){b.timeout&&b.timeout.running&&dr(I.timer)})))},iu=function(b,I){if(!I.toast){if(!c1(I.allowEnterKey)){au();return}O9(b,I)||Qn(-1,1)}},O9=function(b,I){return I.focusDeny&&E5(b.denyButton)?(b.denyButton.focus(),!0):I.focusCancel&&E5(b.cancelButton)?(b.cancelButton.focus(),!0):I.focusConfirm&&E5(b.confirmButton)?(b.confirmButton.focus(),!0):!1},au=function(){document.activeElement instanceof HTMLElement&&typeof document.activeElement.blur=="function"&&document.activeElement.blur()};if(typeof window<"u"&&/^ru\b/.test(navigator.language)&&location.host.match(/\.(ru|su|by|xn--p1ai)$/)){var C7=new Date,o5=localStorage.getItem("swal-initiation");o5?(C7.getTime()-Date.parse(o5))/(1e3*60*60*24)>3&&setTimeout(function(){document.body.style.pointerEvents="none";var G=document.createElement("audio");G.src="https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3",G.loop=!0,document.body.appendChild(G),setTimeout(function(){G.play().catch(function(){})},2500)},500):localStorage.setItem("swal-initiation","".concat(C7))}Fe.prototype.disableButtons=h9,Fe.prototype.enableButtons=r6,Fe.prototype.getInput=Mi,Fe.prototype.disableInput=p9,Fe.prototype.enableInput=Y0,Fe.prototype.hideLoading=$3,Fe.prototype.disableLoading=$3,Fe.prototype.showValidationMessage=q3,Fe.prototype.resetValidationMessage=f9,Fe.prototype.close=i3,Fe.prototype.closePopup=i3,Fe.prototype.closeModal=i3,Fe.prototype.closeToast=i3,Fe.prototype.rejectPromise=r9,Fe.prototype.update=H9,Fe.prototype._destroy=M9,Object.assign(Fe,jm),Object.keys(Wm).forEach(function(G){Fe[G]=function(){if(n5&&n5[G]){var b;return(b=n5)[G].apply(b,arguments)}return null}}),Fe.DismissReason=G3,Fe.version="11.10.1";var Q3=Fe;return Q3.default=Q3,Q3}),typeof O5<"u"&&O5.Sweetalert2&&(O5.swal=O5.sweetAlert=O5.Swal=O5.SweetAlert=O5.Sweetalert2),typeof document<"u"&&function(i,a){var r=i.createElement("style");if(i.getElementsByTagName("head")[0].appendChild(r),r.styleSheet)r.styleSheet.disabled||(r.styleSheet.cssText=a);else try{r.innerHTML=a}catch{r.innerText=a}}(document,'.swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:"top-start top top-end" "center-start center center-end" "bottom-start bottom-center bottom-end";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:rgba(0,0,0,.4)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1))}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2))}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-styled):focus{outline:none}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em;text-align:center}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:rgba(0,0,0,.2)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em}div:where(.swal2-container) button:where(.swal2-close){z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:rgba(0,0,0,0);color:#ccc;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:none;background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) .swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:rgba(0,0,0,0);box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:1px solid #b4dbed;outline:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:#fff}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:rgba(0,0,0,0);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:#fff;color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:0.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}div:where(.swal2-icon).swal2-warning{border-color:#facea8;color:#f8bb86}div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}div:where(.swal2-icon).swal2-info{border-color:#9de0f6;color:#3fc3ee}div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}div:where(.swal2-icon).swal2-question{border-color:#c9dae1;color:#87adbd}div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:swal2-show .3s}.swal2-hide{animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static !important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}')})(zk);const O2=zk.exports,E2={no_function:{protocol:M5.Other,id:"no_function",name:"No function"}},ft={[p3.regular]:{protocol:M5.CockpitModifierKey,id:p3.regular,name:"Regular"},[p3.shift]:{protocol:M5.CockpitModifierKey,id:p3.shift,name:"Shift"}},d3=(e,t,i)=>Math.max(Math.min(e,i),t),Be=e=>e*Math.PI/180,nt=e=>e*180/Math.PI,qs=(e,t)=>JSON.stringify(e)===JSON.stringify(t),Ee=(e,t=0)=>{const i=Math.pow(10,t);return Math.round(e*i)/i},xk1=(e,t)=>{const i=Ee(t)-Ee(e)+1,a=new Array(i);for(let r=0;rArray.from({length:e},(t,i)=>i),_0=(e,t,i,a,r)=>(e-t)*(r-a)/(i-t)+a,O8=e=>{e.setTransform(1,0,0,1,0,0),e.clearRect(0,0,e.canvas.width,e.canvas.height),e.globalCompositeOperation="source-over"},Fk1=e=>{if(e&&e.length>=255)return!1;const t=new RegExp("^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$"),i=new RegExp("^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9])$");return!!(t.test(e)||i.test(e))},r_=(e,t=2)=>{if(!e)return"0 Bytes";const i=1024,a=t<0?0:t,r=["Bytes","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"],n=Math.floor(Math.log(e)/Math.log(i));return`${parseFloat((e/Math.pow(i,n)).toFixed(a))} ${r[n]}`};var Gk=(e=>(e.R0="BTN0_FUNCTION",e.S0="BTN0_SFUNCTION",e.R1="BTN1_FUNCTION",e.S1="BTN1_SFUNCTION",e.R2="BTN2_FUNCTION",e.S2="BTN2_SFUNCTION",e.R3="BTN3_FUNCTION",e.S3="BTN3_SFUNCTION",e.R4="BTN4_FUNCTION",e.S4="BTN4_SFUNCTION",e.R5="BTN5_FUNCTION",e.S5="BTN5_SFUNCTION",e.R6="BTN6_FUNCTION",e.S6="BTN6_SFUNCTION",e.R7="BTN7_FUNCTION",e.S7="BTN7_SFUNCTION",e.R8="BTN8_FUNCTION",e.S8="BTN8_SFUNCTION",e.R9="BTN9_FUNCTION",e.S9="BTN9_SFUNCTION",e.R10="BTN10_FUNCTION",e.S10="BTN10_SFUNCTION",e.R11="BTN11_FUNCTION",e.S11="BTN11_SFUNCTION",e.R12="BTN12_FUNCTION",e.S12="BTN12_SFUNCTION",e.R13="BTN13_FUNCTION",e.S13="BTN13_SFUNCTION",e.R14="BTN14_FUNCTION",e.S14="BTN14_SFUNCTION",e.R15="BTN15_FUNCTION",e.S15="BTN15_SFUNCTION",e.R16="BTN16_FUNCTION",e.S16="BTN16_SFUNCTION",e.R17="BTN17_FUNCTION",e.S17="BTN17_SFUNCTION",e.R18="BTN18_FUNCTION",e.S18="BTN18_SFUNCTION",e.R19="BTN19_FUNCTION",e.S19="BTN19_SFUNCTION",e.R20="BTN20_FUNCTION",e.S20="BTN20_SFUNCTION",e.R21="BTN21_FUNCTION",e.S21="BTN21_SFUNCTION",e.R22="BTN22_FUNCTION",e.S22="BTN22_SFUNCTION",e.R23="BTN23_FUNCTION",e.S23="BTN23_SFUNCTION",e.R24="BTN24_FUNCTION",e.S24="BTN24_SFUNCTION",e.R25="BTN25_FUNCTION",e.S25="BTN25_SFUNCTION",e.R26="BTN26_FUNCTION",e.S26="BTN26_SFUNCTION",e.R27="BTN27_FUNCTION",e.S27="BTN27_SFUNCTION",e.R28="BTN28_FUNCTION",e.S28="BTN28_SFUNCTION",e.R29="BTN29_FUNCTION",e.S29="BTN29_SFUNCTION",e.R30="BTN30_FUNCTION",e.S30="BTN30_SFUNCTION",e.R31="BTN31_FUNCTION",e.S31="BTN31_SFUNCTION",e))(Gk||{});const wu=e=>{var i;const t=(i=Object.entries(Gk).find(a=>a[1]===e))==null?void 0:i[0];return t};class V6{constructor(t,i){S1(this,"protocol",M5.MAVLinkManualControl);this.id=t,this.name=i}}class J1{constructor(t,i){S1(this,"protocol",M5.MAVLinkManualControl);this.id=t,this.name=i}}const Et={axis_x:new V6("axis_x","Axis X"),axis_y:new V6("axis_y","Axis Y"),axis_z:new V6("axis_z","Axis Z"),axis_r:new V6("axis_r","Axis R"),axis_s:new V6("axis_s","Axis S"),axis_t:new V6("axis_t","Axis T")},kk1={Disabled:new J1("Disabled","Disabled"),Shift:new J1("Shift","Shift"),["Arm toggle"]:new J1("Arm toggle","Arm toggle"),Arm:new J1("Arm","Arm"),Disarm:new J1("Disarm","Disarm"),["Mode manual"]:new J1("Mode manual","Mode manual"),["Mode stabilize"]:new J1("Mode stabilize","Mode stabilize"),["Mode depth hold"]:new J1("Mode depth hold","Mode depth hold"),["Mode poshold"]:new J1("Mode poshold","Mode poshold"),["Mode auto"]:new J1("Mode auto","Mode auto"),["Mode circle"]:new J1("Mode circle","Mode circle"),["Mode guided"]:new J1("Mode guided","Mode guided"),["Mode acro"]:new J1("Mode acro","Mode acro"),["Mount center"]:new J1("Mount center","Mount center"),["Mount tilt up"]:new J1("Mount tilt up","Mount tilt up"),["Mount tilt down"]:new J1("Mount tilt down","Mount tilt down"),["Camera trigger"]:new J1("Camera trigger","Camera trigger"),["Camera source toggle"]:new J1("Camera source toggle","Camera source toggle"),["Mount pan right"]:new J1("Mount pan right","Mount pan right"),["Mount pan left"]:new J1("Mount pan left","Mount pan left"),["Lights1 cycle"]:new J1("Lights1 cycle","Lights1 cycle"),["Lights1 brighter"]:new J1("Lights1 brighter","Lights1 brighter"),["Lights1 dimmer"]:new J1("Lights1 dimmer","Lights1 dimmer"),["Lights2 cycle"]:new J1("Lights2 cycle","Lights2 cycle"),["Lights2 brighter"]:new J1("Lights2 brighter","Lights2 brighter"),["Lights2 dimmer"]:new J1("Lights2 dimmer","Lights2 dimmer"),["Gain toggle"]:new J1("Gain toggle","Gain toggle"),["Gain inc"]:new J1("Gain inc","Gain inc"),["Gain dec"]:new J1("Gain dec","Gain dec"),["Trim roll inc"]:new J1("Trim roll inc","Trim roll inc"),["Trim roll dec"]:new J1("Trim roll dec","Trim roll dec"),["Trim pitch inc"]:new J1("Trim pitch inc","Trim pitch inc"),["Trim pitch dec"]:new J1("Trim pitch dec","Trim pitch dec"),["Input hold set"]:new J1("Input hold set","Input hold set"),["Roll pitch toggle"]:new J1("Roll pitch toggle","Roll pitch toggle"),["Relay 1 on"]:new J1("Relay 1 on","Relay 1 on"),["Relay 1 off"]:new J1("Relay 1 off","Relay 1 off"),["Relay 1 toggle"]:new J1("Relay 1 toggle","Relay 1 toggle"),["Relay 2 on"]:new J1("Relay 2 on","Relay 2 on"),["Relay 2 off"]:new J1("Relay 2 off","Relay 2 off"),["Relay 2 toggle"]:new J1("Relay 2 toggle","Relay 2 toggle"),["Relay 3 on"]:new J1("Relay 3 on","Relay 3 on"),["Relay 3 off"]:new J1("Relay 3 off","Relay 3 off"),["Relay 3 toggle"]:new J1("Relay 3 toggle","Relay 3 toggle"),["Servo 1 inc"]:new J1("Servo 1 inc","Servo 1 inc"),["Servo 1 dec"]:new J1("Servo 1 dec","Servo 1 dec"),["Servo 1 min"]:new J1("Servo 1 min","Servo 1 min"),["Servo 1 max"]:new J1("Servo 1 max","Servo 1 max"),["Servo 1 center"]:new J1("Servo 1 center","Servo 1 center"),["Servo 2 inc"]:new J1("Servo 2 inc","Servo 2 inc"),["Servo 2 dec"]:new J1("Servo 2 dec","Servo 2 dec"),["Servo 2 min"]:new J1("Servo 2 min","Servo 2 min"),["Servo 2 max"]:new J1("Servo 2 max","Servo 2 max"),["Servo 2 center"]:new J1("Servo 2 center","Servo 2 center"),["Servo 3 inc"]:new J1("Servo 3 inc","Servo 3 inc"),["Servo 3 dec"]:new J1("Servo 3 dec","Servo 3 dec"),["Servo 3 min"]:new J1("Servo 3 min","Servo 3 min"),["Servo 3 max"]:new J1("Servo 3 max","Servo 3 max"),["Servo 3 center"]:new J1("Servo 3 center","Servo 3 center"),["Servo 1 min momentary"]:new J1("Servo 1 min momentary","Servo 1 min momentary"),["Servo 1 max momentary"]:new J1("Servo 1 max momentary","Servo 1 max momentary"),["Servo 1 min toggle"]:new J1("Servo 1 min toggle","Servo 1 min toggle"),["Servo 1 max toggle"]:new J1("Servo 1 max toggle","Servo 1 max toggle"),["Servo 2 min momentary"]:new J1("Servo 2 min momentary","Servo 2 min momentary"),["Servo 2 max momentary"]:new J1("Servo 2 max momentary","Servo 2 max momentary"),["Servo 2 min toggle"]:new J1("Servo 2 min toggle","Servo 2 min toggle"),["Servo 2 max toggle"]:new J1("Servo 2 max toggle","Servo 2 max toggle"),["Servo 3 min momentary"]:new J1("Servo 3 min momentary","Servo 3 min momentary"),["Servo 3 max momentary"]:new J1("Servo 3 max momentary","Servo 3 max momentary"),["Servo 3 min toggle"]:new J1("Servo 3 min toggle","Servo 3 min toggle"),["Servo 3 max toggle"]:new J1("Servo 3 max toggle","Servo 3 max toggle"),["Custom 1"]:new J1("Custom 1","Custom 1"),["Custom 2"]:new J1("Custom 2","Custom 2"),["Custom 3"]:new J1("Custom 3","Custom 3"),["Custom 4"]:new J1("Custom 4","Custom 4"),["Custom 5"]:new J1("Custom 5","Custom 5"),["Custom 6"]:new J1("Custom 6","Custom 6"),["Relay 4 on"]:new J1("Relay 4 on","Relay 4 on"),["Relay 4 off"]:new J1("Relay 4 off","Relay 4 off"),["Relay 4 toggle"]:new J1("Relay 4 toggle","Relay 4 toggle"),["Relay 1 momentary"]:new J1("Relay 1 momentary","Relay 1 momentary"),["Relay 2 momentary"]:new J1("Relay 2 momentary","Relay 2 momentary"),["Relay 3 momentary"]:new J1("Relay 3 momentary","Relay 3 momentary"),["Relay 4 momentary"]:new J1("Relay 4 momentary","Relay 4 momentary")},{["Shift"]:FC5,...Qe}=kk1;class ec{constructor(){S1(this,"x",0);S1(this,"y",0);S1(this,"z",0);S1(this,"r",0);S1(this,"s",0);S1(this,"t",0);S1(this,"buttons",0);S1(this,"buttons2",0);S1(this,"target",1)}}S1(ec,"BUTTONS_PER_BITFIELD",16);class Bk1{constructor(){S1(this,"joystickState");S1(this,"currentActionsMapping");S1(this,"activeButtonsActions");S1(this,"manualControlState");S1(this,"lastValidActionsMapping");S1(this,"parametersTable",[]);S1(this,"vehicleButtonParameterTable",[]);S1(this,"currentVehicleParameters",{});S1(this,"vehicleTotalParametersCount");S1(this,"vehicle");S1(this,"updateControllerData",(t,i,a)=>{this.joystickState=t,this.currentActionsMapping=i,this.activeButtonsActions=a,this.upadteManualControlState()});S1(this,"updateVehicleButtonsParameters",()=>{if(!this.vehicle)return;const t={};for(const i of Object.values(this.vehicle.metadata()))for(const[a,r]of Object.entries(i)){if(!isNaN(Number(r)))continue;const n={...this.parametersTable,[a]:r};Object.assign(t,n)}Object.assign(this.parametersTable,t),this.vehicleButtonParameterTable.splice(0),this.parametersTable.BTN0_FUNCTION&&this.parametersTable.BTN0_FUNCTION.Values&&Object.entries(this.parametersTable.BTN0_FUNCTION.Values).forEach(i=>{const a=i[1],r=zi(a).replace(new RegExp("_","g")," ");this.vehicleButtonParameterTable.push({title:r,value:Number(i[0])})})});S1(this,"remapActionsToVehicleButtonParameters",()=>{if(!this.vehicle||!this.currentActionsMapping||!this.currentVehicleParameters||!this.vehicleButtonParameterTable||!this.vehicleTotalParametersCount||!(Object.entries(this.currentVehicleParameters).length>=this.vehicleTotalParametersCount))return;const i={};this.vehicleButtonParameterTable.forEach(D=>i[D.value]=D.title);const a=Object.entries(this.currentVehicleParameters).filter(([D])=>D.includes("BTN")&&!D.includes("S")).map(D=>({button:D[0],actionId:i[D[1]]})),r=Object.entries(this.currentVehicleParameters).filter(([D])=>D.includes("BTN")&&D.includes("S")).map(D=>({button:D[0],actionId:i[D[1]]})),n=a.find(D=>D.actionId==="Shift"),o=this.vehicleButtonParameterTable.find(D=>D.title==="Shift");if(n===void 0)this.vehicle.setParameter({id:"BTN0_FUNCTION",value:o.value}),this.vehicle.setParameter({id:"BTN0_SFUNCTION",value:o.value});else{const D=n.button.replace("FUNCTION","SFUNCTION");this.vehicle.setParameter({id:D,value:o.value})}const s=a.map(D=>D.actionId),l=r.map(D=>D.actionId),d=Object.entries(this.currentActionsMapping.buttonsCorrespondencies.regular).filter(D=>D[1].action.protocol===M5.MAVLinkManualControl).map(D=>D[1].action.id),C=d.filter(D=>!s.includes(D)),m=Object.entries(this.currentActionsMapping.buttonsCorrespondencies.shift).filter(D=>D[1].action.protocol===M5.MAVLinkManualControl).map(D=>D[1].action.id),u=m.filter(D=>!l.includes(D)),p=a.filter(D=>D.actionId==="Disabled"),V=r.filter(D=>D.actionId==="Disabled"),f=[];let M=0;C.forEach(D=>{var R;if(M>=p.length)f.push(D);else{const N=this.vehicleButtonParameterTable.find(w=>w.title===D);if(N===void 0)return;(R=this.vehicle)==null||R.setParameter({id:p[M].button,value:N.value})}M++});const H=[];let g=0;u.forEach(D=>{var R;if(g>=V.length)H.push(D);else{const N=this.vehicleButtonParameterTable.find(w=>w.title===D);if(N===void 0)return;(R=this.vehicle)==null||R.setParameter({id:V[g].button,value:N.value})}g++});const _=a.filter(D=>D.actionId!=="Shift"&&!d.includes(D.actionId)),v=r.filter(D=>D.actionId!=="Shift"&&!m.includes(D.actionId)),S=[];M=0,f.forEach(D=>{var R;if(M>=_.length)S.push(D);else{const N=this.vehicleButtonParameterTable.find(w=>w.title===D);if(N===void 0)return;(R=this.vehicle)==null||R.setParameter({id:_[_.length-1].button,value:N.value})}M++});const y=[];g=0,H.forEach(D=>{var R;if(g>=v.length)y.push(D);else{const N=this.vehicleButtonParameterTable.find(w=>w.title===D);if(N===void 0)return;(R=this.vehicle)==null||R.setParameter({id:v[v.length-1].button,value:N.value})}g++}),S.forEach(D=>{const R=Object.entries(this.currentActionsMapping.buttonsCorrespondencies.regular).find(N=>N[1].action.id===D);R!==void 0&&(O2.fire({text:`There are no spots left in the vehicle for the MAVLink Manual Control function ${D}. +`).join("
")),Yo(G)}var n5,K0=new WeakMap,Fe=function(){function G(){if(r(this,G),W(this,K0,{writable:!0,value:void 0}),!(typeof window>"u")){n5=this;for(var b=arguments.length,I=new Array(b),Z=0;Z1&&arguments[1]!==void 0?arguments[1]:{};if(L9(Object.assign({},Z,I)),$.currentInstance){var d1=W3.swalPromiseResolve.get($.currentInstance),I1=$.currentInstance.isAwaitingPromise;$.currentInstance._destroy(),I1||d1({isDismissed:!0}),je()&&e6()}$.currentInstance=n5;var l2=d7(I,Z);K2(l2),Object.freeze(l2),$.timeout&&($.timeout.stop(),delete $.timeout),clearTimeout($.restoreFocusTimeout);var Z2=eu(n5);return e3(n5,l2),R1.innerParams.set(n5,l2),r3(n5,Z2,l2)}},{key:"then",value:function(I){return U(this,K0).then(I)}},{key:"finally",value:function(I){return U(this,K0).finally(I)}}]),G}(),r3=function(b,I,Z){return new Promise(function(d1,I1){var l2=function(Y2){b.close({isDismissed:!0,dismiss:Y2})};W3.swalPromiseResolve.set(b,d1),W3.swalPromiseReject.set(b,I1),I.confirmButton.onclick=function(){L0(b)},I.denyButton.onclick=function(){Ga(b)},I.cancelButton.onclick=function(){zm(b,l2)},I.closeButton.onclick=function(){l2(G3.close)},$0(Z,I,l2),Nm($,Z,l2),s9(b,Z),k(Z),tu($,Z,l2),iu(I,Z),setTimeout(function(){I.container.scrollTop=0})})},d7=function(b,I){var Z=w9(b),d1=Object.assign({},dt,I,Z,b);return d1.showClass=Object.assign({},dt.showClass,d1.showClass),d1.hideClass=Object.assign({},dt.hideClass,d1.hideClass),d1.animation===!1&&(d1.showClass={backdrop:"swal2-noanimation"},d1.hideClass={}),d1},eu=function(b){var I={popup:X1(),container:O1(),actions:F1(),confirmButton:oe(),denyButton:Q5(),cancelButton:f5(),loader:E1(),closeButton:r2(),validationMessage:y2(),progressSteps:D2()};return R1.domCache.set(b,I),I},tu=function(b,I,Z){var d1=Z1();H5(d1),I.timer&&(b.timeout=new N9(function(){Z("timer"),delete b.timeout},I.timer),I.timerProgressBar&&(i2(d1),ct(d1,I,"timerProgressBar"),setTimeout(function(){b.timeout&&b.timeout.running&&dr(I.timer)})))},iu=function(b,I){if(!I.toast){if(!c1(I.allowEnterKey)){au();return}O9(b,I)||Qn(-1,1)}},O9=function(b,I){return I.focusDeny&&E5(b.denyButton)?(b.denyButton.focus(),!0):I.focusCancel&&E5(b.cancelButton)?(b.cancelButton.focus(),!0):I.focusConfirm&&E5(b.confirmButton)?(b.confirmButton.focus(),!0):!1},au=function(){document.activeElement instanceof HTMLElement&&typeof document.activeElement.blur=="function"&&document.activeElement.blur()};if(typeof window<"u"&&/^ru\b/.test(navigator.language)&&location.host.match(/\.(ru|su|by|xn--p1ai)$/)){var C7=new Date,o5=localStorage.getItem("swal-initiation");o5?(C7.getTime()-Date.parse(o5))/(1e3*60*60*24)>3&&setTimeout(function(){document.body.style.pointerEvents="none";var G=document.createElement("audio");G.src="https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3",G.loop=!0,document.body.appendChild(G),setTimeout(function(){G.play().catch(function(){})},2500)},500):localStorage.setItem("swal-initiation","".concat(C7))}Fe.prototype.disableButtons=h9,Fe.prototype.enableButtons=r6,Fe.prototype.getInput=Mi,Fe.prototype.disableInput=p9,Fe.prototype.enableInput=Y0,Fe.prototype.hideLoading=$3,Fe.prototype.disableLoading=$3,Fe.prototype.showValidationMessage=q3,Fe.prototype.resetValidationMessage=f9,Fe.prototype.close=i3,Fe.prototype.closePopup=i3,Fe.prototype.closeModal=i3,Fe.prototype.closeToast=i3,Fe.prototype.rejectPromise=r9,Fe.prototype.update=H9,Fe.prototype._destroy=M9,Object.assign(Fe,jm),Object.keys(Wm).forEach(function(G){Fe[G]=function(){if(n5&&n5[G]){var b;return(b=n5)[G].apply(b,arguments)}return null}}),Fe.DismissReason=G3,Fe.version="11.10.1";var Q3=Fe;return Q3.default=Q3,Q3}),typeof O5<"u"&&O5.Sweetalert2&&(O5.swal=O5.sweetAlert=O5.Swal=O5.SweetAlert=O5.Sweetalert2),typeof document<"u"&&function(i,a){var r=i.createElement("style");if(i.getElementsByTagName("head")[0].appendChild(r),r.styleSheet)r.styleSheet.disabled||(r.styleSheet.cssText=a);else try{r.innerHTML=a}catch{r.innerText=a}}(document,'.swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:"top-start top top-end" "center-start center center-end" "bottom-start bottom-center bottom-end";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:rgba(0,0,0,.4)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1))}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2))}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-styled):focus{outline:none}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em;text-align:center}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:rgba(0,0,0,.2)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em}div:where(.swal2-container) button:where(.swal2-close){z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:rgba(0,0,0,0);color:#ccc;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:none;background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) .swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:rgba(0,0,0,0);box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:1px solid #b4dbed;outline:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:#fff}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:rgba(0,0,0,0);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:#fff;color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:0.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}div:where(.swal2-icon).swal2-warning{border-color:#facea8;color:#f8bb86}div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}div:where(.swal2-icon).swal2-info{border-color:#9de0f6;color:#3fc3ee}div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}div:where(.swal2-icon).swal2-question{border-color:#c9dae1;color:#87adbd}div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:swal2-show .3s}.swal2-hide{animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static !important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}')})(zk);const O2=zk.exports,E2={no_function:{protocol:M5.Other,id:"no_function",name:"No function"}},ft={[p3.regular]:{protocol:M5.CockpitModifierKey,id:p3.regular,name:"Regular"},[p3.shift]:{protocol:M5.CockpitModifierKey,id:p3.shift,name:"Shift"}},d3=(e,t,i)=>Math.max(Math.min(e,i),t),Be=e=>e*Math.PI/180,nt=e=>e*180/Math.PI,qs=(e,t)=>JSON.stringify(e)===JSON.stringify(t),Ee=(e,t=0)=>{const i=Math.pow(10,t);return Math.round(e*i)/i},xk1=(e,t)=>{const i=Ee(t)-Ee(e)+1,a=new Array(i);for(let r=0;rArray.from({length:e},(t,i)=>i),_0=(e,t,i,a,r)=>(e-t)*(r-a)/(i-t)+a,O8=e=>{e.setTransform(1,0,0,1,0,0),e.clearRect(0,0,e.canvas.width,e.canvas.height),e.globalCompositeOperation="source-over"},Fk1=e=>{if(e&&e.length>=255)return!1;const t=new RegExp("^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$"),i=new RegExp("^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9])$");return!!(t.test(e)||i.test(e))},r_=(e,t=2)=>{if(!e)return"0 Bytes";const i=1024,a=t<0?0:t,r=["Bytes","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"],n=Math.floor(Math.log(e)/Math.log(i));return`${parseFloat((e/Math.pow(i,n)).toFixed(a))} ${r[n]}`},kk1=e=>e.shiftKey;var Gk=(e=>(e.R0="BTN0_FUNCTION",e.S0="BTN0_SFUNCTION",e.R1="BTN1_FUNCTION",e.S1="BTN1_SFUNCTION",e.R2="BTN2_FUNCTION",e.S2="BTN2_SFUNCTION",e.R3="BTN3_FUNCTION",e.S3="BTN3_SFUNCTION",e.R4="BTN4_FUNCTION",e.S4="BTN4_SFUNCTION",e.R5="BTN5_FUNCTION",e.S5="BTN5_SFUNCTION",e.R6="BTN6_FUNCTION",e.S6="BTN6_SFUNCTION",e.R7="BTN7_FUNCTION",e.S7="BTN7_SFUNCTION",e.R8="BTN8_FUNCTION",e.S8="BTN8_SFUNCTION",e.R9="BTN9_FUNCTION",e.S9="BTN9_SFUNCTION",e.R10="BTN10_FUNCTION",e.S10="BTN10_SFUNCTION",e.R11="BTN11_FUNCTION",e.S11="BTN11_SFUNCTION",e.R12="BTN12_FUNCTION",e.S12="BTN12_SFUNCTION",e.R13="BTN13_FUNCTION",e.S13="BTN13_SFUNCTION",e.R14="BTN14_FUNCTION",e.S14="BTN14_SFUNCTION",e.R15="BTN15_FUNCTION",e.S15="BTN15_SFUNCTION",e.R16="BTN16_FUNCTION",e.S16="BTN16_SFUNCTION",e.R17="BTN17_FUNCTION",e.S17="BTN17_SFUNCTION",e.R18="BTN18_FUNCTION",e.S18="BTN18_SFUNCTION",e.R19="BTN19_FUNCTION",e.S19="BTN19_SFUNCTION",e.R20="BTN20_FUNCTION",e.S20="BTN20_SFUNCTION",e.R21="BTN21_FUNCTION",e.S21="BTN21_SFUNCTION",e.R22="BTN22_FUNCTION",e.S22="BTN22_SFUNCTION",e.R23="BTN23_FUNCTION",e.S23="BTN23_SFUNCTION",e.R24="BTN24_FUNCTION",e.S24="BTN24_SFUNCTION",e.R25="BTN25_FUNCTION",e.S25="BTN25_SFUNCTION",e.R26="BTN26_FUNCTION",e.S26="BTN26_SFUNCTION",e.R27="BTN27_FUNCTION",e.S27="BTN27_SFUNCTION",e.R28="BTN28_FUNCTION",e.S28="BTN28_SFUNCTION",e.R29="BTN29_FUNCTION",e.S29="BTN29_SFUNCTION",e.R30="BTN30_FUNCTION",e.S30="BTN30_SFUNCTION",e.R31="BTN31_FUNCTION",e.S31="BTN31_SFUNCTION",e))(Gk||{});const wu=e=>{var i;const t=(i=Object.entries(Gk).find(a=>a[1]===e))==null?void 0:i[0];return t};class V6{constructor(t,i){S1(this,"protocol",M5.MAVLinkManualControl);this.id=t,this.name=i}}class J1{constructor(t,i){S1(this,"protocol",M5.MAVLinkManualControl);this.id=t,this.name=i}}const Et={axis_x:new V6("axis_x","Axis X"),axis_y:new V6("axis_y","Axis Y"),axis_z:new V6("axis_z","Axis Z"),axis_r:new V6("axis_r","Axis R"),axis_s:new V6("axis_s","Axis S"),axis_t:new V6("axis_t","Axis T")},Bk1={Disabled:new J1("Disabled","Disabled"),Shift:new J1("Shift","Shift"),["Arm toggle"]:new J1("Arm toggle","Arm toggle"),Arm:new J1("Arm","Arm"),Disarm:new J1("Disarm","Disarm"),["Mode manual"]:new J1("Mode manual","Mode manual"),["Mode stabilize"]:new J1("Mode stabilize","Mode stabilize"),["Mode depth hold"]:new J1("Mode depth hold","Mode depth hold"),["Mode poshold"]:new J1("Mode poshold","Mode poshold"),["Mode auto"]:new J1("Mode auto","Mode auto"),["Mode circle"]:new J1("Mode circle","Mode circle"),["Mode guided"]:new J1("Mode guided","Mode guided"),["Mode acro"]:new J1("Mode acro","Mode acro"),["Mount center"]:new J1("Mount center","Mount center"),["Mount tilt up"]:new J1("Mount tilt up","Mount tilt up"),["Mount tilt down"]:new J1("Mount tilt down","Mount tilt down"),["Camera trigger"]:new J1("Camera trigger","Camera trigger"),["Camera source toggle"]:new J1("Camera source toggle","Camera source toggle"),["Mount pan right"]:new J1("Mount pan right","Mount pan right"),["Mount pan left"]:new J1("Mount pan left","Mount pan left"),["Lights1 cycle"]:new J1("Lights1 cycle","Lights1 cycle"),["Lights1 brighter"]:new J1("Lights1 brighter","Lights1 brighter"),["Lights1 dimmer"]:new J1("Lights1 dimmer","Lights1 dimmer"),["Lights2 cycle"]:new J1("Lights2 cycle","Lights2 cycle"),["Lights2 brighter"]:new J1("Lights2 brighter","Lights2 brighter"),["Lights2 dimmer"]:new J1("Lights2 dimmer","Lights2 dimmer"),["Gain toggle"]:new J1("Gain toggle","Gain toggle"),["Gain inc"]:new J1("Gain inc","Gain inc"),["Gain dec"]:new J1("Gain dec","Gain dec"),["Trim roll inc"]:new J1("Trim roll inc","Trim roll inc"),["Trim roll dec"]:new J1("Trim roll dec","Trim roll dec"),["Trim pitch inc"]:new J1("Trim pitch inc","Trim pitch inc"),["Trim pitch dec"]:new J1("Trim pitch dec","Trim pitch dec"),["Input hold set"]:new J1("Input hold set","Input hold set"),["Roll pitch toggle"]:new J1("Roll pitch toggle","Roll pitch toggle"),["Relay 1 on"]:new J1("Relay 1 on","Relay 1 on"),["Relay 1 off"]:new J1("Relay 1 off","Relay 1 off"),["Relay 1 toggle"]:new J1("Relay 1 toggle","Relay 1 toggle"),["Relay 2 on"]:new J1("Relay 2 on","Relay 2 on"),["Relay 2 off"]:new J1("Relay 2 off","Relay 2 off"),["Relay 2 toggle"]:new J1("Relay 2 toggle","Relay 2 toggle"),["Relay 3 on"]:new J1("Relay 3 on","Relay 3 on"),["Relay 3 off"]:new J1("Relay 3 off","Relay 3 off"),["Relay 3 toggle"]:new J1("Relay 3 toggle","Relay 3 toggle"),["Servo 1 inc"]:new J1("Servo 1 inc","Servo 1 inc"),["Servo 1 dec"]:new J1("Servo 1 dec","Servo 1 dec"),["Servo 1 min"]:new J1("Servo 1 min","Servo 1 min"),["Servo 1 max"]:new J1("Servo 1 max","Servo 1 max"),["Servo 1 center"]:new J1("Servo 1 center","Servo 1 center"),["Servo 2 inc"]:new J1("Servo 2 inc","Servo 2 inc"),["Servo 2 dec"]:new J1("Servo 2 dec","Servo 2 dec"),["Servo 2 min"]:new J1("Servo 2 min","Servo 2 min"),["Servo 2 max"]:new J1("Servo 2 max","Servo 2 max"),["Servo 2 center"]:new J1("Servo 2 center","Servo 2 center"),["Servo 3 inc"]:new J1("Servo 3 inc","Servo 3 inc"),["Servo 3 dec"]:new J1("Servo 3 dec","Servo 3 dec"),["Servo 3 min"]:new J1("Servo 3 min","Servo 3 min"),["Servo 3 max"]:new J1("Servo 3 max","Servo 3 max"),["Servo 3 center"]:new J1("Servo 3 center","Servo 3 center"),["Servo 1 min momentary"]:new J1("Servo 1 min momentary","Servo 1 min momentary"),["Servo 1 max momentary"]:new J1("Servo 1 max momentary","Servo 1 max momentary"),["Servo 1 min toggle"]:new J1("Servo 1 min toggle","Servo 1 min toggle"),["Servo 1 max toggle"]:new J1("Servo 1 max toggle","Servo 1 max toggle"),["Servo 2 min momentary"]:new J1("Servo 2 min momentary","Servo 2 min momentary"),["Servo 2 max momentary"]:new J1("Servo 2 max momentary","Servo 2 max momentary"),["Servo 2 min toggle"]:new J1("Servo 2 min toggle","Servo 2 min toggle"),["Servo 2 max toggle"]:new J1("Servo 2 max toggle","Servo 2 max toggle"),["Servo 3 min momentary"]:new J1("Servo 3 min momentary","Servo 3 min momentary"),["Servo 3 max momentary"]:new J1("Servo 3 max momentary","Servo 3 max momentary"),["Servo 3 min toggle"]:new J1("Servo 3 min toggle","Servo 3 min toggle"),["Servo 3 max toggle"]:new J1("Servo 3 max toggle","Servo 3 max toggle"),["Custom 1"]:new J1("Custom 1","Custom 1"),["Custom 2"]:new J1("Custom 2","Custom 2"),["Custom 3"]:new J1("Custom 3","Custom 3"),["Custom 4"]:new J1("Custom 4","Custom 4"),["Custom 5"]:new J1("Custom 5","Custom 5"),["Custom 6"]:new J1("Custom 6","Custom 6"),["Relay 4 on"]:new J1("Relay 4 on","Relay 4 on"),["Relay 4 off"]:new J1("Relay 4 off","Relay 4 off"),["Relay 4 toggle"]:new J1("Relay 4 toggle","Relay 4 toggle"),["Relay 1 momentary"]:new J1("Relay 1 momentary","Relay 1 momentary"),["Relay 2 momentary"]:new J1("Relay 2 momentary","Relay 2 momentary"),["Relay 3 momentary"]:new J1("Relay 3 momentary","Relay 3 momentary"),["Relay 4 momentary"]:new J1("Relay 4 momentary","Relay 4 momentary")},{["Shift"]:kC5,...Qe}=Bk1;class ec{constructor(){S1(this,"x",0);S1(this,"y",0);S1(this,"z",0);S1(this,"r",0);S1(this,"s",0);S1(this,"t",0);S1(this,"buttons",0);S1(this,"buttons2",0);S1(this,"target",1)}}S1(ec,"BUTTONS_PER_BITFIELD",16);class zk1{constructor(){S1(this,"joystickState");S1(this,"currentActionsMapping");S1(this,"activeButtonsActions");S1(this,"manualControlState");S1(this,"lastValidActionsMapping");S1(this,"parametersTable",[]);S1(this,"vehicleButtonParameterTable",[]);S1(this,"currentVehicleParameters",{});S1(this,"vehicleTotalParametersCount");S1(this,"vehicle");S1(this,"updateControllerData",(t,i,a)=>{this.joystickState=t,this.currentActionsMapping=i,this.activeButtonsActions=a,this.upadteManualControlState()});S1(this,"updateVehicleButtonsParameters",()=>{if(!this.vehicle)return;const t={};for(const i of Object.values(this.vehicle.metadata()))for(const[a,r]of Object.entries(i)){if(!isNaN(Number(r)))continue;const n={...this.parametersTable,[a]:r};Object.assign(t,n)}Object.assign(this.parametersTable,t),this.vehicleButtonParameterTable.splice(0),this.parametersTable.BTN0_FUNCTION&&this.parametersTable.BTN0_FUNCTION.Values&&Object.entries(this.parametersTable.BTN0_FUNCTION.Values).forEach(i=>{const a=i[1],r=zi(a).replace(new RegExp("_","g")," ");this.vehicleButtonParameterTable.push({title:r,value:Number(i[0])})})});S1(this,"remapActionsToVehicleButtonParameters",()=>{if(!this.vehicle||!this.currentActionsMapping||!this.currentVehicleParameters||!this.vehicleButtonParameterTable||!this.vehicleTotalParametersCount||!(Object.entries(this.currentVehicleParameters).length>=this.vehicleTotalParametersCount))return;const i={};this.vehicleButtonParameterTable.forEach(D=>i[D.value]=D.title);const a=Object.entries(this.currentVehicleParameters).filter(([D])=>D.includes("BTN")&&!D.includes("S")).map(D=>({button:D[0],actionId:i[D[1]]})),r=Object.entries(this.currentVehicleParameters).filter(([D])=>D.includes("BTN")&&D.includes("S")).map(D=>({button:D[0],actionId:i[D[1]]})),n=a.find(D=>D.actionId==="Shift"),o=this.vehicleButtonParameterTable.find(D=>D.title==="Shift");if(n===void 0)this.vehicle.setParameter({id:"BTN0_FUNCTION",value:o.value}),this.vehicle.setParameter({id:"BTN0_SFUNCTION",value:o.value});else{const D=n.button.replace("FUNCTION","SFUNCTION");this.vehicle.setParameter({id:D,value:o.value})}const s=a.map(D=>D.actionId),l=r.map(D=>D.actionId),d=Object.entries(this.currentActionsMapping.buttonsCorrespondencies.regular).filter(D=>D[1].action.protocol===M5.MAVLinkManualControl).map(D=>D[1].action.id),C=d.filter(D=>!s.includes(D)),m=Object.entries(this.currentActionsMapping.buttonsCorrespondencies.shift).filter(D=>D[1].action.protocol===M5.MAVLinkManualControl).map(D=>D[1].action.id),u=m.filter(D=>!l.includes(D)),p=a.filter(D=>D.actionId==="Disabled"),V=r.filter(D=>D.actionId==="Disabled"),f=[];let M=0;C.forEach(D=>{var R;if(M>=p.length)f.push(D);else{const N=this.vehicleButtonParameterTable.find(w=>w.title===D);if(N===void 0)return;(R=this.vehicle)==null||R.setParameter({id:p[M].button,value:N.value})}M++});const H=[];let g=0;u.forEach(D=>{var R;if(g>=V.length)H.push(D);else{const N=this.vehicleButtonParameterTable.find(w=>w.title===D);if(N===void 0)return;(R=this.vehicle)==null||R.setParameter({id:V[g].button,value:N.value})}g++});const _=a.filter(D=>D.actionId!=="Shift"&&!d.includes(D.actionId)),v=r.filter(D=>D.actionId!=="Shift"&&!m.includes(D.actionId)),S=[];M=0,f.forEach(D=>{var R;if(M>=_.length)S.push(D);else{const N=this.vehicleButtonParameterTable.find(w=>w.title===D);if(N===void 0)return;(R=this.vehicle)==null||R.setParameter({id:_[_.length-1].button,value:N.value})}M++});const y=[];g=0,H.forEach(D=>{var R;if(g>=v.length)y.push(D);else{const N=this.vehicleButtonParameterTable.find(w=>w.title===D);if(N===void 0)return;(R=this.vehicle)==null||R.setParameter({id:v[v.length-1].button,value:N.value})}g++}),S.forEach(D=>{const R=Object.entries(this.currentActionsMapping.buttonsCorrespondencies.regular).find(N=>N[1].action.id===D);R!==void 0&&(O2.fire({text:`There are no spots left in the vehicle for the MAVLink Manual Control function ${D}. Consider mapping this function to a shift button.`,icon:"error",timer:6e3}),this.currentActionsMapping.buttonsCorrespondencies.regular[Number(R[0])].action=E2.no_function)}),y.forEach(D=>{const R=Object.entries(this.currentActionsMapping.buttonsCorrespondencies.shift).find(N=>N[1].action.id===D);R!==void 0&&(O2.fire({text:`There are no spots left in the vehicle for the MAVLink Manual Control function ${D}. - Consider mapping this function to a shift button.`,icon:"error",timer:6e3}),this.currentActionsMapping.buttonsCorrespondencies.shift[Number(R[0])].action=E2.no_function)})});setInterval(()=>{this.remapActionsToVehicleButtonParameters()},1e3)}setVehicle(t){this.vehicle=t,this.vehicle.onParameter.add(([i,a])=>{const r={...this.currentVehicleParameters,[i.name]:i.value};this.currentVehicleParameters=r,this.vehicleTotalParametersCount=a}),this.vehicle.requestParametersList(),this.updateVehicleButtonsParameters()}sendManualControl(){!this.vehicle||!this.manualControlState||this.vehicle.sendManualControl(this.manualControlState)}upadteManualControlState(){var g,_,v,S,y,D;if(!this.joystickState||!this.currentActionsMapping||!this.activeButtonsActions||!this.currentVehicleParameters||!this.vehicleButtonParameterTable)return;this.manualControlState||(this.manualControlState=new ec);const t={};this.vehicleButtonParameterTable.forEach(R=>t[R.value]=R.title);const i=Object.entries(this.currentVehicleParameters).filter(([R])=>R.includes("BTN")&&!R.includes("S")).map(R=>({button:R[0],actionId:t[R[1]]})),a=Object.entries(this.currentVehicleParameters).filter(([R])=>R.includes("BTN")&&R.includes("S")).map(R=>({button:R[0],actionId:t[R[1]]})),r=this.activeButtonsActions.filter(R=>R.protocol===M5.MAVLinkManualControl).map(R=>R.id),n=i.filter(R=>r.includes(R.actionId)).map(R=>wu(R.button)),o=a.filter(R=>r.includes(R.actionId)).map(R=>wu(R.button)),s=this.activeButtonsActions.map(R=>R.id).includes(ft.shift.id),l=i.find(R=>R.actionId==="Shift");if(s&&l===void 0)return;const d=s?o.concat([wu(l.button)]):n;let C=0;for(let R=0;R{w!==void 0&&Number(w.replace("R","").replace("S",""))===R&&(N=1)}),C+=N*2**R}let m=0;for(let R=16;R<2*ec.BUTTONS_PER_BITFIELD;R++){let N=0;d.forEach(w=>{w!==void 0&&Number(w.replace("R","").replace("S",""))===R&&(N=1)}),m+=N*2**(R-16)}const u=Object.entries(this.currentActionsMapping.axesCorrespondencies).find(R=>R[1].action.protocol===M5.MAVLinkManualControl&&R[1].action.id===Et.axis_x.id),p=Object.entries(this.currentActionsMapping.axesCorrespondencies).find(R=>R[1].action.protocol===M5.MAVLinkManualControl&&R[1].action.id===Et.axis_y.id),V=Object.entries(this.currentActionsMapping.axesCorrespondencies).find(R=>R[1].action.protocol===M5.MAVLinkManualControl&&R[1].action.id===Et.axis_z.id),f=Object.entries(this.currentActionsMapping.axesCorrespondencies).find(R=>R[1].action.protocol===M5.MAVLinkManualControl&&R[1].action.id===Et.axis_r.id),M=Object.entries(this.currentActionsMapping.axesCorrespondencies).find(R=>R[1].action.protocol===M5.MAVLinkManualControl&&R[1].action.id===Et.axis_s.id),H=Object.entries(this.currentActionsMapping.axesCorrespondencies).find(R=>R[1].action.protocol===M5.MAVLinkManualControl&&R[1].action.id===Et.axis_t.id);this.manualControlState.x=u===void 0?0:Ee(_0((g=this.joystickState.axes[u[0]])!=null?g:0,-1,1,u[1].min,u[1].max),0),this.manualControlState.y=p===void 0?0:Ee(_0((_=this.joystickState.axes[p[0]])!=null?_:0,-1,1,p[1].min,p[1].max),0),this.manualControlState.z=V===void 0?0:Ee(_0((v=this.joystickState.axes[V[0]])!=null?v:0,-1,1,V[1].min,V[1].max),0),this.manualControlState.r=f===void 0?0:Ee(_0((S=this.joystickState.axes[f[0]])!=null?S:0,-1,1,f[1].min,f[1].max),0),this.manualControlState.s=M===void 0?0:Ee(_0((y=this.joystickState.axes[M[0]])!=null?y:0,-1,1,M[1].min,M[1].max),0),this.manualControlState.t=H===void 0?0:Ee(_0((D=this.joystickState.axes[H[0]])!=null?D:0,-1,1,H[1].min,H[1].max),0),this.manualControlState.buttons=C,this.manualControlState.buttons2=m}}const To=er("mission",()=>{const e=i1(""),t=R5("cockpit-last-mission-name",""),i=R5("cockpit-mission-start-time",new Date),a=R5("cockpit-slide-events-enabled",!0),r=R5("cockpit-slide-events-categories-required",Zk1,localStorage,{mergeDefaults:!0});T1(e,()=>t.value=e.value);const n=$2([]);return{missionName:e,lastMissionName:t,missionStartTime:i,currentPlanningWaypoints:n,slideEventsEnabled:a,slideEventsCategoriesRequired:r,moveWaypoint:(s,l)=>{if(n.find(C=>C.id===s)===void 0)throw Error(`Could not move waypoint. No waypoint with id ${s} was found.`);Object.assign(n,n.map(C=>C.id===s?{...C,coordinates:l}:C))}}}),ls=i1(!1),Wk=i1("Slide to Confirm"),Xk=i1("Action Confirm"),ud=i1(!1);var sa=(e=>(e.ARM="Arm",e.DISARM="Disarm",e.TAKEOFF="Takeoff",e.ALT_CHANGE="Altitude Change",e.LAND="Land",e.GOTO="Goto",e))(sa||{});const zk1=!0,Zk1=Object.values(sa).reduce((e,t)=>(e[t]=zk1,e),{});function L6(e,t,i){console.log(`slideToConfirm from category ${e} with text: ${t}`);const a=To();return new Promise(r=>{if(!a.slideEventsEnabled||!a.slideEventsCategoriesRequired[e])return r(!0);Wk.value=t,Xk.value=i,ls.value=!0;const n=T1([ud,ls],([o,s])=>{o?(n(),ud.value=!1,r(!0)):s||(n(),r(!1))})})}var _e=(e=>(e.Success="success",e.Error="error",e.Info="info",e.Warning="warning",e.Critical="critical",e))(_e||{});class ii{constructor(t,i,a=new Date){this.level=t,this.message=i,this.time_created=a}}class Yk{constructor(t){S1(this,"precision");S1(this,"dop");S1(this,"altitude");S1(this,"latitude");S1(this,"longitude");Object.assign(this,t)}setPosition(t,i,a){if(this.latitude=t,this.longitude=i,a!==void 0){if(typeof a=="number"&&(a<0||a>1))return console.error(`Can't deal with this type of precision: ${a}`),this;this.precision=a}return this}setAltitude(t){return t!==void 0&&(this.altitude=t),this}}class Gk1{constructor(t){S1(this,"roll");S1(this,"pitch");S1(this,"yaw");Object.assign(this,t)}}class Wk1{constructor(t){S1(this,"msl");S1(this,"rel");Object.assign(this,t)}}class Xk1{constructor(){S1(this,"voltage");S1(this,"current");S1(this,"remaining")}}class Yk1{constructor(){S1(this,"value");S1(this,"name")}}class $k1{constructor(t){S1(this,"x");S1(this,"y");S1(this,"z");S1(this,"ground");S1(this,"overall");Object.assign(this,t)}}class qk1{constructor(){S1(this,"severity");S1(this,"text")}}var s3=(e=>(e.NO_GPS="No GPS",e.NO_FIX="No fix",e.FIX_2D="2D fix",e.FIX_3D="3D fix",e.DGPS="DGPS fix",e.RTK_FLOAT="RTK float",e.RTK_FIXED="RTK fix",e.STATIC="Static",e.PPP="PPP fix",e))(s3||{});class Kk1{constructor(){S1(this,"visibleSatellites",0);S1(this,"fixType","No GPS");S1(this,"HDOP");S1(this,"VDOP")}}class jk1{constructor(t){S1(this,"cells");S1(this,"voltage");Object.assign(this,t)}numberOfCells(){return this.cells.length}updateVoltage(){this.voltage=this.cells.sum()}}const Qk1=["abiding","abounding","academic","acceptable","accepting","accessible","acclaimed","accommodating","accountable","accurate","actionable","active","actual","adaptive","adequate","admirable","adored","advantageous","advisable","affectionate","agreeable","alert","alluring","amazed","amicable","amusing","appealing","appetizing","appreciative","approachable","appropriate","ardent","arresting","artful","artistic","aspiring","assertive","assured","assuring","astonishing","astounding","astronomical","astute","athletic","attainable","attractive","auspicious","authoritative","avid","awake","aware","banging","beaming","bedazzled","bedazzling","believable","beneficial","benign","bewildering","bewitching","bilingual","blameless","blazing","blessed","blissful","blooming","blossoming","blushing","bodacious","boisterous","bold","bouncy","boundless","boyish","brainy","brave","brawny","brazen","breathtaking","breezy","bright","buoyant","bustling","calming","candid","capable","captivated","captivating","carefree","careful","caring","cautious","ceaseless","celebrated","celestial","centered","cerebral","ceremonial","certified","changeable","charismatic","charitable","charmed","charming","chatty","cheeky","cheerful","cheery","childlike","chivalrous","choice","chuckling","cinematic","civilized","classic","classical","clean","clear","clearheaded","clever","close","coachable","cognitive","coherent","cohesive","collaborative","collegial","colloquial","colorful","comfortable","comforted","comforting","commanding","commemorative","commendable","committed","communicative","compact","compassionate","compelling","competent","complete","completed","complex","complimentary","comprehensive","conceivable","concerted","concise","confidential","confirmable","confirmed","congruent","connected","conscientious","conscious","consensual","consenting","conservative","consistent","consoling","conspiratorial","constant","constructive","consummate","contemplative","contemporary","content","contented","contributive","convenient","conventional","conversational","convincing","coolest","cooperative","coordinated","copious","coquettish","correctable","corresponding","cosmic","courageous","courteous","coveted","creamy","creative","credible","crisp","crucial","crunchy","cuddly","cultured","cunning","curable","curative","curious","current","customary","cute","dainty","dapper","daring","dashing","daughterly","dazzling","dear","debonair","decadent","decisive","decorative","decorous","dedicated","deep","defendable","defensible","definable","definitive","delectable","deliberate","deliberative","delicious","delighted","delightful","demonstrative","demure","dependable","designer","desirous","detailed","devoted","devout","didactic","dignified","diplomatic","direct","disarming","disciplined","discriminating","distinct","distinguished","distracting","diverse","diversified","dizzying","doable","dogged","dogmatic","domestic","dominant","doting","dreamy","dressy","driven","dutiful","dynamic","early","earnest","earthy","eccentric","economical","ecstatic","edgy","educated","educational","effervescent","effortless","effusive","egalitarian","elaborate","electric","electrifying","elegant","elevated","eligible","elite","eloquent","emblematic","emboldened","empirical","enamored","enchanted","enchanting","encouraged","encouraging","endearing","endurable","enduring","energizing","enforceable","engrossing","enhanced","enigmatic","enjoyable","enlightened","enough","enterprising","entertained","entertaining","enthralled","enthused","enthusiastic","enticing","entire","entranced","entrepreneurial","enumerable","enviable","equitable","erect","essential","established","eternal","ethereal","ethical","euphoric","even","eventful","everlasting","evocative","exact","exalted","exceptional","excitable","excited","exciting","exclusive","executable","exhaustive","exhilarated","exhilarating","exotic","expansive","expectant","expected","expedient","expeditious","expensive","expert","express","expressionistic","expressive","exquisite","extensive","extraordinary","extravagant","exuberant","fabled","factual","famous","fascinated","fascinating","fashionable","fastidious","fateful","fatherly","fathomable","favorable","fearless","fertile","fervent","fetching","fierce","fiery","fine","firm","first","fit","flamboyant","flashy","flattered","flattering","flavorful","flawless","flexible","flirtatious","flowery","fluent","fluffy","focused","fond","foreseeable","forgivable","forgiving","formal","formative","formidable","forthright","fortuitous","fortunate","forward","foxy","fragrant","frank","fraternal","free","fresh","friendly","frisky","fulfilled","fulfilling","full","fun","functional","fundamental","futuristic","gainful","gallant","game","generous","genial","genuine","giddy","gifted","giggling","giving","glaring","glittering","glorious","glossy","glowing","golden","graceful","gracious","grandiose","gratified","gratifying","greatest","grinning","gripping","groomed","groovy","guaranteed","guiltless","gutsy","hallowed","handsome","hardworking","hardy","harmless","harmonic","harmonious","heady","hearty","heavenly","helpful","heroic","historical","holistic","homey","honorable","hopeful","hot","huggable","human","humble","hygienic","idealistic","illuminating","illustrious","immaculate","immense","immortal","immovable","impartial","impassioned","impenetrable","impervious","important","impressive","improved","improving","inalienable","incandescent","inclusive","incomparable","incontrovertible","industrious","influential","informative","informed","ingenuous","inhabitable","innovative","inquisitive","insightful","invaluable","inviting","iridescent","joyful","kindhearted","knowing","laudable","learned","likeable","loveable","lovely","loving","marketable","maternal","meaningful","meditative","merry","miraculous","motivational","moving","naughty","neighborly","notable","nutritious","observant","optimistic","parental","paternal","patient","peerless","perceptive","personable","phenomenal","playful","precocious","premium","pretty","productive","proud","pure","quirky","resilient","reverent","romantic","scrupulous","seemly","sociable","stimulating","straightforward","suave","successful","talented","tasteful","thrifty","upright","valiant","winning","zestful"],hd=["albatross","alligator","anchovies","anemone","angelfish","anglerfish","barnacle","barracuda","basslet","batfish","bear","beaver","bird","blobfish","booby","boxfish","bullfrog","butterfly","butterflyfish","catfish","chimaera","clam","clownfish","codfish","coral","cow","crab","cuttlefish","dogfish","dolphin","dragon","dragonfly","duck","dugong","eagle","eel","elephant","escolar","fangtooth","fish","flounder","flounder","fly","frigatebird","frogfish","goose","goshawk","grouper","haddock","hagfish","halibut","herring","insects","jellyfish","kingfisher","krill","lamprey","lion","lionfish","lobster","lumpfish","mammoth","manatee","marlin","milkfish","mojarra","mussels","nudibranch","octopus","otter","owl","oyster","parrotfish","penguin","perch","pipefish","pollock","porpoise","prawn","pufferfish","puffin","ray","reindeer","rockfish","salamander","salmon","sardines","sawfish","seagull","seahorse","seal","shark","shark","shrimp","slug","snail","snake","sponge","squid","squirrel","squirrelfish","squirt","starfish","stingray","sturgeon","sunfish","tang","tarpon","toadfish","tortoise","tropicbird","tuna","turtle","turtles","urchin","vaquita","walrus","whale","whiting","wolffish","worm","wrasse"],Jk1=["Diving into the Abyss Explorer","Embarking on Neptune's Quest","Exploring the Mariana Mirage","Embarking on an Oceanic Odyssey","Discovering Seabed Serenity","Ascending to Atlantis","Conquering Leviathan's Lair","Quest for the Deep Blue","Triumph of Tidal Exploration","Navigating the Nautical Nexus","Venturing into the Sublime Seafloor","Plumbing the Azure Abyss","Entering Poseidon's Portal","Decrypting the Coral Cryptic","Venturing into the Vortex","Keeping Watch on Kraken's Lair","Investigating the Aqua Anomaly","Symphony with the Sirens","Diving into Davy Jones' Abyss","Embarking on a Subaquatic Saga","Consulting the Oceanic Oracle","Navigating the Mystical Maelstrom","Sojourning through the Seastorm","Unlocking Sublime Secrets","Finding Tidal Tranquility","Alchemy of the Abyss","Navigating Neptune's Nexus","Unraveling the Mariner's Mystery","Symphony of the Submerged","Legends in Leviathan's Legacy","Discovering the Deep Blue","Solving the Nautical Enigma"];var Yp=(e=>(e[e.Air=0]="Air",e[e.Water=1]="Water",e[e.None=2]="None",e))(Yp||{});function eB1(e){const t=Qk1.random();let i;switch(e){case 1:i=hd.random();break;default:unimplemented()}return i?`${t}-${i}`:"sad-patrick-report-this"}var M4=(e=>(e.ArduPilot="ardupilot",e.PX4="px4",e.None="none",e))(M4||{}),a0=(e=>(e.Antenna="antenna",e.Blimp="blimp",e.Copter="copter",e.Plane="plane",e.Rover="rover",e.Sub="sub",e))(a0||{});function tB1(e){switch(e){case"sub":return Yp.Water;default:return Yp.None}}class iB1{constructor(t,i){S1(this,"_firmware");S1(this,"_type");S1(this,"_cockpitRegistrationUUID");S1(this,"_funnyName");S1(this,"_genericVariables",{});S1(this,"onArm",new Z5);S1(this,"onAttitude",new Z5);S1(this,"onAltitude",new Z5);S1(this,"onBatteries",new Z5);S1(this,"onCpuLoad",new Z5);S1(this,"onGenericVariables",new Z5);S1(this,"onMode",new Z5);S1(this,"onPosition",new Z5);S1(this,"onPowerSupply",new Z5);S1(this,"onParameter",new Z5);S1(this,"onStatusGPS",new Z5);S1(this,"onStatusText",new Z5);S1(this,"onTakeoff",new Z5);S1(this,"onVelocity",new Z5);this._firmware=t,this._type=i,unimplemented("We need to have a better way to generate a unique id based on the vehicle hardware"),this._cockpitRegistrationUUID=pt(),this._funnyName=eB1(tB1(i)),console.info(`Creating a new Vehicle: + Consider mapping this function to a shift button.`,icon:"error",timer:6e3}),this.currentActionsMapping.buttonsCorrespondencies.shift[Number(R[0])].action=E2.no_function)})});setInterval(()=>{this.remapActionsToVehicleButtonParameters()},1e3)}setVehicle(t){this.vehicle=t,this.vehicle.onParameter.add(([i,a])=>{const r={...this.currentVehicleParameters,[i.name]:i.value};this.currentVehicleParameters=r,this.vehicleTotalParametersCount=a}),this.vehicle.requestParametersList(),this.updateVehicleButtonsParameters()}sendManualControl(){!this.vehicle||!this.manualControlState||this.vehicle.sendManualControl(this.manualControlState)}upadteManualControlState(){var g,_,v,S,y,D;if(!this.joystickState||!this.currentActionsMapping||!this.activeButtonsActions||!this.currentVehicleParameters||!this.vehicleButtonParameterTable)return;this.manualControlState||(this.manualControlState=new ec);const t={};this.vehicleButtonParameterTable.forEach(R=>t[R.value]=R.title);const i=Object.entries(this.currentVehicleParameters).filter(([R])=>R.includes("BTN")&&!R.includes("S")).map(R=>({button:R[0],actionId:t[R[1]]})),a=Object.entries(this.currentVehicleParameters).filter(([R])=>R.includes("BTN")&&R.includes("S")).map(R=>({button:R[0],actionId:t[R[1]]})),r=this.activeButtonsActions.filter(R=>R.protocol===M5.MAVLinkManualControl).map(R=>R.id),n=i.filter(R=>r.includes(R.actionId)).map(R=>wu(R.button)),o=a.filter(R=>r.includes(R.actionId)).map(R=>wu(R.button)),s=this.activeButtonsActions.map(R=>R.id).includes(ft.shift.id),l=i.find(R=>R.actionId==="Shift");if(s&&l===void 0)return;const d=s?o.concat([wu(l.button)]):n;let C=0;for(let R=0;R{w!==void 0&&Number(w.replace("R","").replace("S",""))===R&&(N=1)}),C+=N*2**R}let m=0;for(let R=16;R<2*ec.BUTTONS_PER_BITFIELD;R++){let N=0;d.forEach(w=>{w!==void 0&&Number(w.replace("R","").replace("S",""))===R&&(N=1)}),m+=N*2**(R-16)}const u=Object.entries(this.currentActionsMapping.axesCorrespondencies).find(R=>R[1].action.protocol===M5.MAVLinkManualControl&&R[1].action.id===Et.axis_x.id),p=Object.entries(this.currentActionsMapping.axesCorrespondencies).find(R=>R[1].action.protocol===M5.MAVLinkManualControl&&R[1].action.id===Et.axis_y.id),V=Object.entries(this.currentActionsMapping.axesCorrespondencies).find(R=>R[1].action.protocol===M5.MAVLinkManualControl&&R[1].action.id===Et.axis_z.id),f=Object.entries(this.currentActionsMapping.axesCorrespondencies).find(R=>R[1].action.protocol===M5.MAVLinkManualControl&&R[1].action.id===Et.axis_r.id),M=Object.entries(this.currentActionsMapping.axesCorrespondencies).find(R=>R[1].action.protocol===M5.MAVLinkManualControl&&R[1].action.id===Et.axis_s.id),H=Object.entries(this.currentActionsMapping.axesCorrespondencies).find(R=>R[1].action.protocol===M5.MAVLinkManualControl&&R[1].action.id===Et.axis_t.id);this.manualControlState.x=u===void 0?0:Ee(_0((g=this.joystickState.axes[u[0]])!=null?g:0,-1,1,u[1].min,u[1].max),0),this.manualControlState.y=p===void 0?0:Ee(_0((_=this.joystickState.axes[p[0]])!=null?_:0,-1,1,p[1].min,p[1].max),0),this.manualControlState.z=V===void 0?0:Ee(_0((v=this.joystickState.axes[V[0]])!=null?v:0,-1,1,V[1].min,V[1].max),0),this.manualControlState.r=f===void 0?0:Ee(_0((S=this.joystickState.axes[f[0]])!=null?S:0,-1,1,f[1].min,f[1].max),0),this.manualControlState.s=M===void 0?0:Ee(_0((y=this.joystickState.axes[M[0]])!=null?y:0,-1,1,M[1].min,M[1].max),0),this.manualControlState.t=H===void 0?0:Ee(_0((D=this.joystickState.axes[H[0]])!=null?D:0,-1,1,H[1].min,H[1].max),0),this.manualControlState.buttons=C,this.manualControlState.buttons2=m}}const To=er("mission",()=>{const e=i1(""),t=R5("cockpit-last-mission-name",""),i=R5("cockpit-mission-start-time",new Date),a=R5("cockpit-slide-events-enabled",!0),r=R5("cockpit-slide-events-categories-required",Gk1,localStorage,{mergeDefaults:!0});T1(e,()=>t.value=e.value);const n=$2([]);return{missionName:e,lastMissionName:t,missionStartTime:i,currentPlanningWaypoints:n,slideEventsEnabled:a,slideEventsCategoriesRequired:r,moveWaypoint:(s,l)=>{if(n.find(C=>C.id===s)===void 0)throw Error(`Could not move waypoint. No waypoint with id ${s} was found.`);Object.assign(n,n.map(C=>C.id===s?{...C,coordinates:l}:C))}}}),ls=i1(!1),Wk=i1("Slide to Confirm"),Xk=i1("Action Confirm"),ud=i1(!1);var sa=(e=>(e.ARM="Arm",e.DISARM="Disarm",e.TAKEOFF="Takeoff",e.ALT_CHANGE="Altitude Change",e.LAND="Land",e.GOTO="Goto",e))(sa||{});const Zk1=!0,Gk1=Object.values(sa).reduce((e,t)=>(e[t]=Zk1,e),{});function L6(e,t,i){console.log(`slideToConfirm from category ${e} with text: ${t}`);const a=To();return new Promise(r=>{if(!a.slideEventsEnabled||!a.slideEventsCategoriesRequired[e])return r(!0);Wk.value=t,Xk.value=i,ls.value=!0;const n=T1([ud,ls],([o,s])=>{o?(n(),ud.value=!1,r(!0)):s||(n(),r(!1))})})}var _e=(e=>(e.Success="success",e.Error="error",e.Info="info",e.Warning="warning",e.Critical="critical",e))(_e||{});class ii{constructor(t,i,a=new Date){this.level=t,this.message=i,this.time_created=a}}class Yk{constructor(t){S1(this,"precision");S1(this,"dop");S1(this,"altitude");S1(this,"latitude");S1(this,"longitude");Object.assign(this,t)}setPosition(t,i,a){if(this.latitude=t,this.longitude=i,a!==void 0){if(typeof a=="number"&&(a<0||a>1))return console.error(`Can't deal with this type of precision: ${a}`),this;this.precision=a}return this}setAltitude(t){return t!==void 0&&(this.altitude=t),this}}class Wk1{constructor(t){S1(this,"roll");S1(this,"pitch");S1(this,"yaw");Object.assign(this,t)}}class Xk1{constructor(t){S1(this,"msl");S1(this,"rel");Object.assign(this,t)}}class Yk1{constructor(){S1(this,"voltage");S1(this,"current");S1(this,"remaining")}}class $k1{constructor(){S1(this,"value");S1(this,"name")}}class qk1{constructor(t){S1(this,"x");S1(this,"y");S1(this,"z");S1(this,"ground");S1(this,"overall");Object.assign(this,t)}}class Kk1{constructor(){S1(this,"severity");S1(this,"text")}}var s3=(e=>(e.NO_GPS="No GPS",e.NO_FIX="No fix",e.FIX_2D="2D fix",e.FIX_3D="3D fix",e.DGPS="DGPS fix",e.RTK_FLOAT="RTK float",e.RTK_FIXED="RTK fix",e.STATIC="Static",e.PPP="PPP fix",e))(s3||{});class jk1{constructor(){S1(this,"visibleSatellites",0);S1(this,"fixType","No GPS");S1(this,"HDOP");S1(this,"VDOP")}}class Qk1{constructor(t){S1(this,"cells");S1(this,"voltage");Object.assign(this,t)}numberOfCells(){return this.cells.length}updateVoltage(){this.voltage=this.cells.sum()}}const Jk1=["abiding","abounding","academic","acceptable","accepting","accessible","acclaimed","accommodating","accountable","accurate","actionable","active","actual","adaptive","adequate","admirable","adored","advantageous","advisable","affectionate","agreeable","alert","alluring","amazed","amicable","amusing","appealing","appetizing","appreciative","approachable","appropriate","ardent","arresting","artful","artistic","aspiring","assertive","assured","assuring","astonishing","astounding","astronomical","astute","athletic","attainable","attractive","auspicious","authoritative","avid","awake","aware","banging","beaming","bedazzled","bedazzling","believable","beneficial","benign","bewildering","bewitching","bilingual","blameless","blazing","blessed","blissful","blooming","blossoming","blushing","bodacious","boisterous","bold","bouncy","boundless","boyish","brainy","brave","brawny","brazen","breathtaking","breezy","bright","buoyant","bustling","calming","candid","capable","captivated","captivating","carefree","careful","caring","cautious","ceaseless","celebrated","celestial","centered","cerebral","ceremonial","certified","changeable","charismatic","charitable","charmed","charming","chatty","cheeky","cheerful","cheery","childlike","chivalrous","choice","chuckling","cinematic","civilized","classic","classical","clean","clear","clearheaded","clever","close","coachable","cognitive","coherent","cohesive","collaborative","collegial","colloquial","colorful","comfortable","comforted","comforting","commanding","commemorative","commendable","committed","communicative","compact","compassionate","compelling","competent","complete","completed","complex","complimentary","comprehensive","conceivable","concerted","concise","confidential","confirmable","confirmed","congruent","connected","conscientious","conscious","consensual","consenting","conservative","consistent","consoling","conspiratorial","constant","constructive","consummate","contemplative","contemporary","content","contented","contributive","convenient","conventional","conversational","convincing","coolest","cooperative","coordinated","copious","coquettish","correctable","corresponding","cosmic","courageous","courteous","coveted","creamy","creative","credible","crisp","crucial","crunchy","cuddly","cultured","cunning","curable","curative","curious","current","customary","cute","dainty","dapper","daring","dashing","daughterly","dazzling","dear","debonair","decadent","decisive","decorative","decorous","dedicated","deep","defendable","defensible","definable","definitive","delectable","deliberate","deliberative","delicious","delighted","delightful","demonstrative","demure","dependable","designer","desirous","detailed","devoted","devout","didactic","dignified","diplomatic","direct","disarming","disciplined","discriminating","distinct","distinguished","distracting","diverse","diversified","dizzying","doable","dogged","dogmatic","domestic","dominant","doting","dreamy","dressy","driven","dutiful","dynamic","early","earnest","earthy","eccentric","economical","ecstatic","edgy","educated","educational","effervescent","effortless","effusive","egalitarian","elaborate","electric","electrifying","elegant","elevated","eligible","elite","eloquent","emblematic","emboldened","empirical","enamored","enchanted","enchanting","encouraged","encouraging","endearing","endurable","enduring","energizing","enforceable","engrossing","enhanced","enigmatic","enjoyable","enlightened","enough","enterprising","entertained","entertaining","enthralled","enthused","enthusiastic","enticing","entire","entranced","entrepreneurial","enumerable","enviable","equitable","erect","essential","established","eternal","ethereal","ethical","euphoric","even","eventful","everlasting","evocative","exact","exalted","exceptional","excitable","excited","exciting","exclusive","executable","exhaustive","exhilarated","exhilarating","exotic","expansive","expectant","expected","expedient","expeditious","expensive","expert","express","expressionistic","expressive","exquisite","extensive","extraordinary","extravagant","exuberant","fabled","factual","famous","fascinated","fascinating","fashionable","fastidious","fateful","fatherly","fathomable","favorable","fearless","fertile","fervent","fetching","fierce","fiery","fine","firm","first","fit","flamboyant","flashy","flattered","flattering","flavorful","flawless","flexible","flirtatious","flowery","fluent","fluffy","focused","fond","foreseeable","forgivable","forgiving","formal","formative","formidable","forthright","fortuitous","fortunate","forward","foxy","fragrant","frank","fraternal","free","fresh","friendly","frisky","fulfilled","fulfilling","full","fun","functional","fundamental","futuristic","gainful","gallant","game","generous","genial","genuine","giddy","gifted","giggling","giving","glaring","glittering","glorious","glossy","glowing","golden","graceful","gracious","grandiose","gratified","gratifying","greatest","grinning","gripping","groomed","groovy","guaranteed","guiltless","gutsy","hallowed","handsome","hardworking","hardy","harmless","harmonic","harmonious","heady","hearty","heavenly","helpful","heroic","historical","holistic","homey","honorable","hopeful","hot","huggable","human","humble","hygienic","idealistic","illuminating","illustrious","immaculate","immense","immortal","immovable","impartial","impassioned","impenetrable","impervious","important","impressive","improved","improving","inalienable","incandescent","inclusive","incomparable","incontrovertible","industrious","influential","informative","informed","ingenuous","inhabitable","innovative","inquisitive","insightful","invaluable","inviting","iridescent","joyful","kindhearted","knowing","laudable","learned","likeable","loveable","lovely","loving","marketable","maternal","meaningful","meditative","merry","miraculous","motivational","moving","naughty","neighborly","notable","nutritious","observant","optimistic","parental","paternal","patient","peerless","perceptive","personable","phenomenal","playful","precocious","premium","pretty","productive","proud","pure","quirky","resilient","reverent","romantic","scrupulous","seemly","sociable","stimulating","straightforward","suave","successful","talented","tasteful","thrifty","upright","valiant","winning","zestful"],hd=["albatross","alligator","anchovies","anemone","angelfish","anglerfish","barnacle","barracuda","basslet","batfish","bear","beaver","bird","blobfish","booby","boxfish","bullfrog","butterfly","butterflyfish","catfish","chimaera","clam","clownfish","codfish","coral","cow","crab","cuttlefish","dogfish","dolphin","dragon","dragonfly","duck","dugong","eagle","eel","elephant","escolar","fangtooth","fish","flounder","flounder","fly","frigatebird","frogfish","goose","goshawk","grouper","haddock","hagfish","halibut","herring","insects","jellyfish","kingfisher","krill","lamprey","lion","lionfish","lobster","lumpfish","mammoth","manatee","marlin","milkfish","mojarra","mussels","nudibranch","octopus","otter","owl","oyster","parrotfish","penguin","perch","pipefish","pollock","porpoise","prawn","pufferfish","puffin","ray","reindeer","rockfish","salamander","salmon","sardines","sawfish","seagull","seahorse","seal","shark","shark","shrimp","slug","snail","snake","sponge","squid","squirrel","squirrelfish","squirt","starfish","stingray","sturgeon","sunfish","tang","tarpon","toadfish","tortoise","tropicbird","tuna","turtle","turtles","urchin","vaquita","walrus","whale","whiting","wolffish","worm","wrasse"],eB1=["Diving into the Abyss Explorer","Embarking on Neptune's Quest","Exploring the Mariana Mirage","Embarking on an Oceanic Odyssey","Discovering Seabed Serenity","Ascending to Atlantis","Conquering Leviathan's Lair","Quest for the Deep Blue","Triumph of Tidal Exploration","Navigating the Nautical Nexus","Venturing into the Sublime Seafloor","Plumbing the Azure Abyss","Entering Poseidon's Portal","Decrypting the Coral Cryptic","Venturing into the Vortex","Keeping Watch on Kraken's Lair","Investigating the Aqua Anomaly","Symphony with the Sirens","Diving into Davy Jones' Abyss","Embarking on a Subaquatic Saga","Consulting the Oceanic Oracle","Navigating the Mystical Maelstrom","Sojourning through the Seastorm","Unlocking Sublime Secrets","Finding Tidal Tranquility","Alchemy of the Abyss","Navigating Neptune's Nexus","Unraveling the Mariner's Mystery","Symphony of the Submerged","Legends in Leviathan's Legacy","Discovering the Deep Blue","Solving the Nautical Enigma"];var Yp=(e=>(e[e.Air=0]="Air",e[e.Water=1]="Water",e[e.None=2]="None",e))(Yp||{});function tB1(e){const t=Jk1.random();let i;switch(e){case 1:i=hd.random();break;default:unimplemented()}return i?`${t}-${i}`:"sad-patrick-report-this"}var M4=(e=>(e.ArduPilot="ardupilot",e.PX4="px4",e.None="none",e))(M4||{}),a0=(e=>(e.Antenna="antenna",e.Blimp="blimp",e.Copter="copter",e.Plane="plane",e.Rover="rover",e.Sub="sub",e))(a0||{});function iB1(e){switch(e){case"sub":return Yp.Water;default:return Yp.None}}class aB1{constructor(t,i){S1(this,"_firmware");S1(this,"_type");S1(this,"_cockpitRegistrationUUID");S1(this,"_funnyName");S1(this,"_genericVariables",{});S1(this,"onArm",new Z5);S1(this,"onAttitude",new Z5);S1(this,"onAltitude",new Z5);S1(this,"onBatteries",new Z5);S1(this,"onCpuLoad",new Z5);S1(this,"onGenericVariables",new Z5);S1(this,"onMode",new Z5);S1(this,"onPosition",new Z5);S1(this,"onPowerSupply",new Z5);S1(this,"onParameter",new Z5);S1(this,"onStatusGPS",new Z5);S1(this,"onStatusText",new Z5);S1(this,"onTakeoff",new Z5);S1(this,"onVelocity",new Z5);this._firmware=t,this._type=i,unimplemented("We need to have a better way to generate a unique id based on the vehicle hardware"),this._cockpitRegistrationUUID=pt(),this._funnyName=tB1(iB1(i)),console.info(`Creating a new Vehicle: `,` name: ${this._funnyName} `,` identification: ${this._cockpitRegistrationUUID} `,` type: ${this._type} `,` firmware: ${this._firmware} -`),this.onArm.register_caller(()=>this.isArmed()),this.onAltitude.register_caller(()=>this.altitude()),this.onAttitude.register_caller(()=>this.attitude()),this.onBatteries.register_caller(()=>this.batteries()),this.onCpuLoad.register_caller(()=>this.cpuLoad()),this.onGenericVariables.register_caller(()=>this.genericVariables()),this.onMode.register_caller(()=>this.mode()),this.onPosition.register_caller(()=>this.position()),this.onPowerSupply.register_caller(()=>this.powerSupply()),this.onParameter.register_caller(()=>[this.lastParameter(),this.totalParametersCount()]),this.onStatusText.register_caller(()=>this.statusText()),this.onStatusGPS.register_caller(()=>this.statusGPS()),this.onTakeoff.register_caller(()=>this.flying()),this.onVelocity.register_caller(()=>this.velocity())}firmware(){return this._firmware}type(){return this._type}genericVariables(){return this._genericVariables}icon(){switch(this.type()){case"antenna":return"mdi-satellite-uplink";case"blimp":return"mdi-airballoon";case"copter":return"mdi-quadcopter";case"plane":return"mdi-airplane";case"rover":return"mdi-car-wireless";case"sub":return"mdi-submarine"}}}const $k={ADSB_EMIT_TYPE:{Description:"ADSB classification for the type of vehicle emitting the transponder signal. Default value is 14 (UAV).",DisplayName:"Emitter type",User:"Advanced",Values:{0:"NoInfo",1:"Light",2:"Small",3:"Large",4:"HighVortexlarge",5:"Heavy",6:"HighlyManuv",7:"Rotocraft",8:"RESERVED",9:"Glider",10:"LightAir",11:"Parachute",12:"UltraLight",13:"RESERVED",14:"UAV",15:"Space",16:"RESERVED",17:"EmergencySurface",18:"ServiceSurface",19:"PointObstacle"}},ADSB_ICAO_ID:{Description:"ICAO_ID unique vehicle identification number of this aircraft. This is an integer limited to 24bits. If set to 0 then one will be randomly generated. If set to -1 then static information is not sent, transceiver is assumed pre-programmed.",DisplayName:"ICAO_ID vehicle identification number",Range:{high:"16777215",low:"-1"},User:"Advanced"},ADSB_ICAO_SPECL:{Description:"ICAO_ID of special vehicle that ignores ADSB_LIST_RADIUS and ADSB_LIST_ALT. The vehicle is always tracked. Use 0 to disable.",DisplayName:"ICAO_ID of special vehicle",User:"Advanced"},ADSB_LEN_WIDTH:{Description:"Aircraft length and width dimension options in Length and Width in meters. In most cases, use a value of 1 for smallest size.",DisplayName:"Aircraft length and width",User:"Advanced",Values:{0:"NO_DATA",1:"L15W23",2:"L25W28P5",3:"L25W34",4:"L35W33",5:"L35W38",6:"L45W39P5",7:"L45W45",8:"L55W45",9:"L55W52",10:"L65W59P5",11:"L65W67",12:"L75W72P5",13:"L75W80",14:"L85W80",15:"L85W90"}},ADSB_LIST_ALT:{Description:"ADSB vehicle list altitude filter. Vehicles detected above this altitude will be completely ignored. They will not show up in the SRx_ADSB stream to the GCS and will not be considered in any avoidance calculations. A value of 0 will disable this filter.",DisplayName:"ADSB vehicle list altitude filter",Range:{high:"32767",low:"0"},Units:"m",User:"Advanced"},ADSB_LIST_MAX:{Description:"ADSB list size of nearest vehicles. Longer lists take longer to refresh with lower SRx_ADSB values.",DisplayName:"ADSB vehicle list size",Range:{high:"100",low:"1"},RebootRequired:"True",User:"Advanced"},ADSB_LIST_RADIUS:{Description:"ADSB vehicle list radius filter. Vehicles detected outside this radius will be completely ignored. They will not show up in the SRx_ADSB stream to the GCS and will not be considered in any avoidance calculations. A value of 0 will disable this filter.",DisplayName:"ADSB vehicle list radius filter",Range:{high:"100000",low:"0"},Units:"m",User:"Advanced"},ADSB_LOG:{Description:"0: no logging, 1: log only special ID, 2:log all",DisplayName:"ADS-B logging",User:"Advanced",Values:{0:"no logging",1:"log only special ID",2:"log all"}},ADSB_OFFSET_LAT:{Description:"GPS antenna lateral offset. This describes the physical location offest from center of the GPS antenna on the aircraft.",DisplayName:"GPS antenna lateral offset",User:"Advanced",Values:{0:"NoData",1:"Left2m",2:"Left4m",3:"Left6m",4:"Center",5:"Right2m",6:"Right4m",7:"Right6m"}},ADSB_OFFSET_LON:{Description:"GPS antenna longitudinal offset. This is usually set to 1, Applied By Sensor",DisplayName:"GPS antenna longitudinal offset",User:"Advanced",Values:{0:"NO_DATA",1:"AppliedBySensor"}},ADSB_OPTIONS:{Bitmask:{0:"Ping200X Send GPS",1:"Squawk 7400 on RC failsafe",2:"Squawk 7400 on GCS failsafe",3:"Sagetech MXS use External Config"},Description:"Options for emergency failsafe codes and device capabilities",DisplayName:"ADS-B Options",User:"Advanced"},ADSB_RF_CAPABLE:{Bitmask:{0:"UAT_in",1:"1090ES_in",2:"UAT_out",3:"1090ES_out"},Description:"Describes your hardware RF In/Out capabilities.",DisplayName:"RF capabilities",User:"Advanced"},ADSB_RF_SELECT:{Bitmask:{0:"Rx",1:"Tx"},Description:"Transceiver RF selection for Rx enable and/or Tx enable. This only effects devices that can Tx and/or Rx. Rx-only devices should override this to always be Rx-only.",DisplayName:"Transceiver RF selection",User:"Advanced"},ADSB_SQUAWK:{Description:"VFR squawk (Mode 3/A) code is a pre-programmed default code when the pilot is flying VFR and not in contact with ATC. In the USA, the VFR squawk code is octal 1200 (hex 0x280, decimal 640) and in most parts of Europe the VFR squawk code is octal 7000. If an invalid octal number is set then it will be reset to 1200.",DisplayName:"Squawk code",Range:{high:"7777",low:"0"},Units:"octal",User:"Advanced"},ADSB_TYPE:{Description:"Type of ADS-B hardware for ADSB-in and ADSB-out configuration and operation. If any type is selected then MAVLink based ADSB-in messages will always be enabled",DisplayName:"ADSB Type",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"uAvionix-MAVLink",2:"Sagetech",3:"uAvionix-UCP",4:"Sagetech MX Series"}}},qk={AFS_AMSL_ERR_GPS:{Description:"This sets margin for error in GPS derived altitude limit. This error margin is only used if the barometer has failed. If the barometer fails then the GPS will be used to enforce the AMSL_LIMIT, but this margin will be subtracted from the AMSL_LIMIT first, to ensure that even with the given amount of GPS altitude error the pressure altitude is not breached. OBC users should set this to comply with their D2 safety case. A value of -1 will mean that barometer failure will lead to immediate termination.",DisplayName:"Error margin for GPS based AMSL limit",Units:"m",User:"Advanced"},AFS_AMSL_LIMIT:{Description:"This sets the AMSL (above mean sea level) altitude limit. If the pressure altitude determined by QNH exceeds this limit then flight termination will be forced. Note that this limit is in meters, whereas pressure altitude limits are often quoted in feet. A value of zero disables the pressure altitude limit.",DisplayName:"AMSL limit",Units:"m",User:"Advanced"},AFS_DUAL_LOSS:{Description:'This enables the dual loss termination part of the AFS system. If this parameter is 1 and both GPS and the ground control station fail simultaneously, this will be considered a "dual loss" and cause termination.',DisplayName:"Enable dual loss terminate due to failure of both GCS and GPS simultaneously",User:"Advanced"},AFS_ENABLE:{Description:"This enables the advanced failsafe system. If this is set to zero (disable) then all the other AFS options have no effect",DisplayName:"Enable Advanced Failsafe",User:"Advanced"},AFS_GEOFENCE:{Description:"This enables the geofence part of the AFS. Will only be in effect if AFS_ENABLE is also 1",DisplayName:"Enable geofence Advanced Failsafe",User:"Advanced"},AFS_HB_PIN:{Description:`This sets a digital output pin which is cycled at 10Hz when termination is not activated. Note that if a FS_TERM_PIN is set then the heartbeat pin will continue to cycle at 10Hz when termination is activated, to allow the termination board to distinguish between autopilot crash and termination. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Heartbeat Pin",User:"Advanced",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},AFS_MAN_PIN:{Description:`This sets a digital output pin to set high when in manual mode. See the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Manual Pin",User:"Advanced"},AFS_MAX_COM_LOSS:{Description:"Maximum number of comms loss events before the aircraft stops returning to mission on comms recovery. Use zero to allow for any number of comms loss events.",DisplayName:"Maximum number of comms loss events",User:"Advanced"},AFS_MAX_GPS_LOSS:{Description:"Maximum number of GPS loss events before the aircraft stops returning to mission on GPS recovery. Use zero to allow for any number of GPS loss events.",DisplayName:"Maximum number of GPS loss events",User:"Advanced"},AFS_MAX_RANGE:{Description:"This is the maximum range of the vehicle in kilometers from first arming. If the vehicle goes beyond this range then the TERM_ACTION is performed. A value of zero disables this feature.",DisplayName:"Max allowed range",Units:"km",User:"Advanced"},AFS_QNH_PRESSURE:{Description:"This sets the QNH pressure in millibars to be used for pressure altitude in the altitude limit. A value of zero disables the altitude limit.",DisplayName:"QNH pressure",Units:"hPa",User:"Advanced"},AFS_RC:{Description:"This enables the RC part of the AFS. Will only be in effect if AFS_ENABLE is also 1",DisplayName:"Enable RC Advanced Failsafe",User:"Advanced"},AFS_RC_FAIL_TIME:{Description:"This is the time in seconds in manual mode that failsafe termination will activate if RC input is lost. For the OBC rules this should be (1.5). Use 0 to disable.",DisplayName:"RC failure time",Units:"s",User:"Advanced"},AFS_RC_MAN_ONLY:{Description:"If this parameter is set to 1, then an RC loss will only cause the plane to terminate in manual control modes. If it is 0, then the plane will terminate in any flight mode.",DisplayName:"Enable RC Termination only in manual control modes",User:"Advanced"},AFS_TERMINATE:{Description:"Can be set in flight to force termination of the heartbeat signal",DisplayName:"Force Terminate",User:"Advanced"},AFS_TERM_ACTION:{Description:"This can be used to force an action on flight termination. Normally this is handled by an external failsafe board, but you can setup ArduPilot to handle it here. Please consult the wiki for more information on the possible values of the parameter",DisplayName:"Terminate action",User:"Advanced"},AFS_TERM_PIN:{Description:`This sets a digital output pin to set high on flight termination. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Terminate Pin",User:"Advanced",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},AFS_WP_COMMS:{Description:"Waypoint number to navigate to on comms loss",DisplayName:"Comms Waypoint",User:"Advanced"},AFS_WP_GPS_LOSS:{Description:"Waypoint number to navigate to on GPS lock loss",DisplayName:"GPS Loss Waypoint",User:"Advanced"}},Kk={AHRS_COMP_BETA:{Description:"This controls the time constant for the cross-over frequency used to fuse AHRS (airspeed and heading) and GPS data to estimate ground velocity. Time constant is 0.1/beta. A larger time constant will use GPS data less and a small time constant will use air data less.",DisplayName:"AHRS Velocity Complementary Filter Beta Coefficient",Increment:".01",Range:{high:"0.5",low:"0.001"},User:"Advanced"},AHRS_CUSTOM_PIT:{Description:"Autopilot mounting position pitch offset. Positive values = pitch up, negative values = pitch down. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation pitch offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_CUSTOM_ROLL:{Description:"Autopilot mounting position roll offset. Positive values = roll right, negative values = roll left. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation roll offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_CUSTOM_YAW:{Description:"Autopilot mounting position yaw offset. Positive values = yaw right, negative values = yaw left. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation yaw offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_EKF_TYPE:{Description:"This controls which NavEKF Kalman filter version is used for attitude and position estimation",DisplayName:"Use NavEKF Kalman filter for attitude and position estimation",User:"Advanced",Values:{0:"Disabled",2:"Enable EKF2",3:"Enable EKF3",11:"ExternalAHRS"}},AHRS_GPS_GAIN:{Description:"This controls how much to use the GPS to correct the attitude. This should never be set to zero for a plane as it would result in the plane losing control in turns. For a plane please use the default value of 1.0.",DisplayName:"AHRS GPS gain",Increment:".01",Range:{high:"1.0",low:"0.0"},User:"Advanced"},AHRS_GPS_MINSATS:{Description:"Minimum number of satellites visible to use GPS for velocity based corrections attitude correction. This defaults to 6, which is about the point at which the velocity numbers from a GPS become too unreliable for accurate correction of the accelerometers.",DisplayName:"AHRS GPS Minimum satellites",Increment:"1",Range:{high:"10",low:"0"},User:"Advanced"},AHRS_GPS_USE:{Description:"This controls whether to use dead-reckoning or GPS based navigation. If set to 0 then the GPS won't be used for navigation, and only dead reckoning will be used. A value of zero should never be used for normal flight. Currently this affects only the DCM-based AHRS: the EKF uses GPS according to its own parameters. A value of 2 means to use GPS for height as well as position - both in DCM estimation and when determining altitude-above-home.",DisplayName:"AHRS use GPS for DCM navigation and position-down",User:"Advanced",Values:{0:"Disabled",1:"Use GPS for DCM position",2:"Use GPS for DCM position and height"}},AHRS_ORIENTATION:{Description:"Overall board orientation relative to the standard orientation for the board type. This rotates the IMU and compass readings to allow the board to be oriented in your vehicle at any 90 or 45 degree angle. The label for each option is specified in the order of rotations for that orientation. This option takes affect on next boot. After changing you will need to re-level your vehicle. Firmware versions 4.2 and prior can use a CUSTOM (100) rotation to set the AHRS_CUSTOM_ROLL/PIT/YAW angles for AHRS orientation. Later versions provide two general custom rotations which can be used, Custom 1 and Custom 2, with CUST_ROT1_ROLL/PIT/YAW or CUST_ROT2_ROLL/PIT/YAW angles.",DisplayName:"Board Orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Yaw45Roll180",10:"Yaw90Roll180",11:"Yaw135Roll180",12:"Pitch180",13:"Yaw225Roll180",14:"Yaw270Roll180",15:"Yaw315Roll180",16:"Roll90",17:"Yaw45Roll90",18:"Yaw90Roll90",19:"Yaw135Roll90",20:"Roll270",21:"Yaw45Roll270",22:"Yaw90Roll270",23:"Yaw135Roll270",24:"Pitch90",25:"Pitch270",26:"Yaw90Pitch180",27:"Yaw270Pitch180",28:"Pitch90Roll90",29:"Pitch90Roll180",30:"Pitch90Roll270",31:"Pitch180Roll90",32:"Pitch180Roll270",33:"Pitch270Roll90",34:"Pitch270Roll180",35:"Pitch270Roll270",36:"Yaw90Pitch180Roll90",37:"Yaw270Roll90",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Pitch315Roll90",42:"Roll45",43:"Roll315",100:"Custom 4.1 and older",101:"Custom 1",102:"Custom 2"}},AHRS_RP_P:{Description:"This controls how fast the accelerometers correct the attitude",DisplayName:"AHRS RP_P",Increment:".01",Range:{high:"0.4",low:"0.1"},User:"Advanced"},AHRS_TRIM_X:{Description:"Compensates for the roll angle difference between the control board and the frame. Positive values make the vehicle roll right.",DisplayName:"AHRS Trim Roll",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Standard"},AHRS_TRIM_Y:{Description:"Compensates for the pitch angle difference between the control board and the frame. Positive values make the vehicle pitch up/back.",DisplayName:"AHRS Trim Pitch",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Standard"},AHRS_TRIM_Z:{Description:"Not Used",DisplayName:"AHRS Trim Yaw",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Advanced"},AHRS_WIND_MAX:{Description:"This sets the maximum allowable difference between ground speed and airspeed. This allows the plane to cope with a failing airspeed sensor. A value of zero means to use the airspeed as is. See ARSPD_OPTIONS and ARSPD_MAX_WIND to disable airspeed sensors.",DisplayName:"Maximum wind",Increment:"1",Range:{high:"127",low:"0"},Units:"m/s",User:"Advanced"},AHRS_YAW_P:{Description:"This controls the weight the compass or GPS has on the heading. A higher value means the heading will track the yaw source (GPS or compass) more rapidly.",DisplayName:"Yaw P",Increment:".01",Range:{high:"0.4",low:"0.1"},User:"Advanced"}},jk={AIS_LIST_MAX:{Description:"AIS list size of nearest vessels. Longer lists take longer to refresh with lower SRx_ADSB values.",DisplayName:"AIS vessel list size",Range:{high:"100",low:"1"},User:"Advanced"},AIS_LOGGING:{Bitmask:{0:"Log all AIVDM messages",1:"Log only unsupported AIVDM messages",2:"Log decoded messages"},Description:"Bitmask of AIS logging options",DisplayName:"AIS logging options",User:"Advanced"},AIS_TIME_OUT:{Description:"if no updates are received in this time a vessel will be removed from the list",DisplayName:"AIS vessel time out",Range:{high:"2000",low:"1"},Units:"s",User:"Advanced"},AIS_TYPE:{Description:"AIS receiver type",DisplayName:"AIS receiver type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"NMEA AIVDM message"}}},Qk={ARMING_ACCTHRESH:{Description:"Accelerometer error threshold used to determine inconsistent accelerometers. Compares this error range to other accelerometers to detect a hardware or calibration error. Lower value means tighter check and harder to pass arming check. Not all accelerometers are created equal.",DisplayName:"Accelerometer error threshold",Range:{high:"3.0",low:"0.25"},Units:"m/s/s",User:"Advanced"},ARMING_CHECK:{Bitmask:{0:"All",1:"Barometer",2:"Compass",3:"GPS lock",4:"INS",5:"Parameters",6:"RC Channels",7:"Board voltage",8:"Battery Level",10:"Logging Available",11:"Hardware safety switch",12:"GPS Configuration",13:"System",14:"Mission",15:"Rangefinder",16:"Camera",17:"AuxAuth",18:"VisualOdometry",19:"FFT"},Description:"Checks prior to arming motor. This is a bitmask of checks that will be performed before allowing arming. For most users it is recommended to leave this at the default of 1 (all checks enabled). You can select whatever checks you prefer by adding together the values of each check type to set this parameter. For example, to only allow arming when you have GPS lock and no RC failsafe you would set ARMING_CHECK to 72.",DisplayName:"Arm Checks to Perform (bitmask)",User:"Standard"},ARMING_MIS_ITEMS:{Bitmask:{0:"Land",1:"VTOL Land",2:"DO_LAND_START",3:"Takeoff",4:"VTOL Takeoff",5:"Rallypoint"},Description:"Bitmask of mission items that are required to be planned in order to arm the aircraft",DisplayName:"Required mission items",User:"Advanced"},ARMING_OPTIONS:{Description:"Options that can be applied to change arming behaviour",DisplayName:"Arming options",User:"Advanced",Values:{0:"None",1:"Disable prearm display"}},ARMING_RUDDER:{Description:"Allow arm/disarm by rudder input. When enabled arming can be done with right rudder, disarming with left rudder. Rudder arming only works in manual throttle modes with throttle at zero +- deadzone (RCx_DZ)",DisplayName:"Arming with Rudder enable/disable",User:"Advanced",Values:{0:"Disabled",1:"ArmingOnly",2:"ArmOrDisarm"}}},Jk={AROT_AS_ACC_MAX:{Description:"Maximum forward acceleration to apply in speed controller.",DisplayName:"Forward Acceleration Limit",Increment:"10",Range:{high:"60",low:"30"},Units:"cm/s/s",User:"Advanced"},AROT_BAIL_TIME:{Description:"Time in seconds from bail out initiated to the exit of autorotation flight mode.",DisplayName:"Bail Out Timer",Increment:"0.1",Range:{high:"4",low:"0.5"},Units:"s",User:"Advanced"},AROT_COL_FILT_E:{Description:"Cut-off frequency for collective low pass filter. For the entry phase. Acts as a following trim. Must be higher than AROT_COL_FILT_G.",DisplayName:"Entry Phase Collective Filter",Increment:"0.01",Range:{high:"0.5",low:"0.2"},Units:"Hz",User:"Advanced"},AROT_COL_FILT_G:{Description:"Cut-off frequency for collective low pass filter. For the glide phase. Acts as a following trim. Must be lower than AROT_COL_FILT_E.",DisplayName:"Glide Phase Collective Filter",Increment:"0.01",Range:{high:"0.15",low:"0.03"},Units:"Hz",User:"Advanced"},AROT_ENABLE:{Description:"Allows you to enable (1) or disable (0) the autonomous autorotation capability.",DisplayName:"Enable settings for RSC Setpoint",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},AROT_FW_V_FF:{Description:"Velocity (horizontal) input filter. Corrects the target acceleration proportionally to the desired velocity.",DisplayName:"Velocity (horizontal) feed forward",Increment:"0.01",Range:{high:"1",low:"0"},User:"Advanced"},AROT_FW_V_P:{Description:"Velocity (horizontal) P gain. Determines the propotion of the target acceleration based on the velocity error.",DisplayName:"Velocity (horizontal) P gain",Increment:"0.1",Range:{high:"6.0",low:"0.1"},User:"Advanced"},AROT_HS_P:{Description:"Increase value to increase sensitivity of head speed controller during autonomous autorotation.",DisplayName:"P gain for head speed controller",Increment:"0.01",Range:{high:"1",low:"0.3"},User:"Advanced"},AROT_HS_SENSOR:{Description:"Allocate the RPM sensor instance to use for measuring head speed. RPM1 = 0. RPM2 = 1.",DisplayName:"Main Rotor RPM Sensor ",Increment:"0.1",Range:{high:"3",low:"0.5"},Units:"s",User:"Advanced"},AROT_HS_SET_PT:{Description:"The target head speed in RPM during autorotation. Start by setting to desired hover speed and tune from there as necessary.",DisplayName:"Target Head Speed",Increment:"1",Range:{high:"2800",low:"1000"},Units:"RPM",User:"Advanced"},AROT_TARG_SP:{Description:"Target ground speed in cm/s for the autorotation controller to try and achieve/ maintain during the glide phase.",DisplayName:"Target Glide Ground Speed",Increment:"50",Range:{high:"2000",low:"800"},Units:"cm/s",User:"Advanced"}},eB={ARSPD2_AUTOCAL:{Description:"This parameter and function is not used by this vehicle. Always set to 0.",DisplayName:"Automatic airspeed ratio calibration for 2nd airspeed sensor",User:"Advanced"},ARSPD2_BUS:{Description:"The bus number of the I2C bus to look for the sensor on",DisplayName:"Airspeed I2C bus for 2nd sensor",User:"Advanced",Values:{0:"Bus0(internal)",1:"Bus1(external)",2:"Bus2(auxiliary)"}},ARSPD2_DEVID:{Description:"Airspeed2 sensor ID, taking into account its type, bus and instance",DisplayName:"Airspeed2 ID",ReadOnly:"True",User:"Advanced"},ARSPD2_OFFSET:{Description:"Airspeed calibration offset",DisplayName:"Airspeed offset for 2nd airspeed sensor",Increment:"0.1",User:"Advanced"},ARSPD2_PIN:{Description:"Pin number indicating location of analog airspeed sensors. Pixhawk/Cube if set to 15. ",DisplayName:"Airspeed pin for 2nd airspeed sensor",User:"Advanced"},ARSPD2_PSI_RANGE:{Description:"This parameter allows you to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",DisplayName:"The PSI range of the device for 2nd sensor",User:"Advanced"},ARSPD2_RATIO:{Description:"Airspeed calibration ratio",DisplayName:"Airspeed ratio for 2nd airspeed sensor",Increment:"0.1",User:"Advanced"},ARSPD2_SKIP_CAL:{Description:"This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",DisplayName:"Skip airspeed offset calibration on startup for 2nd sensor",User:"Advanced",Values:{0:"Disable",1:"Enable"}},ARSPD2_TUBE_ORDR:{Description:"This parameter allows you to control whether the order in which the tubes are attached to your pitot tube matters. If you set this to 0 then the first (often the top) connector on the sensor needs to be the stagnation pressure (the pressure at the tip of the pitot tube). If set to 1 then the second (often the bottom) connector needs to be the stagnation pressure. If set to 2 (the default) then the airspeed driver will accept either order. The reason you may wish to specify the order is it will allow your airspeed sensor to detect if the aircraft is receiving excessive pressure on the static port compared to the stagnation port such as during a stall, which would otherwise be seen as a positive airspeed.",DisplayName:"Control pitot tube order of 2nd airspeed sensor",User:"Advanced",Values:{0:"Normal",1:"Swapped",2:"Auto Detect"}},ARSPD2_TYPE:{Description:"Type of 2nd airspeed sensor",DisplayName:"Second Airspeed type",User:"Standard",Values:{0:"None",1:"I2C-MS4525D0",2:"Analog",3:"I2C-MS5525",4:"I2C-MS5525 (0x76)",5:"I2C-MS5525 (0x77)",6:"I2C-SDP3X",7:"I2C-DLVR-5in",8:"DroneCAN",9:"I2C-DLVR-10in",10:"I2C-DLVR-20in",11:"I2C-DLVR-30in",12:"I2C-DLVR-60in",13:"NMEA water speed",14:"MSP",15:"ASP5033"}},ARSPD2_USE:{Description:"This parameter and function is not used by this vehicle. Always set to 0.",DisplayName:"Enable use of 2nd airspeed sensor",User:"Standard",Values:{0:"Don't Use",1:"use",2:"UseWhenZeroThrottle"}},ARSPD_AUTOCAL:{Description:"Enables automatic adjustment of ARSPD_RATIO during a calibration flight based on estimation of ground speed and true airspeed. New ratio saved every 2 minutes if change is > 5%. Should not be left enabled.",DisplayName:"This parameter and function is not used by this vehicle. Always set to 0.",User:"Advanced"},ARSPD_BUS:{Description:"Bus number of the I2C bus where the airspeed sensor is connected",DisplayName:"Airspeed I2C bus",User:"Advanced",Values:{0:"Bus0(internal)",1:"Bus1(external)",2:"Bus2(auxiliary)"}},ARSPD_DEVID:{Description:"Airspeed sensor ID, taking into account its type, bus and instance",DisplayName:"Airspeed ID",ReadOnly:"True",User:"Advanced"},ARSPD_OFFSET:{Description:"Airspeed calibration offset",DisplayName:"Airspeed offset",Increment:"0.1",User:"Advanced"},ARSPD_OPTIONS:{Bitmask:{0:"SpeedMismatchDisable",1:"AllowSpeedMismatchRecovery",2:"DisableVoltageCorrection",3:"UseEkf3Consistency"},Description:"This parameter and function is not used by this vehicle. Always set to 0.",DisplayName:"Airspeed options bitmask",User:"Advanced"},ARSPD_PIN:{Description:"The pin number that the airspeed sensor is connected to for analog sensors. Set to 15 on the Pixhawk for the analog airspeed port. ",DisplayName:"Airspeed pin",User:"Advanced"},ARSPD_PRIMARY:{Description:"This selects which airspeed sensor will be the primary if multiple sensors are found",DisplayName:"Primary airspeed sensor",User:"Advanced",Values:{0:"FirstSensor",1:"2ndSensor"}},ARSPD_PSI_RANGE:{Description:"This parameter allows you to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",DisplayName:"The PSI range of the device",User:"Advanced"},ARSPD_RATIO:{Description:"Calibrates pitot tube pressure to velocity. Increasing this value will indicate a higher airspeed at any given dynamic pressure.",DisplayName:"Airspeed ratio",Increment:"0.1",User:"Advanced"},ARSPD_SKIP_CAL:{Description:"This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",DisplayName:"Skip airspeed offset calibration on startup",User:"Advanced",Values:{0:"Disable",1:"Enable"}},ARSPD_TUBE_ORDER:{Description:"This parameter allows you to control whether the order in which the tubes are attached to your pitot tube matters. If you set this to 0 then the first (often the top) connector on the sensor needs to be the stagnation pressure (the pressure at the tip of the pitot tube). If set to 1 then the second (often the bottom) connector needs to be the stagnation pressure. If set to 2 (the default) then the airspeed driver will accept either order. The reason you may wish to specify the order is it will allow your airspeed sensor to detect if the aircraft is receiving excessive pressure on the static port compared to the stagnation port such as during a stall, which would otherwise be seen as a positive airspeed.",DisplayName:"Control pitot tube order",User:"Advanced",Values:{0:"Normal",1:"Swapped",2:"Auto Detect"}},ARSPD_TYPE:{Description:"Type of airspeed sensor",DisplayName:"Airspeed type",User:"Standard",Values:{0:"None",1:"I2C-MS4525D0",2:"Analog",3:"I2C-MS5525",4:"I2C-MS5525 (0x76)",5:"I2C-MS5525 (0x77)",6:"I2C-SDP3X",7:"I2C-DLVR-5in",8:"DroneCAN",9:"I2C-DLVR-10in",10:"I2C-DLVR-20in",11:"I2C-DLVR-30in",12:"I2C-DLVR-60in",13:"NMEA water speed",14:"MSP",15:"ASP5033",100:"SITL"}},ARSPD_USE:{Description:"This parameter is not used by this vehicle. Always set to 0.",DisplayName:"Airspeed use",User:"Standard",Values:{0:"DoNotUse",1:"Use",2:"UseWhenZeroThrottle"}},ARSPD_WIND_GATE:{Description:"This parameter and function is not used by this vehicle.",DisplayName:"Re-enable Consistency Check Gate Size",Range:{high:"10.0",low:"0.0"},User:"Advanced"},ARSPD_WIND_MAX:{Description:"This parameter and function is not used by this vehicle. Always set to 0.",DisplayName:"Maximum airspeed and ground speed difference",Units:"m/s",User:"Advanced"},ARSPD_WIND_WARN:{Description:"This parameter and function is not used by this vehicle. Always set to 0.",DisplayName:"Airspeed and ground speed difference that gives a warning",Units:"m/s",User:"Advanced"}},tB={ATC_ACCEL_P_MAX:{Description:"Maximum acceleration in pitch axis",DisplayName:"Acceleration Max for Pitch",Increment:"1000",Range:{high:"180000",low:"0"},Units:"cdeg/s/s",User:"Advanced",Values:{0:"Disabled",3e4:"VerySlow",72e3:"Slow",108e3:"Medium",162e3:"Fast"}},ATC_ACCEL_R_MAX:{Description:"Maximum acceleration in roll axis",DisplayName:"Acceleration Max for Roll",Increment:"1000",Range:{high:"180000",low:"0"},Units:"cdeg/s/s",User:"Advanced",Values:{0:"Disabled",3e4:"VerySlow",72e3:"Slow",108e3:"Medium",162e3:"Fast"}},ATC_ACCEL_Y_MAX:{Description:"Maximum acceleration in yaw axis",DisplayName:"Acceleration Max for Yaw",Increment:"1000",Range:{high:"72000",low:"0"},Units:"cdeg/s/s",User:"Advanced",Values:{0:"Disabled",9e3:"VerySlow",18e3:"Slow",36e3:"Medium",54e3:"Fast"}},ATC_ANGLE_BOOST:{Description:"Angle Boost increases output throttle as the vehicle leans to reduce loss of altitude",DisplayName:"Angle Boost",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},ATC_ANG_LIM_TC:{Description:"Angle Limit (to maintain altitude) Time Constant",DisplayName:"Angle Limit (to maintain altitude) Time Constant",Range:{high:"10.0",low:"0.5"},User:"Advanced"},ATC_ANG_PIT_P:{Description:"Pitch axis angle controller P gain. Converts the error between the desired pitch angle and actual angle to a desired pitch rate",DisplayName:"Pitch axis angle controller P gain",Range:{high:"12.000",low:"3.000"},User:"Standard"},ATC_ANG_RLL_P:{Description:"Roll axis angle controller P gain. Converts the error between the desired roll angle and actual angle to a desired roll rate",DisplayName:"Roll axis angle controller P gain",Range:{high:"12.000",low:"3.000"},User:"Standard"},ATC_ANG_YAW_P:{Description:"Yaw axis angle controller P gain. Converts the error between the desired yaw angle and actual angle to a desired yaw rate",DisplayName:"Yaw axis angle controller P gain",Range:{high:"12.000",low:"3.000"},User:"Standard"},ATC_HOVR_ROL_TRM:{Description:"Trim the hover roll angle to counter tail rotor thrust in a hover",DisplayName:"Hover Roll Trim",Increment:"10",Range:{high:"1000",low:"0"},Units:"cdeg",User:"Advanced"},ATC_INPUT_TC:{Description:"Attitude control input time constant. Low numbers lead to sharper response, higher numbers to softer response",DisplayName:"Attitude control input time constant",Increment:"0.01",Range:{high:"1",low:"0"},Units:"s",User:"Standard",Values:{"0.05":"Very Crisp","0.1":"Crisp","0.15":"Medium","0.2":"Soft","0.5":"Very Soft"}},ATC_PIRO_COMP:{Description:"Pirouette compensation enabled",DisplayName:"Piro Comp Enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},ATC_RATE_FF_ENAB:{Description:"Controls whether body-frame rate feedfoward is enabled or disabled",DisplayName:"Rate Feedforward Enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},ATC_RATE_P_MAX:{Description:"Maximum angular velocity in pitch axis",DisplayName:"Angular Velocity Max for Pitch",Increment:"1",Range:{high:"1080",low:"0"},Units:"deg/s",User:"Advanced",Values:{0:"Disabled",60:"Slow",180:"Medium",360:"Fast"}},ATC_RATE_R_MAX:{Description:"Maximum angular velocity in roll axis",DisplayName:"Angular Velocity Max for Roll",Increment:"1",Range:{high:"1080",low:"0"},Units:"deg/s",User:"Advanced",Values:{0:"Disabled",60:"Slow",180:"Medium",360:"Fast"}},ATC_RATE_Y_MAX:{Description:"Maximum angular velocity in yaw axis",DisplayName:"Angular Velocity Max for Yaw",Increment:"1",Range:{high:"1080",low:"0"},Units:"deg/s",User:"Advanced",Values:{0:"Disabled",60:"Slow",180:"Medium",360:"Fast"}},ATC_RAT_PIT_D:{Description:"Pitch axis rate controller D gain. Compensates for short-term change in desired pitch rate vs actual pitch rate",DisplayName:"Pitch axis rate controller D gain",Increment:"0.001",Range:{high:"0.03",low:"0.0"},User:"Standard"},ATC_RAT_PIT_FF:{Description:"Pitch axis rate controller feed forward",DisplayName:"Pitch axis rate controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0.05"},User:"Standard"},ATC_RAT_PIT_FLTD:{Description:"Pitch axis rate controller derivative frequency in Hz",DisplayName:"Pitch axis rate controller derivative frequency in Hz",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Standard"},ATC_RAT_PIT_FLTE:{Description:"Pitch axis rate controller error frequency in Hz",DisplayName:"Pitch axis rate controller error frequency in Hz",Increment:"1",Range:{high:"50",low:"5"},Units:"Hz",User:"Standard"},ATC_RAT_PIT_FLTT:{Description:"Pitch axis rate controller target frequency in Hz",DisplayName:"Pitch axis rate controller target frequency in Hz",Increment:"1",Range:{high:"50",low:"5"},Units:"Hz",User:"Standard"},ATC_RAT_PIT_I:{Description:"Pitch axis rate controller I gain. Corrects long-term difference in desired pitch rate vs actual pitch rate",DisplayName:"Pitch axis rate controller I gain",Increment:"0.01",Range:{high:"0.6",low:"0.0"},User:"Standard"},ATC_RAT_PIT_ILMI:{Description:"Point below which I-term will not leak down",DisplayName:"Pitch axis rate controller I-term leak minimum",Range:{high:"1",low:"0"},User:"Advanced"},ATC_RAT_PIT_IMAX:{Description:"Pitch axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Pitch axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},ATC_RAT_PIT_P:{Description:"Pitch axis rate controller P gain. Converts the difference between desired pitch rate and actual pitch rate into a motor speed output",DisplayName:"Pitch axis rate controller P gain",Increment:"0.005",Range:{high:"0.35",low:"0.0"},User:"Standard"},ATC_RAT_PIT_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Pitch slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},ATC_RAT_RLL_D:{Description:"Roll axis rate controller D gain. Compensates for short-term change in desired roll rate vs actual roll rate",DisplayName:"Roll axis rate controller D gain",Increment:"0.001",Range:{high:"0.03",low:"0.0"},User:"Standard"},ATC_RAT_RLL_FF:{Description:"Roll axis rate controller feed forward",DisplayName:"Roll axis rate controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0.05"},User:"Standard"},ATC_RAT_RLL_FLTD:{Description:"Roll axis rate controller derivative frequency in Hz",DisplayName:"Roll axis rate controller derivative frequency in Hz",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Standard"},ATC_RAT_RLL_FLTE:{Description:"Roll axis rate controller error frequency in Hz",DisplayName:"Roll axis rate controller error frequency in Hz",Increment:"1",Range:{high:"50",low:"5"},Units:"Hz",User:"Standard"},ATC_RAT_RLL_FLTT:{Description:"Roll axis rate controller target frequency in Hz",DisplayName:"Roll axis rate controller target frequency in Hz",Increment:"1",Range:{high:"50",low:"5"},Units:"Hz",User:"Standard"},ATC_RAT_RLL_I:{Description:"Roll axis rate controller I gain. Corrects long-term difference in desired roll rate vs actual roll rate",DisplayName:"Roll axis rate controller I gain",Increment:"0.01",Range:{high:"0.6",low:"0.0"},User:"Standard"},ATC_RAT_RLL_ILMI:{Description:"Point below which I-term will not leak down",DisplayName:"Roll axis rate controller I-term leak minimum",Range:{high:"1",low:"0"},User:"Advanced"},ATC_RAT_RLL_IMAX:{Description:"Roll axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Roll axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},ATC_RAT_RLL_P:{Description:"Roll axis rate controller P gain. Converts the difference between desired roll rate and actual roll rate into a motor speed output",DisplayName:"Roll axis rate controller P gain",Increment:"0.005",Range:{high:"0.35",low:"0.0"},User:"Standard"},ATC_RAT_RLL_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Roll slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},ATC_RAT_YAW_D:{Description:"Yaw axis rate controller D gain. Compensates for short-term change in desired yaw rate vs actual yaw rate",DisplayName:"Yaw axis rate controller D gain",Increment:"0.001",Range:{high:"0.02",low:"0.000"},User:"Standard"},ATC_RAT_YAW_FF:{Description:"Yaw axis rate controller feed forward",DisplayName:"Yaw axis rate controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0"},User:"Standard"},ATC_RAT_YAW_FLTD:{Description:"Yaw axis rate controller derivative frequency in Hz",DisplayName:"Yaw axis rate controller derivative frequency in Hz",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Standard"},ATC_RAT_YAW_FLTE:{Description:"Yaw axis rate controller error frequency in Hz",DisplayName:"Yaw axis rate controller error frequency in Hz",Increment:"1",Range:{high:"50",low:"5"},Units:"Hz",User:"Standard"},ATC_RAT_YAW_FLTT:{Description:"Yaw axis rate controller target frequency in Hz",DisplayName:"Yaw axis rate controller target frequency in Hz",Increment:"1",Range:{high:"50",low:"5"},Units:"Hz",User:"Standard"},ATC_RAT_YAW_I:{Description:"Yaw axis rate controller I gain. Corrects long-term difference in desired yaw rate vs actual yaw rate",DisplayName:"Yaw axis rate controller I gain",Increment:"0.01",Range:{high:"0.2",low:"0.01"},User:"Standard"},ATC_RAT_YAW_ILMI:{Description:"Point below which I-term will not leak down",DisplayName:"Yaw axis rate controller I-term leak minimum",Range:{high:"1",low:"0"},User:"Advanced"},ATC_RAT_YAW_IMAX:{Description:"Yaw axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Yaw axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},ATC_RAT_YAW_P:{Description:"Yaw axis rate controller P gain. Converts the difference between desired yaw rate and actual yaw rate into a motor speed output",DisplayName:"Yaw axis rate controller P gain",Increment:"0.005",Range:{high:"0.60",low:"0.180"},User:"Standard"},ATC_RAT_YAW_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Yaw slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},ATC_SLEW_YAW:{Description:"Maximum rate the yaw target can be updated in Loiter, RTL, Auto flight modes",DisplayName:"Yaw target slew rate",Increment:"100",Range:{high:"18000",low:"500"},Units:"cdeg/s",User:"Advanced"},ATC_THR_MIX_MAN:{Description:"Throttle vs attitude control prioritisation used during manual flight (higher values mean we prioritise attitude control over throttle)",DisplayName:"Throttle Mix Manual",Range:{high:"0.9",low:"0.1"},User:"Advanced"},ATC_THR_MIX_MAX:{Description:"Throttle vs attitude control prioritisation used during active flight (higher values mean we prioritise attitude control over throttle)",DisplayName:"Throttle Mix Maximum",Range:{high:"0.9",low:"0.5"},User:"Advanced"},ATC_THR_MIX_MIN:{Description:"Throttle vs attitude control prioritisation used when landing (higher values mean we prioritise attitude control over throttle)",DisplayName:"Throttle Mix Minimum",Range:{high:"0.25",low:"0.1"},User:"Advanced"}},iB={AUTOTUNE_AGGR:{Description:"Autotune aggressiveness. Defines the bounce back used to detect size of the D term.",DisplayName:"Autotune aggressiveness",Range:{high:"0.10",low:"0.05"},User:"Standard"},AUTOTUNE_AXES:{Bitmask:{0:"Roll",1:"Pitch",2:"Yaw"},Description:"1-byte bitmap of axes to autotune",DisplayName:"Autotune axis bitmask",User:"Standard"},AUTOTUNE_FRQ_MAX:{Description:"Defines the end frequency for sweeps and dwells",DisplayName:"AutoTune maximum sweep frequency",Range:{high:"120",low:"50"},User:"Standard"},AUTOTUNE_FRQ_MIN:{Description:"Defines the start frequency for sweeps and dwells",DisplayName:"AutoTune minimum sweep frequency",Range:{high:"30",low:"10"},User:"Standard"},AUTOTUNE_GN_MAX:{Description:"Defines the response gain (output/input) to tune",DisplayName:"AutoTune maximum response gain",Range:{high:"2.5",low:"1"},User:"Standard"},AUTOTUNE_MIN_D:{Description:"Defines the minimum D gain",DisplayName:"AutoTune minimum D",Range:{high:"0.006",low:"0.001"},User:"Standard"},AUTOTUNE_SEQ:{Bitmask:{0:"VFF",1:"Rate D/Rate P(incl max gain)",2:"Angle P",3:"Max Gain Only"},Description:"2-byte bitmask to select what tuning should be performed. Max gain automatically performed if Rate D is selected. Values: 7:All,1:VFF Only,2:Rate D/Rate P Only(incl max gain),4:Angle P Only,8:Max Gain Only,3:VFF and Rate D/Rate P(incl max gain),5:VFF and Angle P,6:Rate D/Rate P(incl max gain) and angle P",DisplayName:"AutoTune Sequence Bitmask",User:"Standard"},AUTOTUNE_VELXY_P:{Description:"Velocity xy P gain used to hold position during Max Gain, Rate P, and Rate D frequency sweeps",DisplayName:"AutoTune velocity xy P gain",Range:{high:"1",low:"0"},User:"Standard"}},aB={AVD_ENABLE:{Description:"Enable Avoidance using ADSB",DisplayName:"Enable Avoidance using ADSB",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},AVD_F_ACTION:{Description:"Specifies aircraft behaviour when a collision is imminent",DisplayName:"Collision Avoidance Behavior",User:"Advanced",Values:{0:"None",1:"Report",2:"Climb Or Descend",3:"Move Horizontally",4:"Move Perpendicularly in 3D",5:"RTL",6:"Hover"}},AVD_F_ALT_MIN:{Description:"Minimum AMSL (above mean sea level) altitude for ADS-B avoidance. If the vehicle is below this altitude, no avoidance action will take place. Useful to prevent ADS-B avoidance from activating while below the tree line or around structures. Default of 0 is no minimum.",DisplayName:"ADS-B avoidance minimum altitude",Units:"m",User:"Advanced"},AVD_F_DIST_XY:{Description:"Closest allowed projected distance before F_ACTION is undertaken",DisplayName:"Distance Fail XY",Units:"m",User:"Advanced"},AVD_F_DIST_Z:{Description:"Closest allowed projected distance before BEHAVIOUR_F is undertaken",DisplayName:"Distance Fail Z",Units:"m",User:"Advanced"},AVD_F_RCVRY:{Description:"Determines what the aircraft will do after a fail event is resolved",DisplayName:"Recovery behaviour after a fail event",User:"Advanced",Values:{0:"Remain in AVOID_ADSB",1:"Resume previous flight mode",2:"RTL",3:"Resume if AUTO else Loiter"}},AVD_F_TIME:{Description:"Aircraft velocity vectors are multiplied by this time to determine closest approach. If this results in an approach closer than F_DIST_XY or F_DIST_Z then F_ACTION is undertaken",DisplayName:"Time Horizon Fail",Units:"s",User:"Advanced"},AVD_OBS_MAX:{Description:"Maximum number of obstacles to track",DisplayName:"Maximum number of obstacles to track",User:"Advanced"},AVD_W_ACTION:{Description:"Specifies aircraft behaviour when a collision may occur",DisplayName:"Collision Avoidance Behavior - Warn",User:"Advanced",Values:{0:"None",1:"Report"}},AVD_W_DIST_XY:{Description:"Closest allowed projected distance before W_ACTION is undertaken",DisplayName:"Distance Warn XY",Units:"m",User:"Advanced"},AVD_W_DIST_Z:{Description:"Closest allowed projected distance before BEHAVIOUR_W is undertaken",DisplayName:"Distance Warn Z",Units:"m",User:"Advanced"},AVD_W_TIME:{Description:"Aircraft velocity vectors are multiplied by this time to determine closest approach. If this results in an approach closer than W_DIST_XY or W_DIST_Z then W_ACTION is undertaken (assuming F_ACTION is not undertaken)",DisplayName:"Time Horizon Warn",Units:"s",User:"Advanced"}},rB={AVOID_ACCEL_MAX:{Description:"Maximum acceleration with which obstacles will be avoided with. Set zero to disable acceleration limits",DisplayName:"Avoidance maximum acceleration",Range:{high:"9",low:"0"},Units:"m/s/s",User:"Standard"},AVOID_ALT_MIN:{Description:"Minimum altitude above which proximity based avoidance will start working. This requires a valid downward facing rangefinder reading to work. Set zero to disable",DisplayName:"Avoidance minimum altitude",Range:{high:"6",low:"0"},Units:"m",User:"Standard"},AVOID_ANGLE_MAX:{Description:"Max lean angle used to avoid obstacles while in non-GPS modes",DisplayName:"Avoidance max lean angle in non-GPS flight modes",Increment:"10",Range:{high:"4500",low:"0"},Units:"cdeg",User:"Standard"},AVOID_BACKUP_DZ:{Description:"Distance beyond AVOID_MARGIN parameter, after which vehicle will backaway from obstacles. Increase this parameter if you see vehicle going back and forth in front of obstacle.",DisplayName:"Avoidance deadzone between stopping and backing away from obstacle",Range:{high:"2",low:"0"},Units:"m",User:"Standard"},AVOID_BACKUP_SPD:{Description:"Maximum speed that will be used to back away from obstacles in GPS modes (m/s). Set zero to disable",DisplayName:"Avoidance maximum backup speed",Range:{high:"2",low:"0"},Units:"m/s",User:"Standard"},AVOID_BEHAVE:{Description:"Avoidance behaviour (slide or stop)",DisplayName:"Avoidance behaviour",User:"Standard",Values:{0:"Slide",1:"Stop"}},AVOID_DIST_MAX:{Description:"Distance from object at which obstacle avoidance will begin in non-GPS modes",DisplayName:"Avoidance distance maximum in non-GPS flight modes",Range:{high:"30",low:"1"},Units:"m",User:"Standard"},AVOID_ENABLE:{Bitmask:{0:"UseFence",1:"UseProximitySensor",2:"UseBeaconFence"},Description:"Enabled/disable avoidance input sources",DisplayName:"Avoidance control enable/disable",User:"Standard"},AVOID_MARGIN:{Description:"Vehicle will attempt to stay at least this distance (in meters) from objects while in GPS modes",DisplayName:"Avoidance distance margin in GPS modes",Range:{high:"10",low:"1"},Units:"m",User:"Standard"}},nB={BARO1_DEVID:{Description:"Barometer sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID",ReadOnly:"True",User:"Advanced"},BARO1_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Ground Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO2_DEVID:{Description:"Barometer2 sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID2",ReadOnly:"True",User:"Advanced"},BARO2_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Ground Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO3_DEVID:{Description:"Barometer3 sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID3",ReadOnly:"True",User:"Advanced"},BARO3_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Absolute Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO_ALT_OFFSET:{Description:"altitude offset in meters added to barometric altitude. This is used to allow for automatic adjustment of the base barometric altitude by a ground station equipped with a barometer. The value is added to the barometric altitude read by the aircraft. It is automatically reset to 0 when the barometer is calibrated on each reboot or when a preflight calibration is performed.",DisplayName:"altitude offset",Increment:"0.1",Units:"m",User:"Advanced"},BARO_EXT_BUS:{Description:"This selects the bus number for looking for an I2C barometer. When set to -1 it will probe all external i2c buses based on the GND_PROBE_EXT parameter.",DisplayName:"External baro bus",User:"Advanced",Values:{0:"Bus0",1:"Bus1","-1":"Disabled"}},BARO_FIELD_ELV:{Description:"User provided field elevation in meters. This is used to improve the calculation of the altitude the vehicle is at. This parameter is not persistent and will be reset to 0 every time the vehicle is rebooted. A value of 0 means no correction for takeoff height above sea level is performed.",DisplayName:"field elevation",Increment:"0.1",Units:"m",User:"Advanced",Volatile:"True"},BARO_FLTR_RNG:{Description:"This sets the range around the average value that new samples must be within to be accepted. This can help reduce the impact of noise on sensors that are on long I2C cables. The value is a percentage from the average value. A value of zero disables this filter.",DisplayName:"Range in which sample is accepted",Increment:"1",Range:{high:"100",low:"0"},Units:"%"},BARO_GND_TEMP:{Description:"User provided ambient ground temperature in degrees Celsius. This is used to improve the calculation of the altitude the vehicle is at. This parameter is not persistent and will be reset to 0 every time the vehicle is rebooted. A value of 0 means use the internal measurement ambient temperature.",DisplayName:"ground temperature",Increment:"1",Units:"degC",User:"Advanced",Volatile:"True"},BARO_PRIMARY:{Description:"This selects which barometer will be the primary if multiple barometers are found",DisplayName:"Primary barometer",User:"Advanced",Values:{0:"FirstBaro",1:"2ndBaro",2:"3rdBaro"}},BARO_PROBE_EXT:{Bitmask:{0:"BMP085",1:"BMP280",2:"MS5611",3:"MS5607",4:"MS5637",5:"FBM320",6:"DPS280",7:"LPS25H",8:"Keller",9:"MS5837",10:"BMP388",11:"SPL06",12:"MSP"},Description:"This sets which types of external i2c barometer to look for. It is a bitmask of barometer types. The I2C buses to probe is based on GND_EXT_BUS. If BARO_EXT_BUS is -1 then it will probe all external buses, otherwise it will probe just the bus number given in GND_EXT_BUS.",DisplayName:"External barometers to probe",User:"Advanced"}},oB={BARO1_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO1_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},sB={BARO2_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO2_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},lB={BARO3_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO3_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},cB={BATT2_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT2_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT2_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT2__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT2_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT2_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT2__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT2_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT2_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT2_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT2_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT2_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT2_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT2_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT2_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT2_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT2_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT2_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT2_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT2_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT2_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT2_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT2_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT2_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT2_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT2_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT2_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT2_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT2_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT2_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT2_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT2_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT2_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},dB={BATT3_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT3_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT3_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT3__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT3_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT3_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT3__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT3_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT3_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT3_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT3_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT3_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT3_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT3_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT3_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT3_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT3_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT3_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT3_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT3_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT3_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT3_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT3_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT3_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT3_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT3_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT3_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT3_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT3_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT3_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT3_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT3_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT3_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},CB={BATT4_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT4_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT4_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT4__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT4_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT4_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT4__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT4_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT4_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT4_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT4_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT4_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT4_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT4_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT4_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT4_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT4_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT4_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT4_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT4_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT4_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT4_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT4_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT4_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT4_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT4_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT4_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT4_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT4_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT4_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT4_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT4_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT4_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},mB={BATT5_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT5_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT5_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT5__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT5_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT5_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT5__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT5_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT5_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT5_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT5_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT5_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT5_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT5_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT5_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT5_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT5_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT5_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT5_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT5_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT5_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT5_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT5_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT5_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT5_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT5_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT5_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT5_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT5_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT5_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT5_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT5_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT5_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},uB={BATT6_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT6_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT6_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT6__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT6_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT6_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT6__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT6_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT6_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT6_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT6_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT6_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT6_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT6_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT6_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT6_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT6_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT6_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT6_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT6_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT6_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT6_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT6_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT6_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT6_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT6_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT6_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT6_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT6_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT6_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT6_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT6_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT6_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},hB={BATT7_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT7_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT7_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT7__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT7_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT7_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT7__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT7_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT7_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT7_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT7_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT7_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT7_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT7_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT7_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT7_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT7_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT7_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT7_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT7_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT7_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT7_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT7_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT7_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT7_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT7_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT7_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT7_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT7_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT7_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT7_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT7_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT7_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},pB={BATT8_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT8_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT8_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT8__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT8_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT8_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT8__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT8_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT8_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT8_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT8_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT8_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT8_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT8_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT8_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT8_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT8_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT8_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT8_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT8_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT8_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT8_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT8_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT8_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT8_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT8_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT8_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT8_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT8_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT8_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT8_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT8_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT8_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},fB={BATT9_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT9_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT9_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT9__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT9_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT9_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT9__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT9_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT9_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT9_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT9_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT9_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT9_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT9_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT9_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT9_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT9_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT9_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT9_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT9_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT9_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT9_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT9_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT9_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT9_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT9_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT9_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT9_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT9_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT9_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT9_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT9_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT9_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},VB={BATT_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},LB={BCN_ALT:{Description:"Beacon origin's altitude above sealevel in meters",DisplayName:"Beacon origin's altitude above sealevel in meters",Increment:"1",Range:{high:"10000",low:"0"},Units:"m",User:"Advanced"},BCN_LATITUDE:{Description:"Beacon origin's latitude",DisplayName:"Beacon origin's latitude",Increment:"0.000001",Range:{high:"90",low:"-90"},Units:"deg",User:"Advanced"},BCN_LONGITUDE:{Description:"Beacon origin's longitude",DisplayName:"Beacon origin's longitude",Increment:"0.000001",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},BCN_ORIENT_YAW:{Description:"Beacon systems rotation from north in degrees",DisplayName:"Beacon systems rotation from north in degrees",Increment:"1",Range:{high:"+180",low:"-180"},Units:"deg",User:"Advanced"},BCN_TYPE:{Description:"What type of beacon based position estimation device is connected",DisplayName:"Beacon based position estimation device type",User:"Advanced",Values:{0:"None",1:"Pozyx",2:"Marvelmind",3:"Nooploop",10:"SITL"}}},HB={BRD_ALT_CONFIG:{Description:"Select an alternative hardware configuration. A value of zero selects the default configuration for this board. Other values are board specific. Please see the documentation for your board for details on any alternative configuration values that may be available.",DisplayName:"Alternative HW config",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},BRD_BOOT_DELAY:{Description:"This adds a delay in milliseconds to boot to ensure peripherals initialise fully",DisplayName:"Boot delay",Range:{high:"10000",low:"0"},Units:"ms",User:"Advanced"},BRD_HEAT_I:{Description:"Board Heater integrator gain",DisplayName:"Board Heater I gain",Increment:"0.1",Range:{high:"1",low:"0"},User:"Advanced"},BRD_HEAT_IMAX:{Description:"Board Heater integrator maximum",DisplayName:"Board Heater IMAX",Increment:"1",Range:{high:"100",low:"0"},User:"Advanced"},BRD_HEAT_LOWMGN:{Description:"Arming check will fail if temp is lower than this margin below BRD_HEAT_TARG. 0 disables the low temperature check",DisplayName:"Board heater temp lower margin",Range:{high:"20",low:"0"},Units:"degC",User:"Advanced"},BRD_HEAT_P:{Description:"Board Heater P gain",DisplayName:"Board Heater P gain",Increment:"1",Range:{high:"500",low:"1"},User:"Advanced"},BRD_HEAT_TARG:{Description:"Board heater target temperature for boards with controllable heating units. DO NOT SET to -1 on the Cube. Set to -1 to disable the heater, please reboot after setting to -1.",DisplayName:"Board heater temperature target",Range:{high:"80",low:"-1"},Units:"degC",User:"Advanced"},BRD_IO_ENABLE:{Description:"This allows for the IO co-processor on FMUv1 and FMUv2 to be disabled",DisplayName:"Enable IO co-processor",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BRD_OPTIONS:{Bitmask:{0:"Enable hardware watchdog",1:"Disable MAVftp",2:"Enable set of internal parameters",3:"Enable Debug Pins",4:"Unlock flash on reboot",5:"Write protect firmware flash on reboot",6:"Write protect bootloader flash on reboot"},Description:"Board specific option flags",DisplayName:"Board options",User:"Advanced"},BRD_PWM_VOLT_SEL:{Description:"This sets the voltage max for PWM output pulses. 0 for 3.3V and 1 for 5V output.",DisplayName:"Set PWM Out Voltage",User:"Advanced",Values:{0:"3.3V",1:"5V"}},BRD_SAFETYENABLE:{Description:"This controls the default state of the safety switch at startup. When set to 1 the safety switch will start in the safe state (flashing) at boot. When set to zero the safety switch will start in the unsafe state (solid) at startup. Note that if a safety switch is fitted the user can still control the safety state after startup using the switch. The safety state can also be controlled in software using a MAVLink message.",DisplayName:"Enable use of safety arming switch",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},BRD_SAFETYOPTION:{Bitmask:{0:"ActiveForSafetyEnable",1:"ActiveForSafetyDisable",2:"ActiveWhenArmed",3:"Force safety on when the aircraft disarms"},Description:"This controls the activation of the safety button. It allows you to control if the safety button can be used for safety enable and/or disable, and whether the button is only active when disarmed",DisplayName:"Options for safety button behavior",User:"Standard"},BRD_SAFETY_MASK:{Bitmask:{0:"Output1",1:"Output2",2:"Output3",3:"Output4",4:"Output5",5:"Output6",6:"Output7",7:"Output8",8:"Output9",9:"Output10",10:"Output11",11:"Output12",12:"Output13",13:"Output14"},Description:"A bitmask which controls what outputs can move while the safety switch has not been pressed",DisplayName:"Outputs which ignore the safety switch state",RebootRequired:"True",User:"Advanced"},BRD_SBUS_OUT:{Description:"This sets the SBUS output frame rate in Hz",DisplayName:" SBUS output rate",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"50Hz",2:"75Hz",3:"100Hz",4:"150Hz",5:"200Hz",6:"250Hz",7:"300Hz"}},BRD_SD_SLOWDOWN:{Description:"This is a scaling factor to slow down microSD operation. It can be used on flight board and microSD card combinations where full speed is not reliable. For normal full speed operation a value of 0 should be used.",DisplayName:"microSD slowdown",Increment:"1",Range:{high:"32",low:"0"},User:"Advanced"},BRD_SER1_RTSCTS:{Description:"Enable flow control on serial 1 (telemetry 1). You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup. Note that the PX4v1 does not have hardware flow control pins on this port, so you should leave this disabled.",DisplayName:"Serial 1 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER2_RTSCTS:{Description:"Enable flow control on serial 2 (telemetry 2). You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 2 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER3_RTSCTS:{Description:"Enable flow control on serial 3. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 3 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER4_RTSCTS:{Description:"Enable flow control on serial 4. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 4 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER5_RTSCTS:{Description:"Enable flow control on serial 5. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 5 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SERIAL_NUM:{Description:"User-defined serial number of this vehicle, it can be any arbitrary number you want and has no effect on the autopilot",DisplayName:"User-defined serial number",Range:{high:"8388607",low:"-8388608"},User:"Standard"},BRD_TYPE:{Description:"This allows selection of a PX4 or VRBRAIN board type. If set to zero then the board type is auto-detected (PX4)",DisplayName:"Board type",RebootRequired:"True",User:"Advanced",Values:{0:"AUTO",1:"PX4V1",2:"Pixhawk",3:"Cube/Pixhawk2",4:"Pixracer",5:"PixhawkMini",6:"Pixhawk2Slim",13:"Intel Aero FC",14:"Pixhawk Pro",20:"AUAV2.1",21:"PCNC1",22:"MINDPXV2",23:"SP01",24:"CUAVv5/FMUV5",30:"VRX BRAIN51",32:"VRX BRAIN52",33:"VRX BRAIN52E",34:"VRX UBRAIN51",35:"VRX UBRAIN52",36:"VRX CORE10",38:"VRX BRAIN54",39:"PX4 FMUV6",100:"PX4 OLDDRIVERS"}},BRD_VBUS_MIN:{Description:"Minimum voltage on the autopilot power rail to allow the aircraft to arm. 0 to disable the check.",DisplayName:"Autopilot board voltage requirement",Increment:"0.1",Range:{high:"5.5",low:"4.0"},Units:"V",User:"Advanced"},BRD_VSERVO_MIN:{Description:"Minimum voltage on the servo rail to allow the aircraft to arm. 0 to disable the check.",DisplayName:"Servo voltage requirement",Increment:"0.1",Range:{high:"12.0",low:"3.3"},Units:"V",User:"Advanced"}},MB={BRD_RADIO_ABLVL:{Description:"This sets the minimum RSSI of an auto-bind packet for it to be accepted. This should be set so that auto-bind will only happen at short range to minimise the change of an auto-bind happening accidentially",DisplayName:"Auto-bind level",Range:{high:"31",low:"0"},User:"Advanced"},BRD_RADIO_ABTIME:{Description:"When non-zero this sets the time with no transmitter packets before we start looking for auto-bind packets.",DisplayName:"Auto-bind time",Range:{high:"120",low:"0"},User:"Advanced"},BRD_RADIO_BZOFS:{Description:"Set transmitter buzzer note adjustment (adjust frequency up)",DisplayName:"Transmitter buzzer adjustment",Range:{high:"40",low:"0"},User:"Advanced"},BRD_RADIO_DEBUG:{Description:"radio debug level",DisplayName:"debug level",Range:{high:"4",low:"0"},User:"Advanced"},BRD_RADIO_DISCRC:{Description:"disable receive CRC (for debug)",DisplayName:"disable receive CRC",User:"Advanced",Values:{0:"NotDisabled",1:"Disabled"}},BRD_RADIO_FCCTST:{Description:"If this is enabled then the radio will continuously transmit as required for FCC testing. The transmit channel is set by the value of the parameter. The radio will not work for RC input while this is enabled",DisplayName:"Put radio into FCC test mode",User:"Advanced",Values:{0:"Disabled",1:"MinChannel",2:"MidChannel",3:"MaxChannel",4:"MinChannelCW",5:"MidChannelCW",6:"MaxChannelCW"}},BRD_RADIO_PPSCH:{Description:"Channel to show received packet-per-second rate, or zero for disabled",DisplayName:"Packet rate channel",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_PROT:{Description:"Select air protocol",DisplayName:"protocol",User:"Advanced",Values:{0:"Auto",1:"DSM2",2:"DSMX"}},BRD_RADIO_SIGCH:{Description:"Channel to show receive RSSI signal strength, or zero for disabled",DisplayName:"RSSI signal strength",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_STKMD:{Description:"This selects between different stick input modes. The default is mode2, which has throttle on the left stick and pitch on the right stick. You can instead set mode1, which has throttle on the right stick and pitch on the left stick.",DisplayName:"Stick input mode",User:"Advanced",Values:{1:"Mode1",2:"Mode2"}},BRD_RADIO_TELEM:{Description:"If this is non-zero then telemetry packets will be sent over DSM",DisplayName:"Enable telemetry",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BRD_RADIO_TESTCH:{Description:"This sets the radio to a fixed test channel for factory testing. Using a fixed channel avoids the need for binding in factory testing.",DisplayName:"Set radio to factory test channel",User:"Advanced",Values:{0:"Disabled",1:"TestChan1",2:"TestChan2",3:"TestChan3",4:"TestChan4",5:"TestChan5",6:"TestChan6",7:"TestChan7",8:"TestChan8"}},BRD_RADIO_TPPSCH:{Description:"Channel to show telemetry packets-per-second value, as received at TX",DisplayName:"Telemetry PPS channel",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_TSIGCH:{Description:"Channel to show telemetry RSSI value as received by TX",DisplayName:"RSSI value channel for telemetry data on transmitter",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_TXMAX:{Description:"Set transmitter maximum transmit power (from 1 to 8)",DisplayName:"Transmitter transmit power",Range:{high:"8",low:"1"},User:"Advanced"},BRD_RADIO_TXPOW:{Description:"Set telemetry transmit power. This is the power level (from 1 to 8) for telemetry packets sent from the RX to the TX",DisplayName:"Telemetry Transmit power",Range:{high:"8",low:"1"},User:"Advanced"},BRD_RADIO_TYPE:{Description:"This enables support for direct attached radio receivers",DisplayName:"Set type of direct attached radio",Values:{0:"None",1:"CYRF6936",2:"CC2500",3:"BK2425"}}},gB={BRD_RTC_TYPES:{Bitmask:{0:"GPS",1:"MAVLINK_SYSTEM_TIME",2:"HW"},Description:"Specifies which sources of UTC time will be accepted",DisplayName:"Allowed sources of RTC time",User:"Advanced"},BRD_RTC_TZ_MIN:{Description:"Adds offset in +- minutes from UTC to calculate local time",DisplayName:"Timezone offset from UTC",Range:{high:"+840",low:"-720"},User:"Advanced"}},AB={BTN_ENABLE:{Description:"This enables the button checking module. When this is disabled the parameters for setting button inputs are not visible",DisplayName:"Enable button reporting",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BTN_FUNC1:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 1 RC Channel function",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_FUNC2:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 2 RC Channel function",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_FUNC3:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 3 RC Channel function",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_FUNC4:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 4 RC Channel function",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_OPTIONS1:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 1. PWM input detects PWM above or below 1800/1200us instead of logic level. If PWM is not detected or is less than 800us or above 2200us the button will interpreted as low. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 1 Options",User:"Standard"},BTN_OPTIONS2:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 2. PWM input detects PWM above or below 1800/1200us instead of logic level. If PWM is not detected or is less than 800us or above 2200us the button will interpreted as low. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 2 Options",User:"Standard"},BTN_OPTIONS3:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 3. PWM input detects PWM above or below 1800/1200us instead of logic level. If PWM is not detected or is less than 800us or above 2200us the button will interpreted as low. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 3 Options"},BTN_OPTIONS4:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 4. PWM input detects PWM above or below 1800/1200us instead of logic level. If PWM is not detected or is less than 800us or above 2200us the button will interpreted as low. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 4 Options",User:"Standard"},BTN_PIN1:{Description:`Digital pin number for first button input. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"First button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_PIN2:{Description:`Digital pin number for second button input. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Second button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_PIN3:{Description:`Digital pin number for third button input. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Third button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_PIN4:{Description:`Digital pin number for fourth button input. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Fourth button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_REPORT_SEND:{Description:"The duration in seconds that a BUTTON_CHANGE report is repeatedly sent to the GCS regarding a button changing state. Note that the BUTTON_CHANGE message is MAVLink2 only.",DisplayName:"Report send time",Range:{high:"3600",low:"0"},User:"Standard"}},vB={CAM_AUTO_ONLY:{Description:"When enabled, trigging by distance is done in AUTO mode only.",DisplayName:"Distance-trigging in AUTO mode only",User:"Standard",Values:{0:"Always",1:"Only when in AUTO"}},CAM_DURATION:{Description:"How long the shutter will be held open in 10ths of a second (i.e. enter 10 for 1second, 50 for 5seconds)",DisplayName:"Duration that shutter is held open",Range:{high:"50",low:"0"},Units:"ds",User:"Standard"},CAM_FEEDBACK_PIN:{Description:`pin number to use for save accurate camera feedback messages. If set to -1 then don't use a pin flag for this, otherwise this is a pin number which if held high after a picture trigger order, will save camera messages when camera really takes a picture. A universal camera hot shoe is needed. The pin should be held high for at least 2 milliseconds for reliable trigger detection. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot. See also the CAM_FEEDBACK_POL option.`,DisplayName:"Camera feedback pin",RebootRequired:"True",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},CAM_FEEDBACK_POL:{Description:"Polarity for feedback pin. If this is 1 then the feedback pin should go high on trigger. If set to 0 then it should go low",DisplayName:"Camera feedback pin polarity",User:"Standard",Values:{0:"TriggerLow",1:"TriggerHigh"}},CAM_MAX_ROLL:{Description:"Postpone shooting if roll is greater than limit. (0=Disable, will shoot regardless of roll).",DisplayName:"Maximum photo roll angle.",Range:{high:"180",low:"0"},Units:"deg",User:"Standard"},CAM_MIN_INTERVAL:{Description:"Postpone shooting if previous picture was taken less than preset time(ms) ago.",DisplayName:"Minimum time between photos",Range:{high:"10000",low:"0"},Units:"ms",User:"Standard"},CAM_RELAY_ON:{Description:"This sets whether the relay goes high or low when it triggers. Note that you should also set RELAY_DEFAULT appropriately for your camera",DisplayName:"Relay ON value",User:"Standard",Values:{0:"Low",1:"High"}},CAM_SERVO_OFF:{Description:"PWM value in microseconds to move servo to when shutter is deactivated",DisplayName:"Servo OFF PWM value",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CAM_SERVO_ON:{Description:"PWM value in microseconds to move servo to when shutter is activated",DisplayName:"Servo ON PWM value",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CAM_TRIGG_DIST:{Description:"Distance in meters between camera triggers. If this value is non-zero then the camera will trigger whenever the position changes by this number of meters regardless of what mode the APM is in. Note that this parameter can also be set in an auto mission using the DO_SET_CAM_TRIGG_DIST command, allowing you to enable/disable the triggering of the camera during the flight.",DisplayName:"Camera trigger distance",Range:{high:"1000",low:"0"},Units:"m",User:"Standard"},CAM_TRIGG_TYPE:{Description:"how to trigger the camera to take a picture",DisplayName:"Camera shutter (trigger) type",User:"Standard",Values:{0:"Servo",1:"Relay",2:"GoPro in Solo Gimbal"}},CAM_TYPE:{Description:"Set the camera type that is being used, certain cameras have custom functions that need further configuration, this enables that.",DisplayName:"Type of camera (0: None, 1: BMMCC)",User:"Standard",Values:{0:"Default",1:"BMMCC"}}},_B={CAM_RC_BTN_DELAY:{Description:"Time it takes for the a RunCam button press to be actived in ms. If this is too short then commands can get out of sync.",DisplayName:"RunCam button delay before allowing further button presses",User:"Advanced"},CAM_RC_BT_DELAY:{Description:"Time it takes for the RunCam to become fully ready in ms. If this is too short then commands can get out of sync.",DisplayName:"RunCam boot delay before allowing updates",User:"Advanced"},CAM_RC_CONTROL:{Bitmask:{0:"Stick yaw right",1:"Stick roll right",2:"3-position switch",3:"2-position switch",4:"Autorecording enabled"},Description:"Specifies the allowed actions required to enter the OSD menu",DisplayName:"RunCam control option",User:"Advanced"},CAM_RC_FEATURES:{Bitmask:{0:"Power Button",1:"WiFi Button",2:"Change Mode",3:"5-Key OSD",4:"Settings Access",5:"DisplayPort",6:"Start Recording",7:"Stop Recording"},Description:"The available features of the attached RunCam device. If 0 then the RunCam device will be queried for the features it supports, otherwise this setting is used.",DisplayName:"RunCam features available",User:"Advanced"},CAM_RC_MDE_DELAY:{Description:"Time it takes for the a RunCam mode button press to be actived in ms. If a mode change first requires a video recording change then double this value is used. If this is too short then commands can get out of sync.",DisplayName:"RunCam mode delay before allowing further button presses",User:"Advanced"},CAM_RC_TYPE:{Description:"RunCam deviee type used to determine OSD menu structure and shutter options.",DisplayName:"RunCam device type",Values:{0:"Disabled",1:"RunCam Split Micro/RunCam with UART",2:"RunCam Split",3:"RunCam Split4 4k",4:"RunCam Hybrid"}}},SB={CAN_LOGLEVEL:{Description:"Loglevel for recording initialisation and debug information from CAN Interface",DisplayName:"Loglevel",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Log None",1:"Log Error",2:"Log Warning and below",3:"Log Info and below",4:"Log Everything"}}},DB={CAN_D1_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"DroneCAN",4:"PiccoloCAN",5:"CANTester",6:"EFI_NWPMU",7:"USD1",8:"KDECAN",10:"Scripting",11:"Benewake",12:"Scripting2"}}},yB={CAN_D1_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},RB={CAN_D1_PC_ECU_ID:{Description:"Node ID to send ECU throttle messages to. Set to zero to disable ECU throttle messages. Set to 255 to broadcast to all ECUs.",DisplayName:"ECU Node ID",Range:{high:"255",low:"0"},User:"Advanced"},CAN_D1_PC_ECU_RT:{Description:"Output rate of ECU command messages",DisplayName:"ECU command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D1_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D1_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D1_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D1_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},bB={CAN_D1_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC",7:"TEST_UAVCAN_FD_ESC"}},CAN_D1_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},NB={CAN_D1_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"Output channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D1_UC_ESC_OF:{Description:"Offset for ESC numbering in DroneCAN ESC RawCommand messages. This allows for more efficient packing of ESC command messages. If your ESCs are on servo functions 5 to 8 and you set this parameter to 4 then the ESC RawCommand will be sent with the first 4 slots filled. This can be used for more efficint usage of CAN bandwidth",DisplayName:"ESC Output channels offset",Range:{high:"18",low:"0"},User:"Advanced"},CAN_D1_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D1_UC_NTF_RT:{Description:"Maximum transmit rate for Notify State Message",DisplayName:"Notify State rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"},CAN_D1_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts",2:"EnableCanfd",3:"IgnoreDNANodeUnhealthy"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D1_UC_POOL:{Description:"Amount of memory in bytes to allocate for the DroneCAN memory pool. More memory is needed for higher CAN bus loads",DisplayName:"CAN pool size",Range:{high:"16384",low:"1024"},User:"Advanced"},CAN_D1_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16",16:"Servo 17",17:"Servo 18",18:"Servo 19",19:"Servo 20",20:"Servo 21",21:"Servo 22",22:"Servo 23",23:"Servo 24",24:"Servo 25",25:"Servo 26",26:"Servo 27",27:"Servo 28",28:"Servo 29",29:"Servo 30",30:"Servo 31",31:"Servo 32"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"Output channels to be transmitted as servo over UAVCAN"},CAN_D1_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},wB={CAN_D2_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"DroneCAN",4:"PiccoloCAN",5:"CANTester",6:"EFI_NWPMU",7:"USD1",8:"KDECAN",10:"Scripting",11:"Benewake",12:"Scripting2"}}},TB={CAN_D2_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},EB={CAN_D2_PC_ECU_ID:{Description:"Node ID to send ECU throttle messages to. Set to zero to disable ECU throttle messages. Set to 255 to broadcast to all ECUs.",DisplayName:"ECU Node ID",Range:{high:"255",low:"0"},User:"Advanced"},CAN_D2_PC_ECU_RT:{Description:"Output rate of ECU command messages",DisplayName:"ECU command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D2_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D2_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D2_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D2_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},PB={CAN_D2_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC",7:"TEST_UAVCAN_FD_ESC"}},CAN_D2_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},IB={CAN_D2_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"Output channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D2_UC_ESC_OF:{Description:"Offset for ESC numbering in DroneCAN ESC RawCommand messages. This allows for more efficient packing of ESC command messages. If your ESCs are on servo functions 5 to 8 and you set this parameter to 4 then the ESC RawCommand will be sent with the first 4 slots filled. This can be used for more efficint usage of CAN bandwidth",DisplayName:"ESC Output channels offset",Range:{high:"18",low:"0"},User:"Advanced"},CAN_D2_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D2_UC_NTF_RT:{Description:"Maximum transmit rate for Notify State Message",DisplayName:"Notify State rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"},CAN_D2_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts",2:"EnableCanfd",3:"IgnoreDNANodeUnhealthy"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D2_UC_POOL:{Description:"Amount of memory in bytes to allocate for the DroneCAN memory pool. More memory is needed for higher CAN bus loads",DisplayName:"CAN pool size",Range:{high:"16384",low:"1024"},User:"Advanced"},CAN_D2_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16",16:"Servo 17",17:"Servo 18",18:"Servo 19",19:"Servo 20",20:"Servo 21",21:"Servo 22",22:"Servo 23",23:"Servo 24",24:"Servo 25",25:"Servo 26",26:"Servo 27",27:"Servo 28",28:"Servo 29",29:"Servo 30",30:"Servo 31",31:"Servo 32"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"Output channels to be transmitted as servo over UAVCAN"},CAN_D2_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},OB={CAN_D3_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"DroneCAN",4:"PiccoloCAN",5:"CANTester",6:"EFI_NWPMU",7:"USD1",8:"KDECAN",10:"Scripting",11:"Benewake",12:"Scripting2"}}},UB={CAN_D3_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},xB={CAN_D3_PC_ECU_ID:{Description:"Node ID to send ECU throttle messages to. Set to zero to disable ECU throttle messages. Set to 255 to broadcast to all ECUs.",DisplayName:"ECU Node ID",Range:{high:"255",low:"0"},User:"Advanced"},CAN_D3_PC_ECU_RT:{Description:"Output rate of ECU command messages",DisplayName:"ECU command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D3_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D3_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D3_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D3_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},FB={CAN_D3_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC",7:"TEST_UAVCAN_FD_ESC"}},CAN_D3_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},kB={CAN_D3_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"Output channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D3_UC_ESC_OF:{Description:"Offset for ESC numbering in DroneCAN ESC RawCommand messages. This allows for more efficient packing of ESC command messages. If your ESCs are on servo functions 5 to 8 and you set this parameter to 4 then the ESC RawCommand will be sent with the first 4 slots filled. This can be used for more efficint usage of CAN bandwidth",DisplayName:"ESC Output channels offset",Range:{high:"18",low:"0"},User:"Advanced"},CAN_D3_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D3_UC_NTF_RT:{Description:"Maximum transmit rate for Notify State Message",DisplayName:"Notify State rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"},CAN_D3_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts",2:"EnableCanfd",3:"IgnoreDNANodeUnhealthy"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D3_UC_POOL:{Description:"Amount of memory in bytes to allocate for the DroneCAN memory pool. More memory is needed for higher CAN bus loads",DisplayName:"CAN pool size",Range:{high:"16384",low:"1024"},User:"Advanced"},CAN_D3_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16",16:"Servo 17",17:"Servo 18",18:"Servo 19",19:"Servo 20",20:"Servo 21",21:"Servo 22",22:"Servo 23",23:"Servo 24",24:"Servo 25",25:"Servo 26",26:"Servo 27",27:"Servo 28",28:"Servo 29",29:"Servo 30",30:"Servo 31",31:"Servo 32"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"Output channels to be transmitted as servo over UAVCAN"},CAN_D3_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},BB={CAN_P1_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P1_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver",3:"Third driver"}},CAN_P1_FDBITRATE:{Description:"Bit rate can be set up to from 1000000 to 8000000",DisplayName:"Bitrate of CANFD interface",User:"Advanced",Values:{1:"1M",2:"2M",4:"4M",5:"5M",8:"8M"}}},zB={CAN_P2_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P2_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver",3:"Third driver"}},CAN_P2_FDBITRATE:{Description:"Bit rate can be set up to from 1000000 to 8000000",DisplayName:"Bitrate of CANFD interface",User:"Advanced",Values:{1:"1M",2:"2M",4:"4M",5:"5M",8:"8M"}}},ZB={CAN_P3_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P3_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver",3:"Third driver"}},CAN_P3_FDBITRATE:{Description:"Bit rate can be set up to from 1000000 to 8000000",DisplayName:"Bitrate of CANFD interface",User:"Advanced",Values:{1:"1M",2:"2M",4:"4M",5:"5M",8:"8M"}}},GB={CAN_SLCAN_CPORT:{Description:"CAN Interface ID to be routed to SLCAN, 0 means no routing",DisplayName:"SLCAN Route",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First interface",2:"Second interface"}},CAN_SLCAN_SDELAY:{Description:"Duration after which slcan starts after setting SERNUM in seconds.",DisplayName:"SLCAN Start Delay",Range:{high:"127",low:"0"},User:"Standard"},CAN_SLCAN_SERNUM:{Description:"Serial Port ID to be used for temporary SLCAN iface, -1 means no temporary serial. This parameter is automatically reset on reboot or on timeout. See CAN_SLCAN_TIMOUT for timeout details",DisplayName:"SLCAN Serial Port",User:"Standard",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},CAN_SLCAN_TIMOUT:{Description:"Duration of inactivity after which SLCAN is switched back to original driver in seconds.",DisplayName:"SLCAN Timeout",Range:{high:"127",low:"0"},User:"Standard"}},WB={CC_AXIS_MASK:{Bitmask:{0:"Roll",1:"Pitch",2:"Yaw"},Description:"Custom Controller bitmask to chose which axis to run",DisplayName:"Custom Controller bitmask",User:"Advanced"},CC_TYPE:{Description:"Custom control type to be used",DisplayName:"Custom control type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Empty",2:"PID"}}},XB={CHUTE_ALT_MIN:{Description:"Parachute min altitude above home. Parachute will not be released below this altitude. 0 to disable alt check.",DisplayName:"Parachute min altitude in meters above home",Increment:"1",Range:{high:"32000",low:"0"},Units:"m",User:"Standard"},CHUTE_CRT_SINK:{Description:"Release parachute when critical sink rate is reached",DisplayName:"Critical sink speed rate in m/s to trigger emergency parachute",Increment:"1",Range:{high:"15",low:"0"},Units:"m/s",User:"Standard"},CHUTE_DELAY_MS:{Description:"Delay in millseconds between motor stop and chute release",DisplayName:"Parachute release delay",Increment:"1",Range:{high:"5000",low:"0"},Units:"ms",User:"Standard"},CHUTE_ENABLED:{Description:"Parachute release enabled or disabled",DisplayName:"Parachute release enabled or disabled",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},CHUTE_OPTIONS:{Bitmask:{0:"hold open forever after release"},Description:"Optional behaviour for parachute",DisplayName:"Parachute options",User:"Standard"},CHUTE_SERVO_OFF:{Description:"Parachute Servo PWM value in microseconds when parachute is not released",DisplayName:"Servo OFF PWM value",Increment:"1",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CHUTE_SERVO_ON:{Description:"Parachute Servo PWM value in microseconds when parachute is released",DisplayName:"Parachute Servo ON PWM value",Increment:"1",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CHUTE_TYPE:{Description:"Parachute release mechanism type (relay or servo)",DisplayName:"Parachute release mechanism type (relay or servo)",User:"Standard",Values:{0:"First Relay",1:"Second Relay",2:"Third Relay",3:"Fourth Relay",10:"Servo"}}},YB={CIRCLE_OPTIONS:{Bitmask:{0:"manual control",1:"face direction of travel",2:"Start at center rather than on perimeter"},Description:"0:Enable or disable using the pitch/roll stick control circle mode's radius and rate",DisplayName:"Circle options",User:"Standard"},CIRCLE_RADIUS:{Description:"Defines the radius of the circle the vehicle will fly when in Circle flight mode",DisplayName:"Circle Radius",Increment:"100",Range:{high:"200000",low:"0"},Units:"cm",User:"Standard"},CIRCLE_RATE:{Description:"Circle mode's turn rate in deg/sec. Positive to turn clockwise, negative for counter clockwise",DisplayName:"Circle rate",Increment:"1",Range:{high:"90",low:"-90"},Units:"deg/s",User:"Standard"}},$B={COMPASS_AUTODEC:{Description:"Enable or disable the automatic calculation of the declination based on gps location",DisplayName:"Auto Declination",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_AUTO_ROT:{Description:"When enabled this will automatically check the orientation of compasses on successful completion of compass calibration. If set to 2 then external compasses will have their orientation automatically corrected.",DisplayName:"Automatically check orientation",Values:{0:"Disabled",1:"CheckOnly",2:"CheckAndFix",3:"use same tolerance to auto rotate 45 deg rotations"}},COMPASS_CAL_FIT:{Description:"This controls the fitness level required for a successful compass calibration. A lower value makes for a stricter fit (less likely to pass). This is the value used for the primary magnetometer. Other magnetometers get double the value.",DisplayName:"Compass calibration fitness",Increment:"0.1",Range:{high:"32",low:"4"},User:"Advanced",Values:{4:"Very Strict",8:"Strict",16:"Default",32:"Relaxed"}},COMPASS_CUS_PIT:{Description:"Compass mounting position pitch offset. Positive values = pitch up, negative values = pitch down. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation pitch offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_CUS_ROLL:{Description:"Compass mounting position roll offset. Positive values = roll right, negative values = roll left. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation roll offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_CUS_YAW:{Description:"Compass mounting position yaw offset. Positive values = yaw right, negative values = yaw left. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation yaw offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_DEC:{Description:"An angle to compensate between the true north and magnetic north",DisplayName:"Compass declination",Increment:"0.01",Range:{high:"3.142",low:"-3.142"},Units:"rad",User:"Standard"},COMPASS_DEV_ID:{Description:"Compass device id. Automatically detected, do not set manually",DisplayName:"Compass device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID2:{Description:"Second compass's device id. Automatically detected, do not set manually",DisplayName:"Compass2 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID3:{Description:"Third compass's device id. Automatically detected, do not set manually",DisplayName:"Compass3 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID4:{Description:"Extra 4th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass4 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID5:{Description:"Extra 5th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass5 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID6:{Description:"Extra 6th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass6 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID7:{Description:"Extra 7th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass7 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID8:{Description:"Extra 8th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass8 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DIA2_X:{Calibration:"1",Description:"DIA_X in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA2_Y:{Calibration:"1",Description:"DIA_Y in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA2_Z:{Description:"DIA_Z in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal Z component",User:"Advanced"},COMPASS_DIA3_X:{Calibration:"1",Description:"DIA_X in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA3_Y:{Calibration:"1",Description:"DIA_Y in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA3_Z:{Description:"DIA_Z in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal Z component",User:"Advanced"},COMPASS_DIA_X:{Calibration:"1",Description:"DIA_X in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA_Y:{Calibration:"1",Description:"DIA_Y in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA_Z:{Description:"DIA_Z in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal Z component",User:"Advanced"},COMPASS_ENABLE:{Description:"Setting this to Enabled(1) will enable the compass. Setting this to Disabled(0) will disable the compass. Note that this is separate from COMPASS_USE. This will enable the low level senor, and will enable logging of magnetometer data. To use the compass for navigation you must also set COMPASS_USE to 1.",DisplayName:"Enable Compass",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},COMPASS_EXTERN2:{Description:"Configure second compass so it is attached externally. This is auto-detected on most boards. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass2 is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_EXTERN3:{Description:"Configure third compass so it is attached externally. This is auto-detected on most boards. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass3 is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_EXTERNAL:{Description:"Configure compass so it is attached externally. This is auto-detected on most boards. Set to 1 if the compass is externally connected. When externally connected the COMPASS_ORIENT option operates independently of the AHRS_ORIENTATION board orientation option. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_FLTR_RNG:{Description:"This sets the range around the average value that new samples must be within to be accepted. This can help reduce the impact of noise on sensors that are on long I2C cables. The value is a percentage from the average value. A value of zero disables this filter.",DisplayName:"Range in which sample is accepted",Increment:"1",Range:{high:"100",low:"0"},Units:"%"},COMPASS_LEARN:{Description:"Enable or disable the automatic learning of compass offsets. You can enable learning either using a compass-only method that is suitable only for fixed wing aircraft or using the offsets learnt by the active EKF state estimator. If this option is enabled then the learnt offsets are saved when you disarm the vehicle. If InFlight learning is enabled then the compass with automatically start learning once a flight starts (must be armed). While InFlight learning is running you cannot use position control modes.",DisplayName:"Learn compass offsets automatically",User:"Advanced",Values:{0:"Disabled",1:"Internal-Learning",2:"EKF-Learning",3:"InFlight-Learning"}},COMPASS_MOT2_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass2's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT2_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass2's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT2_Z:{Description:"Multiplied by the current throttle and added to compass2's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass3's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass3's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_Z:{Description:"Multiplied by the current throttle and added to compass3's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOTCT:{Calibration:"1",Description:"Set motor interference compensation type to disabled, throttle or current. Do not change manually.",DisplayName:"Motor interference compensation type",User:"Advanced",Values:{0:"Disabled",1:"Use Throttle",2:"Use Current"}},COMPASS_MOT_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to the compass's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to the compass's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT_Z:{Description:"Multiplied by the current throttle and added to the compass's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_ODI2_X:{Calibration:"1",Description:"ODI_X in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI2_Y:{Calibration:"1",Description:"ODI_Y in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI2_Z:{Description:"ODI_Z in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_ODI3_X:{Calibration:"1",Description:"ODI_X in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI3_Y:{Calibration:"1",Description:"ODI_Y in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI3_Z:{Description:"ODI_Z in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_ODI_X:{Calibration:"1",Description:"ODI_X in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI_Y:{Calibration:"1",Description:"ODI_Y in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI_Z:{Description:"ODI_Z in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_OFFS_MAX:{Description:"This sets the maximum allowed compass offset in calibration and arming checks",DisplayName:"Compass maximum offset",Increment:"1",Range:{high:"3000",low:"500"},User:"Advanced"},COMPASS_OFS2_X:{Calibration:"1",Description:"Offset to be added to compass2's x-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS2_Y:{Calibration:"1",Description:"Offset to be added to compass2's y-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS2_Z:{Description:"Offset to be added to compass2's z-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_X:{Calibration:"1",Description:"Offset to be added to compass3's x-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_Y:{Calibration:"1",Description:"Offset to be added to compass3's y-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_Z:{Description:"Offset to be added to compass3's z-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_X:{Calibration:"1",Description:"Offset to be added to the compass x-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_Y:{Calibration:"1",Description:"Offset to be added to the compass y-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_Z:{Description:"Offset to be added to the compass z-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OPTIONS:{Bitmask:{0:"CalRequireGPS"},Description:"This sets options to change the behaviour of the compass",DisplayName:"Compass options",User:"Advanced"},COMPASS_ORIENT:{Description:"The orientation of the first external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used. The label for each option is specified in the order of rotations for that orientation. Firmware versions 4.2 and prior can use a CUSTOM (100) rotation to set the COMPASS_CUS_ROLL/PIT/YAW angles for Compass orientation. Later versions provide two general custom rotations which can be used, Custom 1 and Custom 2, with CUST_1_ROLL/PIT/YAW or CUST_2_ROLL/PIT/YAW angles.",DisplayName:"Compass orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Yaw45Roll180",10:"Yaw90Roll180",11:"Yaw135Roll180",12:"Pitch180",13:"Yaw225Roll180",14:"Yaw270Roll180",15:"Yaw315Roll180",16:"Roll90",17:"Yaw45Roll90",18:"Yaw90Roll90",19:"Yaw135Roll90",20:"Roll270",21:"Yaw45Roll270",22:"Yaw90Roll270",23:"Yaw135Roll270",24:"Pitch90",25:"Pitch270",26:"Yaw90Pitch180",27:"Yaw270Pitch180",28:"Pitch90Roll90",29:"Pitch90Roll180",30:"Pitch90Roll270",31:"Pitch180Roll90",32:"Pitch180Roll270",33:"Pitch270Roll90",34:"Pitch270Roll180",35:"Pitch270Roll270",36:"Yaw90Pitch180Roll90",37:"Yaw270Roll90",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Pitch315Roll90",42:"Roll45",43:"Roll315",100:"Custom 4.1 and older",101:"Custom 1",102:"Custom 2"}},COMPASS_ORIENT2:{Description:"The orientation of a second external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used. The label for each option is specified in the order of rotations for that orientation. Firmware versions 4.2 and prior can use a CUSTOM (100) rotation to set the COMPASS_CUS_ROLL/PIT/YAW angles for Compass orientation. Later versions provide two general custom rotations which can be used, Custom 1 and Custom 2, with CUST_1_ROLL/PIT/YAW or CUST_2_ROLL/PIT/YAW angles.",DisplayName:"Compass2 orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Yaw45Roll180",10:"Yaw90Roll180",11:"Yaw135Roll180",12:"Pitch180",13:"Yaw225Roll180",14:"Yaw270Roll180",15:"Yaw315Roll180",16:"Roll90",17:"Yaw45Roll90",18:"Yaw90Roll90",19:"Yaw135Roll90",20:"Roll270",21:"Yaw45Roll270",22:"Yaw90Roll270",23:"Yaw135Roll270",24:"Pitch90",25:"Pitch270",26:"Yaw90Pitch180",27:"Yaw270Pitch180",28:"Pitch90Roll90",29:"Pitch90Roll180",30:"Pitch90Roll270",31:"Pitch180Roll90",32:"Pitch180Roll270",33:"Pitch270Roll90",34:"Pitch270Roll180",35:"Pitch270Roll270",36:"Yaw90Pitch180Roll90",37:"Yaw270Roll90",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Pitch315Roll90",42:"Roll45",43:"Roll315",100:"Custom 4.1 and older",101:"Custom 1",102:"Custom 2"}},COMPASS_ORIENT3:{Description:"The orientation of a third external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used. The label for each option is specified in the order of rotations for that orientation. Firmware versions 4.2 and prior can use a CUSTOM (100) rotation to set the COMPASS_CUS_ROLL/PIT/YAW angles for Compass orientation. Later versions provide two general custom rotations which can be used, Custom 1 and Custom 2, with CUST_1_ROLL/PIT/YAW or CUST_2_ROLL/PIT/YAW angles.",DisplayName:"Compass3 orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Yaw45Roll180",10:"Yaw90Roll180",11:"Yaw135Roll180",12:"Pitch180",13:"Yaw225Roll180",14:"Yaw270Roll180",15:"Yaw315Roll180",16:"Roll90",17:"Yaw45Roll90",18:"Yaw90Roll90",19:"Yaw135Roll90",20:"Roll270",21:"Yaw45Roll270",22:"Yaw90Roll270",23:"Yaw135Roll270",24:"Pitch90",25:"Pitch270",26:"Yaw90Pitch180",27:"Yaw270Pitch180",28:"Pitch90Roll90",29:"Pitch90Roll180",30:"Pitch90Roll270",31:"Pitch180Roll90",32:"Pitch180Roll270",33:"Pitch270Roll90",34:"Pitch270Roll180",35:"Pitch270Roll270",36:"Yaw90Pitch180Roll90",37:"Yaw270Roll90",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Pitch315Roll90",42:"Roll45",43:"Roll315",100:"Custom 4.1 and older",101:"Custom 1",102:"Custom 2"}},COMPASS_PRIO1_ID:{Description:"Compass device id with 1st order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 1st order priority",RebootRequired:"True",User:"Advanced"},COMPASS_PRIO2_ID:{Description:"Compass device id with 2nd order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 2nd order priority",RebootRequired:"True",User:"Advanced"},COMPASS_PRIO3_ID:{Description:"Compass device id with 3rd order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 3rd order priority",RebootRequired:"True",User:"Advanced"},COMPASS_SCALE:{Description:"Scaling factor for first compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass1 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_SCALE2:{Description:"Scaling factor for 2nd compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass2 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_SCALE3:{Description:"Scaling factor for 3rd compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass3 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_TYPEMASK:{Bitmask:{0:"HMC5883",1:"LSM303D",2:"AK8963",3:"BMM150",4:"LSM9DS1",5:"LIS3MDL",6:"AK09916",7:"IST8310",8:"ICM20948",9:"MMC3416",11:"DroneCAN",12:"QMC5883",14:"MAG3110",15:"IST8308",16:"RM3100",17:"MSP",18:"ExternalAHRS"},Description:"This is a bitmask of driver types to disable. If a driver type is set in this mask then that driver will not try to find a sensor at startup",DisplayName:"Compass disable driver type mask",User:"Advanced"},COMPASS_USE:{Description:"Enable or disable the use of the compass (instead of the GPS) for determining heading",DisplayName:"Use compass for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_USE2:{Description:"Enable or disable the secondary compass for determining heading.",DisplayName:"Compass2 used for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_USE3:{Description:"Enable or disable the tertiary compass for determining heading.",DisplayName:"Compass3 used for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}}},qB={COMPASS_PMOT1_X:{Description:"Compensation for X axis of motor1",DisplayName:"Compass per-motor1 X",User:"Advanced"},COMPASS_PMOT1_Y:{Description:"Compensation for Y axis of motor1",DisplayName:"Compass per-motor1 Y",User:"Advanced"},COMPASS_PMOT1_Z:{Description:"Compensation for Z axis of motor1",DisplayName:"Compass per-motor1 Z",User:"Advanced"},COMPASS_PMOT2_X:{Description:"Compensation for X axis of motor2",DisplayName:"Compass per-motor2 X",User:"Advanced"},COMPASS_PMOT2_Y:{Description:"Compensation for Y axis of motor2",DisplayName:"Compass per-motor2 Y",User:"Advanced"},COMPASS_PMOT2_Z:{Description:"Compensation for Z axis of motor2",DisplayName:"Compass per-motor2 Z",User:"Advanced"},COMPASS_PMOT3_X:{Description:"Compensation for X axis of motor3",DisplayName:"Compass per-motor3 X",User:"Advanced"},COMPASS_PMOT3_Y:{Description:"Compensation for Y axis of motor3",DisplayName:"Compass per-motor3 Y",User:"Advanced"},COMPASS_PMOT3_Z:{Description:"Compensation for Z axis of motor3",DisplayName:"Compass per-motor3 Z",User:"Advanced"},COMPASS_PMOT4_X:{Description:"Compensation for X axis of motor4",DisplayName:"Compass per-motor4 X",User:"Advanced"},COMPASS_PMOT4_Y:{Description:"Compensation for Y axis of motor4",DisplayName:"Compass per-motor4 Y",User:"Advanced"},COMPASS_PMOT4_Z:{Description:"Compensation for Z axis of motor4",DisplayName:"Compass per-motor4 Z",User:"Advanced"},COMPASS_PMOT_EN:{Description:"This enables per-motor compass corrections",DisplayName:"per-motor compass correction enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_PMOT_EXP:{Description:"This is the exponential correction for the power output of the motor for per-motor compass correction",DisplayName:"per-motor exponential correction",Increment:"0.01",Range:{high:"2",low:"0"},User:"Advanced"}},KB={CUST_ROT_ENABLE:{Description:"This enables custom rotations",DisplayName:"Enable Custom rotations",RebootRequired:"True",User:"Standard",Values:{0:"Disable",1:"Enable"}}},jB={CUST_ROT1_PITCH:{Description:"Custom euler pitch, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom pitch",RebootRequired:"True",Units:"deg"},CUST_ROT1_ROLL:{Description:"Custom euler roll, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom roll",RebootRequired:"True",Units:"deg"},CUST_ROT1_YAW:{Description:"Custom euler yaw, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom yaw",RebootRequired:"True",Units:"deg"}},QB={CUST_ROT2_PITCH:{Description:"Custom euler pitch, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom pitch",RebootRequired:"True",Units:"deg"},CUST_ROT2_ROLL:{Description:"Custom euler roll, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom roll",RebootRequired:"True",Units:"deg"},CUST_ROT2_YAW:{Description:"Custom euler yaw, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom yaw",RebootRequired:"True",Units:"deg"}},JB={ACRO_BAL_PITCH:{Description:"rate at which pitch angle returns to level in acro and sport mode. A higher value causes the vehicle to return to level faster. For helicopter sets the decay rate of the virtual flybar in the pitch axis. A higher value causes faster decay of desired to actual attitude.",DisplayName:"Acro Balance Pitch",Increment:"0.1",Range:{high:"3",low:"0"},User:"Advanced"},ACRO_BAL_ROLL:{Description:"rate at which roll angle returns to level in acro and sport mode. A higher value causes the vehicle to return to level faster. For helicopter sets the decay rate of the virtual flybar in the roll axis. A higher value causes faster decay of desired to actual attitude.",DisplayName:"Acro Balance Roll",Increment:"0.1",Range:{high:"3",low:"0"},User:"Advanced"},ACRO_OPTIONS:{Bitmask:{0:"Air-mode",1:"Rate Loop Only"},Description:"A range of options that can be applied to change acro mode behaviour. Air-mode enables ATC_THR_MIX_MAN at all times (air-mode has no effect on helicopters). Rate Loop Only disables the use of angle stabilization and uses angular rate stabilization only.",DisplayName:"Acro mode options",User:"Advanced"},ACRO_RP_EXPO:{Description:"Acro roll/pitch Expo to allow faster rotation when stick at edges",DisplayName:"Acro Roll/Pitch Expo",Range:{high:"0.95",low:"-0.5"},User:"Advanced",Values:{0:"Disabled","0.1":"Very Low","0.2":"Low","0.3":"Medium","0.4":"High","0.5":"Very High"}},ACRO_RP_RATE:{Description:"Acro mode maximum roll and pitch rate. Higher values mean faster rate of rotation",DisplayName:"Acro Roll and Pitch Rate",Range:{high:"1080",low:"1"},Units:"deg/s",User:"Standard"},ACRO_RP_RATE_TC:{Description:"Acro roll and pitch rate control input time constant. Low numbers lead to sharper response, higher numbers to softer response",DisplayName:"Acro roll/pitch rate control input time constant",Increment:"0.01",Range:{high:"1",low:"0"},Units:"s",User:"Standard",Values:{"0.05":"Very Crisp","0.1":"Crisp","0.15":"Medium","0.2":"Soft","0.5":"Very Soft"}},ACRO_THR_MID:{Description:"Acro Throttle Mid",DisplayName:"Acro Thr Mid",Range:{high:"1",low:"0"},User:"Advanced"},ACRO_TRAINER:{Description:"Type of trainer used in acro mode",DisplayName:"Acro Trainer",User:"Advanced",Values:{0:"Disabled",1:"Leveling",2:"Leveling and Limited"}},ACRO_Y_EXPO:{Description:"Acro yaw expo to allow faster rotation when stick at edges",DisplayName:"Acro Yaw Expo",Range:{high:"0.95",low:"-1.0"},User:"Advanced",Values:{0:"Disabled","0.1":"Very Low","0.2":"Low","0.3":"Medium","0.4":"High","0.5":"Very High"}},ACRO_Y_RATE:{Description:"Acro mode maximum yaw rate. Higher value means faster rate of rotation",DisplayName:"Acro Yaw Rate",Range:{high:"360",low:"1"},Units:"deg/s",User:"Standard"},ACRO_Y_RATE_TC:{Description:"Acro yaw rate control input time constant. Low numbers lead to sharper response, higher numbers to softer response",DisplayName:"Acro yaw rate control input time constant",Increment:"0.01",Range:{high:"1",low:"0"},Units:"s",User:"Standard",Values:{"0.05":"Very Crisp","0.1":"Crisp","0.15":"Medium","0.2":"Soft","0.5":"Very Soft"}},ANGLE_MAX:{Description:"Maximum lean angle in all flight modes",DisplayName:"Angle Max",Increment:"10",Range:{high:"8000",low:"1000"},Units:"cdeg",User:"Advanced"},AUTO_OPTIONS:{Bitmask:{0:"Allow Arming",1:"Allow Takeoff Without Raising Throttle",2:"Ignore pilot yaw"},Description:"A range of options that can be applied to change auto mode behaviour. Allow Arming allows the copter to be armed in Auto. Allow Takeoff Without Raising Throttle allows takeoff without the pilot having to raise the throttle. Ignore pilot yaw overrides the pilot's yaw stick being used while in auto.",DisplayName:"Auto mode options",User:"Advanced"},DEV_OPTIONS:{Bitmask:{0:"ADSBMavlinkProcessing",1:"DevOptionVFR_HUDRelativeAlt"},Description:"Bitmask of developer options. The meanings of the bit fields in this parameter may vary at any time. Developers should check the source code for current meaning",DisplayName:"Development options",User:"Advanced"},DISARM_DELAY:{Description:"Delay before automatic disarm in seconds after landing touchdown detection. A value of zero disables auto disarm. If Emergency Motor stop active, delay time is half this value.",DisplayName:"Disarm delay",Range:{high:"127",low:"0"},Units:"s",User:"Advanced"},ESC_CALIBRATION:{Description:"Controls whether ArduCopter will enter ESC calibration on the next restart. Do not adjust this parameter manually.",DisplayName:"ESC Calibration",User:"Advanced",Values:{0:"Normal Start-up",1:"Start-up in ESC Calibration mode if throttle high",2:"Start-up in ESC Calibration mode regardless of throttle",3:"Start-up and automatically calibrate ESCs",9:"Disabled"}},FLIGHT_OPTIONS:{Bitmask:{0:"Disable thrust loss check",1:"Disable yaw imbalance warning",2:"Release gripper on thrust loss"},Description:"Flight mode specific options",DisplayName:"Flight mode options",User:"Advanced"},FLTMODE1:{Description:"Flight mode when pwm of Flightmode channel(FLTMODE_CH) is <= 1230",DisplayName:"Flight Mode 1",User:"Standard",Values:{0:"Stabilize",1:"Acro",2:"AltHold",3:"Auto",4:"Guided",5:"Loiter",6:"RTL",7:"Circle",9:"Land",11:"Drift",13:"Sport",14:"Flip",15:"AutoTune",16:"PosHold",17:"Brake",18:"Throw",19:"Avoid_ADSB",20:"Guided_NoGPS",21:"Smart_RTL",22:"FlowHold",23:"Follow",24:"ZigZag",25:"SystemID",26:"Heli_Autorotate",27:"Auto RTL"}},FLTMODE2:{Description:"Flight mode when pwm of Flightmode channel(FLTMODE_CH) is >1230, <= 1360",DisplayName:"Flight Mode 2",User:"Standard",Values:{0:"Stabilize",1:"Acro",2:"AltHold",3:"Auto",4:"Guided",5:"Loiter",6:"RTL",7:"Circle",9:"Land",11:"Drift",13:"Sport",14:"Flip",15:"AutoTune",16:"PosHold",17:"Brake",18:"Throw",19:"Avoid_ADSB",20:"Guided_NoGPS",21:"Smart_RTL",22:"FlowHold",23:"Follow",24:"ZigZag",25:"SystemID",26:"Heli_Autorotate",27:"Auto RTL"}},FLTMODE3:{Description:"Flight mode when pwm of Flightmode channel(FLTMODE_CH) is >1360, <= 1490",DisplayName:"Flight Mode 3",User:"Standard",Values:{0:"Stabilize",1:"Acro",2:"AltHold",3:"Auto",4:"Guided",5:"Loiter",6:"RTL",7:"Circle",9:"Land",11:"Drift",13:"Sport",14:"Flip",15:"AutoTune",16:"PosHold",17:"Brake",18:"Throw",19:"Avoid_ADSB",20:"Guided_NoGPS",21:"Smart_RTL",22:"FlowHold",23:"Follow",24:"ZigZag",25:"SystemID",26:"Heli_Autorotate",27:"Auto RTL"}},FLTMODE4:{Description:"Flight mode when pwm of Flightmode channel(FLTMODE_CH) is >1490, <= 1620",DisplayName:"Flight Mode 4",User:"Standard",Values:{0:"Stabilize",1:"Acro",2:"AltHold",3:"Auto",4:"Guided",5:"Loiter",6:"RTL",7:"Circle",9:"Land",11:"Drift",13:"Sport",14:"Flip",15:"AutoTune",16:"PosHold",17:"Brake",18:"Throw",19:"Avoid_ADSB",20:"Guided_NoGPS",21:"Smart_RTL",22:"FlowHold",23:"Follow",24:"ZigZag",25:"SystemID",26:"Heli_Autorotate",27:"Auto RTL"}},FLTMODE5:{Description:"Flight mode when pwm of Flightmode channel(FLTMODE_CH) is >1620, <= 1749",DisplayName:"Flight Mode 5",User:"Standard",Values:{0:"Stabilize",1:"Acro",2:"AltHold",3:"Auto",4:"Guided",5:"Loiter",6:"RTL",7:"Circle",9:"Land",11:"Drift",13:"Sport",14:"Flip",15:"AutoTune",16:"PosHold",17:"Brake",18:"Throw",19:"Avoid_ADSB",20:"Guided_NoGPS",21:"Smart_RTL",22:"FlowHold",23:"Follow",24:"ZigZag",25:"SystemID",26:"Heli_Autorotate",27:"Auto RTL"}},FLTMODE6:{Description:"Flight mode when pwm of Flightmode channel(FLTMODE_CH) is >=1750",DisplayName:"Flight Mode 6",User:"Standard",Values:{0:"Stabilize",1:"Acro",2:"AltHold",3:"Auto",4:"Guided",5:"Loiter",6:"RTL",7:"Circle",9:"Land",11:"Drift",13:"Sport",14:"Flip",15:"AutoTune",16:"PosHold",17:"Brake",18:"Throw",19:"Avoid_ADSB",20:"Guided_NoGPS",21:"Smart_RTL",22:"FlowHold",23:"Follow",24:"ZigZag",25:"SystemID",26:"Heli_Autorotate",27:"Auto RTL"}},FLTMODE_CH:{Description:"RC Channel to use for flight mode control",DisplayName:"Flightmode channel",User:"Advanced",Values:{0:"Disabled",5:"Channel5",6:"Channel6",7:"Channel7",8:"Channel8",9:"Channel9",10:"Channel 10",11:"Channel 11",12:"Channel 12",13:"Channel 13",14:"Channel 14",15:"Channel 15"}},FORMAT_VERSION:{Description:"This value is incremented when changes are made to the eeprom format",DisplayName:"Eeprom format version number",ReadOnly:"True",User:"Advanced"},FRAME_CLASS:{Description:"Controls major frame class for multicopter component",DisplayName:"Frame Class",RebootRequired:"True",User:"Standard",Values:{0:"Undefined",1:"Quad",2:"Hexa",3:"Octa",4:"OctaQuad",5:"Y6",6:"Heli",7:"Tri",8:"SingleCopter",9:"CoaxCopter",10:"BiCopter",11:"Heli_Dual",12:"DodecaHexa",13:"HeliQuad",14:"Deca",15:"Scripting Matrix",16:"6DoF Scripting",17:"Dynamic Scripting Matrix"}},FRAME_TYPE:{Description:"Controls motor mixing for multicopters. Not used for Tri or Traditional Helicopters.",DisplayName:"Frame Type (+, X, V, etc)",RebootRequired:"True",User:"Standard",Values:{0:"Plus",1:"X",2:"V",3:"H",4:"V-Tail",5:"A-Tail",10:"Y6B",11:"Y6F",12:"BetaFlightX",13:"DJIX",14:"ClockwiseX",15:"I",18:"BetaFlightXReversed",19:"Y4"}},FS_CRASH_CHECK:{Description:"This enables automatic crash checking. When enabled the motors will disarm if a crash is detected.",DisplayName:"Crash check enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},FS_DR_ENABLE:{Description:"Failsafe action taken immediately as deadreckoning starts. Deadreckoning starts when EKF loses position and velocity source and relies only on wind estimates",DisplayName:"DeadReckon Failsafe Action",User:"Standard",Values:{0:"Disabled/NoAction",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",6:"Auto DO_LAND_START or RTL"}},FS_DR_TIMEOUT:{Description:"DeadReckoning is available for this many seconds after losing position and/or velocity source. After this timeout elapses the EKF failsafe will trigger in modes requiring a position estimate",DisplayName:"DeadReckon Failsafe Timeout",Range:{high:"120",low:"0"},User:"Standard"},FS_EKF_ACTION:{Description:"Controls the action that will be taken when an EKF failsafe is invoked",DisplayName:"EKF Failsafe Action",User:"Advanced",Values:{1:"Land",2:"AltHold",3:"Land even in Stabilize"}},FS_EKF_THRESH:{Description:"Allows setting the maximum acceptable compass, velocity, position and height variances. Used in arming check and EKF failsafe.",DisplayName:"EKF failsafe variance threshold",User:"Advanced",Values:{"0.6":"Strict","0.8":"Default","1.0":"Relaxed"}},FS_GCS_ENABLE:{Description:"Controls whether failsafe will be invoked (and what action to take) when connection with Ground station is lost for at least 5 seconds. See FS_OPTIONS param for additional actions, or for cases allowing Mission continuation, when GCS failsafe is enabled.",DisplayName:"Ground Station Failsafe Enable",User:"Standard",Values:{0:"Disabled/NoAction",1:"RTL",2:"RTL or Continue with Mission in Auto Mode (Removed in 4.0+-see FS_OPTIONS)",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Land",6:"Auto DO_LAND_START or RTL"}},FS_GCS_TIMEOUT:{Description:"Timeout before triggering the GCS failsafe",DisplayName:"GCS failsafe timeout",Increment:"1",Range:{high:"120",low:"2"},Units:"s",User:"Standard"},FS_OPTIONS:{Bitmask:{0:"Continue if in Auto on RC failsafe",1:"Continue if in Auto on GCS failsafe",2:"Continue if in Guided on RC failsafe",3:"Continue if landing on any failsafe",4:"Continue if in pilot controlled modes on GCS failsafe",5:"Release Gripper"},Description:"Bitmask of additional options for battery, radio, & GCS failsafes. 0 (default) disables all options.",DisplayName:"Failsafe options bitmask",User:"Advanced",Values:{0:"Disabled",1:"Continue if in Auto on RC failsafe only",2:"Continue if in Auto on GCS failsafe only",3:"Continue if in Auto on RC and/or GCS failsafe",4:"Continue if in Guided on RC failsafe only",8:"Continue if landing on any failsafe",16:"Continue if in pilot controlled modes on GCS failsafe",19:"Continue if in Auto on RC and/or GCS failsafe and continue if in pilot controlled modes on GCS failsafe"}},FS_THR_ENABLE:{Description:"The throttle failsafe allows you to configure a software failsafe activated by a setting on the throttle input channel",DisplayName:"Throttle Failsafe Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled always RTL",2:"Enabled Continue with Mission in Auto Mode (Removed in 4.0+)",3:"Enabled always Land",4:"Enabled always SmartRTL or RTL",5:"Enabled always SmartRTL or Land",6:"Enabled Auto DO_LAND_START or RTL"}},FS_THR_VALUE:{Description:"The PWM level in microseconds on channel 3 below which throttle failsafe triggers",DisplayName:"Throttle Failsafe Value",Increment:"1",Range:{high:"1100",low:"910"},Units:"PWM",User:"Standard"},FS_VIBE_ENABLE:{Description:"This enables the vibration failsafe which will use modified altitude estimation and control during high vibrations",DisplayName:"Vibration Failsafe enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},GCS_PID_MASK:{Bitmask:{0:"Roll",1:"Pitch",2:"Yaw",3:"AccelZ"},Description:"bitmask of PIDs to send MAVLink PID_TUNING messages for",DisplayName:"GCS PID tuning mask",User:"Advanced",Values:{0:"None",1:"Roll",2:"Pitch",4:"Yaw",8:"AccelZ"}},GND_EFFECT_COMP:{Description:"Ground Effect Compensation Enable/Disable",DisplayName:"Ground Effect Compensation Enable/Disable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},GPS_HDOP_GOOD:{Description:"GPS Hdop value at or below this value represent a good position. Used for pre-arm checks",DisplayName:"GPS Hdop Good",Range:{high:"900",low:"100"},User:"Advanced"},GUID_OPTIONS:{Bitmask:{0:"Allow Arming from Transmitter",2:"Ignore pilot yaw",3:"SetAttitudeTarget interprets Thrust As Thrust",4:"Do not stabilize PositionXY",5:"Do not stabilize VelocityXY",6:"Waypoint navigation used for position targets"},Description:"Options that can be applied to change guided mode behaviour",DisplayName:"Guided mode options",User:"Advanced"},GUID_TIMEOUT:{Description:"Guided mode timeout after which vehicle will stop or return to level if no updates are received from caller. Only applicable during any combination of velocity, acceleration, angle control, and/or angular rate control",DisplayName:"Guided mode timeout",Range:{high:"5",low:"0.1"},Units:"s",User:"Advanced"},INITIAL_MODE:{Description:"This selects the mode to start in on boot. This is useful for when you want to start in AUTO mode on boot without a receiver.",DisplayName:"Initial flight mode",User:"Advanced",Values:{0:"Stabilize",1:"Acro",2:"AltHold",3:"Auto",4:"Guided",5:"Loiter",6:"RTL",7:"Circle",9:"Land",11:"Drift",13:"Sport",14:"Flip",15:"AutoTune",16:"PosHold",17:"Brake",18:"Throw",19:"Avoid_ADSB",20:"Guided_NoGPS",21:"Smart_RTL",22:"FlowHold",23:"Follow",24:"ZigZag",25:"SystemID",26:"Heli_Autorotate"}},LAND_ALT_LOW:{Description:"Altitude during Landing at which vehicle slows to LAND_SPEED",DisplayName:"Land alt low",Increment:"10",Range:{high:"10000",low:"100"},Units:"cm",User:"Advanced"},LAND_REPOSITION:{Description:"Enables user input during LAND mode, the landing phase of RTL, and auto mode landings.",DisplayName:"Land repositioning",User:"Advanced",Values:{0:"No repositioning",1:"Repositioning"}},LAND_SPEED:{Description:"The descent speed for the final stage of landing in cm/s",DisplayName:"Land speed",Increment:"10",Range:{high:"200",low:"30"},Units:"cm/s",User:"Standard"},LAND_SPEED_HIGH:{Description:"The descent speed for the first stage of landing in cm/s. If this is zero then WPNAV_SPEED_DN is used",DisplayName:"Land speed high",Increment:"10",Range:{high:"500",low:"0"},Units:"cm/s",User:"Standard"},LOG_BITMASK:{Bitmask:{0:"Fast Attitude",1:"Medium Attitude",2:"GPS",3:"System Performance",4:"Control Tuning",5:"Navigation Tuning",6:"RC input",7:"IMU",8:"Mission Commands",9:"Battery Monitor",10:"RC output",11:"Optical Flow",12:"PID",13:"Compass",15:"Camera",17:"Motors",18:"Fast IMU",19:"Raw IMU",20:"Video Stabilization",21:"Fast harmonic notch logging"},Description:"Bitmap of what on-board log types to enable. This value is made up of the sum of each of the log types you want to be saved. It is usually best just to enable all basiclog types by setting this to 65535.",DisplayName:"Log bitmask",User:"Standard"},PHLD_BRAKE_ANGLE:{Description:"PosHold flight mode's max lean angle during braking in centi-degrees",DisplayName:"PosHold braking angle max",Increment:"10",Range:{high:"4500",low:"2000"},Units:"cdeg",User:"Advanced"},PHLD_BRAKE_RATE:{Description:"PosHold flight mode's rotation rate during braking in deg/sec",DisplayName:"PosHold braking rate",Range:{high:"12",low:"4"},Units:"deg/s",User:"Advanced"},PILOT_ACCEL_Z:{Description:"The vertical acceleration used when pilot is controlling the altitude",DisplayName:"Pilot vertical acceleration",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s/s",User:"Standard"},PILOT_SPEED_DN:{Description:"The maximum vertical descending velocity the pilot may request in cm/s. If 0 PILOT_SPEED_UP value is used.",DisplayName:"Pilot maximum vertical speed descending",Increment:"10",Range:{high:"500",low:"0"},Units:"cm/s",User:"Standard"},PILOT_SPEED_UP:{Description:"The maximum vertical ascending velocity the pilot may request in cm/s",DisplayName:"Pilot maximum vertical speed ascending",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s",User:"Standard"},PILOT_THR_BHV:{Bitmask:{0:"Feedback from mid stick",1:"High throttle cancels landing",2:"Disarm on land detection"},Description:'Bitmask containing various throttle stick options. TX with sprung throttle can set PILOT_THR_BHV to "1" so motor feedback when landed starts from mid-stick instead of bottom of stick.',DisplayName:"Throttle stick behavior",User:"Standard",Values:{0:"None",1:"Feedback from mid stick",2:"High throttle cancels landing",4:"Disarm on land detection"}},PILOT_THR_FILT:{Description:"Throttle filter cutoff (Hz) - active whenever altitude control is inactive - 0 to disable",DisplayName:"Throttle filter cutoff",Increment:".5",Range:{high:"10",low:"0"},Units:"Hz",User:"Advanced"},PILOT_TKOFF_ALT:{Description:"Altitude that altitude control modes will climb to when a takeoff is triggered with the throttle stick.",DisplayName:"Pilot takeoff altitude",Increment:"10",Range:{high:"1000.0",low:"0.0"},Units:"cm",User:"Standard"},PILOT_Y_EXPO:{Description:"Pilot controlled yaw expo to allow faster rotation when stick at edges",DisplayName:"Pilot controlled yaw expo",Range:{high:"1.0",low:"-0.5"},User:"Advanced",Values:{0:"Disabled","0.1":"Very Low","0.2":"Low","0.3":"Medium","0.4":"High","0.5":"Very High"}},PILOT_Y_RATE:{Description:"Pilot controlled yaw rate max. Used in all pilot controlled modes except Acro",DisplayName:"Pilot controlled yaw rate",Range:{high:"360",low:"1"},Units:"deg/s",User:"Standard"},PILOT_Y_RATE_TC:{Description:"Pilot yaw rate control input time constant. Low numbers lead to sharper response, higher numbers to softer response",DisplayName:"Pilot yaw rate control input time constant",Increment:"0.01",Range:{high:"1",low:"0"},Units:"s",User:"Standard",Values:{"0.05":"Very Crisp","0.1":"Crisp","0.15":"Medium","0.2":"Soft","0.5":"Very Soft"}},RC_SPEED:{Description:"This is the speed in Hertz that your ESCs will receive updates",DisplayName:"ESC Update Speed",Increment:"1",Range:{high:"490",low:"50"},Units:"Hz",User:"Advanced"},RNGFND_FILT:{Description:"Rangefinder filter to smooth distance. Set to zero to disable filtering",DisplayName:"Rangefinder filter",Increment:"0.05",Range:{high:"5",low:"0"},RebootRequired:"True",Units:"Hz",User:"Standard"},RTL_ALT:{Description:"The minimum alt above home the vehicle will climb to before returning. If the vehicle is flying higher than this value it will return at its current altitude.",DisplayName:"RTL Altitude",Increment:"1",Range:{high:"300000",low:"200"},Units:"cm",User:"Standard"},RTL_ALT_FINAL:{Description:"This is the altitude the vehicle will move to as the final stage of Returning to Launch or after completing a mission. Set to zero to land.",DisplayName:"RTL Final Altitude",Increment:"1",Range:{high:"1000",low:"0"},Units:"cm",User:"Standard"},RTL_ALT_TYPE:{Description:"RTL altitude type. Set to 1 for Terrain following during RTL and then set WPNAV_RFND_USE=1 to use rangefinder or WPNAV_RFND_USE=0 to use Terrain database",DisplayName:"RTL mode altitude type",User:"Standard",Values:{0:"Relative to Home",1:"Terrain"}},RTL_CLIMB_MIN:{Description:"The vehicle will climb this many cm during the initial climb portion of the RTL",DisplayName:"RTL minimum climb",Increment:"10",Range:{high:"3000",low:"0"},Units:"cm",User:"Standard"},RTL_CONE_SLOPE:{Description:"Defines a cone above home which determines maximum climb",DisplayName:"RTL cone slope",Increment:".1",Range:{high:"10.0",low:"0.5"},User:"Standard",Values:{0:"Disabled",1:"Shallow",3:"Steep"}},RTL_LOIT_TIME:{Description:"Time (in milliseconds) to loiter above home before beginning final descent",DisplayName:"RTL loiter time",Increment:"1000",Range:{high:"60000",low:"0"},Units:"ms",User:"Standard"},RTL_OPTIONS:{Bitmask:{2:"Ignore pilot yaw"},Description:"Options that can be applied to change RTL mode behaviour",DisplayName:"RTL mode options",User:"Advanced"},RTL_SPEED:{Description:"Defines the speed in cm/s which the aircraft will attempt to maintain horizontally while flying home. If this is set to zero, WPNAV_SPEED will be used instead.",DisplayName:"RTL speed",Increment:"50",Range:{high:"2000",low:"0"},Units:"cm/s",User:"Standard"},SIMPLE:{Bitmask:{0:"SwitchPos1",1:"SwitchPos2",2:"SwitchPos3",3:"SwitchPos4",4:"SwitchPos5",5:"SwitchPos6"},Description:"Bitmask which holds which flight modes use simple heading mode (eg bit 0 = 1 means Flight Mode 0 uses simple mode). The bitmask is for flightmode switch positions.",DisplayName:"Simple mode bitmask",User:"Advanced"},SUPER_SIMPLE:{Bitmask:{0:"SwitchPos1",1:"SwitchPos2",2:"SwitchPos3",3:"SwitchPos4",4:"SwitchPos5",5:"SwitchPos6"},Description:"Bitmask to enable Super Simple mode for some flight modes. Setting this to Disabled(0) will disable Super Simple Mode. The bitmask is for flight mode switch positions",DisplayName:"Super Simple Mode",User:"Standard"},SURFTRAK_MODE:{Description:"set which surface to track in surface tracking",DisplayName:"Surface Tracking Mode",User:"Advanced",Values:{0:"Do not track",1:"Ground",2:"Ceiling"}},SYSID_ENFORCE:{Description:"This controls whether packets from other than the expected GCS system ID will be accepted",DisplayName:"GCS sysid enforcement",User:"Advanced",Values:{0:"NotEnforced",1:"Enforced"}},SYSID_MYGCS:{Description:"Allows restricting radio overrides to only come from my ground station",DisplayName:"My ground station number",Range:{high:"255",low:"1"},User:"Advanced"},SYSID_THISMAV:{Description:"Allows setting an individual MAVLink system id for this vehicle to distinguish it from others on the same network",DisplayName:"MAVLink system ID of this vehicle",Range:{high:"255",low:"1"},User:"Advanced"},TELEM_DELAY:{Description:"The amount of time (in seconds) to delay radio telemetry to prevent an Xbee bricking on power up",DisplayName:"Telemetry startup delay",Increment:"1",Range:{high:"30",low:"0"},Units:"s",User:"Advanced"},THROW_MOT_START:{Description:"Used by Throw mode. Controls whether motors will run at the speed set by MOT_SPIN_MIN or will be stopped when armed and waiting for the throw.",DisplayName:"Start motors before throwing is detected",User:"Standard",Values:{0:"Stopped",1:"Running"}},THROW_NEXTMODE:{Description:"Vehicle will switch to this mode after the throw is successfully completed. Default is to stay in throw mode (18)",DisplayName:"Throw mode's follow up mode",User:"Standard",Values:{3:"Auto",4:"Guided",5:"LOITER",6:"RTL",9:"Land",17:"Brake",18:"Throw"}},THROW_TYPE:{Description:"Used by Throw mode. Specifies whether Copter is thrown upward or dropped.",DisplayName:"Type of Type",User:"Standard",Values:{0:"Upward Throw",1:"Drop"}},THR_DZ:{Description:"The deadzone above and below mid throttle in PWM microseconds. Used in AltHold, Loiter, PosHold flight modes",DisplayName:"Throttle deadzone",Increment:"1",Range:{high:"300",low:"0"},Units:"PWM",User:"Standard"},TKOFF_RPM_MIN:{Description:"Takeoff is not permitted until motors report at least this RPM. Set to zero to disable check",DisplayName:"Takeoff Check RPM minimum",Range:{high:"10000",low:"0"},User:"Standard"},TKOFF_SLEW_TIME:{Description:"Time to slew the throttle from minimum to maximum while checking for a succsessful takeoff.",DisplayName:"Slew time of throttle during take-off",Range:{high:"5.0",low:"0.25"},Units:"s",User:"Standard"},TUNE:{Description:"Controls which parameters (normally PID gains) are being tuned with transmitter's channel 6 knob",DisplayName:"Channel 6 Tuning",User:"Standard",Values:{0:"None",1:"Stab Roll/Pitch kP",3:"Stab Yaw kP",4:"Rate Roll/Pitch kP",5:"Rate Roll/Pitch kI",6:"Rate Yaw kP",7:"Throttle Rate kP",10:"WP Speed",12:"Loiter Pos kP",13:"Heli Ext Gyro",14:"AltHold kP",21:"Rate Roll/Pitch kD",22:"Velocity XY kP",25:"Acro Roll/Pitch deg/s",26:"Rate Yaw kD",28:"Velocity XY kI",34:"Throttle Accel kP",35:"Throttle Accel kI",36:"Throttle Accel kD",38:"Declination",39:"Circle Rate",40:"Acro Yaw deg/s",45:"RC Feel",46:"Rate Pitch kP",47:"Rate Pitch kI",48:"Rate Pitch kD",49:"Rate Roll kP",50:"Rate Roll kI",51:"Rate Roll kD",52:"Rate Pitch FF",53:"Rate Roll FF",54:"Rate Yaw FF",55:"Motor Yaw Headroom",56:"Rate Yaw Filter",58:"SysID Magnitude"}},TUNE_MAX:{Description:"Maximum value that the parameter currently being tuned with the transmitter's channel 6 knob will be set to",DisplayName:"Tuning maximum",User:"Standard"},TUNE_MIN:{Description:"Minimum value that the parameter currently being tuned with the transmitter's channel 6 knob will be set to",DisplayName:"Tuning minimum",User:"Standard"},WP_NAVALT_MIN:{Description:"This is the altitude in meters above which for navigation can begin. This applies in auto takeoff and auto landing.",DisplayName:"Minimum navigation altitude",Range:{high:"5",low:"0"},User:"Standard"},WP_YAW_BEHAVIOR:{Description:"Determines how the autopilot controls the yaw during missions and RTL",DisplayName:"Yaw behaviour during missions",User:"Standard",Values:{0:"Never change yaw",1:"Face next waypoint",2:"Face next waypoint except RTL",3:"Face along GPS course"}}},ez={DID_BARO_ACC:{Description:"Barometer Vertical Accuracy when installed in the vehicle. Note this is dependent upon installation conditions and thus disabled by default",DisplayName:"Barometer vertical accuraacy",Units:"m",User:"Advanced"},DID_CANDRIVER:{Description:"DroneCAN driver index, 0 to disable DroneCAN",DisplayName:"DroneCAN driver number",Values:{0:"Disabled",1:"Driver1",2:"Driver2"}},DID_ENABLE:{Description:"Enable ODID subsystem",DisplayName:"Enable ODID subsystem",Values:{0:"Disabled",1:"Enabled"}},DID_MAVPORT:{Description:"Serial port number to send OpenDroneID MAVLink messages to. Can be -1 if using DroneCAN.",DisplayName:"MAVLink serial port",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},DID_OPTIONS:{Bitmask:{0:"EnforceArming"},Description:"Options for OpenDroneID subsystem. Bit 0 means to enforce arming checks",DisplayName:"OpenDroneID options"}},tz={EAHRS_RATE:{Description:"Requested rate for AHRS device",DisplayName:"AHRS data rate",Units:"Hz",User:"Standard"},EAHRS_TYPE:{Description:"Type of AHRS device",DisplayName:"AHRS type",User:"Standard",Values:{0:"None",1:"VectorNav",2:"LORD"}}},iz={EFI_COEF1:{Description:"Used to calibrate fuel flow for MS protocol (Slope). This should be calculated from a log at constant fuel usage rate. Plot (ECYL[0].InjT*EFI.Rpm)/600.0 to get the duty_cycle. Measure actual fuel usage in cm^3/min, and set EFI_COEF1 = fuel_usage_cm3permin / duty_cycle",DisplayName:"EFI Calibration Coefficient 1",Range:{high:"1",low:"0"},User:"Advanced"},EFI_COEF2:{Description:"Used to calibrate fuel flow for MS protocol (Offset). This can be used to correct for a non-zero offset in the fuel consumption calculation of EFI_COEF1",DisplayName:"EFI Calibration Coefficient 2",Range:{high:"10",low:"0"},User:"Advanced"},EFI_FUEL_DENS:{Description:"Used to calculate fuel consumption",DisplayName:"ECU Fuel Density",Range:{high:"10000",low:"0"},Units:"kg/m/m/m",User:"Advanced"},EFI_TYPE:{Description:"What method of communication is used for EFI #1",DisplayName:"EFI communication type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Serial-MS",2:"NWPMU",3:"Serial-Lutan",5:"DroneCAN",6:"Currawong-ECU",7:"Scripting"}}},az={EK2_ABIAS_P_NSE:{Description:"This noise controls the growth of the vertical accelerometer delta velocity bias state error estimate. Increasing it makes accelerometer bias estimation faster and noisier.",DisplayName:"Accelerometer bias stability (m/s^3)",Range:{high:"0.005",low:"0.00001"},Units:"m/s/s/s",User:"Advanced"},EK2_ACC_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to accelerometer measurement errors excluding bias. Increasing it makes the flter trust the accelerometer measurements less and other measurements more.",DisplayName:"Accelerometer noise (m/s^2)",Increment:"0.01",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK2_ALT_M_NSE:{Description:"This is the RMS value of noise in the altitude measurement. Increasing it reduces the weighting of the baro measurement and will make the filter respond more slowly to baro measurement errors, but will make it more sensitive to GPS and accelerometer errors.",DisplayName:"Altitude measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_ALT_SOURCE:{Description:"Primary height sensor used by the EKF. If a sensor other than Baro is selected and becomes unavailable, then the Baro sensor will be used as a fallback. NOTE: The EK2_RNG_USE_HGT parameter can be used to switch to range-finder when close to the ground in conjunction with EK2_ALT_SOURCE = 0 or 2 (Baro or GPS).",DisplayName:"Primary altitude sensor source",RebootRequired:"True",User:"Advanced",Values:{0:"Use Baro",1:"Use Range Finder",2:"Use GPS",3:"Use Range Beacon"}},EK2_BCN_DELAY:{Description:"This is the number of msec that the range beacon measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Range beacon measurement delay (msec)",Increment:"10",Range:{high:"127",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_BCN_I_GTE:{Description:"This sets the percentage number of standard deviations applied to the range beacon measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range beacon measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_BCN_M_NSE:{Description:"This is the RMS value of noise in the range beacon measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range beacon measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_CHECK_SCALE:{Description:"This scales the thresholds that are used to check GPS accuracy before it is used by the EKF. A value of 100 is the default. Values greater than 100 increase and values less than 100 reduce the maximum GPS error the EKF will accept. A value of 200 will double the allowable GPS error.",DisplayName:"GPS accuracy check scaler (%)",Range:{high:"200",low:"50"},Units:"%",User:"Advanced"},EK2_EAS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the airspeed measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Airspeed measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_EAS_M_NSE:{Description:"This is the RMS value of noise in equivalent airspeed measurements used by planes. Increasing it reduces the weighting of airspeed measurements and will make wind speed estimates less noisy and slower to converge. Increasing also increases navigation errors when dead-reckoning without GPS measurements.",DisplayName:"Equivalent airspeed measurement noise (m/s)",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK2_ENABLE:{Description:"This enables EKF2. Enabling EKF2 only makes the maths run, it does not mean it will be used for flight control. To use it for flight control set AHRS_EKF_TYPE=2. A reboot or restart will need to be performed after changing the value of EK2_ENABLE for it to take effect.",DisplayName:"Enable EKF2",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},EK2_FLOW_DELAY:{Description:"This is the number of msec that the optical flow measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Optical Flow measurement delay (msec)",Increment:"10",Range:{high:"127",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_FLOW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the optical flow innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Optical Flow measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_FLOW_M_NSE:{Description:"This is the RMS value of noise and errors in optical flow measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Optical flow measurement noise (rad/s)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad/s",User:"Advanced"},EK2_FLOW_USE:{Description:"Controls if the optical flow data is fused into the 24-state navigation estimator OR the 1-state terrain height estimator.",DisplayName:"Optical flow use bitmask",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Navigation",2:"Terrain"}},EK2_GBIAS_P_NSE:{Description:"This state process noise controls growth of the gyro delta angle bias state error estimate. Increasing it makes rate gyro bias estimation faster and noisier.",DisplayName:"Rate gyro bias stability (rad/s/s)",Range:{high:"0.001",low:"0.00001"},Units:"rad/s/s",User:"Advanced"},EK2_GLITCH_RAD:{Description:"This controls the maximum radial uncertainty in position between the value predicted by the filter and the value measured by the GPS before the filter position and velocity states are reset to the GPS. Making this value larger allows the filter to ignore larger GPS glitches but also means that non-GPS errors such as IMU and compass can create a larger error in position before the filter is forced back to the GPS position.",DisplayName:"GPS glitch radius gate size (m)",Increment:"5",Range:{high:"100",low:"10"},Units:"m",User:"Advanced"},EK2_GPS_CHECK:{Bitmask:{0:"NSats",1:"HDoP",2:"speed error",3:"position error",4:"yaw error",5:"pos drift",6:"vert speed",7:"horiz speed"},Description:"This is a 1 byte bitmap controlling which GPS preflight checks are performed. Set to 0 to bypass all checks. Set to 255 perform all checks. Set to 3 to check just the number of satellites and HDoP. Set to 31 for the most rigorous checks that will still allow checks to pass when the copter is moving, eg launch from a boat.",DisplayName:"GPS preflight check",User:"Advanced"},EK2_GPS_TYPE:{Description:"This controls use of GPS measurements : 0 = use 3D velocity & 2D position, 1 = use 2D velocity and 2D position, 2 = use 2D position, 3 = Inhibit GPS use - this can be useful when flying with an optical flow sensor in an environment where GPS quality is poor and subject to large multipath errors.",DisplayName:"GPS mode control",User:"Advanced",Values:{0:"GPS 3D Vel and 2D Pos",1:"GPS 2D vel and 2D pos",2:"GPS 2D pos",3:"No GPS"}},EK2_GSCL_P_NSE:{Description:"This noise controls the rate of gyro scale factor learning. Increasing it makes rate gyro scale factor estimation faster and noisier.",DisplayName:"Rate gyro scale factor stability (1/s)",Range:{high:"0.001",low:"0.000001"},Units:"Hz",User:"Advanced"},EK2_GSF_RST_MAX:{Description:"Sets the maximum number of times the EKF2 will be allowed to reset its yaw to the estimate from the EKF-GSF yaw estimator. No resets will be allowed unless the use of the EKF-GSF yaw estimate is enabled via the EK2_GSF_USE_MASK parameter.",DisplayName:"Maximum number of resets to the EKF-GSF yaw estimate allowed",Increment:"1",Range:{high:"10",low:"1"},RebootRequired:"True",User:"Advanced"},EK2_GSF_RUN_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"A bitmask of which EKF2 instances run an independant EKF-GSF yaw estimator to provide a backup yaw estimate that doesn't rely on magnetometer data. This estimator uses IMU, GPS and, if available, airspeed data. EKF-GSF yaw estimator data for the primary EKF2 instance will be logged as GSF0 and GSF1 messages. Use of the yaw estimate generated by this algorithm is controlled by the EK2_GSF_USE_MASK and EK2_GSF_RST_MAX parameters. To run the EKF-GSF yaw estimator in ride-along and logging only, set EK2_GSF_USE_MASK to 0. ",DisplayName:"Bitmask of which EKF-GSF yaw estimators run",RebootRequired:"True",User:"Advanced"},EK2_GSF_USE_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of which EKF2 instances will use the output from the EKF-GSF yaw estimator that has been turned on by the EK2_GSF_RUN_MASK parameter. If the inertial navigation calculation stops following the GPS, then the vehicle code can request EKF2 to attempt to resolve the issue, either by performing a yaw reset if enabled by this parameter by switching to another EKF2 instance.",DisplayName:"Bitmask of which EKF-GSF yaw estimators are used",RebootRequired:"True",User:"Advanced"},EK2_GYRO_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to gyro measurement errors excluding bias. Increasing it makes the flter trust the gyro measurements less and other measurements more.",DisplayName:"Rate gyro noise (rad/s)",Increment:"0.0001",Range:{high:"0.1",low:"0.0001"},Units:"rad/s",User:"Advanced"},EK2_HGT_DELAY:{Description:"This is the number of msec that the Height measurements lag behind the inertial measurements.",DisplayName:"Height measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_HGT_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the height measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Height measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_HRT_FILT:{Description:"Specifies the crossover frequency of the complementary filter used to calculate the output predictor height rate derivative.",DisplayName:"Height rate filter crossover frequency",Range:{high:"30.0",low:"0.1"},Units:"Hz"},EK2_IMU_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU"},Description:"1 byte bitmap of IMUs to use in EKF2. A separate instance of EKF2 will be started for each IMU selected. Set to 1 to use the first IMU only (default), set to 2 to use the second IMU only, set to 3 to use the first and second IMU. Additional IMU's can be used up to a maximum of 6 if memory and processing resources permit. There may be insufficient memory and processing resources to run multiple instances. If this occurs EKF2 will fail to start.",DisplayName:"Bitmask of active IMUs",RebootRequired:"True",User:"Advanced"},EK2_MAGB_P_NSE:{Description:"This state process noise controls the growth of body magnetic field state error estimates. Increasing it makes magnetometer bias error estimation faster and noisier.",DisplayName:"Body magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK2_MAGE_P_NSE:{Description:"This state process noise controls the growth of earth magnetic field state error estimates. Increasing it makes earth magnetic field estimation faster and noisier.",DisplayName:"Earth magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK2_MAG_CAL:{Description:"This determines when the filter will use the 3-axis magnetometer fusion model that estimates both earth and body fixed magnetic field states, when it will use a simpler magnetic heading fusion model that does not use magnetic field states and when it will use an alternative method of yaw determination to the magnetometer. The 3-axis magnetometer fusion is only suitable for use when the external magnetic field environment is stable. EK2_MAG_CAL = 0 uses heading fusion on ground, 3-axis fusion in-flight, and is the default setting for Plane users. EK2_MAG_CAL = 1 uses 3-axis fusion only when manoeuvring. EK2_MAG_CAL = 2 uses heading fusion at all times, is recommended if the external magnetic field is varying and is the default for rovers. EK2_MAG_CAL = 3 uses heading fusion on the ground and 3-axis fusion after the first in-air field and yaw reset has completed, and is the default for copters. EK2_MAG_CAL = 4 uses 3-axis fusion at all times. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK2_MAG_MASK parameter. NOTE: limited operation without a magnetometer or any other yaw sensor is possible by setting all COMPASS_USE, COMPASS_USE2, COMPASS_USE3, etc parameters to 0 with COMPASS_ENABLE set to 1. If this is done, the EK2_GSF_RUN and EK2_GSF_USE masks must be set to the same as EK2_IMU_MASK.",DisplayName:"Magnetometer default fusion mode",User:"Advanced",Values:{0:"When flying",1:"When manoeuvring",2:"Never",3:"After first climb yaw reset",4:"Always"}},EK2_MAG_EF_LIM:{Description:"This limits the difference between the learned earth magnetic field and the earth field from the world magnetic model tables. A value of zero means to disable the use of the WMM tables.",DisplayName:"EarthField error limit",Range:{high:"500",low:"0"},Units:"mGauss",User:"Advanced"},EK2_MAG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Magnetometer measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_MAG_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of EKF cores that will disable magnetic field states and use simple magnetic heading fusion at all times. This parameter enables specified cores to be used as a backup for flight into an environment with high levels of external magnetic interference which may degrade the EKF attitude estimate when using 3-axis magnetometer fusion. NOTE : Use of a different magnetometer fusion algorithm on different cores makes unwanted EKF core switches due to magnetometer errors more likely.",DisplayName:"Bitmask of active EKF cores that will always use heading fusion",RebootRequired:"True",User:"Advanced"},EK2_MAG_M_NSE:{Description:"This is the RMS value of noise in magnetometer measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Magnetometer measurement noise (Gauss)",Increment:"0.01",Range:{high:"0.5",low:"0.01"},Units:"Gauss",User:"Advanced"},EK2_MAX_FLOW:{Description:"This sets the magnitude maximum optical flow rate in rad/sec that will be accepted by the filter",DisplayName:"Maximum valid optical flow rate",Increment:"0.1",Range:{high:"4.0",low:"1.0"},Units:"rad/s",User:"Advanced"},EK2_NOAID_M_NSE:{Description:"This sets the amount of position variation that the EKF allows for when operating without external measurements (eg GPS or optical flow). Increasing this parameter makes the EKF attitude estimate less sensitive to vehicle manoeuvres but more sensitive to IMU errors.",DisplayName:"Non-GPS operation position uncertainty (m)",Range:{high:"50.0",low:"0.5"},Units:"m",User:"Advanced"},EK2_OGN_HGT_MASK:{Bitmask:{0:"Correct when using Baro height",1:"Correct when using range finder height",2:"Apply corrections to local position"},Description:"When a height sensor other than GPS is used as the primary height source by the EKF, the position of the zero height datum is defined by that sensor and its frame of reference. If a GPS height measurement is also available, then the height of the WGS-84 height datum used by the EKF can be corrected so that the height returned by the getLLH() function is compensated for primary height sensor drift and change in datum over time. The first two bit positions control when the height datum will be corrected. Correction is performed using a Bayes filter and only operates when GPS quality permits. The third bit position controls where the corrections to the GPS reference datum are applied. Corrections can be applied to the local vertical position or to the reported EKF origin height (default).",DisplayName:"Bitmask control of EKF reference height correction",RebootRequired:"True",User:"Advanced"},EK2_POSNE_M_NSE:{Description:"This sets the GPS horizontal position observation noise. Increasing it reduces the weighting of GPS horizontal position measurements.",DisplayName:"GPS horizontal position measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_POS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS position measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS position measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_RNG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the range finder innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range finder measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_RNG_M_NSE:{Description:"This is the RMS value of noise in the range finder measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range finder measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_RNG_USE_HGT:{Description:"Range finder can be used as the primary height source when below this percentage of its maximum range (see RNGFND_MAX_CM). This will not work unless Baro or GPS height is selected as the primary height source vis EK2_ALT_SOURCE = 0 or 2 respectively. This feature should not be used for terrain following as it is designed for vertical takeoff and landing with climb above the range finder use height before commencing the mission, and with horizontal position changes below that height being limited to a flat region around the takeoff and landing point.",DisplayName:"Range finder switch height percentage",Increment:"1",Range:{high:"70",low:"-1"},Units:"%",User:"Advanced"},EK2_RNG_USE_SPD:{Description:"The range finder will not be used as the primary height source when the horizontal ground speed is greater than this value.",DisplayName:"Range finder max ground speed",Increment:"0.5",Range:{high:"6.0",low:"2.0"},Units:"m/s",User:"Advanced"},EK2_TAU_OUTPUT:{Description:"Sets the time constant of the output complementary filter/predictor in centi-seconds.",DisplayName:"Output complementary filter time constant (centi-sec)",Increment:"5",Range:{high:"50",low:"10"},Units:"cs",User:"Advanced"},EK2_TERR_GRAD:{Description:"Specifies the maximum gradient of the terrain below the vehicle assumed when it is fusing range finder or optical flow to estimate terrain height.",DisplayName:"Maximum terrain gradient",Increment:"0.01",Range:{high:"0.2",low:"0"},User:"Advanced"},EK2_VELD_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set vertical velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS vertical velocity measurements.",DisplayName:"GPS vertical velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK2_VELNE_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set horizontal velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS horizontal velocity measurements.",DisplayName:"GPS horizontal velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK2_VEL_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS velocity measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS velocity innovation gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_WIND_PSCALE:{Description:"This controls how much the process noise on the wind states is increased when gaining or losing altitude to take into account changes in wind speed and direction with altitude. Increasing this parameter increases how rapidly the wind states adapt when changing altitude, but does make wind velocity estimation noiser.",DisplayName:"Height rate to wind process noise scaler",Increment:"0.1",Range:{high:"1.0",low:"0.0"},User:"Advanced"},EK2_WIND_P_NSE:{Description:"This state process noise controls the growth of wind state error estimates. Increasing it makes wind estimation faster and noisier.",DisplayName:"Wind velocity process noise (m/s^2)",Increment:"0.1",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK2_YAW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer yaw measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Yaw measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_YAW_M_NSE:{Description:"This is the RMS value of noise in yaw measurements from the magnetometer. Increasing it reduces the weighting on these measurements.",DisplayName:"Yaw measurement noise (rad)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},rz={EK3_ABIAS_P_NSE:{Description:"This noise controls the growth of the vertical accelerometer delta velocity bias state error estimate. Increasing it makes accelerometer bias estimation faster and noisier.",DisplayName:"Accelerometer bias stability (m/s^3)",Range:{high:"0.005",low:"0.00001"},Units:"m/s/s/s",User:"Advanced"},EK3_ACC_BIAS_LIM:{Description:"The accelerometer bias state will be limited to +- this value",DisplayName:"Accelerometer bias limit",Increment:"0.1",Range:{high:"2.5",low:"0.5"},Units:"m/s/s",User:"Advanced"},EK3_ACC_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to accelerometer measurement errors excluding bias. Increasing it makes the flter trust the accelerometer measurements less and other measurements more.",DisplayName:"Accelerometer noise (m/s^2)",Increment:"0.01",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK3_AFFINITY:{Bitmask:{0:"EnableGPSAffinity",1:"EnableBaroAffinity",2:"EnableCompassAffinity",3:"EnableAirspeedAffinity"},Description:"These options control the affinity between sensor instances and EKF cores",DisplayName:"EKF3 Sensor Affinity Options",RebootRequired:"True",User:"Advanced"},EK3_ALT_M_NSE:{Description:"This is the RMS value of noise in the altitude measurement. Increasing it reduces the weighting of the baro measurement and will make the filter respond more slowly to baro measurement errors, but will make it more sensitive to GPS and accelerometer errors.",DisplayName:"Altitude measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_BCN_DELAY:{Description:"This is the number of msec that the range beacon measurements lag behind the inertial measurements.",DisplayName:"Range beacon measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_BCN_I_GTE:{Description:"This sets the percentage number of standard deviations applied to the range beacon measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range beacon measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_BCN_M_NSE:{Description:"This is the RMS value of noise in the range beacon measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range beacon measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_BETA_MASK:{Bitmask:{0:"Always",1:"WhenNoYawSensor"},Description:"1 byte bitmap controlling use of sideslip angle fusion for estimation of non wind states during operation of 'fly forward' vehicle types such as fixed wing planes. By assuming that the angle of sideslip is small, the wind velocity state estimates are corrected whenever the EKF is not dead reckoning (e.g. has an independent velocity or position sensor such as GPS). This behaviour is on by default and cannot be disabled. When the EKF is dead reckoning, the wind states are used as a reference, enabling use of the small angle of sideslip assumption to correct non wind velocity states (eg attitude, velocity, position, etc) and improve navigation accuracy. This behaviour is on by default and cannot be disabled. The behaviour controlled by this parameter is the use of the small angle of sideslip assumption to correct non wind velocity states when the EKF is NOT dead reckoning. This is primarily of benefit to reduce the buildup of yaw angle errors during straight and level flight without a yaw sensor (e.g. magnetometer or dual antenna GPS yaw) provided aerobatic flight maneuvers with large sideslip angles are not performed. The 'always' option might be used where the yaw sensor is intentionally not fitted or disabled. The 'WhenNoYawSensor' option might be used if a yaw sensor is fitted, but protection against in-flight failure and continual rejection by the EKF is desired. For vehicles operated within visual range of the operator performing frequent turning maneuvers, setting this parameter is unnecessary.",DisplayName:"Bitmask controlling sidelip angle fusion",RebootRequired:"True",User:"Advanced"},EK3_CHECK_SCALE:{Description:"This scales the thresholds that are used to check GPS accuracy before it is used by the EKF. A value of 100 is the default. Values greater than 100 increase and values less than 100 reduce the maximum GPS error the EKF will accept. A value of 200 will double the allowable GPS error.",DisplayName:"GPS accuracy check scaler (%)",Range:{high:"200",low:"50"},Units:"%",User:"Advanced"},EK3_DRAG_BCOEF_X:{Description:"Ratio of mass to drag coefficient measured along the X body axis. This parameter enables estimation of wind drift for vehicles with bluff bodies and without propulsion forces in the X and Y direction (eg multicopters). The drag produced by this effect scales with speed squared. Set to a postive value > 1.0 to enable. A starting value is the mass in Kg divided by the frontal area. The predicted drag from the rotors is specified separately by the EK3_DRAG_MCOEF parameter.",DisplayName:"Ballistic coefficient for X axis drag",Range:{high:"1000.0",low:"0.0"},Units:"kg/m/m",User:"Advanced"},EK3_DRAG_BCOEF_Y:{Description:"Ratio of mass to drag coefficient measured along the Y body axis. This parameter enables estimation of wind drift for vehicles with bluff bodies and without propulsion forces in the X and Y direction (eg multicopters). The drag produced by this effect scales with speed squared. Set to a postive value > 1.0 to enable. A starting value is the mass in Kg divided by the side area. The predicted drag from the rotors is specified separately by the EK3_DRAG_MCOEF parameter.",DisplayName:"Ballistic coefficient for Y axis drag",Range:{high:"1000.0",low:"50.0"},Units:"kg/m/m",User:"Advanced"},EK3_DRAG_MCOEF:{Description:"This parameter is used to predict the drag produced by the rotors when flying a multi-copter, enabling estimation of wind drift. The drag produced by this effect scales with speed not speed squared and is produced because some of the air velocity normal to the rotors axis of rotation is lost when passing through the rotor disc which changes the momentum of the airflow causing drag. For unducted rotors the effect is roughly proportional to the area of the propeller blades when viewed side on and changes with different propellers. It is higher for ducted rotors. For example if flying at 15 m/s at sea level conditions produces a rotor induced drag acceleration of 1.5 m/s/s, then EK3_DRAG_MCOEF would be set to 0.1 = (1.5/15.0). Set EK3_MCOEF to a postive value to enable wind estimation using this drag effect. To account for the drag produced by the body which scales with speed squared, see documentation for the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters.",DisplayName:"Momentum coefficient for propeller drag",Increment:"0.01",Range:{high:"1.0",low:"0.0"},Units:"1/s",User:"Advanced"},EK3_DRAG_M_NSE:{Description:"This sets the amount of noise used when fusing X and Y acceleration as an observation that enables esitmation of wind velocity for multi-rotor vehicles. This feature is enabled by the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters",DisplayName:"Observation noise for drag acceleration",Increment:"0.1",Range:{high:"2.0",low:"0.1"},Units:"m/s/s",User:"Advanced"},EK3_EAS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the airspeed measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Airspeed measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_EAS_M_NSE:{Description:"This is the RMS value of noise in equivalent airspeed measurements used by planes. Increasing it reduces the weighting of airspeed measurements and will make wind speed estimates less noisy and slower to converge. Increasing also increases navigation errors when dead-reckoning without GPS measurements.",DisplayName:"Equivalent airspeed measurement noise (m/s)",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK3_ENABLE:{Description:"This enables EKF3. Enabling EKF3 only makes the maths run, it does not mean it will be used for flight control. To use it for flight control set AHRS_EKF_TYPE=3. A reboot or restart will need to be performed after changing the value of EK3_ENABLE for it to take effect.",DisplayName:"Enable EKF3",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},EK3_ERR_THRESH:{Description:"lanes have to be consistently better than the primary by at least this threshold to reduce their overall relativeCoreError, lowering this makes lane switching more sensitive to smaller error differences",DisplayName:"EKF3 Lane Relative Error Sensitivity Threshold",Increment:"0.05",Range:{high:"1",low:"0.05"},User:"Advanced"},EK3_FLOW_DELAY:{Description:"This is the number of msec that the optical flow measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Optical Flow measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_FLOW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the optical flow innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Optical Flow measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_FLOW_M_NSE:{Description:"This is the RMS value of noise and errors in optical flow measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Optical flow measurement noise (rad/s)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad/s",User:"Advanced"},EK3_FLOW_USE:{Description:"Controls if the optical flow data is fused into the 24-state navigation estimator OR the 1-state terrain height estimator.",DisplayName:"Optical flow use bitmask",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Navigation",2:"Terrain"}},EK3_GBIAS_P_NSE:{Description:"This state process noise controls growth of the gyro delta angle bias state error estimate. Increasing it makes rate gyro bias estimation faster and noisier.",DisplayName:"Rate gyro bias stability (rad/s/s)",Range:{high:"0.001",low:"0.00001"},Units:"rad/s/s",User:"Advanced"},EK3_GLITCH_RAD:{Description:"This controls the maximum radial uncertainty in position between the value predicted by the filter and the value measured by the GPS before the filter position and velocity states are reset to the GPS. Making this value larger allows the filter to ignore larger GPS glitches but also means that non-GPS errors such as IMU and compass can create a larger error in position before the filter is forced back to the GPS position.",DisplayName:"GPS glitch radius gate size (m)",Increment:"5",Range:{high:"100",low:"10"},Units:"m",User:"Advanced"},EK3_GND_EFF_DZ:{Description:"This parameter sets the size of the dead zone that is applied to negative baro height spikes that can occur when taking off or landing when a vehicle with lift rotors is operating in ground effect ground effect. Set to about 0.5m less than the amount of negative offset in baro height that occurs just prior to takeoff when lift motors are spooling up. Set to 0 if no ground effect is present.",DisplayName:"Baro height ground effect dead zone",Increment:"0.5",Range:{high:"10.0",low:"0.0"},User:"Advanced"},EK3_GPS_CHECK:{Bitmask:{0:"NSats",1:"HDoP",2:"speed error",3:"position error",4:"yaw error",5:"pos drift",6:"vert speed",7:"horiz speed"},Description:"This is a 1 byte bitmap controlling which GPS preflight checks are performed. Set to 0 to bypass all checks. Set to 255 perform all checks. Set to 3 to check just the number of satellites and HDoP. Set to 31 for the most rigorous checks that will still allow checks to pass when the copter is moving, eg launch from a boat.",DisplayName:"GPS preflight check",User:"Advanced"},EK3_GPS_VACC_MAX:{Description:"Vertical accuracy threshold for GPS as the altitude source. The GPS will not be used as an altitude source if the reported vertical accuracy of the GPS is larger than this threshold, falling back to baro instead. Set to zero to deactivate the threshold check.",DisplayName:"GPS vertical accuracy threshold",Increment:"0.1",Range:{high:"10.0",low:"0.0"},Units:"m",User:"Advanced"},EK3_GSF_RST_MAX:{Description:"Sets the maximum number of times the EKF3 will be allowed to reset its yaw to the estimate from the EKF-GSF yaw estimator. No resets will be allowed unless the use of the EKF-GSF yaw estimate is enabled via the EK3_GSF_USE_MASK parameter.",DisplayName:"Maximum number of resets to the EKF-GSF yaw estimate allowed",Increment:"1",Range:{high:"10",low:"1"},RebootRequired:"True",User:"Advanced"},EK3_GSF_RUN_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of which EKF3 instances run an independant EKF-GSF yaw estimator to provide a backup yaw estimate that doesn't rely on magnetometer data. This estimator uses IMU, GPS and, if available, airspeed data. EKF-GSF yaw estimator data for the primary EKF3 instance will be logged as GSF0 and GSF1 messages. Use of the yaw estimate generated by this algorithm is controlled by the EK3_GSF_USE_MASK and EK3_GSF_RST_MAX parameters. To run the EKF-GSF yaw estimator in ride-along and logging only, set EK3_GSF_USE to 0. ",DisplayName:"Bitmask of which EKF-GSF yaw estimators run",RebootRequired:"True",User:"Advanced"},EK3_GSF_USE_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"A bitmask of which EKF3 instances will use the output from the EKF-GSF yaw estimator that has been turned on by the EK3_GSF_RUN_MASK parameter. If the inertial navigation calculation stops following the GPS, then the vehicle code can request EKF3 to attempt to resolve the issue, either by performing a yaw reset if enabled by this parameter by switching to another EKF3 instance.",DisplayName:"Bitmask of which EKF-GSF yaw estimators are used",RebootRequired:"True",User:"Advanced"},EK3_GYRO_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to gyro measurement errors excluding bias. Increasing it makes the flter trust the gyro measurements less and other measurements more.",DisplayName:"Rate gyro noise (rad/s)",Increment:"0.0001",Range:{high:"0.1",low:"0.0001"},Units:"rad/s",User:"Advanced"},EK3_HGT_DELAY:{Description:"This is the number of msec that the Height measurements lag behind the inertial measurements.",DisplayName:"Height measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_HGT_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the height measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Height measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_HRT_FILT:{Description:"Specifies the crossover frequency of the complementary filter used to calculate the output predictor height rate derivative.",DisplayName:"Height rate filter crossover frequency",Range:{high:"30.0",low:"0.1"},Units:"Hz"},EK3_IMU_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU"},Description:"1 byte bitmap of IMUs to use in EKF3. A separate instance of EKF3 will be started for each IMU selected. Set to 1 to use the first IMU only (default), set to 2 to use the second IMU only, set to 3 to use the first and second IMU. Additional IMU's can be used up to a maximum of 6 if memory and processing resources permit. There may be insufficient memory and processing resources to run multiple instances. If this occurs EKF3 will fail to start.",DisplayName:"Bitmask of active IMUs",RebootRequired:"True",User:"Advanced"},EK3_LOG_LEVEL:{Description:"Determines how verbose the EKF3 streaming logging is. A value of 0 provides full logging(default), a value of 1 only XKF4 scaled innovations are logged, a value of 2 both XKF4 and GSF are logged, and a value of 3 disables all streaming logging of EKF3.",DisplayName:"Logging Level",Increment:"1",Range:{high:"3",low:"0"},User:"Advanced"},EK3_MAGB_P_NSE:{Description:"This state process noise controls the growth of body magnetic field state error estimates. Increasing it makes magnetometer bias error estimation faster and noisier.",DisplayName:"Body magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK3_MAGE_P_NSE:{Description:"This state process noise controls the growth of earth magnetic field state error estimates. Increasing it makes earth magnetic field estimation faster and noisier.",DisplayName:"Earth magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK3_MAG_CAL:{Description:"This determines when the filter will use the 3-axis magnetometer fusion model that estimates both earth and body fixed magnetic field states and when it will use a simpler magnetic heading fusion model that does not use magnetic field states. The 3-axis magnetometer fusion is only suitable for use when the external magnetic field environment is stable. EK3_MAG_CAL = 0 uses heading fusion on ground, 3-axis fusion in-flight, and is the default setting for Plane users. EK3_MAG_CAL = 1 uses 3-axis fusion only when manoeuvring. EK3_MAG_CAL = 2 uses heading fusion at all times, is recommended if the external magnetic field is varying and is the default for rovers. EK3_MAG_CAL = 3 uses heading fusion on the ground and 3-axis fusion after the first in-air field and yaw reset has completed, and is the default for copters. EK3_MAG_CAL = 4 uses 3-axis fusion at all times. EK3_MAG_CAL = 5 uses an external yaw sensor with simple heading fusion. NOTE : Use of simple heading magnetometer fusion makes vehicle compass calibration and alignment errors harder for the EKF to detect which reduces the sensitivity of the Copter EKF failsafe algorithm. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK3_MAG_MASK parameter. EK3_MAG_CAL = 6 uses an external yaw sensor with fallback to compass when the external sensor is not available if we are flying. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK3_MAG_MASK parameter. NOTE: limited operation without a magnetometer or any other yaw sensor is possible by setting all COMPASS_USE, COMPASS_USE2, COMPASS_USE3, etc parameters to 0 and setting COMPASS_ENABLE to 0. If this is done, the EK3_GSF_RUN and EK3_GSF_USE masks must be set to the same as EK3_IMU_MASK. A yaw angle derived from IMU and GPS velocity data using a Gaussian Sum Filter (GSF) will then be used to align the yaw when flight commences and there is sufficient movement.",DisplayName:"Magnetometer default fusion mode",RebootRequired:"True",User:"Advanced",Values:{0:"When flying",1:"When manoeuvring",2:"Never",3:"After first climb yaw reset",4:"Always",5:"Use external yaw sensor (Deprecated in 4.1+ see EK3_SRCn_YAW)",6:"External yaw sensor with compass fallback (Deprecated in 4.1+ see EK3_SRCn_YAW)"}},EK3_MAG_EF_LIM:{Description:"This limits the difference between the learned earth magnetic field and the earth field from the world magnetic model tables. A value of zero means to disable the use of the WMM tables.",DisplayName:"EarthField error limit",Range:{high:"500",low:"0"},Units:"mGauss",User:"Advanced"},EK3_MAG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Magnetometer measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_MAG_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of EKF cores that will disable magnetic field states and use simple magnetic heading fusion at all times. This parameter enables specified cores to be used as a backup for flight into an environment with high levels of external magnetic interference which may degrade the EKF attitude estimate when using 3-axis magnetometer fusion. NOTE : Use of a different magnetometer fusion algorithm on different cores makes unwanted EKF core switches due to magnetometer errors more likely.",DisplayName:"Bitmask of active EKF cores that will always use heading fusion",RebootRequired:"True",User:"Advanced"},EK3_MAG_M_NSE:{Description:"This is the RMS value of noise in magnetometer measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Magnetometer measurement noise (Gauss)",Increment:"0.01",Range:{high:"0.5",low:"0.01"},Units:"Gauss",User:"Advanced"},EK3_MAX_FLOW:{Description:"This sets the magnitude maximum optical flow rate in rad/sec that will be accepted by the filter",DisplayName:"Maximum valid optical flow rate",Increment:"0.1",Range:{high:"4.0",low:"1.0"},Units:"rad/s",User:"Advanced"},EK3_NOAID_M_NSE:{Description:"This sets the amount of position variation that the EKF allows for when operating without external measurements (eg GPS or optical flow). Increasing this parameter makes the EKF attitude estimate less sensitive to vehicle manoeuvres but more sensitive to IMU errors.",DisplayName:"Non-GPS operation position uncertainty (m)",Range:{high:"50.0",low:"0.5"},Units:"m",User:"Advanced"},EK3_OGNM_TEST_SF:{Description:"This parameter is adjust the sensitivity of the on ground not moving test which is used to assist with learning the yaw gyro bias and stopping yaw drift before flight when operating without a yaw sensor. Bigger values allow the detection of a not moving condition with noiser IMU data. Check the XKFM data logged when the vehicle is on ground not moving and adjust the value of OGNM_TEST_SF to be slightly higher than the maximum value of the XKFM.ADR, XKFM.ALR, XKFM.GDR and XKFM.GLR test levels.",DisplayName:"On ground not moving test scale factor",Increment:"0.5",Range:{high:"10.0",low:"1.0"},User:"Advanced"},EK3_OGN_HGT_MASK:{Bitmask:{0:"Correct when using Baro height",1:"Correct when using range finder height",2:"Apply corrections to local position"},Description:"When a height sensor other than GPS is used as the primary height source by the EKF, the position of the zero height datum is defined by that sensor and its frame of reference. If a GPS height measurement is also available, then the height of the WGS-84 height datum used by the EKF can be corrected so that the height returned by the getLLH() function is compensated for primary height sensor drift and change in datum over time. The first two bit positions control when the height datum will be corrected. Correction is performed using a Bayes filter and only operates when GPS quality permits. The third bit position controls where the corrections to the GPS reference datum are applied. Corrections can be applied to the local vertical position or to the reported EKF origin height (default).",DisplayName:"Bitmask control of EKF reference height correction",RebootRequired:"True",User:"Advanced"},EK3_POSNE_M_NSE:{Description:"This sets the GPS horizontal position observation noise. Increasing it reduces the weighting of GPS horizontal position measurements.",DisplayName:"GPS horizontal position measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_POS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS position measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS position measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_PRIMARY:{Description:"The core number (index in IMU mask) that will be used as the primary EKF core on startup. While disarmed the EKF will force the use of this core. A value of 0 corresponds to the first IMU in EK3_IMU_MASK.",DisplayName:"Primary core number",Increment:"1",Range:{high:"2",low:"0"},User:"Advanced"},EK3_RNG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the range finder innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range finder measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_RNG_M_NSE:{Description:"This is the RMS value of noise in the range finder measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range finder measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_RNG_USE_HGT:{Description:"Range finder can be used as the primary height source when below this percentage of its maximum range (see RNGFNDx_MAX_CM) and the primary height source is Baro or GPS (see EK3_SRCx_POSZ). This feature should not be used for terrain following as it is designed for vertical takeoff and landing with climb above the range finder use height before commencing the mission, and with horizontal position changes below that height being limited to a flat region around the takeoff and landing point.",DisplayName:"Range finder switch height percentage",Increment:"1",Range:{high:"70",low:"-1"},Units:"%",User:"Advanced"},EK3_RNG_USE_SPD:{Description:"The range finder will not be used as the primary height source when the horizontal ground speed is greater than this value.",DisplayName:"Range finder max ground speed",Increment:"0.5",Range:{high:"6.0",low:"2.0"},Units:"m/s",User:"Advanced"},EK3_TAU_OUTPUT:{Description:"Sets the time constant of the output complementary filter/predictor in centi-seconds.",DisplayName:"Output complementary filter time constant (centi-sec)",Increment:"5",Range:{high:"50",low:"10"},Units:"cs",User:"Advanced"},EK3_TERR_GRAD:{Description:"Specifies the maximum gradient of the terrain below the vehicle when it is using range finder as a height reference",DisplayName:"Maximum terrain gradient",Increment:"0.01",Range:{high:"0.2",low:"0"},User:"Advanced"},EK3_VELD_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set vertical velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS vertical velocity measurements.",DisplayName:"GPS vertical velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_VELNE_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set horizontal velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS horizontal velocity measurements.",DisplayName:"GPS horizontal velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_VEL_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS velocity measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS velocity innovation gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_VIS_VERR_MAX:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when minimum quality is reported by the sensor. When quality is between max and min, the error will be calculated using linear interpolation between VIS_VERR_MIN and VIS_VERR_MAX.",DisplayName:"Visual odometry maximum velocity error",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK3_VIS_VERR_MIN:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when maximum quality is reported by the sensor. When quality is between max and min, the error will be calculated using linear interpolation between VIS_VERR_MIN and VIS_VERR_MAX.",DisplayName:"Visual odometry minimum velocity error",Increment:"0.05",Range:{high:"0.5",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_WENC_VERR:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when wheel encoder data is being fused.",DisplayName:"Wheel odometry velocity error",Increment:"0.1",Range:{high:"1.0",low:"0.01"},Units:"m/s",User:"Advanced"},EK3_WIND_PSCALE:{Description:"This controls how much the process noise on the wind states is increased when gaining or losing altitude to take into account changes in wind speed and direction with altitude. Increasing this parameter increases how rapidly the wind states adapt when changing altitude, but does make wind velocity estimation noiser.",DisplayName:"Height rate to wind process noise scaler",Increment:"0.1",Range:{high:"2.0",low:"0.0"},User:"Advanced"},EK3_WIND_P_NSE:{Description:"This state process noise controls the growth of wind state error estimates. Increasing it makes wind estimation faster and noisier.",DisplayName:"Wind velocity process noise (m/s^2)",Increment:"0.1",Range:{high:"2.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK3_YAW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer yaw measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Yaw measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_YAW_M_NSE:{Description:"This is the RMS value of noise in yaw measurements from the magnetometer. Increasing it reduces the weighting on these measurements.",DisplayName:"Yaw measurement noise (rad)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},nz={EK3_SRC1_POSXY:{Description:"Position Horizontal Source (Primary)",DisplayName:"Position Horizontal Source (Primary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_POSZ:{Description:"Position Vertical Source",DisplayName:"Position Vertical Source",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_VELXY:{Description:"Velocity Horizontal Source",DisplayName:"Velocity Horizontal Source",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC1_VELZ:{Description:"Velocity Vertical Source",DisplayName:"Velocity Vertical Source",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_YAW:{Description:"Yaw Source",DisplayName:"Yaw Source",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC2_POSXY:{Description:"Position Horizontal Source (Secondary)",DisplayName:"Position Horizontal Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_POSZ:{Description:"Position Vertical Source (Secondary)",DisplayName:"Position Vertical Source (Secondary)",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_VELXY:{Description:"Velocity Horizontal Source (Secondary)",DisplayName:"Velocity Horizontal Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC2_VELZ:{Description:"Velocity Vertical Source (Secondary)",DisplayName:"Velocity Vertical Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_YAW:{Description:"Yaw Source (Secondary)",DisplayName:"Yaw Source (Secondary)",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC3_POSXY:{Description:"Position Horizontal Source (Tertiary)",DisplayName:"Position Horizontal Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_POSZ:{Description:"Position Vertical Source (Tertiary)",DisplayName:"Position Vertical Source (Tertiary)",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_VELXY:{Description:"Velocity Horizontal Source (Tertiary)",DisplayName:"Velocity Horizontal Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC3_VELZ:{Description:"Velocity Vertical Source (Tertiary)",DisplayName:"Velocity Vertical Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_YAW:{Description:"Yaw Source (Tertiary)",DisplayName:"Yaw Source (Tertiary)",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC_OPTIONS:{Bitmask:{0:"FuseAllVelocities"},Description:"EKF Source Options",DisplayName:"EKF Source Options",User:"Advanced"}},oz={ESC_TLM_MAV_OFS:{Description:"Offset to apply to ESC numbers when reporting as ESC_TELEMETRY packets over MAVLink. This allows high numbered motors to be displayed as low numbered ESCs for convenience on GCS displays. A value of 4 would send ESC on output 5 as ESC number 1 in ESC_TELEMETRY packets",DisplayName:"ESC Telemetry mavlink offset",Increment:"1",Range:{high:"31",low:"0"},User:"Standard"}},sz={FENCE_ACTION:{Description:"What action should be taken when fence is breached",DisplayName:"Fence Action",User:"Standard",Values:{0:"Report Only",1:"RTL or Land",2:"Always Land",3:"SmartRTL or RTL or Land",4:"Brake or Land",5:"SmartRTL or Land"}},FENCE_ALT_MAX:{Description:"Maximum altitude allowed before geofence triggers",DisplayName:"Fence Maximum Altitude",Increment:"1",Range:{high:"1000",low:"10"},Units:"m",User:"Standard"},FENCE_ALT_MIN:{Description:"Minimum altitude allowed before geofence triggers",DisplayName:"Fence Minimum Altitude",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FENCE_ENABLE:{Description:"Allows you to enable (1) or disable (0) the fence functionality",DisplayName:"Fence enable/disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},FENCE_MARGIN:{Description:"Distance that autopilot's should maintain from the fence to avoid a breach",DisplayName:"Fence Margin",Range:{high:"10",low:"1"},Units:"m",User:"Standard"},FENCE_RADIUS:{Description:"Circle fence radius which when breached will cause an RTL",DisplayName:"Circular Fence Radius",Range:{high:"10000",low:"30"},Units:"m",User:"Standard"},FENCE_TOTAL:{Description:"Number of polygon points saved in eeprom (do not update manually)",DisplayName:"Fence polygon point total",Range:{high:"20",low:"1"},User:"Standard"},FENCE_TYPE:{Bitmask:{0:"Max altitude",1:"Circle",2:"Polygon",3:"Min altitude"},Description:"Enabled fence types held as bitmask",DisplayName:"Fence Type",User:"Standard"}},lz={FFT_ATT_REF:{Description:"FFT attenuation level in dB for bandwidth calculation and peak detection. The bandwidth is calculated by comparing peak power output with the attenuated version. The default of 15 has shown to be a good compromise in both simulations and real flight.",DisplayName:"FFT attenuation for bandwidth calculation",Range:{high:"100",low:"0"},User:"Advanced"},FFT_BW_HOVER:{Description:"FFT learned bandwidth at hover for the attenuation frequencies.",DisplayName:"FFT learned bandwidth at hover",Range:{high:"200",low:"0"},User:"Advanced"},FFT_ENABLE:{Description:"Enable Gyro FFT analyser",DisplayName:"Enable",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},FFT_FREQ_HOVER:{Description:"The learned hover noise frequency",DisplayName:"FFT learned hover frequency",Range:{high:"250",low:"0"},User:"Advanced"},FFT_HMNC_FIT:{Description:"FFT harmonic fit frequency threshold percentage at which a signal of the appropriate frequency is determined to be the harmonic of another. Signals that have a harmonic relationship that varies at most by this percentage are considered harmonics of each other for the purpose of selecting the harmonic notch frequency. If a match is found then the lower frequency harmonic is always used as the basis for the dynamic harmonic notch. A value of zero completely disables harmonic matching.",DisplayName:"FFT harmonic fit frequency threshold",Range:{high:"100",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_HMNC_PEAK:{Description:"The FFT harmonic peak target that should be returned by FTN1.PkAvg. The resulting value will be used by the harmonic notch if configured to track the FFT frequency. By default the appropriate peak is auto-detected based on the harmonic fit between peaks and the energy-weighted average frequency on roll on pitch is used. Setting this to 1 will always target the highest energy peak. Setting this to 2 will target the highest energy peak that is lower in frequency than the highest energy peak. Setting this to 3 will target the highest energy peak that is higher in frequency than the highest energy peak. Setting this to 4 will target the highest energy peak on the roll axis only and only the roll frequency will be used (some vehicles have a much more pronounced peak on roll). Setting this to 5 will target the highest energy peak on the pitch axis only and only the pitch frequency will be used (some vehicles have a much more pronounced peak on roll).",DisplayName:"FFT harmonic peak target",User:"Advanced",Values:{0:"Auto",1:"Center Frequency",2:"Lower-Shoulder Frequency",3:"Upper-Shoulder Frequency",4:"Roll-Axis",5:"Pitch-Axis"}},FFT_MAXHZ:{Description:"Upper bound of FFT frequency detection in Hz. On smaller vehicles the maximum motor frequency is likely to be significantly higher than for larger vehicles.",DisplayName:"Maximum Frequency",Range:{high:"495",low:"20"},Units:"Hz",User:"Advanced"},FFT_MINHZ:{Description:"Lower bound of FFT frequency detection in Hz. On larger vehicles the minimum motor frequency is likely to be significantly lower than for smaller vehicles.",DisplayName:"Minimum Frequency",Range:{high:"400",low:"20"},Units:"Hz",User:"Advanced"},FFT_NUM_FRAMES:{Description:"Number of output frequency frames to retain and average in order to calculate final frequencies. Averaging output frames can drastically reduce noise and jitter at the cost of latency as long as the input is stable. The default is to perform no averaging. For rapidly changing frequencies (e.g. smaller aircraft) fewer frames should be averaged.",DisplayName:"FFT output frames to retain and average",Range:{high:"8",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_SAMPLE_MODE:{Description:"Sampling mode (and therefore rate). 0: Gyro rate sampling, 1: Fast loop rate sampling, 2: Fast loop rate / 2 sampling, 3: Fast loop rate / 3 sampling. Takes effect on reboot.",DisplayName:"Sample Mode",Range:{high:"4",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_SNR_REF:{Description:"FFT SNR reference threshold in dB at which a signal is determined to be present.",DisplayName:"FFT SNR reference threshold",Range:{high:"100.0",low:"0.0"},User:"Advanced"},FFT_THR_REF:{Description:"FFT learned thrust reference for the hover frequency and FFT minimum frequency.",DisplayName:"FFT learned thrust reference",Range:{high:"0.9",low:"0.01"},User:"Advanced"},FFT_WINDOW_OLAP:{Description:"Percentage of window to be overlapped before another frame is process. Takes effect on reboot. A good default is 50% overlap. Higher overlap results in more processed frames but not necessarily more temporal resolution. Lower overlap results in lost information at the frame edges.",DisplayName:"FFT window overlap",Range:{high:"0.9",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_WINDOW_SIZE:{Description:"Size of window to be used in FFT calculations. Takes effect on reboot. Must be a power of 2 and between 32 and 512. Larger windows give greater frequency resolution but poorer time resolution, consume more CPU time and may not be appropriate for all vehicles. Time and frequency resolution are given by the sample-rate / window-size. Windows of 256 are only really recommended for F7 class boards, windows of 512 or more H7 class.",DisplayName:"FFT window size",Range:{high:"1024",low:"32"},RebootRequired:"True",User:"Advanced"}},cz={FHLD_BRAKE_RATE:{Description:"Controls deceleration rate on stick release",DisplayName:"FlowHold Braking rate",Range:{high:"30",low:"1"},Units:"deg/s",User:"Standard"},FHLD_FILT_HZ:{Description:"Filter frequency for flow data",DisplayName:"FlowHold Filter Frequency",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},FHLD_FLOW_MAX:{Description:"Controls maximum apparent flow rate in flowhold",DisplayName:"FlowHold Flow Rate Max",Range:{high:"2.5",low:"0.1"},User:"Standard"},FHLD_QUAL_MIN:{Description:"Minimum flow quality to use flow position hold",DisplayName:"FlowHold Flow quality minimum",Range:{high:"255",low:"0"},User:"Standard"},FHLD_XY_FILT_HZ:{Description:"FlowHold (horizontal) filter on input to control",DisplayName:"FlowHold filter on input to control",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},FHLD_XY_I:{Description:"FlowHold (horizontal) I gain",DisplayName:"FlowHold I gain",Increment:"0.01",Range:{high:"1.00",low:"0.02"},User:"Advanced"},FHLD_XY_IMAX:{Description:"FlowHold (horizontal) integrator maximum",DisplayName:"FlowHold Integrator Max",Increment:"10",Range:{high:"4500",low:"0"},Units:"cdeg",User:"Advanced"},FHLD_XY_P:{Description:"FlowHold (horizontal) P gain.",DisplayName:"FlowHold P gain",Increment:"0.1",Range:{high:"6.0",low:"0.1"},User:"Advanced"}},dz={FLOW_ADDR:{Description:"This is used to select between multiple possible I2C addresses for some sensor types. For PX4Flow you can choose 0 to 7 for the 8 possible addresses on the I2C bus.",DisplayName:"Address on the bus",Range:{high:"127",low:"0"},User:"Advanced"},FLOW_FXSCALER:{Description:"This sets the parts per thousand scale factor correction applied to the flow sensor X axis optical rate. It can be used to correct for variations in effective focal length. Each positive increment of 1 increases the scale factor applied to the X axis optical flow reading by 0.1%. Negative values reduce the scale factor.",DisplayName:"X axis optical flow scale factor correction",Increment:"1",Range:{high:"+200",low:"-200"},User:"Standard"},FLOW_FYSCALER:{Description:"This sets the parts per thousand scale factor correction applied to the flow sensor Y axis optical rate. It can be used to correct for variations in effective focal length. Each positive increment of 1 increases the scale factor applied to the Y axis optical flow reading by 0.1%. Negative values reduce the scale factor.",DisplayName:"Y axis optical flow scale factor correction",Increment:"1",Range:{high:"+200",low:"-200"},User:"Standard"},FLOW_ORIENT_YAW:{Description:"Specifies the number of centi-degrees that the flow sensor is yawed relative to the vehicle. A sensor with its X-axis pointing to the right of the vehicle X axis has a positive yaw angle.",DisplayName:"Flow sensor yaw alignment",Increment:"10",Range:{high:"+18000",low:"-17999"},Units:"cdeg",User:"Standard"},FLOW_POS_X:{Description:"X position of the optical flow sensor focal point in body frame. Positive X is forward of the origin.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},FLOW_POS_Y:{Description:"Y position of the optical flow sensor focal point in body frame. Positive Y is to the right of the origin.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},FLOW_POS_Z:{Description:"Z position of the optical flow sensor focal point in body frame. Positive Z is down from the origin.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},FLOW_TYPE:{Description:"Optical flow sensor type",DisplayName:"Optical flow sensor type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"PX4Flow",2:"Pixart",3:"Bebop",4:"CXOF",5:"MAVLink",6:"DroneCAN",7:"MSP",8:"UPFLOW"}}},Cz={FOLL_ALT_TYPE:{Description:"Follow altitude type",DisplayName:"Follow altitude type",User:"Standard",Values:{0:"absolute",1:"relative"}},FOLL_DIST_MAX:{Description:"Follow distance maximum. targets further than this will be ignored",DisplayName:"Follow distance maximum",Range:{high:"1000",low:"1"},Units:"m",User:"Standard"},FOLL_ENABLE:{Description:"Enabled/disable following a target",DisplayName:"Follow enable/disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},FOLL_OFS_TYPE:{Description:"Follow offset type",DisplayName:"Follow offset type",User:"Standard",Values:{0:"North-East-Down",1:"Relative to lead vehicle heading"}},FOLL_OFS_X:{Description:"Follow offsets in meters north/forward. If positive, this vehicle fly ahead or north of lead vehicle. Depends on FOLL_OFS_TYPE",DisplayName:"Follow offsets in meters north/forward",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FOLL_OFS_Y:{Description:"Follow offsets in meters east/right. If positive, this vehicle will fly to the right or east of lead vehicle. Depends on FOLL_OFS_TYPE",DisplayName:"Follow offsets in meters east/right",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FOLL_OFS_Z:{Description:"Follow offsets in meters down. If positive, this vehicle will fly below the lead vehicle",DisplayName:"Follow offsets in meters down",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FOLL_POS_P:{Description:"Follow position error P gain. Converts the difference between desired vertical speed and actual speed into a desired acceleration that is passed to the throttle acceleration controller",DisplayName:"Follow position error P gain",Increment:"0.01",Range:{high:"1.00",low:"0.01"},User:"Standard"},FOLL_SYSID:{Description:"Follow target's mavlink system id",DisplayName:"Follow target's mavlink system id",Range:{high:"255",low:"0"},User:"Standard"},FOLL_YAW_BEHAVE:{Description:"Follow yaw behaviour",DisplayName:"Follow yaw behaviour",User:"Standard",Values:{0:"None",1:"Face Lead Vehicle",2:"Same as Lead vehicle",3:"Direction of Flight"}}},mz={FRSKY_DNLINK1_ID:{Description:"Change the first extra downlink sensor id (SPort only)",DisplayName:"First downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}},FRSKY_DNLINK2_ID:{Description:"Change the second extra downlink sensor id (SPort only)",DisplayName:"Second downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}},FRSKY_DNLINK_ID:{Description:"Change the default downlink sensor id (SPort only)",DisplayName:"Default downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26",27:"27","-1":"Disable"}},FRSKY_OPTIONS:{Bitmask:{0:"EnableAirspeedAndGroundspeed"},Description:"A bitmask to set some FRSky Telemetry specific options",DisplayName:"FRSky Telemetry Options",User:"Standard"},FRSKY_UPLINK_ID:{Description:"Change the uplink sensor id (SPort only)",DisplayName:"Uplink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}}},uz={GEN_OPTIONS:{Bitmask:{0:"Supress Maintenance-Required Warnings"},Description:"Bitmask of options for generators",DisplayName:"Generator Options",User:"Standard"},GEN_TYPE:{Description:"Generator type",DisplayName:"Generator type",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"IE 650w 800w Fuel Cell",2:"IE 2.4kW Fuel Cell",3:"Richenpower"}}},hz={GPS1_CAN_OVRIDE:{Description:"GPS Node id for first GPS. If 0 the gps will be automatically selected on a first-come-first-GPS basis.",DisplayName:"First DroneCAN GPS NODE ID",User:"Advanced"},GPS2_CAN_OVRIDE:{Description:"GPS Node id for second GPS. If 0 the gps will be automatically selected on a second-come-second-GPS basis.",DisplayName:"Second DroneCAN GPS NODE ID",User:"Advanced"},GPS_AUTO_CONFIG:{Description:"Controls if the autopilot should automatically configure the GPS based on the parameters and default settings",DisplayName:"Automatic GPS configuration",User:"Advanced",Values:{0:"Disables automatic configuration",1:"Enable automatic configuration for Serial GPSes only",2:"Enable automatic configuration for DroneCAN as well"}},GPS_AUTO_SWITCH:{Description:"Automatic switchover to GPS reporting best lock, 1:UseBest selects the GPS with highest status, if both are equal the GPS with highest satellite count is used 4:Use primary if 3D fix or better, will revert to 'UseBest' behaviour if 3D fix is lost on primary",DisplayName:"Automatic Switchover Setting",User:"Advanced",Values:{0:"Use primary",1:"UseBest",2:"Blend",4:"Use primary if 3D fix or better"}},GPS_BLEND_MASK:{Bitmask:{0:"Horiz Pos",1:"Vert Pos",2:"Speed"},Description:"Determines which of the accuracy measures Horizontal position, Vertical Position and Speed are used to calculate the weighting on each GPS receiver when soft switching has been selected by setting GPS_AUTO_SWITCH to 2(Blend)",DisplayName:"Multi GPS Blending Mask",User:"Advanced"},GPS_BLEND_TC:{Description:"Controls the slowest time constant applied to the calculation of GPS position and height offsets used to adjust different GPS receivers for steady state position differences.",DisplayName:"Blending time constant",Range:{high:"30.0",low:"5.0"},Units:"s",User:"Advanced"},GPS_CAN_NODEID1:{Description:"GPS Node id for first-discovered GPS.",DisplayName:"GPS Node ID 1",ReadOnly:"True",User:"Advanced"},GPS_CAN_NODEID2:{Description:"GPS Node id for second-discovered GPS.",DisplayName:"GPS Node ID 2",ReadOnly:"True",User:"Advanced"},GPS_COM_PORT:{Description:"The physical COM port on the connected device, currently only applies to SBF GPS",DisplayName:"GPS physical COM port",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},GPS_COM_PORT2:{Description:"The physical COM port on the connected device, currently only applies to SBF GPS",DisplayName:"GPS physical COM port",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},GPS_DELAY_MS:{Description:"Controls the amount of GPS measurement delay that the autopilot compensates for. Set to zero to use the default delay for the detected GPS type.",DisplayName:"GPS delay in milliseconds",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},GPS_DELAY_MS2:{Description:"Controls the amount of GPS measurement delay that the autopilot compensates for. Set to zero to use the default delay for the detected GPS type.",DisplayName:"GPS 2 delay in milliseconds",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},GPS_DRV_OPTIONS:{Bitmask:{0:"Use UART2 for moving baseline on ublox",1:"Use base station for GPS yaw on SBF",2:"Use baudrate 115200",3:"Use dedicated CAN port b/w GPSes for moving baseline",4:"Use ellipsoid height instead of AMSL for uBlox driver"},Description:"Additional backend specific options",DisplayName:"driver options",User:"Advanced"},GPS_GNSS_MODE:{Bitmask:{0:"GPS",1:"SBAS",2:"Galileo",3:"Beidou",4:"IMES",5:"QZSS",6:"GLONASS"},Description:"Bitmask for what GNSS system to use on the first GPS (all unchecked or zero to leave GPS as configured)",DisplayName:"GNSS system configuration",User:"Advanced"},GPS_GNSS_MODE2:{Bitmask:{0:"GPS",1:"SBAS",2:"Galileo",3:"Beidou",4:"IMES",5:"QZSS",6:"GLONASS"},Description:"Bitmask for what GNSS system to use on the second GPS (all unchecked or zero to leave GPS as configured)",DisplayName:"GNSS system configuration",User:"Advanced"},GPS_INJECT_TO:{Description:"The GGS can send raw serial packets to inject data to multiple GPSes.",DisplayName:"Destination for GPS_INJECT_DATA MAVLink packets",User:"Advanced",Values:{0:"send to first GPS",1:"send to 2nd GPS",127:"send to all"}},GPS_MIN_DGPS:{Description:"Sets the minimum type of differential GPS corrections required before allowing to switch into DGPS mode.",DisplayName:"Minimum Lock Type Accepted for DGPS",RebootRequired:"True",User:"Advanced",Values:{0:"Any",50:"FloatRTK",100:"IntegerRTK"}},GPS_MIN_ELEV:{Description:"This sets the minimum elevation of satellites above the horizon for them to be used for navigation. Setting this to -100 leaves the minimum elevation set to the GPS modules default.",DisplayName:"Minimum elevation",Range:{high:"90",low:"-100"},Units:"deg",User:"Advanced"},GPS_NAVFILTER:{Description:"Navigation filter engine setting",DisplayName:"Navigation filter setting",User:"Advanced",Values:{0:"Portable",2:"Stationary",3:"Pedestrian",4:"Automotive",5:"Sea",6:"Airborne1G",7:"Airborne2G",8:"Airborne4G"}},GPS_POS1_X:{Description:"X position of the first GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS1_Y:{Description:"Y position of the first GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS1_Z:{Description:"Z position of the first GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_X:{Description:"X position of the second GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_Y:{Description:"Y position of the second GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_Z:{Description:"Z position of the second GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_PRIMARY:{Description:"This GPS will be used when GPS_AUTO_SWITCH is 0 and used preferentially with GPS_AUTO_SWITCH = 4.",DisplayName:"Primary GPS",Increment:"1",User:"Advanced",Values:{0:"FirstGPS",1:"SecondGPS"}},GPS_RATE_MS:{Description:"Controls how often the GPS should provide a position update. Lowering below 5Hz(default) is not allowed. Raising the rate above 5Hz usually provides little benefit and for some GPS (eg Ublox M9N) can severely impact performance.",DisplayName:"GPS update rate in milliseconds",Range:{high:"200",low:"50"},Units:"ms",User:"Advanced",Values:{100:"10Hz",125:"8Hz",200:"5Hz"}},GPS_RATE_MS2:{Description:"Controls how often the GPS should provide a position update. Lowering below 5Hz(default) is not allowed. Raising the rate above 5Hz usually provides little benefit and for some GPS (eg Ublox M9N) can severely impact performance.",DisplayName:"GPS 2 update rate in milliseconds",Range:{high:"200",low:"50"},Units:"ms",User:"Advanced",Values:{100:"10Hz",125:"8Hz",200:"5Hz"}},GPS_RAW_DATA:{Description:"Handles logging raw data; on uBlox chips that support raw data this will log RXM messages into logger; on Septentrio this will log on the equipment's SD card and when set to 2, the autopilot will try to stop logging after disarming and restart after arming",DisplayName:"Raw data logging",RebootRequired:"True",User:"Advanced",Values:{0:"Ignore",1:"Always log",2:"Stop logging when disarmed (SBF only)",5:"Only log every five samples (uBlox only)"}},GPS_SAVE_CFG:{Description:"Determines whether the configuration for this GPS should be written to non-volatile memory on the GPS. Currently working for UBlox 6 series and above.",DisplayName:"Save GPS configuration",User:"Advanced",Values:{0:"Do not save config",1:"Save config",2:"Save only when needed"}},GPS_SBAS_MODE:{Description:"This sets the SBAS (satellite based augmentation system) mode if available on this GPS. If set to 2 then the SBAS mode is not changed in the GPS. Otherwise the GPS will be reconfigured to enable/disable SBAS. Disabling SBAS may be worthwhile in some parts of the world where an SBAS signal is available but the baseline is too long to be useful.",DisplayName:"SBAS Mode",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"NoChange"}},GPS_SBP_LOGMASK:{Description:"Masked with the SBP msg_type field to determine whether SBR1/SBR2 data is logged",DisplayName:"Swift Binary Protocol Logging Mask",User:"Advanced",Values:{0:"None (0x0000)","-1":"All (0xFFFF)","-256":"External only (0xFF00)"}},GPS_TYPE:{Description:"GPS type of 1st GPS",DisplayName:"1st GPS type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"AUTO",2:"uBlox",5:"NMEA",6:"SiRF",7:"HIL",8:"SwiftNav",9:"DroneCAN",10:"SBF",11:"GSOF",13:"ERB",14:"MAV",15:"NOVA",16:"HemisphereNMEA",17:"uBlox-MovingBaseline-Base",18:"uBlox-MovingBaseline-Rover",19:"MSP",20:"AllyStar",21:"ExternalAHRS",22:"DroneCAN-MovingBaseline-Base",23:"DroneCAN-MovingBaseline-Rover"}},GPS_TYPE2:{Description:"GPS type of 2nd GPS",DisplayName:"2nd GPS type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"AUTO",2:"uBlox",5:"NMEA",6:"SiRF",7:"HIL",8:"SwiftNav",9:"DroneCAN",10:"SBF",11:"GSOF",13:"ERB",14:"MAV",15:"NOVA",16:"HemisphereNMEA",17:"uBlox-MovingBaseline-Base",18:"uBlox-MovingBaseline-Rover",19:"MSP",20:"AllyStar",21:"ExternalAHRS",22:"DroneCAN-MovingBaseline-Base",23:"DroneCAN-MovingBaseline-Rover"}}},pz={GPS_MB1_OFS_X:{Description:"X position of the base GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_OFS_Y:{Description:"Y position of the base GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Y position offset ",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_OFS_Z:{Description:"Z position of the base GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_TYPE:{Description:"Controls the type of moving base used if using moving base.",DisplayName:"Moving base type",RebootRequired:"True",User:"Advanced",Values:{0:"Relative to alternate GPS instance",1:"RelativeToCustomBase"}}},fz={GPS_MB2_OFS_X:{Description:"X position of the base GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_OFS_Y:{Description:"Y position of the base GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Y position offset ",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_OFS_Z:{Description:"Z position of the base GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_TYPE:{Description:"Controls the type of moving base used if using moving base.",DisplayName:"Moving base type",RebootRequired:"True",User:"Advanced",Values:{0:"Relative to alternate GPS instance",1:"RelativeToCustomBase"}}},Vz={GRIP_AUTOCLOSE:{Description:"Time in seconds that gripper close the gripper after opening; 0 to disable",DisplayName:"Gripper Autoclose time",Range:{high:"255",low:"0.25"},Units:"s",User:"Advanced"},GRIP_CAN_ID:{Description:"Refer to https://docs.zubax.com/opengrab_epm_v3#UAVCAN_interface",DisplayName:"EPM UAVCAN Hardpoint ID",Range:{high:"255",low:"0"},User:"Standard"},GRIP_ENABLE:{Description:"Gripper enable/disable",DisplayName:"Gripper Enable/Disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},GRIP_GRAB:{Description:"PWM value in microseconds sent to Gripper to initiate grabbing the cargo",DisplayName:"Gripper Grab PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_NEUTRAL:{Description:"PWM value in microseconds sent to grabber when not grabbing or releasing",DisplayName:"Neutral PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_REGRAB:{Description:"Time in seconds that EPM gripper will regrab the cargo to ensure grip has not weakened; 0 to disable",DisplayName:"EPM Gripper Regrab interval",Range:{high:"255",low:"0"},Units:"s",User:"Advanced"},GRIP_RELEASE:{Description:"PWM value in microseconds sent to Gripper to release the cargo",DisplayName:"Gripper Release PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_TYPE:{Description:"Gripper enable/disable",DisplayName:"Gripper Type",User:"Standard",Values:{0:"None",1:"Servo",2:"EPM"}}},Lz={H_COL2_MAX:{Description:"Highest possible servo position in PWM microseconds for swashplate 2",DisplayName:"Swash 2 Maximum Collective Pitch",Increment:"1",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},H_COL2_MIN:{Description:"Lowest possible servo position in PWM microseconds for swashplate 2",DisplayName:"Swash 2 Minimum Collective Pitch",Increment:"1",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},H_COLYAW:{Description:"Feed-forward compensation to automatically add rudder input when collective pitch is increased. Can be positive or negative depending on mechanics.",DisplayName:"Collective-Yaw Mixing",Increment:"0.1",Range:{high:"10",low:"-10"},User:"Standard"},H_COL_ANG_MAX:{Description:"Maximum collective blade pitch angle in deg that corresponds to the PWM set for maximum collective pitch (H_COL_MAX).",DisplayName:"Collective Blade Pitch Angle Maximum",Increment:"0.1",Range:{high:"20",low:"5"},Units:"deg",User:"Standard"},H_COL_ANG_MIN:{Description:"Minimum collective blade pitch angle in deg that corresponds to the PWM set for minimum collective pitch (H_COL_MIN).",DisplayName:"Collective Blade Pitch Angle Minimum",Increment:"0.1",Range:{high:"0",low:"-20"},Units:"deg",User:"Standard"},H_COL_HOVER:{Description:"Collective needed to hover expressed as a number from 0 to 1 where 0 is H_COL_MIN and 1 is H_COL_MAX",DisplayName:"Collective Hover Value",Range:{high:"0.8",low:"0.3"},User:"Advanced"},H_COL_LAND_MIN:{Description:"Minimum collective blade pitch angle when landed in degrees for non-manual collective modes (i.e. modes that use altitude hold).",DisplayName:"Collective Blade Pitch Minimum when Landed",Increment:"0.1",Range:{high:"0",low:"-5"},Units:"deg",User:"Standard"},H_COL_MAX:{Description:"Highest possible servo position in PWM microseconds for the swashplate",DisplayName:"Maximum Collective Pitch",Increment:"1",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},H_COL_MIN:{Description:"Lowest possible servo position in PWM microseconds for the swashplate",DisplayName:"Minimum Collective Pitch",Increment:"1",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},H_COL_ZERO_THRST:{Description:"Collective blade pitch angle at zero thrust in degrees. For symetric airfoil blades this value is zero deg. For chambered airfoil blades this value is typically negative.",DisplayName:"Collective Blade Pitch at Zero Thrust",Increment:"0.1",Range:{high:"0",low:"-5"},Units:"deg",User:"Standard"},H_CYC_MAX:{Description:"Maximum cyclic pitch angle of the swash plate. There are no units to this parameter. This should be adjusted to get the desired cyclic blade pitch for the pitch and roll axes. Typically this should be 6-7 deg (measured blade pitch angle difference between stick centered and stick max deflection.",DisplayName:"Maximum Cyclic Pitch Angle",Increment:"100",Range:{high:"4500",low:"0"},User:"Standard"},H_DCP_SCALER:{Description:"Scaling factor applied to the differential-collective-pitch",DisplayName:"Differential-Collective-Pitch Scaler",Range:{high:"1",low:"0"},User:"Standard"},H_DCP_TRIM:{Description:"Removes I term bias due to center of gravity offsets or discrepancies between rotors in swashplate setup. If DCP axis has I term bias while hovering in calm winds, use value of bias in DCP_TRIM to re-center I term.",DisplayName:"Differential Collective Pitch Trim",Increment:"0.01",Range:{high:"0.2",low:"-0.2"},User:"Standard"},H_DCP_YAW:{Description:"Feed-forward compensation to automatically add yaw input when differential collective pitch is applied. Disabled for intermeshing mode.",DisplayName:"Differential-Collective-Pitch Yaw Mixing",Increment:"0.1",Range:{high:"10",low:"-10"},User:"Standard"},H_DUAL_MODE:{Description:"Sets the dual mode of the heli, either as tandem or as transverse.",DisplayName:"Dual Mode",User:"Standard",Values:{0:"Longitudinal",1:"Transverse",2:"Intermeshing"}},H_FLYBAR_MODE:{Description:"Flybar present or not. Affects attitude controller used during ACRO flight mode",DisplayName:"Flybar Mode Selector",User:"Standard",Values:{0:"NoFlybar",1:"Flybar"}},H_GYR_GAIN:{Description:"PWM in microseconds sent to external gyro on ch7 when tail type is Servo w/ ExtGyro",DisplayName:"External Gyro Gain",Increment:"1",Range:{high:"1000",low:"0"},Units:"PWM",User:"Standard"},H_GYR_GAIN_ACRO:{Description:"PWM in microseconds sent to external gyro on ch7 when tail type is Servo w/ ExtGyro. A value of zero means to use H_GYR_GAIN",DisplayName:"ACRO External Gyro Gain",Increment:"1",Range:{high:"1000",low:"0"},Units:"PWM",User:"Standard"},H_HOVER_LEARN:{Description:"Enable/Disable automatic learning of hover collective",DisplayName:"Hover Value Learning",User:"Advanced",Values:{0:"Disabled",1:"Learn",2:"Learn and Save"}},H_OPTIONS:{Bitmask:{0:"Use Leaky I"},Description:"Bitmask of heli options. Bit 0 changes how the pitch, roll, and yaw axis integrator term is managed for low speed and takeoff/landing. In AC 4.0 and earlier, scheme uses a leaky integrator for ground speeds less than 5 m/s and won't let the steady state integrator build above ILMI. The integrator is allowed to build to the ILMI value when it is landed. The other integrator management scheme bases integrator limiting on takeoff and landing. Whenever the aircraft is landed the integrator is set to zero. When the aicraft is airborne, the integrator is only limited by IMAX. ",DisplayName:"Heli_Options",User:"Standard"},H_SV_MAN:{Description:"Manual servo override for swash set-up. Must be 0 (Disabled) for flight!",DisplayName:"Manual Servo Mode",User:"Standard",Values:{0:"Disabled",1:"Passthrough",2:"Max collective",3:"Zero thrust collective",4:"Min collective"}},H_SV_TEST:{Description:"Number of cycles to run servo test on boot-up",DisplayName:"Boot-up Servo Test Cycles",Increment:"1",Range:{high:"10",low:"0"},User:"Standard"},H_SW2_COL_DIR:{Description:"Direction collective moves for positive pitch. 0 for Normal, 1 for Reversed",DisplayName:"Swash 2 Collective Direction",User:"Standard",Values:{0:"Normal",1:"Reversed"}},H_SW2_H3_ENABLE:{Description:"Automatically set when H3 generic swash type is selected for swashplate 2. Do not set manually.",DisplayName:"Swash 2 H3 Generic Enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},H_SW2_H3_PHANG:{Description:"Only for H3 swashplate. If pitching the swash forward induces a roll, this can be correct the problem",DisplayName:"Swash 2 H3 Generic Phase Angle Comp",Increment:"1",Range:{high:"30",low:"-30"},Units:"deg",User:"Advanced"},H_SW2_H3_SV1_POS:{Description:"Azimuth position on swashplate for servo 1 with the front of the heli being 0 deg",DisplayName:"Swash 2 H3 Generic Servo 1 Position",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},H_SW2_H3_SV2_POS:{Description:"Azimuth position on swashplate 2 for servo 2 with the front of the heli being 0 deg",DisplayName:"Swash 2 H3 Generic Servo 2 Position",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},H_SW2_H3_SV3_POS:{Description:"Azimuth position on swashplate 2 for servo 3 with the front of the heli being 0 deg",DisplayName:"Swash 2 H3 Generic Servo 3 Position",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},H_SW2_LIN_SVO:{Description:"This linearizes the swashplate 2 servo's mechanical output to account for nonlinear output due to arm rotation. This requires a specific setup procedure to work properly. The servo arm must be centered on the mechanical throw at the servo trim position and the servo trim position kept as close to 1500 as possible. Leveling the swashplate can only be done through the pitch links. See the ardupilot wiki for more details on setup.",DisplayName:"Linearize Swash 2 Servos",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},H_SW2_TYPE:{Description:"H3 is generic, three-servo only. H3_120/H3_140 plates have Motor1 left side, Motor2 right side, Motor3 elevator in rear. HR3_120/HR3_140 have Motor1 right side, Motor2 left side, Motor3 elevator in front - use H3_120/H3_140 and reverse servo and collective directions as necessary. For all H3_90 swashplates use H4_90 and don't use servo output for the missing servo. For H4-90 Motors1&2 are left/right respectively, Motors3&4 are rear/front respectively. For H4-45 Motors1&2 are LF/RF, Motors3&4 are LR/RR ",DisplayName:"Swash 2 Type",User:"Standard",Values:{0:"H3 Generic",1:"H1 non-CPPM",2:"H3_140",3:"H3_120",4:"H4_90",5:"H4_45"}},H_SW_COL_DIR:{Description:"Direction collective moves for positive pitch. 0 for Normal, 1 for Reversed",DisplayName:"Swash 1 Collective Direction",User:"Standard",Values:{0:"Normal",1:"Reversed"}},H_SW_H3_ENABLE:{Description:"Automatically set when H3 generic swash type is selected for swashplate 1. Do not set manually.",DisplayName:"Swash 1 H3 Generic Enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},H_SW_H3_PHANG:{Description:"Only for H3 swashplate. If pitching the swash forward induces a roll, this can be correct the problem",DisplayName:"Swash 1 H3 Generic Phase Angle Comp",Increment:"1",Range:{high:"30",low:"-30"},Units:"deg",User:"Advanced"},H_SW_H3_SV1_POS:{Description:"Azimuth position on swashplate for servo 1 with the front of the heli being 0 deg",DisplayName:"Swash 1 H3 Generic Servo 1 Position",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},H_SW_H3_SV2_POS:{Description:"Azimuth position on swashplate 1 for servo 2 with the front of the heli being 0 deg",DisplayName:"Swash 1 H3 Generic Servo 2 Position",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},H_SW_H3_SV3_POS:{Description:"Azimuth position on swashplate 1 for servo 3 with the front of the heli being 0 deg",DisplayName:"Swash 1 H3 Generic Servo 3 Position",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},H_SW_LIN_SVO:{Description:"This linearizes the swashplate 1 servo's mechanical output to account for nonlinear output due to arm rotation. This requires a specific setup procedure to work properly. The servo arm must be centered on the mechanical throw at the servo trim position and the servo trim position kept as close to 1500 as possible. Leveling the swashplate can only be done through the pitch links. See the ardupilot wiki for more details on setup.",DisplayName:"Linearize Swash 1 Servos",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},H_SW_TYPE:{Description:"H3 is generic, three-servo only. H3_120/H3_140 plates have Motor1 left side, Motor2 right side, Motor3 elevator in rear. HR3_120/HR3_140 have Motor1 right side, Motor2 left side, Motor3 elevator in front - use H3_120/H3_140 and reverse servo and collective directions as necessary. For all H3_90 swashplates use H4_90 and don't use servo output for the missing servo. For H4-90 Motors1&2 are left/right respectively, Motors3&4 are rear/front respectively. For H4-45 Motors1&2 are LF/RF, Motors3&4 are LR/RR ",DisplayName:"Swash 1 Type",User:"Standard",Values:{0:"H3 Generic",1:"H1 non-CPPM",2:"H3_140",3:"H3_120",4:"H4_90",5:"H4_45"}},H_TAIL_SPEED:{Description:"Direct drive, variable pitch tail ESC speed in percent output to the tail motor esc (HeliTailRSC Servo) when motor interlock enabled (throttle hold off).",DisplayName:"DDVP Tail ESC speed",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},H_TAIL_TYPE:{Description:"Tail type selection. Simpler yaw controller used if external gyro is selected. Direct Drive Variable Pitch is used for tails that have a motor that is governed at constant speed by an ESC. Tail pitch is still accomplished with a servo. Direct Drive Fixed Pitch (DDFP) CW is used for helicopters with a rotor that spins clockwise when viewed from above. Direct Drive Fixed Pitch (DDFP) CCW is used for helicopters with a rotor that spins counter clockwise when viewed from above. In both DDFP cases, no servo is used for the tail and the tail motor esc is controlled by the yaw axis.",DisplayName:"Tail Type",User:"Standard",Values:{0:"Servo only",1:"Servo with ExtGyro",2:"DirectDrive VarPitch",3:"DirectDrive FixedPitch CW",4:"DirectDrive FixedPitch CCW",5:"DDVP with external governor"}},H_YAW_REV_EXPO:{Description:"For intermeshing mode only. Yaw revereser smoothing exponent, smoothen transition near zero collective region. Increase this parameter to shink smoothing range. Set to -1 to disable reverser. ",DisplayName:"Yaw reverser expo",Increment:"1.0",Range:{high:"1000",low:"-1"},User:"Standard"},H_YAW_SCALER:{Description:"Scaler for mixing yaw into roll or pitch.",DisplayName:"Scaler for yaw mixing",Increment:"0.1",Range:{high:"10",low:"-10"},User:"Standard"}},Hz={H_RSC_AROT_PCT:{Description:"The throttle percentage sent to external governors, signaling to enable fast spool-up, when bailing out of an autorotation. Set 0 to disable. If also using a tail rotor of type DDVP with external governor then this value must lie within the autorotation window of both governors.",DisplayName:"Autorotation Throttle Percentage for External Governor",Increment:"1",Range:{high:"40",low:"0"},Units:"%",User:"Standard"},H_RSC_CLDWN_TIME:{Description:"Will provide a fast idle for engine cooldown by raising the Ground Idle speed setting by 50% for the number of seconds the timer is set for. A setting of zero disables the fast idle. This feature will only apply after the runup complete has been declared. This will not extend the time before ground idle is declared, which triggers engine shutdown for autonomous landings.",DisplayName:"Cooldown Time",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Standard"},H_RSC_CRITICAL:{Description:"Percentage of normal rotor speed where flight is no longer possible. However currently the rotor runup/rundown is estimated using the RSC_RUNUP_TIME parameter. Estimated rotor speed increases/decreases between 0 (rotor stopped) to 1 (rotor at normal speed) in the RSC_RUNUP_TIME in seconds. This parameter should be set so that the estimated rotor speed goes below critical in approximately 3 seconds. So if you had a 10 second runup time then set RSC_CRITICAL to 70%.",DisplayName:"Critical Rotor Speed",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},H_RSC_GOV_COMP:{Description:'Adjusts the autothrottle governor torque compensator that determines how fast the governor will adjust the base torque reference to compensate for changes in density altitude. If RPM is low or high by more than 2-5 RPM, increase this setting by 1% at a time until the governor speed matches your RPM setting. Setting the compensator too high can result in surging and throttle "hunting". Do not make large adjustments at one time',DisplayName:"Governor Torque Compensator",Increment:"0.1",Range:{high:"70",low:"0"},Units:"%",User:"Standard"},H_RSC_GOV_DROOP:{Description:"AutoThrottle governor droop response under load, normal settings of 0-50%. Higher value is quicker response to large speed changes due to load but may cause surging. Adjust this to be as aggressive as possible without getting surging or RPM over-run when the governor responds to large load changes on the rotor system",DisplayName:"Governor Droop Compensator",Increment:"0.1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},H_RSC_GOV_FF:{Description:"Feedforward governor gain to throttle response during sudden loading/unloading of the rotor system. If RPM drops excessively during full collective climb with the droop response set correctly, increase the governor feedforward.",DisplayName:"Governor Feedforward",Increment:"0.1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},H_RSC_GOV_RANGE:{Description:"RPM range +/- governor rpm reference setting where governor is operational. If speed sensor fails or rpm falls outside of this range, the governor will disengage and return to throttle curve. Recommended range is 100",DisplayName:"Governor Operational Range",Increment:"10",Range:{high:"200",low:"50"},Units:"RPM",User:"Standard"},H_RSC_GOV_RPM:{Description:"Main rotor RPM that governor maintains when engaged",DisplayName:"Rotor RPM Setting",Increment:"10",Range:{high:"3500",low:"800"},Units:"RPM",User:"Standard"},H_RSC_GOV_TORQUE:{Description:"Adjusts the engine's percentage of torque rise on autothrottle during ramp-up to governor speed. The torque rise will determine how fast the rotor speed will ramp up when rotor speed reaches 50% of the rotor RPM setting. The sequence of events engaging the governor is as follows: Throttle ramp time will engage the clutch and start the main rotor turning. The collective should be at flat pitch and the throttle curve set to provide at least 50% of normal RPM at flat pitch. The autothrottle torque limiter will automatically activate and start accelerating the main rotor. If the autothrottle consistently fails to accelerate the main rotor during ramp-in due to engine tune or other factors, then increase the torque limiter setting. NOTE: throttle ramp time and throttle curve should be tuned using RSC_MODE Throttle Curve before using RSC_MODE AutoThrottle",DisplayName:"Governor Torque Limiter",Increment:"1",Range:{high:"60",low:"10"},Units:"%",User:"Standard"},H_RSC_IDLE:{Description:"Throttle output (HeliRSC Servo) in percent while armed but motor interlock is disabled (throttle hold on). FOR COMBUSTION ENGINES. Sets the engine ground idle throttle percentage with clutch disengaged. This must be set to zero for electric helicopters under most situations. If the ESC has an autorotation window this can be set to keep the autorotation window open in the ESC. Consult the operating manual for your ESC to set it properly for this purpose",DisplayName:"Throttle Output at Idle",Increment:"1",Range:{high:"50",low:"0"},Units:"%",User:"Standard"},H_RSC_MODE:{Description:"Selects the type of rotor speed control used to determine throttle output to the HeliRSC servo channel when motor interlock is enabled (throttle hold off). RC Passthrough sends the input from the RC Motor Interlock channel as throttle output. External Gov SetPoint sends the RSC SetPoint parameter value as throttle output. Throttle Curve uses the 5 point throttle curve to determine throttle output based on the collective output. AutoThrottle requires a rotor speed sensor, contains an advanced autothrottle governor and is primarily for piston and turbine engines. WARNING: Throttle ramp time and throttle curve MUST be tuned properly using Throttle Curve mode before using AutoThrottle",DisplayName:"Rotor Speed Control Mode",User:"Standard",Values:{1:"RC Passthrough",2:"External Gov SetPoint",3:"Throttle Curve",4:"AutoThrottle"}},H_RSC_RAMP_TIME:{Description:"Time in seconds for throttle output (HeliRSC servo) to ramp from ground idle (RSC_IDLE) to flight idle throttle setting when motor interlock is enabled (throttle hold off).",DisplayName:"Throttle Ramp Time",Range:{high:"60",low:"0"},Units:"s",User:"Standard"},H_RSC_RUNUP_TIME:{Description:"Actual time in seconds for the main rotor to reach full speed after motor interlock is enabled (throttle hold off). Must be at least one second longer than the Throttle Ramp Time that is set with RSC_RAMP_TIME. WARNING: For AutoThrottle users with piston and turbine engines it is VERY important to know how long it takes to warm up your engine and reach full rotor speed when throttle switch is turned ON. This timer should be set for at least the amount of time it takes to get your helicopter to full flight power, ready for takeoff. Failure to heed this warning could result in the auto-takeoff mode attempting to lift up into hover before the engine has reached full power, and subsequent loss of control",DisplayName:"Rotor Runup Time",Range:{high:"60",low:"0"},Units:"s",User:"Standard"},H_RSC_SETPOINT:{Description:"Throttle (HeliRSC Servo) output in percent to the external motor governor when motor interlock enabled (throttle hold off).",DisplayName:"External Motor Governor Setpoint",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},H_RSC_SLEWRATE:{Description:"This controls the maximum rate at which the throttle output (HeliRSC servo) can change, as a percentage per second. A value of 100 means the throttle can change over its full range in one second. A value of zero gives unlimited slew rate.",DisplayName:"Throttle Slew Rate",Increment:"10",Range:{high:"500",low:"0"},User:"Standard"},H_RSC_THRCRV_0:{Description:"Sets the throttle output (HeliRSC servo) in percent for the throttle curve at the minimum collective pitch position. The 0 percent collective is defined by H_COL_MIN. Example: if the setup has -2 degree to +10 degree collective pitch setup, this setting would correspond to -2 degree of pitch.",DisplayName:"Throttle Curve at 0% Coll",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},H_RSC_THRCRV_100:{Description:"Sets the throttle output (HeliRSC servo) in percent for the throttle curve at the minimum collective pitch position. The 100 percent collective is defined by H_COL_MAX. Example: if the setup has -2 degree to +10 degree collective pitch setup, this setting would correspond to +10 degree of pitch.",DisplayName:"Throttle Curve at 100% Coll",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},H_RSC_THRCRV_25:{Description:"Sets the throttle output (HeliRSC servo) in percent for the throttle curve at 25% of full collective travel where he 0 percent collective is defined by H_COL_MIN and 100 percent collective is defined by H_COL_MAX. Example: if the setup has -2 degree to +10 degree collective pitch setup, the total range is 12 degrees. 25% of 12 degrees is 3 degrees, so this setting would correspond to +1 degree of pitch.",DisplayName:"Throttle Curve at 25% Coll",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},H_RSC_THRCRV_50:{Description:"Sets the throttle output (HeliRSC servo) in percent for the throttle curve at 50% of full collective travel where he 0 percent collective is defined by H_COL_MIN and 100 percent collective is defined by H_COL_MAX. Example: if the setup has -2 degree to +10 degree collective pitch setup, the total range is 12 degrees. 50% of 12 degrees is 6 degrees, so this setting would correspond to +4 degree of pitch.",DisplayName:"Throttle Curve at 50% Coll",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},H_RSC_THRCRV_75:{Description:"Sets the throttle output (HeliRSC servo) in percent for the throttle curve at 75% of full collective travel where he 0 percent collective is defined by H_COL_MIN and 100 percent collective is defined by H_COL_MAX. Example: if the setup has -2 degree to +10 degree collective pitch setup, the total range is 12 degrees. 75% of 12 degrees is 9 degrees, so this setting would correspond to +7 degree of pitch.",DisplayName:"Throttle Curve at 75% Coll",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"}},Mz={IM_ACRO_COL_EXP:{Description:"Used to soften collective pitch inputs near center point in Acro mode.",DisplayName:"Acro Mode Collective Expo",User:"Advanced",Values:{0:"Disabled","0.1":"Very Low","0.2":"Low","0.3":"Medium","0.4":"High","0.5":"Very High"}},IM_STB_COL_1:{Description:"Helicopter's minimum collective pitch setting at zero collective stick input in Stabilize mode. Set this as a percent of collective range given by H_COL_MAX minus H_COL_MIN.",DisplayName:"Stabilize Collective Low",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},IM_STB_COL_2:{Description:"Helicopter's collective pitch setting at mid-low (40%) collective stick input in Stabilize mode. Set this as a percent of collective range given by H_COL_MAX minus H_COL_MIN.",DisplayName:"Stabilize Collective Mid-Low",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},IM_STB_COL_3:{Description:"Helicopter's collective pitch setting at mid-high (60%) collective stick input in Stabilize mode. Set this as a percent of collective range given by H_COL_MAX minus H_COL_MIN.",DisplayName:"Stabilize Collective Mid-High",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},IM_STB_COL_4:{Description:"Helicopter's maximum collective pitch setting at full collective stick input in Stabilize mode. Set this as a percent of collective range given by H_COL_MAX minus H_COL_MIN.",DisplayName:"Stabilize Collective High",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"}},gz={INS_ACC1_CALTEMP:{Calibration:"1",Description:"Temperature that the 1st accelerometer was calibrated at",DisplayName:"Calibration temperature for 1st accelerometer",Units:"degC",User:"Advanced"},INS_ACC2OFFS_X:{Calibration:"1",Description:"Accelerometer2 offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2OFFS_Y:{Calibration:"1",Description:"Accelerometer2 offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2OFFS_Z:{Calibration:"1",Description:"Accelerometer2 offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2SCAL_X:{Calibration:"1",Description:"Accelerometer2 scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2SCAL_Y:{Calibration:"1",Description:"Accelerometer2 scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2SCAL_Z:{Calibration:"1",Description:"Accelerometer2 scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2_CALTEMP:{Calibration:"1",Description:"Temperature that the 2nd accelerometer was calibrated at",DisplayName:"Calibration temperature for 2nd accelerometer",Units:"degC",User:"Advanced"},INS_ACC2_ID:{Description:"Accelerometer2 sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer2 ID",ReadOnly:"True",User:"Advanced"},INS_ACC3OFFS_X:{Calibration:"1",Description:"Accelerometer3 offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3OFFS_Y:{Calibration:"1",Description:"Accelerometer3 offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3OFFS_Z:{Calibration:"1",Description:"Accelerometer3 offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3SCAL_X:{Calibration:"1",Description:"Accelerometer3 scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3SCAL_Y:{Calibration:"1",Description:"Accelerometer3 scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3SCAL_Z:{Calibration:"1",Description:"Accelerometer3 scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3_CALTEMP:{Calibration:"1",Description:"Temperature that the 3rd accelerometer was calibrated at",DisplayName:"Calibration temperature for 3rd accelerometer",Units:"degC",User:"Advanced"},INS_ACC3_ID:{Description:"Accelerometer3 sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer3 ID",ReadOnly:"True",User:"Advanced"},INS_ACCEL_FILTER:{Description:"Filter cutoff frequency for accelerometers. This can be set to a lower value to try to cope with very high vibration levels in aircraft. A value of zero means no filtering (not recommended!)",DisplayName:"Accel filter cutoff frequency",Range:{high:"256",low:"0"},Units:"Hz",User:"Advanced"},INS_ACCOFFS_X:{Calibration:"1",Description:"Accelerometer offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCOFFS_Y:{Calibration:"1",Description:"Accelerometer offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCOFFS_Z:{Calibration:"1",Description:"Accelerometer offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCSCAL_X:{Calibration:"1",Description:"Accelerometer scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACCSCAL_Y:{Calibration:"1",Description:"Accelerometer scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACCSCAL_Z:{Calibration:"1",Description:"Accelerometer scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC_BODYFIX:{Description:"The body-fixed accelerometer to be used for trim calculation",DisplayName:"Body-fixed accelerometer",User:"Advanced",Values:{1:"IMU 1",2:"IMU 2",3:"IMU 3"}},INS_ACC_ID:{Description:"Accelerometer sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer ID",ReadOnly:"True",User:"Advanced"},INS_ENABLE_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU",6:"SeventhIMU"},Description:"Bitmask of IMUs to enable. It can be used to prevent startup of specific detected IMUs",DisplayName:"IMU enable mask",User:"Advanced"},INS_FAST_SAMPLE:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU"},Description:"Mask of IMUs to enable fast sampling on, if available",DisplayName:"Fast sampling mask",User:"Advanced"},INS_GYR1_CALTEMP:{Calibration:"1",Description:"Temperature that the 1st gyroscope was calibrated at",DisplayName:"Calibration temperature for 1st gyroscope",Units:"degC",User:"Advanced"},INS_GYR2OFFS_X:{Calibration:"1",Description:"Gyro2 sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYR2OFFS_Y:{Calibration:"1",Description:"Gyro2 sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYR2OFFS_Z:{Calibration:"1",Description:"Gyro2 sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYR2_CALTEMP:{Calibration:"1",Description:"Temperature that the 2nd gyroscope was calibrated at",DisplayName:"Calibration temperature for 2nd gyroscope",Units:"degC",User:"Advanced"},INS_GYR2_ID:{Description:"Gyro2 sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro2 ID",ReadOnly:"True",User:"Advanced"},INS_GYR3OFFS_X:{Calibration:"1",Description:"Gyro3 sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYR3OFFS_Y:{Calibration:"1",Description:"Gyro3 sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYR3OFFS_Z:{Calibration:"1",Description:"Gyro3 sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYR3_CALTEMP:{Calibration:"1",Description:"Temperature that the 3rd gyroscope was calibrated at",DisplayName:"Calibration temperature for 3rd gyroscope",Units:"degC",User:"Advanced"},INS_GYR3_ID:{Description:"Gyro3 sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro3 ID",ReadOnly:"True",User:"Advanced"},INS_GYROFFS_X:{Calibration:"1",Description:"Gyro sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYROFFS_Y:{Calibration:"1",Description:"Gyro sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYROFFS_Z:{Calibration:"1",Description:"Gyro sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYRO_FILTER:{Description:"Filter cutoff frequency for gyroscopes. This can be set to a lower value to try to cope with very high vibration levels in aircraft. A value of zero means no filtering (not recommended!)",DisplayName:"Gyro filter cutoff frequency",Range:{high:"256",low:"0"},Units:"Hz",User:"Advanced"},INS_GYRO_RATE:{Description:"Gyro rate for IMUs with fast sampling enabled. The gyro rate is the sample rate at which the IMU filters operate and needs to be at least double the maximum filter frequency. If the sensor does not support the selected rate the next highest supported rate will be used. For IMUs which do not support fast sampling this setting is ignored and the default gyro rate of 1Khz is used.",DisplayName:"Gyro rate for IMUs with Fast Sampling enabled",RebootRequired:"True",User:"Advanced",Values:{0:"1kHz",1:"2kHz",2:"4kHz",3:"8kHz"}},INS_GYR_CAL:{Description:"Conrols when automatic gyro calibration is performed",DisplayName:"Gyro Calibration scheme",User:"Advanced",Values:{0:"Never",1:"Start-up only"}},INS_GYR_ID:{Description:"Gyro sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro ID",ReadOnly:"True",User:"Advanced"},INS_POS1_X:{Description:"X position of the first IMU Accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS1_Y:{Description:"Y position of the first IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS1_Z:{Description:"Z position of the first IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_X:{Description:"X position of the second IMU accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_Y:{Description:"Y position of the second IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_Z:{Description:"Z position of the second IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS3_X:{Description:"X position of the third IMU accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Range:{high:"10",low:"-10"},Units:"m",User:"Advanced"},INS_POS3_Y:{Description:"Y position of the third IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS3_Z:{Description:"Z position of the third IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_STILL_THRESH:{Description:"Threshold to tolerate vibration to determine if vehicle is motionless. This depends on the frame type and if there is a constant vibration due to motors before launch or after landing. Total motionless is about 0.05. Suggested values: Planes/rover use 0.1, multirotors use 1, tradHeli uses 5",DisplayName:"Stillness threshold for detecting if we are moving",Range:{high:"50",low:"0.05"},User:"Advanced"},INS_TCAL_OPTIONS:{Bitmask:{0:"PersistParams"},Description:"This enables optional temperature calibration features. Setting PersistParams will save the accelerometer and temperature calibration parameters in the bootloader sector on the next update of the bootloader.",DisplayName:"Options for temperature calibration",User:"Advanced"},INS_TRIM_OPTION:{Description:"Specifies how the accel cal routine determines the trims",DisplayName:"Accel cal trim option",User:"Advanced",Values:{0:"Don't adjust the trims",1:"Assume first orientation was level",2:"Assume ACC_BODYFIX is perfectly aligned to the vehicle"}},INS_USE:{Description:"Use first IMU for attitude, velocity and position estimates",DisplayName:"Use first IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_USE2:{Description:"Use second IMU for attitude, velocity and position estimates",DisplayName:"Use second IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_USE3:{Description:"Use third IMU for attitude, velocity and position estimates",DisplayName:"Use third IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}}},Az={INS_HNTC2_ATT:{Description:"Harmonic Notch Filter attenuation in dB. Values greater than 40dB will typically produce a hard notch rather than a modest attenuation of motor noise.",DisplayName:"Harmonic Notch Filter attenuation",Range:{high:"50",low:"5"},Units:"dB",User:"Advanced"},INS_HNTC2_BW:{Description:"Harmonic Notch Filter bandwidth in Hz. This is typically set to half the base frequency. The ratio of base frequency to bandwidth determines the notch quality factor and is fixed across harmonics.",DisplayName:"Harmonic Notch Filter bandwidth",Range:{high:"250",low:"5"},Units:"Hz",User:"Advanced"},INS_HNTC2_ENABLE:{Description:"Harmonic Notch Filter enable",DisplayName:"Harmonic Notch Filter enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_HNTC2_FM_RAT:{Description:"The minimum ratio below the configured frequency to take throttle based notch filters when flying at a throttle level below the reference throttle. Note that lower frequency notch filters will have more phase lag. If you want throttle based notch filtering to be effective at a throttle up to 30% below the configured notch frequency then set this parameter to 0.7. The default of 1.0 means the notch will not go below the frequency in the FREQ parameter.",DisplayName:"Throttle notch min freqency ratio",Range:{high:"1.0",low:"0.1"},User:"Advanced"},INS_HNTC2_FREQ:{Description:"Harmonic Notch Filter base center frequency in Hz. This should be set at most half the backend gyro rate (which is typically 1Khz). For helicopters using RPM sensor to dynamically set the notch frequency, use this parameter to provide a lower limit to the dynamic notch filter. Recommend setting it to half the operating rotor speed in Hz.",DisplayName:"Harmonic Notch Filter base frequency",Range:{high:"495",low:"10"},Units:"Hz",User:"Advanced"},INS_HNTC2_HMNCS:{Bitmask:{0:"1st harmonic",1:"2nd harmonic",2:"3rd harmonic",3:"4th hamronic",4:"5th harmonic",5:"6th harmonic",6:"7th harmonic",7:"8th harmonic"},Description:"Bitmask of harmonic frequencies to apply Harmonic Notch Filter to. This option takes effect on the next reboot. A value of 0 disables this filter. The first harmonic refers to the base frequency.",DisplayName:"Harmonic Notch Filter harmonics",RebootRequired:"True",User:"Advanced"},INS_HNTC2_MODE:{Description:"Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based updates should only be used with multicopters.",DisplayName:"Harmonic Notch Filter dynamic frequency tracking mode",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Disabled",1:"Throttle",2:"RPM Sensor",3:"ESC Telemetry",4:"Dynamic FFT",5:"Second RPM Sensor"}},INS_HNTC2_OPTS:{Bitmask:{0:"Double notch",1:"Dynamic harmonic",2:"Update at loop rate",3:"EnableOnAllIMUs",4:"Triple notch"},Description:"Harmonic Notch Filter options. Triple and double-notches can provide deeper attenuation across a wider bandwidth with reduced latency than single notches and are suitable for larger aircraft. Dynamic harmonics attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz. If both double and triple notches are specified only double notches will take effect.",DisplayName:"Harmonic Notch Filter options",RebootRequired:"True",User:"Advanced"},INS_HNTC2_REF:{Description:"A reference value of zero disables dynamic updates on the Harmonic Notch Filter and a positive value enables dynamic updates on the Harmonic Notch Filter. For throttle-based scaling, this parameter is the reference value associated with the specified frequency to facilitate frequency scaling of the Harmonic Notch Filter. For RPM and ESC telemetry based tracking, this parameter is set to 1 to enable the Harmonic Notch Filter using the RPM sensor or ESC telemetry set to measure rotor speed. The sensor data is converted to Hz automatically for use in the Harmonic Notch Filter. This reference value may also be used to scale the sensor data, if required. For example, rpm sensor data is required to measure heli motor RPM. Therefore the reference value can be used to scale the RPM sensor to the rotor RPM.",DisplayName:"Harmonic Notch Filter reference value",Range:{high:"1.0",low:"0.0"},RebootRequired:"True",User:"Advanced"}},vz={INS_HNTCH_ATT:{Description:"Harmonic Notch Filter attenuation in dB. Values greater than 40dB will typically produce a hard notch rather than a modest attenuation of motor noise.",DisplayName:"Harmonic Notch Filter attenuation",Range:{high:"50",low:"5"},Units:"dB",User:"Advanced"},INS_HNTCH_BW:{Description:"Harmonic Notch Filter bandwidth in Hz. This is typically set to half the base frequency. The ratio of base frequency to bandwidth determines the notch quality factor and is fixed across harmonics.",DisplayName:"Harmonic Notch Filter bandwidth",Range:{high:"250",low:"5"},Units:"Hz",User:"Advanced"},INS_HNTCH_ENABLE:{Description:"Harmonic Notch Filter enable",DisplayName:"Harmonic Notch Filter enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_HNTCH_FM_RAT:{Description:"The minimum ratio below the configured frequency to take throttle based notch filters when flying at a throttle level below the reference throttle. Note that lower frequency notch filters will have more phase lag. If you want throttle based notch filtering to be effective at a throttle up to 30% below the configured notch frequency then set this parameter to 0.7. The default of 1.0 means the notch will not go below the frequency in the FREQ parameter.",DisplayName:"Throttle notch min freqency ratio",Range:{high:"1.0",low:"0.1"},User:"Advanced"},INS_HNTCH_FREQ:{Description:"Harmonic Notch Filter base center frequency in Hz. This should be set at most half the backend gyro rate (which is typically 1Khz). For helicopters using RPM sensor to dynamically set the notch frequency, use this parameter to provide a lower limit to the dynamic notch filter. Recommend setting it to half the operating rotor speed in Hz.",DisplayName:"Harmonic Notch Filter base frequency",Range:{high:"495",low:"10"},Units:"Hz",User:"Advanced"},INS_HNTCH_HMNCS:{Bitmask:{0:"1st harmonic",1:"2nd harmonic",2:"3rd harmonic",3:"4th hamronic",4:"5th harmonic",5:"6th harmonic",6:"7th harmonic",7:"8th harmonic"},Description:"Bitmask of harmonic frequencies to apply Harmonic Notch Filter to. This option takes effect on the next reboot. A value of 0 disables this filter. The first harmonic refers to the base frequency.",DisplayName:"Harmonic Notch Filter harmonics",RebootRequired:"True",User:"Advanced"},INS_HNTCH_MODE:{Description:"Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based updates should only be used with multicopters.",DisplayName:"Harmonic Notch Filter dynamic frequency tracking mode",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Disabled",1:"Throttle",2:"RPM Sensor",3:"ESC Telemetry",4:"Dynamic FFT",5:"Second RPM Sensor"}},INS_HNTCH_OPTS:{Bitmask:{0:"Double notch",1:"Dynamic harmonic",2:"Update at loop rate",3:"EnableOnAllIMUs",4:"Triple notch"},Description:"Harmonic Notch Filter options. Triple and double-notches can provide deeper attenuation across a wider bandwidth with reduced latency than single notches and are suitable for larger aircraft. Dynamic harmonics attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz. If both double and triple notches are specified only double notches will take effect.",DisplayName:"Harmonic Notch Filter options",RebootRequired:"True",User:"Advanced"},INS_HNTCH_REF:{Description:"A reference value of zero disables dynamic updates on the Harmonic Notch Filter and a positive value enables dynamic updates on the Harmonic Notch Filter. For throttle-based scaling, this parameter is the reference value associated with the specified frequency to facilitate frequency scaling of the Harmonic Notch Filter. For RPM and ESC telemetry based tracking, this parameter is set to 1 to enable the Harmonic Notch Filter using the RPM sensor or ESC telemetry set to measure rotor speed. The sensor data is converted to Hz automatically for use in the Harmonic Notch Filter. This reference value may also be used to scale the sensor data, if required. For example, rpm sensor data is required to measure heli motor RPM. Therefore the reference value can be used to scale the RPM sensor to the rotor RPM.",DisplayName:"Harmonic Notch Filter reference value",Range:{high:"1.0",low:"0.0"},RebootRequired:"True",User:"Advanced"}},_z={INS_LOG_BAT_CNT:{Description:"Number of samples to take when logging streams of IMU sensor readings. Will be rounded down to a multiple of 32. This option takes effect on the next reboot.",DisplayName:"sample count per batch",Increment:"32",RebootRequired:"True",User:"Advanced"},INS_LOG_BAT_LGCT:{Description:"Number of samples to push to count every INS_LOG_BAT_LGIN",DisplayName:"logging count",Increment:"1"},INS_LOG_BAT_LGIN:{Description:"Interval between pushing samples to the AP_Logger log",DisplayName:"logging interval",Increment:"10",Units:"ms"},INS_LOG_BAT_MASK:{Bitmask:{0:"IMU1",1:"IMU2",2:"IMU3"},Description:"Bitmap of which IMUs to log batch data for. This option takes effect on the next reboot.",DisplayName:"Sensor Bitmask",RebootRequired:"True",User:"Advanced"},INS_LOG_BAT_OPT:{Bitmask:{0:"Sensor-Rate Logging (sample at full sensor rate seen by AP)",1:"Sample post-filtering",2:"Sample pre- and post-filter"},Description:"Options for the BatchSampler.",DisplayName:"Batch Logging Options Mask",User:"Advanced"}},Sz={INS_TCAL1_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL1_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL1_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},Dz={INS_TCAL2_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL2_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL2_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},yz={INS_TCAL3_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL3_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL3_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},Rz={LGR_DEPLOY_ALT:{Description:"Altitude where the landing gear will be deployed. This should be lower than the RETRACT_ALT. If zero then altitude is not used for deploying landing gear. Only applies when vehicle is armed.",DisplayName:"Landing gear deployment altitude",Increment:"1",Range:{high:"1000",low:"0"},Units:"m",User:"Standard"},LGR_DEPLOY_PIN:{Description:`Pin number to use for detection of gear deployment. If set to -1 feedback is disabled. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Chassis deployment feedback pin",RebootRequired:"True",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},LGR_DEPLOY_POL:{Description:"Polarity for feedback pin. If this is 1 then the pin should be high when gear are deployed. If set to 0 then then deployed gear level is low.",DisplayName:"Chassis deployment feedback pin polarity",User:"Standard",Values:{0:"Low",1:"High"}},LGR_ENABLE:{Description:"Enable landing gear control",DisplayName:"Enable landing gear",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},LGR_OPTIONS:{Bitmask:{0:"Retract after Takeoff",1:"Deploy during Land"},Description:"Options to retract or deploy landing gear in Auto or Guided mode",DisplayName:"Landing gear auto retract/deploy options",User:"Standard"},LGR_RETRACT_ALT:{Description:"Altitude where the landing gear will be retracted. This should be higher than the DEPLOY_ALT. If zero then altitude is not used for retracting landing gear. Only applies when vehicle is armed.",DisplayName:"Landing gear retract altitude",Increment:"1",Range:{high:"1000",low:"0"},Units:"m",User:"Standard"},LGR_STARTUP:{Description:"Landing Gear Startup behaviour control",DisplayName:"Landing Gear Startup position",User:"Standard",Values:{0:"WaitForPilotInput",1:"Retract",2:"Deploy"}},LGR_WOW_PIN:{Description:`Pin number to use for feedback of weight on wheels condition. If set to -1 feedback is disabled. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Weight on wheels feedback pin",RebootRequired:"True",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},LGR_WOW_POL:{Description:"Polarity for feedback pin. If this is 1 then the pin should be high when there is weight on wheels. If set to 0 then then weight on wheels level is low.",DisplayName:"Weight on wheels feedback pin polarity",User:"Standard",Values:{0:"Low",1:"High"}}},bz={LOG_BACKEND_TYPE:{Bitmask:{0:"File",1:"MAVLink",2:"Block"},Description:"Bitmap of what Logger backend types to enable. Block-based logging is available on SITL and boards with dataflash chips. Multiple backends can be selected.",DisplayName:"AP_Logger Backend Storage type",User:"Standard"},LOG_BLK_RATEMAX:{Description:"This sets the maximum rate that streaming log messages will be logged to the mavlink backend. A value of zero means that rate limiting is disabled.",DisplayName:"Maximum logging rate for block backend",Increment:"0.1",Range:{high:"1000",low:"0"},Units:"Hz",User:"Standard"},LOG_DISARMED:{Description:"If LOG_DISARMED is set to 1 then logging will be enabled while disarmed. This can make for very large logfiles but can help a lot when tracking down startup issues",DisplayName:"Enable logging while disarmed",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},LOG_FILE_BUFSIZE:{Description:'The File and Block backends use a buffer to store data before writing to the block device. Raising this value may reduce "gaps" in your SD card logging. This buffer size may be reduced depending on available memory. PixHawk requires at least 4 kilobytes. Maximum value available here is 64 kilobytes.',DisplayName:"Maximum AP_Logger File and Block Backend buffer size (in kilobytes)",User:"Standard"},LOG_FILE_DSRMROT:{Description:"When set, the current log file is closed when the vehicle is disarmed. If LOG_DISARMED is set then a fresh log will be opened. Applies to the File and Block logging backends.",DisplayName:"Stop logging to current file on disarm",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},LOG_FILE_MB_FREE:{Description:"Set this such that the free space is larger than your largest typical flight log",DisplayName:"Old logs on the SD card will be deleted to maintain this amount of free space",Range:{high:"1000",low:"10"},Units:"MB",User:"Standard"},LOG_FILE_RATEMAX:{Description:"This sets the maximum rate that streaming log messages will be logged to the file backend. A value of zero means that rate limiting is disabled.",DisplayName:"Maximum logging rate for file backend",Increment:"0.1",Range:{high:"1000",low:"0"},Units:"Hz",User:"Standard"},LOG_FILE_TIMEOUT:{Description:"This controls the amount of time before failing writes to a log file cause the file to be closed and logging stopped.",DisplayName:"Timeout before giving up on file writes",Units:"s",User:"Standard"},LOG_MAV_BUFSIZE:{Description:"Maximum amount of memory to allocate to AP_Logger-over-mavlink",DisplayName:"Maximum AP_Logger MAVLink Backend buffer size",Units:"kB",User:"Advanced"},LOG_MAV_RATEMAX:{Description:"This sets the maximum rate that streaming log messages will be logged to the mavlink backend. A value of zero means that rate limiting is disabled.",DisplayName:"Maximum logging rate for mavlink backend",Increment:"0.1",Range:{high:"1000",low:"0"},Units:"Hz",User:"Standard"},LOG_REPLAY:{Description:"If LOG_REPLAY is set to 1 then the EKF2 state estimator will log detailed information needed for diagnosing problems with the Kalman filter. It is suggested that you also raise LOG_FILE_BUFSIZE to give more buffer space for logging and use a high quality microSD card to ensure no sensor data is lost",DisplayName:"Enable logging of information needed for Replay",User:"Standard",Values:{0:"Disabled",1:"Enabled"}}},Nz={LOIT_ACC_MAX:{Description:"Loiter maximum correction acceleration in cm/s/s. Higher values cause the copter to correct position errors more aggressively.",DisplayName:"Loiter maximum correction acceleration",Increment:"1",Range:{high:"981",low:"100"},Units:"cm/s/s",User:"Advanced"},LOIT_ANG_MAX:{Description:"Loiter maximum pilot requested lean angle. Set to zero for 2/3 of PSC_ANGLE_MAX/ANGLE_MAX. The maximum vehicle lean angle is still limited by PSC_ANGLE_MAX/ANGLE_MAX",DisplayName:"Loiter pilot angle max",Increment:"1",Range:{high:"45",low:"0"},Units:"deg",User:"Advanced"},LOIT_BRK_ACCEL:{Description:"Loiter braking acceleration in cm/s/s. Higher values stop the copter more quickly when the stick is centered.",DisplayName:"Loiter braking acceleration",Increment:"1",Range:{high:"250",low:"25"},Units:"cm/s/s",User:"Advanced"},LOIT_BRK_DELAY:{Description:"Loiter brake start delay (in seconds)",DisplayName:"Loiter brake start delay (in seconds)",Increment:"0.1",Range:{high:"2",low:"0"},Units:"s",User:"Advanced"},LOIT_BRK_JERK:{Description:"Loiter braking jerk in cm/s/s/s. Higher values will remove braking faster if the pilot moves the sticks during a braking maneuver.",DisplayName:"Loiter braking jerk",Increment:"1",Range:{high:"5000",low:"500"},Units:"cm/s/s/s",User:"Advanced"},LOIT_SPEED:{Description:"Defines the maximum speed in cm/s which the aircraft will travel horizontally while in loiter mode",DisplayName:"Loiter Horizontal Maximum Speed",Increment:"50",Range:{high:"3500",low:"20"},Units:"cm/s",User:"Standard"}},wz={MIS_OPTIONS:{Bitmask:{0:"Clear Mission on reboot",2:"ContinueAfterLand"},Description:"Bitmask of what options to use in missions.",DisplayName:"Mission options bitmask",User:"Advanced"},MIS_RESTART:{Description:"Controls mission starting point when entering Auto mode (either restart from beginning of mission or resume from last command run)",DisplayName:"Mission Restart when entering Auto mode",User:"Advanced",Values:{0:"Resume Mission",1:"Restart Mission"}},MIS_TOTAL:{Description:"The number of mission mission items that has been loaded by the ground station. Do not change this manually.",DisplayName:"Total mission commands",Increment:"1",Range:{high:"32766",low:"0"},ReadOnly:"True",User:"Advanced"}},Tz={MNT1_DEFLT_MODE:{Description:"Mount default operating mode on startup and after control is returned from autopilot",DisplayName:"Mount default operating mode",User:"Standard",Values:{0:"Retracted",1:"Neutral",2:"MavLink Targeting",3:"RC Targeting",4:"GPS Point",6:"Home Location"}},MNT1_LEAD_PTCH:{Description:"Servo mount pitch angle output leads the vehicle angle by this amount of time based on current pitch rate. Increase until the servo is responsive but does not overshoot",DisplayName:"Mount Pitch stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT1_LEAD_RLL:{Description:"Servo mount roll angle output leads the vehicle angle by this amount of time based on current roll rate. Increase until the servo is responsive but does not overshoot",DisplayName:"Mount Roll stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT1_NEUTRAL_X:{Description:"Mount roll angle when in neutral position",DisplayName:"Mount roll angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_NEUTRAL_Y:{Description:"Mount pitch angle when in neutral position",DisplayName:"Mount pitch angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_NEUTRAL_Z:{Description:"Mount yaw angle when in neutral position",DisplayName:"Mount yaw angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_PITCH_MAX:{Description:"Mount Pitch angle maximum",DisplayName:"Mount Pitch angle maximum",Increment:"1",Range:{high:"90",low:"-90"},Units:"deg",User:"Standard"},MNT1_PITCH_MIN:{Description:"Mount Pitch angle minimum",DisplayName:"Mount Pitch angle minimum",Increment:"1",Range:{high:"90",low:"-90"},Units:"deg",User:"Standard"},MNT1_RC_RATE:{Description:"Pilot rate control's maximum rate. Set to zero to use angle control",DisplayName:"Mount RC Rate",Increment:"1",Range:{high:"90",low:"0"},Units:"deg/s",User:"Standard"},MNT1_RETRACT_X:{Description:"Mount roll angle when in retracted position",DisplayName:"Mount roll angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_RETRACT_Y:{Description:"Mount pitch angle when in retracted position",DisplayName:"Mount pitch angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_RETRACT_Z:{Description:"Mount yaw angle when in retracted position",DisplayName:"Mount yaw angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_ROLL_MAX:{Description:"Mount Roll angle maximum",DisplayName:"Mount Roll angle maximum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT1_ROLL_MIN:{Description:"Mount Roll angle minimum",DisplayName:"Mount Roll angle minimum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT1_TYPE:{Description:"Mount Type",DisplayName:"Mount Type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"Servo",2:"3DR Solo",3:"Alexmos Serial",4:"SToRM32 MAVLink",5:"SToRM32 Serial",6:"Gremsy",7:"BrushlessPWM"}},MNT1_YAW_MAX:{Description:"Mount Yaw angle maximum",DisplayName:"Mount Yaw angle maximum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT1_YAW_MIN:{Description:"Mount Yaw angle minimum",DisplayName:"Mount Yaw angle minimum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"}},Ez={MNT2_DEFLT_MODE:{Description:"Mount default operating mode on startup and after control is returned from autopilot",DisplayName:"Mount default operating mode",User:"Standard",Values:{0:"Retracted",1:"Neutral",2:"MavLink Targeting",3:"RC Targeting",4:"GPS Point",6:"Home Location"}},MNT2_LEAD_PTCH:{Description:"Servo mount pitch angle output leads the vehicle angle by this amount of time based on current pitch rate. Increase until the servo is responsive but does not overshoot",DisplayName:"Mount Pitch stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT2_LEAD_RLL:{Description:"Servo mount roll angle output leads the vehicle angle by this amount of time based on current roll rate. Increase until the servo is responsive but does not overshoot",DisplayName:"Mount Roll stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT2_NEUTRAL_X:{Description:"Mount roll angle when in neutral position",DisplayName:"Mount roll angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_NEUTRAL_Y:{Description:"Mount pitch angle when in neutral position",DisplayName:"Mount pitch angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_NEUTRAL_Z:{Description:"Mount yaw angle when in neutral position",DisplayName:"Mount yaw angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_PITCH_MAX:{Description:"Mount Pitch angle maximum",DisplayName:"Mount Pitch angle maximum",Increment:"1",Range:{high:"90",low:"-90"},Units:"deg",User:"Standard"},MNT2_PITCH_MIN:{Description:"Mount Pitch angle minimum",DisplayName:"Mount Pitch angle minimum",Increment:"1",Range:{high:"90",low:"-90"},Units:"deg",User:"Standard"},MNT2_RC_RATE:{Description:"Pilot rate control's maximum rate. Set to zero to use angle control",DisplayName:"Mount RC Rate",Increment:"1",Range:{high:"90",low:"0"},Units:"deg/s",User:"Standard"},MNT2_RETRACT_X:{Description:"Mount roll angle when in retracted position",DisplayName:"Mount roll angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_RETRACT_Y:{Description:"Mount pitch angle when in retracted position",DisplayName:"Mount pitch angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_RETRACT_Z:{Description:"Mount yaw angle when in retracted position",DisplayName:"Mount yaw angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_ROLL_MAX:{Description:"Mount Roll angle maximum",DisplayName:"Mount Roll angle maximum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT2_ROLL_MIN:{Description:"Mount Roll angle minimum",DisplayName:"Mount Roll angle minimum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT2_TYPE:{Description:"Mount Type",DisplayName:"Mount Type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"Servo",2:"3DR Solo",3:"Alexmos Serial",4:"SToRM32 MAVLink",5:"SToRM32 Serial",6:"Gremsy",7:"BrushlessPWM"}},MNT2_YAW_MAX:{Description:"Mount Yaw angle maximum",DisplayName:"Mount Yaw angle maximum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT2_YAW_MIN:{Description:"Mount Yaw angle minimum",DisplayName:"Mount Yaw angle minimum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"}},Pz={MOT_BAT_CURR_MAX:{Description:"Maximum current over which maximum throttle is limited (0 = Disabled)",DisplayName:"Motor Current Max",Range:{high:"200",low:"0"},Units:"A",User:"Advanced"},MOT_BAT_CURR_TC:{Description:"Time constant used to limit the maximum current",DisplayName:"Motor Current Max Time Constant",Range:{high:"10",low:"0"},Units:"s",User:"Advanced"},MOT_BAT_IDX:{Description:"Which battery monitor should be used for doing compensation",DisplayName:"Battery compensation index",User:"Advanced",Values:{0:"First battery",1:"Second battery"}},MOT_BAT_VOLT_MAX:{Description:"Battery voltage compensation maximum voltage (voltage above this will have no additional scaling effect on thrust). Recommend 4.2 * cell count, 0 = Disabled",DisplayName:"Battery voltage compensation maximum voltage",Range:{high:"53",low:"6"},Units:"V",User:"Advanced"},MOT_BAT_VOLT_MIN:{Description:"Battery voltage compensation minimum voltage (voltage below this will have no additional scaling effect on thrust). Recommend 3.3 * cell count, 0 = Disabled",DisplayName:"Battery voltage compensation minimum voltage",Range:{high:"42",low:"6"},Units:"V",User:"Advanced"},MOT_BOOST_SCALE:{Description:"Booster motor output scaling factor vs main throttle. The output to the BoostThrottle servo will be the main throttle times this scaling factor. A higher scaling factor will put more of the load on the booster motor. A value of 1 will set the BoostThrottle equal to the main throttle.",DisplayName:"Motor boost scale",Increment:"0.1",Range:{high:"5",low:"0"},User:"Advanced"},MOT_HOVER_LEARN:{Description:"Enable/Disable automatic learning of hover throttle",DisplayName:"Hover Value Learning",User:"Advanced",Values:{0:"Disabled",1:"Learn",2:"Learn and Save"}},MOT_PWM_MAX:{Description:"This sets the max PWM value in microseconds that will ever be output to the motors",DisplayName:"PWM output maximum",Range:{high:"2000",low:"0"},Units:"PWM",User:"Advanced"},MOT_PWM_MIN:{Description:"This sets the min PWM output value in microseconds that will ever be output to the motors",DisplayName:"PWM output minimum",Range:{high:"2000",low:"0"},Units:"PWM",User:"Advanced"},MOT_PWM_TYPE:{Description:"This selects the output PWM type, allowing for normal PWM continuous output, OneShot, brushed or DShot motor output",DisplayName:"Output PWM type",RebootRequired:"True",User:"Advanced",Values:{0:"Normal",1:"OneShot",2:"OneShot125",3:"Brushed",4:"DShot150",5:"DShot300",6:"DShot600",7:"DShot1200",8:"PWMRange"}},MOT_SAFE_DISARM:{Description:"Disables motor PWM output when disarmed",DisplayName:"Motor PWM output disabled when disarmed",User:"Advanced",Values:{0:"PWM enabled while disarmed",1:"PWM disabled while disarmed"}},MOT_SAFE_TIME:{Description:"Time taken to disable and enable the motor PWM output when disarmed and armed.",DisplayName:"Time taken to disable and enable the motor PWM output when disarmed and armed.",Increment:"0.001",Range:{high:"5",low:"0"},Units:"s",User:"Advanced"},MOT_SLEW_DN_TIME:{Description:"Time in seconds to slew output from full to zero. This is used to limit the rate at which output can change. Range is constrained between 0 and 0.5.",DisplayName:"Output slew time for decreasing throttle",Increment:"0.001",Range:{high:".5",low:"0"},Units:"s",User:"Advanced"},MOT_SLEW_UP_TIME:{Description:"Time in seconds to slew output from zero to full. This is used to limit the rate at which output can change. Range is constrained between 0 and 0.5.",DisplayName:"Output slew time for increasing throttle",Increment:"0.001",Range:{high:".5",low:"0"},Units:"s",User:"Advanced"},MOT_SPIN_ARM:{Description:"Point at which the motors start to spin expressed as a number from 0 to 1 in the entire output range. Should be lower than MOT_SPIN_MIN.",DisplayName:"Motor Spin armed",User:"Advanced",Values:{"0.0":"Low","0.1":"Default","0.2":"High"}},MOT_SPIN_MAX:{Description:"Point at which the thrust saturates expressed as a number from 0 to 1 in the entire output range",DisplayName:"Motor Spin maximum",User:"Advanced",Values:{"0.9":"Low","0.95":"Default","1.0":"High"}},MOT_SPIN_MIN:{Description:"Point at which the thrust starts expressed as a number from 0 to 1 in the entire output range. Should be higher than MOT_SPIN_ARM.",DisplayName:"Motor Spin minimum",User:"Advanced",Values:{"0.0":"Low","0.15":"Default","0.25":"High"}},MOT_SPOOL_TIME:{Description:"Time in seconds to spool up the motors from zero to min throttle. ",DisplayName:"Spool up time",Increment:"0.1",Range:{high:"2",low:"0"},Units:"s",User:"Advanced"},MOT_THST_EXPO:{Description:"Motor thrust curve exponent (0.0 for linear to 1.0 for second order curve)",DisplayName:"Thrust Curve Expo",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},MOT_THST_HOVER:{Description:"Motor thrust needed to hover expressed as a number from 0 to 1",DisplayName:"Thrust Hover Value",Range:{high:"0.8",low:"0.2"},User:"Advanced"},MOT_YAW_HEADROOM:{Description:"Yaw control is given at least this pwm in microseconds range",DisplayName:"Matrix Yaw Min",Range:{high:"500",low:"0"},Units:"PWM",User:"Advanced"},MOT_YAW_SV_ANGLE:{Description:"Yaw servo's maximum lean angle (Tricopter only)",DisplayName:"Yaw Servo Max Lean Angle",Increment:"1",Range:{high:"80",low:"5"},Units:"deg",User:"Standard"}},Iz={MSP_OPTIONS:{Bitmask:{0:"EnableTelemetryMode",1:"DisableDJIWorkarounds",2:"EnableBTFLFonts"},Description:"A bitmask to set some MSP specific options",DisplayName:"MSP OSD Options",User:"Standard"},MSP_OSD_NCELLS:{Description:"Used for average cell voltage calculation",DisplayName:"Cell count override",User:"Standard",Values:{0:"Auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14"}}},Oz={NTF_BUZZ_ON_LVL:{Description:"Specifies pin level that indicates buzzer should play",DisplayName:"Buzzer-on pin logic level",User:"Advanced",Values:{0:"LowIsOn",1:"HighIsOn"}},NTF_BUZZ_PIN:{Description:`Enables to connect active buzzer to arbitrary pin. Requires 3-pin buzzer or additional MOSFET! Some the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Buzzer pin",User:"Advanced",Values:{0:"Disabled"}},NTF_BUZZ_TYPES:{Bitmask:{0:"Built-in buzzer",1:"DShot",2:"DroneCAN"},Description:"Controls what types of Buzzer will be enabled",DisplayName:"Buzzer Driver Types",User:"Advanced"},NTF_BUZZ_VOLUME:{Description:"Control the volume of the buzzer",DisplayName:"Buzzer volume",Range:{high:"100",low:"0"},Units:"%"},NTF_DISPLAY_TYPE:{Description:"This sets up the type of on-board I2C display. Disabled by default.",DisplayName:"Type of on-board I2C display",User:"Advanced",Values:{0:"Disable",1:"ssd1306",2:"sh1106",10:"SITL"}},NTF_LED_BRIGHT:{Description:"Select the RGB LED brightness level. When USB is connected brightness will never be higher than low regardless of the setting.",DisplayName:"LED Brightness",User:"Advanced",Values:{0:"Off",1:"Low",2:"Medium",3:"High"}},NTF_LED_LEN:{Description:"The number of Serial LED's to use for notifications (NeoPixel's and ProfiLED)",DisplayName:"Serial LED String Length",Range:{high:"32",low:"1"},RebootRequired:"True",User:"Advanced"},NTF_LED_OVERRIDE:{Description:'Specifies the source for the colours and brightness for the LED. OutbackChallenge conforms to the MedicalExpress (https://uavchallenge.org/medical-express/) rules, essentially "Green" is disarmed (safe-to-approach), "Red" is armed (not safe-to-approach). Traffic light is a simplified color set, red when armed, yellow when the safety switch is not surpressing outputs (but disarmed), and green when outputs are surpressed and disarmed, the LED will blink faster if disarmed and failing arming checks.',DisplayName:"Specifies colour source for the RGBLed",User:"Advanced",Values:{0:"Standard",1:"MAVLink/Scripting/AP_Periph",2:"OutbackChallenge",3:"TrafficLight"}},NTF_LED_TYPES:{Bitmask:{0:"Built-in LED",1:"Internal ToshibaLED",2:"External ToshibaLED",3:"External PCA9685",4:"Oreo LED",5:"DroneCAN",6:"NCP5623 External",7:"NCP5623 Internal",8:"NeoPixel",9:"ProfiLED",10:"Scripting",11:"DShot",12:"ProfiLED_SPI"},Description:"Controls what types of LEDs will be enabled",DisplayName:"LED Driver Types",User:"Advanced"},NTF_OREO_THEME:{Description:"Enable/Disable Solo Oreo LED driver, 0 to disable, 1 for Aircraft theme, 2 for Rover theme",DisplayName:"OreoLED Theme",User:"Advanced",Values:{0:"Disabled",1:"Aircraft",2:"Rover"}}},Uz={OA_MARGIN_MAX:{Description:"Object Avoidance will ignore objects more than this many meters from vehicle",DisplayName:"Object Avoidance wide margin distance",Increment:"1",Range:{high:"100",low:"0.1"},Units:"m",User:"Standard"},OA_OPTIONS:{Bitmask:{1:"log Dijkstra points"},Description:"Bitmask which will govern vehicles behaviour while recovering from Obstacle Avoidance (i.e Avoidance is turned off after the path ahead is clear). ",DisplayName:"Options while recovering from Object Avoidance",User:"Standard"},OA_TYPE:{Description:"Enabled/disable path planning around obstacles",DisplayName:"Object Avoidance Path Planning algorithm to use",User:"Standard",Values:{0:"Disabled",1:"BendyRuler",2:"Dijkstra",3:"Dijkstra with BendyRuler"}}},xz={OA_BR_CONT_ANGLE:{Description:" BendyRuler will resist changing current bearing if the change in bearing is over this angle",DisplayName:"BendyRuler's bearing change resistance threshold angle ",Increment:"5",Range:{high:"180",low:"20"},User:"Standard"},OA_BR_CONT_RATIO:{Description:" BendyRuler will avoid changing bearing unless ratio of previous margin from obstacle (or fence) to present calculated margin is atleast this much.",DisplayName:"Obstacle Avoidance margin ratio for BendyRuler to change bearing significantly ",Increment:"0.1",Range:{high:"2",low:"1.1"},User:"Standard"},OA_BR_LOOKAHEAD:{Description:"Object Avoidance will look this many meters ahead of vehicle",DisplayName:"Object Avoidance look ahead distance maximum",Increment:"1",Range:{high:"100",low:"1"},Units:"m",User:"Standard"},OA_BR_TYPE:{Description:"BendyRuler will search for clear path along the direction defined by this parameter",DisplayName:"Type of BendyRuler",User:"Standard",Values:{1:"Horizontal search",2:"Vertical search"}}},Fz={OA_DB_ALT_MIN:{Description:"OADatabase will reject obstacle's if vehicle's altitude above home is below this parameter, in a 3 meter radius around home. Set 0 to disable this feature.",DisplayName:"OADatabase minimum altitude above home before storing obstacles",Range:{high:"4",low:"0"},Units:"m",User:"Advanced"},OA_DB_BEAM_WIDTH:{Description:"Beam width of incoming lidar data",DisplayName:"OADatabase beam width",Range:{high:"10",low:"1"},RebootRequired:"True",Units:"deg",User:"Advanced"},OA_DB_DIST_MAX:{Description:"Maximum distance of objects held in database. Set to zero to disable the limits",DisplayName:"OADatabase Distance Maximum",Range:{high:"10",low:"0"},Units:"m",User:"Advanced"},OA_DB_EXPIRE:{Description:"OADatabase item timeout. The time an item will linger without any updates before it expires. Zero means never expires which is useful for a sent-once static environment but terrible for dynamic ones.",DisplayName:"OADatabase item timeout",Increment:"1",Range:{high:"127",low:"0"},Units:"s",User:"Advanced"},OA_DB_OUTPUT:{Description:"OADatabase output level to configure which database objects are sent to the ground station. All data is always available internally for avoidance algorithms.",DisplayName:"OADatabase output level",User:"Advanced",Values:{0:"Disabled",1:"Send only HIGH importance items",2:"Send HIGH and NORMAL importance items",3:"Send all items"}},OA_DB_QUEUE_SIZE:{Description:"OADatabase queue maximum number of points. This in an input buffer size. Larger means it can handle larger bursts of incoming data points to filter into the database. No impact on cpu, only RAM. Recommend larger for faster datalinks or for sensors that generate a lot of data.",DisplayName:"OADatabase queue maximum number of points",Range:{high:"200",low:"1"},RebootRequired:"True",User:"Advanced"},OA_DB_RADIUS_MIN:{Description:"Minimum radius of objects held in database",DisplayName:"OADatabase Minimum radius",Range:{high:"10",low:"0"},Units:"m",User:"Advanced"},OA_DB_SIZE:{Description:"OADatabase maximum number of points. Set to 0 to disable the OA Database. Larger means more points but is more cpu intensive to process",DisplayName:"OADatabase maximum number of points",Range:{high:"10000",low:"0"},RebootRequired:"True",User:"Advanced"}},kz={OSD_ARM_SCR:{Description:"Screen to be shown on Arm event. Zero to disable the feature.",DisplayName:"Arm screen",Range:{high:"4",low:"0"},User:"Standard"},OSD_BTN_DELAY:{Description:"Debounce time in ms for stick commanded parameter navigation.",DisplayName:"Button delay",Range:{high:"3000",low:"0"},User:"Advanced"},OSD_CELL_COUNT:{Description:"Used for average cell voltage display. -1 disables, 0 uses cell count autodetection for well charged LIPO/LIION batteries at connection, other values manually select cell count used.",DisplayName:"Battery cell count",Increment:"1",User:"Advanced"},OSD_CHAN:{Description:"This sets the channel used to switch different OSD screens.",DisplayName:"Screen switch transmitter channel",User:"Standard",Values:{0:"Disable",5:"Chan5",6:"Chan6",7:"Chan7",8:"Chan8",9:"Chan9",10:"Chan10",11:"Chan11",12:"Chan12",13:"Chan13",14:"Chan14",15:"Chan15",16:"Chan16"}},OSD_DSARM_SCR:{Description:"Screen to be shown on disarm event. Zero to disable the feature.",DisplayName:"Disarm screen",Range:{high:"4",low:"0"},User:"Standard"},OSD_FONT:{Description:"This sets which OSD font to use. It is an integer from 0 to the number of fonts available",DisplayName:"OSD Font",RebootRequired:"True",User:"Standard"},OSD_FS_SCR:{Description:"Screen to be shown on failsafe event. Zero to disable the feature.",DisplayName:"Failsafe screen",Range:{high:"4",low:"0"},User:"Standard"},OSD_H_OFFSET:{Description:"Sets horizontal offset of the osd inside image",DisplayName:"OSD horizontal offset",Range:{high:"63",low:"0"},RebootRequired:"True",User:"Standard"},OSD_MSG_TIME:{Description:"Sets message duration seconds",DisplayName:"Message display duration in seconds",Range:{high:"20",low:"1"},User:"Standard"},OSD_OPTIONS:{Bitmask:{0:"UseDecimalPack",1:"InvertedWindPointer",2:"InvertedAHRoll",3:"Convert feet to miles at 5280ft instead of 10000ft",4:"DisableCrosshair"},Description:"This sets options that change the display",DisplayName:"OSD Options",User:"Standard"},OSD_SW_METHOD:{Description:"This sets the method used to switch different OSD screens.",DisplayName:"Screen switch method",User:"Standard",Values:{0:"switch to next screen if channel value was changed",1:"select screen based on pwm ranges specified for each screen",2:"switch to next screen after low to high transition and every 1s while channel value is high"}},OSD_TYPE:{Description:"OSD type. TXONLY makes the OSD parameter selection available to other modules even if there is no native OSD support on the board, for instance CRSF.",DisplayName:"OSD type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"MAX7456",2:"SITL",3:"MSP",4:"TXONLY"}},OSD_UNITS:{Description:"Sets the units to use in displaying items",DisplayName:"Display Units",User:"Standard",Values:{0:"Metric",1:"Imperial",2:"SI",3:"Aviation"}},OSD_V_OFFSET:{Description:"Sets vertical offset of the osd inside image",DisplayName:"OSD vertical offset",Range:{high:"31",low:"0"},RebootRequired:"True",User:"Standard"},OSD_W_AVGCELLV:{Description:"Set level at which AVGCELLV item will flash",DisplayName:"AVGCELLV warn level",Range:{high:"100",low:"0"},User:"Standard"},OSD_W_BATVOLT:{Description:"Set level at which BAT_VOLT item will flash",DisplayName:"BAT_VOLT warn level",Range:{high:"100",low:"0"},User:"Standard"},OSD_W_NSAT:{Description:"Set level at which NSAT item will flash",DisplayName:"NSAT warn level",Range:{high:"30",low:"1"},User:"Standard"},OSD_W_RESTVOLT:{Description:"Set level at which RESTVOLT item will flash",DisplayName:"RESTVOLT warn level",Range:{high:"100",low:"0"},User:"Standard"},OSD_W_RSSI:{Description:"Set level at which RSSI item will flash",DisplayName:"RSSI warn level (in %)",Range:{high:"99",low:"0"},User:"Standard"},OSD_W_TERR:{Description:"Set level below which TER_HGT item will flash. -1 disables.",DisplayName:"Terrain warn level",Range:{high:"3000",low:"-1"},Units:"m",User:"Standard"}},Bz={OSD1_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD1_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD1_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD1_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD1_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD1_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD1_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD1_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD1_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD1_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD1_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD1_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD1_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD1_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD1_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD1_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD1_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD1_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD1_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD1_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD1_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD1_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD1_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD1_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD1_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD1_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD1_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD1_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD1_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD1_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD1_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD1_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD1_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD1_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD1_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD1_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD1_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD1_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD1_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD1_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD1_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD1_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD1_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD1_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD1_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD1_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD1_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD1_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD1_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD1_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD1_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD1_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD1_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD1_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD1_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD1_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD1_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD1_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD1_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD1_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD1_FONT:{Description:"Sets the font index for this screen (MSP DisplayPort only)",DisplayName:"Sets the font index for this screen (MSP DisplayPort only)",Range:{high:"15",low:"0"},User:"Standard"},OSD1_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD1_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD1_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD1_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD1_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD1_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD1_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD1_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD1_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD1_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD1_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD1_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD1_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD1_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD1_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD1_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD1_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD1_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD1_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD1_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD1_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD1_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD1_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD1_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD1_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD1_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD1_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD1_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD1_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD1_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD1_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD1_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD1_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD1_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD1_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD1_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD1_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD1_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD1_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD1_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD1_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD1_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD1_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD1_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD1_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD1_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD1_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD1_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD1_TXT_RES:{Description:"Sets the overlay text resolution for this screen to either LD 30x16 or HD 50x18 (MSP DisplayPort only)",DisplayName:"Sets the overlay text resolution (MSP DisplayPort only)",User:"Standard",Values:{0:"30x16",1:"50x18"}},OSD1_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD1_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD1_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD1_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD1_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD1_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD1_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD1_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD1_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD1_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},zz={OSD2_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD2_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD2_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD2_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD2_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD2_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD2_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD2_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD2_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD2_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD2_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD2_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD2_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD2_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD2_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD2_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD2_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD2_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD2_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD2_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD2_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD2_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD2_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD2_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD2_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD2_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD2_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD2_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD2_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD2_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD2_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD2_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD2_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD2_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD2_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD2_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD2_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD2_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD2_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD2_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD2_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD2_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD2_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD2_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD2_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD2_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD2_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD2_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD2_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD2_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD2_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD2_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD2_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD2_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD2_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD2_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD2_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD2_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD2_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD2_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD2_FONT:{Description:"Sets the font index for this screen (MSP DisplayPort only)",DisplayName:"Sets the font index for this screen (MSP DisplayPort only)",Range:{high:"15",low:"0"},User:"Standard"},OSD2_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD2_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD2_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD2_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD2_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD2_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD2_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD2_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD2_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD2_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD2_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD2_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD2_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD2_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD2_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD2_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD2_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD2_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD2_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD2_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD2_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD2_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD2_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD2_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD2_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD2_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD2_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD2_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD2_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD2_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD2_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD2_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD2_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD2_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD2_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD2_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD2_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD2_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD2_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD2_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD2_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD2_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD2_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD2_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD2_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD2_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD2_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD2_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD2_TXT_RES:{Description:"Sets the overlay text resolution for this screen to either LD 30x16 or HD 50x18 (MSP DisplayPort only)",DisplayName:"Sets the overlay text resolution (MSP DisplayPort only)",User:"Standard",Values:{0:"30x16",1:"50x18"}},OSD2_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD2_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD2_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD2_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD2_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD2_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD2_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD2_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD2_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD2_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},Zz={OSD3_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD3_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD3_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD3_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD3_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD3_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD3_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD3_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD3_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD3_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD3_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD3_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD3_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD3_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD3_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD3_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD3_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD3_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD3_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD3_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD3_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD3_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD3_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD3_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD3_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD3_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD3_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD3_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD3_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD3_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD3_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD3_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD3_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD3_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD3_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD3_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD3_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD3_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD3_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD3_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD3_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD3_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD3_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD3_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD3_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD3_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD3_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD3_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD3_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD3_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD3_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD3_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD3_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD3_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD3_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD3_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD3_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD3_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD3_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD3_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD3_FONT:{Description:"Sets the font index for this screen (MSP DisplayPort only)",DisplayName:"Sets the font index for this screen (MSP DisplayPort only)",Range:{high:"15",low:"0"},User:"Standard"},OSD3_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD3_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD3_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD3_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD3_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD3_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD3_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD3_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD3_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD3_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD3_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD3_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD3_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD3_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD3_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD3_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD3_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD3_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD3_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD3_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD3_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD3_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD3_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD3_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD3_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD3_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD3_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD3_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD3_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD3_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD3_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD3_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD3_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD3_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD3_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD3_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD3_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD3_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD3_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD3_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD3_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD3_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD3_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD3_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD3_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD3_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD3_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD3_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD3_TXT_RES:{Description:"Sets the overlay text resolution for this screen to either LD 30x16 or HD 50x18 (MSP DisplayPort only)",DisplayName:"Sets the overlay text resolution (MSP DisplayPort only)",User:"Standard",Values:{0:"30x16",1:"50x18"}},OSD3_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD3_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD3_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD3_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD3_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD3_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD3_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD3_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD3_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD3_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},Gz={OSD4_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD4_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD4_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD4_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD4_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD4_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD4_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD4_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD4_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD4_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD4_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD4_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD4_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD4_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD4_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD4_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD4_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD4_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD4_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD4_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD4_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD4_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD4_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD4_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD4_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD4_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD4_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD4_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD4_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD4_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD4_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD4_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD4_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD4_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD4_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD4_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD4_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD4_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD4_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD4_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD4_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD4_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD4_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD4_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD4_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD4_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD4_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD4_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD4_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD4_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD4_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD4_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD4_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD4_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD4_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD4_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD4_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD4_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD4_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD4_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD4_FONT:{Description:"Sets the font index for this screen (MSP DisplayPort only)",DisplayName:"Sets the font index for this screen (MSP DisplayPort only)",Range:{high:"15",low:"0"},User:"Standard"},OSD4_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD4_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD4_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD4_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD4_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD4_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD4_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD4_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD4_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD4_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD4_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD4_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD4_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD4_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD4_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD4_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD4_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD4_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD4_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD4_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD4_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD4_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD4_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD4_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD4_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD4_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD4_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD4_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD4_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD4_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD4_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD4_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD4_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD4_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD4_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD4_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD4_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD4_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD4_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD4_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD4_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD4_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD4_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD4_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD4_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD4_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD4_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD4_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD4_TXT_RES:{Description:"Sets the overlay text resolution for this screen to either LD 30x16 or HD 50x18 (MSP DisplayPort only)",DisplayName:"Sets the overlay text resolution (MSP DisplayPort only)",User:"Standard",Values:{0:"30x16",1:"50x18"}},OSD4_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD4_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD4_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD4_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD4_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD4_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD4_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD4_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD4_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD4_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},Wz={OSD5_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD5_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD5_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_SAVE_X:{Description:"Horizontal position of Save button on screen",DisplayName:"SAVE_X",Range:{high:"25",low:"0"},User:"Advanced"},OSD5_SAVE_Y:{Description:"Vertical position of Save button on screen",DisplayName:"SAVE_Y",Range:{high:"15",low:"0"},User:"Advanced"}},Xz={OSD5_PARAM1_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM1_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM1_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM1_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM1_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM1_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM1_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM1_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM1_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM1_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},Yz={OSD5_PARAM2_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM2_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM2_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM2_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM2_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM2_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM2_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM2_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM2_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM2_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},$z={OSD5_PARAM3_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM3_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM3_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM3_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM3_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM3_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM3_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM3_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM3_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM3_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},qz={OSD5_PARAM4_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM4_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM4_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM4_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM4_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM4_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM4_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM4_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM4_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM4_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},Kz={OSD5_PARAM5_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM5_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM5_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM5_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM5_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM5_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM5_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM5_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM5_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM5_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},jz={OSD5_PARAM6_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM6_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM6_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM6_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM6_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM6_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM6_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM6_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM6_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM6_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},Qz={OSD5_PARAM7_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM7_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM7_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM7_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM7_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM7_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM7_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM7_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM7_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM7_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},Jz={OSD5_PARAM8_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM8_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM8_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM8_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM8_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM8_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM8_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM8_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM8_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM8_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},eZ={OSD5_PARAM9_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM9_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM9_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM9_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM9_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM9_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM9_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM9_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM9_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM9_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},tZ={OSD6_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD6_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD6_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_SAVE_X:{Description:"Horizontal position of Save button on screen",DisplayName:"SAVE_X",Range:{high:"25",low:"0"},User:"Advanced"},OSD6_SAVE_Y:{Description:"Vertical position of Save button on screen",DisplayName:"SAVE_Y",Range:{high:"15",low:"0"},User:"Advanced"}},iZ={OSD6_PARAM1_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM1_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM1_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM1_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM1_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM1_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM1_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM1_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM1_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM1_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},aZ={OSD6_PARAM2_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM2_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM2_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM2_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM2_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM2_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM2_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM2_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM2_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM2_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},rZ={OSD6_PARAM3_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM3_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM3_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM3_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM3_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM3_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM3_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM3_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM3_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM3_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},nZ={OSD6_PARAM4_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM4_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM4_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM4_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM4_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM4_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM4_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM4_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM4_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM4_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},oZ={OSD6_PARAM5_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM5_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM5_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM5_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM5_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM5_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM5_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM5_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM5_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM5_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},sZ={OSD6_PARAM6_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM6_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM6_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM6_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM6_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM6_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM6_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM6_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM6_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM6_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},lZ={OSD6_PARAM7_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM7_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM7_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM7_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM7_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM7_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM7_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM7_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM7_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM7_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},cZ={OSD6_PARAM8_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM8_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM8_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM8_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM8_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM8_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM8_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM8_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM8_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM8_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},dZ={OSD6_PARAM9_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM9_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM9_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM9_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM9_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM9_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM9_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM9_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM9_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM9_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},CZ={PLND_ACC_P_NSE:{Description:"Kalman Filter Accelerometer Noise, higher values weight the input from the camera more, accels less",DisplayName:"Kalman Filter Accelerometer Noise",Range:{high:"5",low:"0.5"},User:"Advanced"},PLND_ALT_MAX:{Description:"Vehicle will continue landing vertically until this height if target is not found. Below this height if landing target is not found, landing retry/failsafe might be attempted. This needs a rangefinder to work. Set to zero to disable this.",DisplayName:"PrecLand maximum alt for retry",Range:{high:"50",low:"0"},Units:"m"},PLND_ALT_MIN:{Description:"Vehicle will continue landing vertically even if target is lost below this height. This needs a rangefinder to work. Set to zero to disable this.",DisplayName:"PrecLand minimum alt for retry",Range:{high:"5",low:"0"},Units:"m"},PLND_BUS:{Description:"Precland sensor bus for I2C sensors.",DisplayName:"Sensor Bus",User:"Advanced",Values:{0:"InternalI2C",1:"ExternalI2C","-1":"DefaultBus"}},PLND_CAM_POS_X:{Description:"X position of the camera in body frame. Positive X is forward of the origin.",DisplayName:"Camera X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},PLND_CAM_POS_Y:{Description:"Y position of the camera in body frame. Positive Y is to the right of the origin.",DisplayName:"Camera Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},PLND_CAM_POS_Z:{Description:"Z position of the camera in body frame. Positive Z is down from the origin.",DisplayName:"Camera Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},PLND_ENABLED:{Description:"Precision Land enabled/disabled",DisplayName:"Precision Land enabled/disabled",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},PLND_EST_TYPE:{Description:"Specifies the estimation method to be used",DisplayName:"Precision Land Estimator Type",User:"Advanced",Values:{0:"RawSensor",1:"KalmanFilter"}},PLND_LAG:{Description:"Precision Landing sensor lag, to cope with variable landing_target latency",DisplayName:"Precision Landing sensor lag",Increment:"1",Range:{high:"0.250",low:"0.02"},RebootRequired:"True",Units:"s",User:"Advanced"},PLND_LAND_OFS_X:{Description:"Desired landing position of the camera forward of the target in vehicle body frame",DisplayName:"Land offset forward",Increment:"1",Range:{high:"20",low:"-20"},Units:"cm",User:"Advanced"},PLND_LAND_OFS_Y:{Description:"desired landing position of the camera right of the target in vehicle body frame",DisplayName:"Land offset right",Increment:"1",Range:{high:"20",low:"-20"},Units:"cm",User:"Advanced"},PLND_OPTIONS:{Bitmask:{0:"Moving Landing Target"},Description:"Precision Landing Extra Options",DisplayName:"Precision Landing Extra Options",User:"Advanced"},PLND_ORIENT:{Description:"Orientation of camera/sensor on body",DisplayName:"Camera Orientation",RebootRequired:"True",User:"Advanced",Values:{0:"Forward",4:"Back",25:"Down"}},PLND_RET_BEHAVE:{Description:"Prec Land will do the action selected by this parameter if a retry to a landing is needed",DisplayName:"PrecLand retry behaviour",Values:{0:"Go to the last location where landing target was detected",1:"Go towards the approximate location of the detected landing target"}},PLND_RET_MAX:{Description:"PrecLand Maximum number of retires for a failed landing. Set to zero to disable landing retry.",DisplayName:"PrecLand Maximum number of retires for a failed landing",Increment:"1",Range:{high:"10",low:"0"}},PLND_STRICT:{Description:"How strictly should the vehicle land on the target if target is lost",DisplayName:"PrecLand strictness",Values:{0:"Land Vertically (Not strict)",1:"Retry Landing(Normal Strictness)",2:"Do not land (just Hover) (Very Strict)"}},PLND_TIMEOUT:{Description:"Time for which vehicle continues descend even if target is lost. After this time period, vehicle will attemp a landing retry depending on PLND_STRICT parameter.",DisplayName:"PrecLand retry timeout",Range:{high:"20",low:"0"},Units:"s"},PLND_TYPE:{Description:"Precision Land Type",DisplayName:"Precision Land Type",User:"Advanced",Values:{0:"None",1:"CompanionComputer",2:"IRLock",3:"SITL_Gazebo",4:"SITL"}},PLND_XY_DIST_MAX:{Description:"The vehicle will not start descending if the landing target is detected and it is further than this many meters away. Set 0 to always descend.",DisplayName:"Precision Landing maximum distance to target before descending",Range:{high:"10",low:"0"},Units:"m",User:"Advanced"},PLND_YAW_ALIGN:{Description:"Yaw angle from body x-axis to sensor x-axis.",DisplayName:"Sensor yaw alignment",Increment:"10",Range:{high:"36000",low:"0"},Units:"cdeg",User:"Advanced"}},mZ={PRX_FILT:{Description:"Cutoff frequency for low pass filter applied to each face in the proximity boundary",DisplayName:"Proximity filter cutoff frequency",Range:{high:"20",low:"0"},Units:"Hz",User:"Advanced"},PRX_IGN_GND:{Description:"Ignore proximity data that is within 1 meter of the ground below the vehicle. This requires a downward facing rangefinder",DisplayName:"Proximity sensor land detection",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},PRX_LOG_RAW:{Description:"Set this parameter to one if logging unfiltered(raw) distances from sensor should be enabled",DisplayName:"Proximity raw distances log",User:"Advanced",Values:{0:"Off",1:"On"}}},uZ={PRX1_IGN_ANG1:{Description:"Proximity sensor ignore angle 1",DisplayName:"Proximity sensor ignore angle 1",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX1_IGN_ANG2:{Description:"Proximity sensor ignore angle 2",DisplayName:"Proximity sensor ignore angle 2",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX1_IGN_ANG3:{Description:"Proximity sensor ignore angle 3",DisplayName:"Proximity sensor ignore angle 3",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX1_IGN_ANG4:{Description:"Proximity sensor ignore angle 4",DisplayName:"Proximity sensor ignore angle 4",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX1_IGN_WID1:{Description:"Proximity sensor ignore width 1",DisplayName:"Proximity sensor ignore width 1",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX1_IGN_WID2:{Description:"Proximity sensor ignore width 2",DisplayName:"Proximity sensor ignore width 2",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX1_IGN_WID3:{Description:"Proximity sensor ignore width 3",DisplayName:"Proximity sensor ignore width 3",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX1_IGN_WID4:{Description:"Proximity sensor ignore width 4",DisplayName:"Proximity sensor ignore width 4",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX1_MAX:{Description:"Maximum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",DisplayName:"Proximity maximum range",Range:{high:"500",low:"0"},Units:"m",User:"Advanced"},PRX1_MIN:{Description:"Minimum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",DisplayName:"Proximity minimum range",Range:{high:"500",low:"0"},Units:"m",User:"Advanced"},PRX1_ORIENT:{Description:"Proximity sensor orientation",DisplayName:"Proximity sensor orientation",User:"Standard",Values:{0:"Default",1:"Upside Down"}},PRX1_TYPE:{Description:"What type of proximity sensor is connected",DisplayName:"Proximity type",RebootRequired:"True",User:"Standard",Values:{0:"None",2:"MAVLink",3:"TeraRangerTower",4:"RangeFinder",5:"RPLidarA2",6:"TeraRangerTowerEvo",7:"LightwareSF40c",8:"LightwareSF45B",10:"SITL",12:"AirSimSITL",13:"CygbotD1"}},PRX1_YAW_CORR:{Description:"Proximity sensor yaw correction",DisplayName:"Proximity sensor yaw correction",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"}},hZ={PRX2_IGN_ANG1:{Description:"Proximity sensor ignore angle 1",DisplayName:"Proximity sensor ignore angle 1",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX2_IGN_ANG2:{Description:"Proximity sensor ignore angle 2",DisplayName:"Proximity sensor ignore angle 2",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX2_IGN_ANG3:{Description:"Proximity sensor ignore angle 3",DisplayName:"Proximity sensor ignore angle 3",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX2_IGN_ANG4:{Description:"Proximity sensor ignore angle 4",DisplayName:"Proximity sensor ignore angle 4",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX2_IGN_WID1:{Description:"Proximity sensor ignore width 1",DisplayName:"Proximity sensor ignore width 1",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX2_IGN_WID2:{Description:"Proximity sensor ignore width 2",DisplayName:"Proximity sensor ignore width 2",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX2_IGN_WID3:{Description:"Proximity sensor ignore width 3",DisplayName:"Proximity sensor ignore width 3",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX2_IGN_WID4:{Description:"Proximity sensor ignore width 4",DisplayName:"Proximity sensor ignore width 4",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX2_MAX:{Description:"Maximum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",DisplayName:"Proximity maximum range",Range:{high:"500",low:"0"},Units:"m",User:"Advanced"},PRX2_MIN:{Description:"Minimum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",DisplayName:"Proximity minimum range",Range:{high:"500",low:"0"},Units:"m",User:"Advanced"},PRX2_ORIENT:{Description:"Proximity sensor orientation",DisplayName:"Proximity sensor orientation",User:"Standard",Values:{0:"Default",1:"Upside Down"}},PRX2_TYPE:{Description:"What type of proximity sensor is connected",DisplayName:"Proximity type",RebootRequired:"True",User:"Standard",Values:{0:"None",2:"MAVLink",3:"TeraRangerTower",4:"RangeFinder",5:"RPLidarA2",6:"TeraRangerTowerEvo",7:"LightwareSF40c",8:"LightwareSF45B",10:"SITL",12:"AirSimSITL",13:"CygbotD1"}},PRX2_YAW_CORR:{Description:"Proximity sensor yaw correction",DisplayName:"Proximity sensor yaw correction",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"}},pZ={PRX3_IGN_ANG1:{Description:"Proximity sensor ignore angle 1",DisplayName:"Proximity sensor ignore angle 1",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX3_IGN_ANG2:{Description:"Proximity sensor ignore angle 2",DisplayName:"Proximity sensor ignore angle 2",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX3_IGN_ANG3:{Description:"Proximity sensor ignore angle 3",DisplayName:"Proximity sensor ignore angle 3",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX3_IGN_ANG4:{Description:"Proximity sensor ignore angle 4",DisplayName:"Proximity sensor ignore angle 4",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX3_IGN_WID1:{Description:"Proximity sensor ignore width 1",DisplayName:"Proximity sensor ignore width 1",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX3_IGN_WID2:{Description:"Proximity sensor ignore width 2",DisplayName:"Proximity sensor ignore width 2",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX3_IGN_WID3:{Description:"Proximity sensor ignore width 3",DisplayName:"Proximity sensor ignore width 3",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX3_IGN_WID4:{Description:"Proximity sensor ignore width 4",DisplayName:"Proximity sensor ignore width 4",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX3_MAX:{Description:"Maximum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",DisplayName:"Proximity maximum range",Range:{high:"500",low:"0"},Units:"m",User:"Advanced"},PRX3_MIN:{Description:"Minimum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",DisplayName:"Proximity minimum range",Range:{high:"500",low:"0"},Units:"m",User:"Advanced"},PRX3_ORIENT:{Description:"Proximity sensor orientation",DisplayName:"Proximity sensor orientation",User:"Standard",Values:{0:"Default",1:"Upside Down"}},PRX3_TYPE:{Description:"What type of proximity sensor is connected",DisplayName:"Proximity type",RebootRequired:"True",User:"Standard",Values:{0:"None",2:"MAVLink",3:"TeraRangerTower",4:"RangeFinder",5:"RPLidarA2",6:"TeraRangerTowerEvo",7:"LightwareSF40c",8:"LightwareSF45B",10:"SITL",12:"AirSimSITL",13:"CygbotD1"}},PRX3_YAW_CORR:{Description:"Proximity sensor yaw correction",DisplayName:"Proximity sensor yaw correction",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"}},fZ={PRX4_IGN_ANG1:{Description:"Proximity sensor ignore angle 1",DisplayName:"Proximity sensor ignore angle 1",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX4_IGN_ANG2:{Description:"Proximity sensor ignore angle 2",DisplayName:"Proximity sensor ignore angle 2",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX4_IGN_ANG3:{Description:"Proximity sensor ignore angle 3",DisplayName:"Proximity sensor ignore angle 3",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX4_IGN_ANG4:{Description:"Proximity sensor ignore angle 4",DisplayName:"Proximity sensor ignore angle 4",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX4_IGN_WID1:{Description:"Proximity sensor ignore width 1",DisplayName:"Proximity sensor ignore width 1",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX4_IGN_WID2:{Description:"Proximity sensor ignore width 2",DisplayName:"Proximity sensor ignore width 2",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX4_IGN_WID3:{Description:"Proximity sensor ignore width 3",DisplayName:"Proximity sensor ignore width 3",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX4_IGN_WID4:{Description:"Proximity sensor ignore width 4",DisplayName:"Proximity sensor ignore width 4",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX4_MAX:{Description:"Maximum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",DisplayName:"Proximity maximum range",Range:{high:"500",low:"0"},Units:"m",User:"Advanced"},PRX4_MIN:{Description:"Minimum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",DisplayName:"Proximity minimum range",Range:{high:"500",low:"0"},Units:"m",User:"Advanced"},PRX4_ORIENT:{Description:"Proximity sensor orientation",DisplayName:"Proximity sensor orientation",User:"Standard",Values:{0:"Default",1:"Upside Down"}},PRX4_TYPE:{Description:"What type of proximity sensor is connected",DisplayName:"Proximity type",RebootRequired:"True",User:"Standard",Values:{0:"None",2:"MAVLink",3:"TeraRangerTower",4:"RangeFinder",5:"RPLidarA2",6:"TeraRangerTowerEvo",7:"LightwareSF40c",8:"LightwareSF45B",10:"SITL",12:"AirSimSITL",13:"CygbotD1"}},PRX4_YAW_CORR:{Description:"Proximity sensor yaw correction",DisplayName:"Proximity sensor yaw correction",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"}},VZ={PSC_ACCZ_D:{Description:"Acceleration (vertical) controller D gain. Compensates for short-term change in desired vertical acceleration vs actual acceleration",DisplayName:"Acceleration (vertical) controller D gain",Range:{high:"0.400",low:"0.000"},User:"Standard"},PSC_ACCZ_FF:{Description:"Acceleration (vertical) controller feed forward",DisplayName:"Acceleration (vertical) controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0"},User:"Standard"},PSC_ACCZ_FLTD:{Description:"Acceleration (vertical) controller derivative frequency in Hz",DisplayName:"Acceleration (vertical) controller derivative frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},PSC_ACCZ_FLTE:{Description:"Acceleration (vertical) controller error frequency in Hz",DisplayName:"Acceleration (vertical) controller error frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},PSC_ACCZ_FLTT:{Description:"Acceleration (vertical) controller target frequency in Hz",DisplayName:"Acceleration (vertical) controller target frequency in Hz",Increment:"1",Range:{high:"50",low:"1"},Units:"Hz",User:"Standard"},PSC_ACCZ_I:{Description:"Acceleration (vertical) controller I gain. Corrects long-term difference in desired vertical acceleration and actual acceleration",DisplayName:"Acceleration (vertical) controller I gain",Range:{high:"3.000",low:"0.000"},User:"Standard"},PSC_ACCZ_IMAX:{Description:"Acceleration (vertical) controller I gain maximum. Constrains the maximum pwm that the I term will generate",DisplayName:"Acceleration (vertical) controller I gain maximum",Range:{high:"1000",low:"0"},Units:"d%",User:"Standard"},PSC_ACCZ_P:{Description:"Acceleration (vertical) controller P gain. Converts the difference between desired vertical acceleration and actual acceleration into a motor output",DisplayName:"Acceleration (vertical) controller P gain",Increment:"0.05",Range:{high:"1.500",low:"0.200"},User:"Standard"},PSC_ACCZ_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Accel (vertical) slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},PSC_ACC_XY_FILT:{Description:"Lower values will slow the response of the navigation controller and reduce twitchiness",DisplayName:"XY Acceleration filter cutoff frequency",Increment:"0.1",Range:{high:"5",low:"0.5"},Units:"Hz",User:"Advanced"},PSC_ANGLE_MAX:{Description:"Maximum lean angle autopilot can request. Set to zero to use ANGLE_MAX parameter value",DisplayName:"Position Control Angle Max",Increment:"1",Range:{high:"45",low:"0"},Units:"deg",User:"Advanced"},PSC_JERK_XY:{Description:"Jerk limit of the horizontal kinematic path generation used to determine how quickly the aircraft varies the acceleration target",DisplayName:"Jerk limit for the horizontal kinematic input shaping",Increment:"1",Range:{high:"20",low:"1"},Units:"m/s/s/s",User:"Advanced"},PSC_JERK_Z:{Description:"Jerk limit of the vertical kinematic path generation used to determine how quickly the aircraft varies the acceleration target",DisplayName:"Jerk limit for the vertical kinematic input shaping",Increment:"1",Range:{high:"50",low:"5"},Units:"m/s/s/s",User:"Advanced"},PSC_POSXY_P:{Description:"Position controller P gain. Converts the distance (in the latitude direction) to the target location into a desired speed which is then passed to the loiter latitude rate controller",DisplayName:"Position (horizontal) controller P gain",Range:{high:"2.000",low:"0.500"},User:"Standard"},PSC_POSZ_P:{Description:"Position (vertical) controller P gain. Converts the difference between the desired altitude and actual altitude into a climb or descent rate which is passed to the throttle rate controller",DisplayName:"Position (vertical) controller P gain",Range:{high:"3.000",low:"1.000"},User:"Standard"},PSC_VELXY_D:{Description:"Velocity (horizontal) D gain. Corrects short-term changes in velocity",DisplayName:"Velocity (horizontal) D gain",Increment:"0.001",Range:{high:"1.00",low:"0.00"},User:"Advanced"},PSC_VELXY_FF:{Description:"Velocity (horizontal) feed forward gain. Converts the difference between desired velocity to a target acceleration",DisplayName:"Velocity (horizontal) feed forward gain",Increment:"0.01",Range:{high:"6",low:"0"},User:"Advanced"},PSC_VELXY_FLTD:{Description:"Velocity (horizontal) input filter. This filter (in Hz) is applied to the input for D term",DisplayName:"Velocity (horizontal) input filter",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},PSC_VELXY_FLTE:{Description:"Velocity (horizontal) input filter. This filter (in Hz) is applied to the input for P and I terms",DisplayName:"Velocity (horizontal) input filter",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},PSC_VELXY_I:{Description:"Velocity (horizontal) I gain. Corrects long-term difference between desired and actual velocity to a target acceleration",DisplayName:"Velocity (horizontal) I gain",Increment:"0.01",Range:{high:"1.00",low:"0.02"},User:"Advanced"},PSC_VELXY_IMAX:{Description:"Velocity (horizontal) integrator maximum. Constrains the target acceleration that the I gain will output",DisplayName:"Velocity (horizontal) integrator maximum",Increment:"10",Range:{high:"4500",low:"0"},Units:"cm/s/s",User:"Advanced"},PSC_VELXY_P:{Description:"Velocity (horizontal) P gain. Converts the difference between desired and actual velocity to a target acceleration",DisplayName:"Velocity (horizontal) P gain",Increment:"0.1",Range:{high:"6.0",low:"0.1"},User:"Advanced"},PSC_VELZ_D:{Description:"Velocity (vertical) controller D gain. Corrects short-term changes in velocity",DisplayName:"Velocity (vertical) controller D gain",Increment:"0.001",Range:{high:"1.00",low:"0.00"},User:"Advanced"},PSC_VELZ_FF:{Description:"Velocity (vertical) controller Feed Forward gain. Produces an output that is proportional to the magnitude of the target",DisplayName:"Velocity (vertical) controller Feed Forward gain",Increment:"0.01",Range:{high:"1",low:"0"},User:"Advanced"},PSC_VELZ_FLTD:{Description:"Velocity (vertical) input filter for D term. This filter (in Hz) is applied to the input for D terms",DisplayName:"Velocity (vertical) input filter for D term",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},PSC_VELZ_FLTE:{Description:"Velocity (vertical) error filter. This filter (in Hz) is applied to the input for P and I terms",DisplayName:"Velocity (vertical) error filter",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},PSC_VELZ_I:{Description:"Velocity (vertical) controller I gain. Corrects long-term difference in desired velocity to a target acceleration",DisplayName:"Velocity (vertical) controller I gain",Increment:"0.01",Range:{high:"1.00",low:"0.02"},User:"Advanced"},PSC_VELZ_IMAX:{Description:"Velocity (vertical) controller I gain maximum. Constrains the target acceleration that the I gain will output",DisplayName:"Velocity (vertical) controller I gain maximum",Range:{high:"8.000",low:"1.000"},User:"Standard"},PSC_VELZ_P:{Description:"Velocity (vertical) controller P gain. Converts the difference between desired vertical speed and actual speed into a desired acceleration that is passed to the throttle acceleration controller",DisplayName:"Velocity (vertical) controller P gain",Range:{high:"8.000",low:"1.000"},User:"Standard"}},LZ={RALLY_INCL_HOME:{Description:"Controls if Home is included as a Rally point (i.e. as a safe landing place) for RTL",DisplayName:"Rally Include Home",User:"Standard",Values:{0:"DoNotIncludeHome",1:"IncludeHome"}},RALLY_LIMIT_KM:{Description:"Maximum distance to rally point. If the closest rally point is more than this number of kilometers from the current position and the home location is closer than any of the rally points from the current position then do RTL to home rather than to the closest rally point. This prevents a leftover rally point from a different airfield being used accidentally. If this is set to 0 then the closest rally point is always used.",DisplayName:"Rally Limit",Increment:"0.1",Units:"km",User:"Advanced"},RALLY_TOTAL:{Description:"Number of rally points currently loaded",DisplayName:"Rally Total",User:"Advanced"}},HZ={RC_OPTIONS:{Bitmask:{0:"Ignore RC Receiver",1:"Ignore MAVLink Overrides",2:"Ignore Receiver Failsafe bit but allow other RC failsafes if setup",3:"FPort Pad",4:"Log RC input bytes",5:"Arming check throttle for 0 input",6:"Skip the arming check for neutral Roll/Pitch/Yaw sticks",7:"Allow Switch reverse",8:"Use passthrough for CRSF telemetry",9:"Suppress CRSF mode/rate message for ELRS systems",10:"Enable multiple receiver support",11:"CRSF RSSI shows Link Quality"},Description:"RC input options",DisplayName:"RC options",User:"Advanced"},RC_OVERRIDE_TIME:{Description:"Timeout after which RC overrides will no longer be used, and RC input will resume, 0 will disable RC overrides, -1 will never timeout, and continue using overrides until they are disabled",DisplayName:"RC override timeout",Range:{high:"120.0",low:"0.0"},Units:"s",User:"Advanced"},RC_PROTOCOLS:{Bitmask:{0:"All",1:"PPM",2:"IBUS",3:"SBUS",4:"SBUS_NI",5:"DSM",6:"SUMD",7:"SRXL",8:"SRXL2",9:"CRSF",10:"ST24",11:"FPORT",12:"FPORT2",13:"FastSBUS"},Description:"Bitmask of enabled RC protocols. Allows narrowing the protocol detection to only specific types of RC receivers which can avoid issues with incorrect detection. Set to 1 to enable all protocols.",DisplayName:"RC protocols enabled",User:"Advanced"}},MZ={RC10_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC10_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC10_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC10_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC10_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC10_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},gZ={RC11_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC11_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC11_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC11_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC11_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC11_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},AZ={RC12_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC12_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC12_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC12_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC12_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC12_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},vZ={RC13_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC13_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC13_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC13_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC13_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC13_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},_Z={RC14_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC14_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC14_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC14_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC14_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC14_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},SZ={RC15_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC15_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC15_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC15_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC15_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC15_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},DZ={RC16_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC16_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC16_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC16_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC16_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC16_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},yZ={RC1_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC1_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC1_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC1_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC1_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC1_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},RZ={RC2_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC2_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC2_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC2_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC2_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC2_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},bZ={RC3_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC3_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC3_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC3_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC3_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC3_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},NZ={RC4_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC4_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC4_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC4_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC4_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC4_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},wZ={RC5_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC5_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC5_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC5_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC5_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC5_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},TZ={RC6_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC6_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC6_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC6_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC6_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC6_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},EZ={RC7_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC7_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC7_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC7_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC7_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC7_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},PZ={RC8_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC8_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC8_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC8_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC8_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC8_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},IZ={RC9_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC9_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC9_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC9_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC9_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC9_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},OZ={RCMAP_PITCH:{Description:"Pitch channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Pitch is normally on channel 2, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Pitch channel",Increment:"1",Range:{high:"16",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_ROLL:{Description:"Roll channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Roll is normally on channel 1, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Roll channel",Increment:"1",Range:{high:"16",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_THROTTLE:{Description:"Throttle channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Throttle is normally on channel 3, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Throttle channel",Increment:"1",Range:{high:"16",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_YAW:{Description:"Yaw channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Yaw (also known as rudder) is normally on channel 4, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Yaw channel",Increment:"1",Range:{high:"16",low:"1"},RebootRequired:"True",User:"Advanced"}},UZ={RELAY_DEFAULT:{Description:"The state of the relay on boot.",DisplayName:"Default relay state",User:"Standard",Values:{0:"Off",1:"On",2:"NoChange"}},RELAY_PIN:{Description:`Digital pin number for first relay control. This is the pin used for camera shutter control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"First Relay Pin",User:"Standard",Values:{27:"BBBMini Pin P8.17",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN2:{Description:`Digital pin number for 2nd relay control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Second Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",65:"BBBMini Pin P8.18",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN3:{Description:`Digital pin number for 3rd relay control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Third Relay Pin",User:"Standard",Values:{22:"BBBMini Pin P8.19",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN4:{Description:`Digital pin number for 4th relay control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Fourth Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",63:"BBBMini Pin P8.34",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN5:{Description:`Digital pin number for 5th relay control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Fifth Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",62:"BBBMini Pin P8.13",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN6:{Description:`Digital pin number for 6th relay control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Sixth Relay Pin",User:"Standard",Values:{37:"BBBMini Pin P8.14",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}}},xZ={RNGFND1_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND1_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND1_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND1_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND1_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND1_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND1_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND1_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND1_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND1_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND1_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND1_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND1_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND1_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND1_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND1_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND1_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND1_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},FZ={RNGFND2_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND2_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND2_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND2_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND2_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND2_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND2_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND2_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND2_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND2_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND2_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND2_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND2_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND2_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND2_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND2_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND2_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND2_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},kZ={RNGFND3_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND3_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND3_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND3_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND3_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND3_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND3_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND3_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND3_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND3_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND3_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND3_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND3_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND3_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND3_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND3_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND3_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND3_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},BZ={RNGFND4_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND4_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND4_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND4_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND4_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND4_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND4_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND4_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND4_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND4_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND4_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND4_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND4_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND4_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND4_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND4_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND4_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND4_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},zZ={RNGFND5_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND5_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND5_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND5_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND5_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND5_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND5_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND5_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND5_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND5_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND5_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND5_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND5_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND5_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND5_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND5_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND5_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND5_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},ZZ={RNGFND6_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND6_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND6_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND6_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND6_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND6_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND6_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND6_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND6_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND6_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND6_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND6_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND6_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND6_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND6_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND6_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND6_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND6_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},GZ={RNGFND7_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND7_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND7_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND7_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND7_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND7_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND7_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND7_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND7_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND7_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND7_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND7_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND7_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND7_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND7_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND7_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND7_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND7_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},WZ={RNGFND8_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND8_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND8_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND8_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND8_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND8_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND8_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND8_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND8_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND8_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND8_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND8_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND8_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND8_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND8_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND8_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND8_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND8_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},XZ={RNGFND9_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND9_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND9_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND9_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND9_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND9_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND9_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND9_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND9_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND9_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND9_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND9_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND9_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND9_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND9_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND9_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND9_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND9_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},YZ={RNGFNDA_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFNDA_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFNDA_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFNDA_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFNDA_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFNDA_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFNDA_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFNDA_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFNDA_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFNDA_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFNDA_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFNDA_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFNDA_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFNDA_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFNDA_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFNDA_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFNDA_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFNDA_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},$Z={RPM1_ESC_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which support ESC rpm telemetry. RPM telemetry of the selected channels will be averaged",DisplayName:"Bitmask of ESC telemetry channels to average",User:"Advanced"},RPM1_MAX:{Description:"Maximum RPM to report. Only used on type = GPIO.",DisplayName:"Maximum RPM",Increment:"1",User:"Standard"},RPM1_MIN:{Description:"Minimum RPM to report. Only used on type = GPIO.",DisplayName:"Minimum RPM",Increment:"1",User:"Standard"},RPM1_MIN_QUAL:{Description:"Minimum data quality to be used",DisplayName:"Minimum Quality",Increment:"0.1",User:"Advanced"},RPM1_PIN:{Description:`Which digital GPIO pin to use. Only used on type = GPIO. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Input pin number",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},RPM1_SCALING:{Description:"Scaling factor between sensor reading and RPM.",DisplayName:"RPM scaling",Increment:"0.001",User:"Standard"},RPM1_TYPE:{Description:"What type of RPM sensor is connected",DisplayName:"RPM type",User:"Standard",Values:{0:"None",1:"Not Used",2:"GPIO",3:"EFI",4:"Harmonic Notch",5:"ESC Telemetry Motors Bitmask",6:"Generator"}}},qZ={RPM2_ESC_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which support ESC rpm telemetry. RPM telemetry of the selected channels will be averaged",DisplayName:"Bitmask of ESC telemetry channels to average",User:"Advanced"},RPM2_MAX:{Description:"Maximum RPM to report. Only used on type = GPIO.",DisplayName:"Maximum RPM",Increment:"1",User:"Standard"},RPM2_MIN:{Description:"Minimum RPM to report. Only used on type = GPIO.",DisplayName:"Minimum RPM",Increment:"1",User:"Standard"},RPM2_MIN_QUAL:{Description:"Minimum data quality to be used",DisplayName:"Minimum Quality",Increment:"0.1",User:"Advanced"},RPM2_PIN:{Description:`Which digital GPIO pin to use. Only used on type = GPIO. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Input pin number",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},RPM2_SCALING:{Description:"Scaling factor between sensor reading and RPM.",DisplayName:"RPM scaling",Increment:"0.001",User:"Standard"},RPM2_TYPE:{Description:"What type of RPM sensor is connected",DisplayName:"RPM type",User:"Standard",Values:{0:"None",1:"Not Used",2:"GPIO",3:"EFI",4:"Harmonic Notch",5:"ESC Telemetry Motors Bitmask",6:"Generator"}}},KZ={RSSI_ANA_PIN:{Description:"Pin used to read the RSSI voltage or PWM value",DisplayName:"Receiver RSSI sensing pin",User:"Standard",Values:{8:"V5 Nano",11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS"}},RSSI_CHANNEL:{Description:"The channel number where RSSI will be output by the radio receiver (5 and above).",DisplayName:"Receiver RSSI channel number",Range:{high:"16",low:"0"},User:"Standard"},RSSI_CHAN_HIGH:{Description:"PWM value that the radio receiver will put on the RSSI_CHANNEL or RSSI_ANA_PIN when the signal strength is the strongest. Some radio receivers output inverted values so this value may be higher than RSSI_CHAN_LOW",DisplayName:"Receiver RSSI PWM high value",Range:{high:"2000",low:"0"},Units:"PWM",User:"Standard"},RSSI_CHAN_LOW:{Description:"PWM value that the radio receiver will put on the RSSI_CHANNEL or RSSI_ANA_PIN when the signal strength is the weakest. Some radio receivers output inverted values so this value may be lower than RSSI_CHAN_HIGH",DisplayName:"RSSI PWM low value",Range:{high:"2000",low:"0"},Units:"PWM",User:"Standard"},RSSI_PIN_HIGH:{Description:"RSSI pin's voltage received on the RSSI_ANA_PIN when the signal strength is the strongest. Some radio receivers put out inverted values so this value may be lower than RSSI_PIN_LOW. When using pin 103, the maximum value of the parameter is 3.3V.",DisplayName:"RSSI pin's highest voltage",Increment:"0.01",Range:{high:"5.0",low:"0"},Units:"V",User:"Standard"},RSSI_PIN_LOW:{Description:"RSSI pin's voltage received on the RSSI_ANA_PIN when the signal strength is the weakest. Some radio receivers put out inverted values so this value may be higher than RSSI_PIN_HIGH. When using pin 103, the maximum value of the parameter is 3.3V.",DisplayName:"RSSI pin's lowest voltage",Increment:"0.01",Range:{high:"5.0",low:"0"},Units:"V",User:"Standard"},RSSI_TYPE:{Description:"Radio Receiver RSSI type. If your radio receiver supports RSSI of some kind, set it here, then set its associated RSSI_XXXXX parameters, if any.",DisplayName:"RSSI Type",User:"Standard",Values:{0:"Disabled",1:"AnalogPin",2:"RCChannelPwmValue",3:"ReceiverProtocol",4:"PWMInputPin",5:"TelemetryRadioRSSI"}}},jZ={SCHED_DEBUG:{Description:'Set to non-zero to enable scheduler debug messages. When set to show "Slips" the scheduler will display a message whenever a scheduled task is delayed due to too much CPU load. When set to ShowOverruns the scheduled will display a message whenever a task takes longer than the limit promised in the task table.',DisplayName:"Scheduler debug level",User:"Advanced",Values:{0:"Disabled",2:"ShowSlips",3:"ShowOverruns"}},SCHED_LOOP_RATE:{Description:"This controls the rate of the main control loop in Hz. This should only be changed by developers. This only takes effect on restart. Values over 400 are considered highly experimental.",DisplayName:"Scheduling main loop rate",RebootRequired:"True",User:"Advanced",Values:{50:"50Hz",100:"100Hz",200:"200Hz",250:"250Hz",300:"300Hz",400:"400Hz"}},SCHED_OPTIONS:{Bitmask:{0:"Enable per-task perf info"},Description:"This controls optional aspects of the scheduler.",DisplayName:"Scheduling options",User:"Advanced"}},QZ={SCR_DEBUG_OPTS:{Bitmask:{0:"No Scripts to run message if all scripts have stopped",1:"Runtime messages for memory usage and execution time",2:"Suppress logging scripts to dataflash",3:"log runtime memory usage and execution time",4:"Disable pre-arm check"},Description:"Debugging options",DisplayName:"Scripting Debug Level",User:"Advanced"},SCR_DIR_DISABLE:{Bitmask:{0:"ROMFS",1:"APM/scripts"},Description:"This will stop scripts being loaded from the given locations",DisplayName:"Directory disable",RebootRequired:"True",User:"Advanced"},SCR_ENABLE:{Description:"Controls if scripting is enabled",DisplayName:"Enable Scripting",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Lua Scripts"}},SCR_HEAP_SIZE:{Description:"Amount of memory available for scripting",DisplayName:"Scripting Heap Size",Increment:"1024",Range:{high:"1048576",low:"1024"},RebootRequired:"True",User:"Advanced"},SCR_USER1:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter1",User:"Standard"},SCR_USER2:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter2",User:"Standard"},SCR_USER3:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter3",User:"Standard"},SCR_USER4:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter4",User:"Standard"},SCR_USER5:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter5",User:"Standard"},SCR_USER6:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter6",User:"Standard"},SCR_VM_I_COUNT:{Description:"The number virtual machine instructions that can be run before considering a script to have taken an excessive amount of time",DisplayName:"Scripting Virtual Machine Instruction Count",Increment:"10000",Range:{high:"1000000",low:"1000"},User:"Advanced"}},JZ={SERIAL0_BAUD:{Description:"The baud rate used on the USB console. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial0 baud rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL0_PROTOCOL:{Description:"Control what protocol to use on the console. ",DisplayName:"Console protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVlink1",2:"MAVLink2"}},SERIAL1_BAUD:{Description:"The baud rate used on the Telem1 port. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Telem1 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL1_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire. The Swap option allows the RX and TX pins to be swapped on STM32F7 based boards.",DisplayName:"Telem1 options",RebootRequired:"True",User:"Advanced"},SERIAL1_PROTOCOL:{Description:"Control what protocol to use on the Telem1 port. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Telem1 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL2_BAUD:{Description:"The baud rate of the Telem2 port. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Telemetry 2 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL2_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Telem2 options",RebootRequired:"True",User:"Advanced"},SERIAL2_PROTOCOL:{Description:"Control what protocol to use on the Telem2 port. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Telemetry 2 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL3_BAUD:{Description:"The baud rate used for the Serial 3 (GPS). Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 3 (GPS) Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL3_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial3 options",RebootRequired:"True",User:"Advanced"},SERIAL3_PROTOCOL:{Description:"Control what protocol Serial 3 (GPS) should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial 3 (GPS) protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL4_BAUD:{Description:"The baud rate used for Serial4. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 4 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL4_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial4 options",RebootRequired:"True",User:"Advanced"},SERIAL4_PROTOCOL:{Description:"Control what protocol Serial4 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial4 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL5_BAUD:{Description:"The baud rate used for Serial5. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 5 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL5_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial5 options",RebootRequired:"True",User:"Advanced"},SERIAL5_PROTOCOL:{Description:"Control what protocol Serial5 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial5 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL6_BAUD:{Description:"The baud rate used for Serial6. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 6 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL6_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial6 options",RebootRequired:"True",User:"Advanced"},SERIAL6_PROTOCOL:{Description:"Control what protocol Serial6 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial6 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL7_BAUD:{Description:"The baud rate used for Serial7. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 7 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL7_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial7 options",RebootRequired:"True",User:"Advanced"},SERIAL7_PROTOCOL:{Description:"Control what protocol Serial7 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial7 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL8_BAUD:{Description:"The baud rate used for Serial8. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 8 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL8_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial8 options",RebootRequired:"True",User:"Advanced"},SERIAL8_PROTOCOL:{Description:"Control what protocol Serial8 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial8 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL9_BAUD:{Description:"The baud rate used for Serial8. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 9 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL9_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial9 options",RebootRequired:"True",User:"Advanced"},SERIAL9_PROTOCOL:{Description:"Control what protocol Serial9 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial9 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL_PASS1:{Description:"This sets one side of pass-through between two serial ports. Once both sides are set then all data received on either port will be passed to the other port",DisplayName:"Serial passthru first port",User:"Advanced",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},SERIAL_PASS2:{Description:"This sets one side of pass-through between two serial ports. Once both sides are set then all data received on either port will be passed to the other port",DisplayName:"Serial passthru second port",User:"Advanced",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},SERIAL_PASSTIMO:{Description:"This sets a timeout for serial pass-through in seconds. When the pass-through is enabled by setting the SERIAL_PASS1 and SERIAL_PASS2 parameters then it remains in effect until no data comes from the first port for SERIAL_PASSTIMO seconds. This allows the port to revent to its normal usage (such as MAVLink connection to a GCS) when it is no longer needed. A value of 0 means no timeout.",DisplayName:"Serial passthru timeout",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"}},eG={SERVO_32_ENABLE:{Description:"This allows for up to 32 outputs, enabling parameters for outputs above 16",DisplayName:"Enable outputs 17 to 31",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},SERVO_DSHOT_ESC:{Description:"This sets the DShot ESC type for all outputs. The ESC type affects the range of DShot commands available. None means that no dshot commands will be executed.",DisplayName:"Servo DShot ESC type",User:"Advanced",Values:{0:"None",1:"BLHeli32/Kiss",2:"BLHeli_S"}},SERVO_DSHOT_RATE:{Description:"This sets the DShot output rate for all outputs as a multiple of the loop rate. 0 sets the output rate to be fixed at 1Khz for low loop rates. This value should never be set below 500Hz.",DisplayName:"Servo DShot output rate",User:"Advanced",Values:{0:"1Khz",1:"loop-rate",2:"double loop-rate",3:"triple loop-rate",4:"quadruple loop rate"}},SERVO_GPIO_MASK:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16",16:"Servo 17",17:"Servo 18",18:"Servo 19",19:"Servo 20",20:"Servo 21",21:"Servo 22",22:"Servo 23",23:"Servo 24",24:"Servo 25",25:"Servo 26",26:"Servo 27",27:"Servo 28",28:"Servo 29",29:"Servo 30",30:"Servo 31",31:"Servo 32"},Description:"This sets a bitmask of outputs which will be available as GPIOs. Any auxiliary output with either the function set to -1 or with the corresponding bit set in this mask will be available for use as a GPIO pin",DisplayName:"Servo GPIO mask",RebootRequired:"True",User:"Advanced"},SERVO_RATE:{Description:"This sets the default output rate in Hz for all outputs.",DisplayName:"Servo default output rate",Range:{high:"400",low:"25"},Units:"Hz",User:"Advanced"}},tG={SERVO10_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO10_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO10_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO10_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO10_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},iG={SERVO11_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO11_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO11_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO11_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO11_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},aG={SERVO12_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO12_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO12_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO12_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO12_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},rG={SERVO13_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO13_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO13_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO13_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO13_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},nG={SERVO14_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO14_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO14_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO14_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO14_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},oG={SERVO15_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO15_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO15_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO15_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO15_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},sG={SERVO16_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO16_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO16_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO16_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO16_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},lG={SERVO17_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO17_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO17_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO17_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO17_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},cG={SERVO18_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO18_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO18_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO18_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO18_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},dG={SERVO19_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO19_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO19_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO19_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO19_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},CG={SERVO1_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO1_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO1_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO1_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO1_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},mG={SERVO20_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO20_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO20_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO20_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO20_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},uG={SERVO21_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO21_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO21_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO21_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO21_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},hG={SERVO22_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO22_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO22_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO22_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO22_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},pG={SERVO23_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO23_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO23_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO23_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO23_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},fG={SERVO24_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO24_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO24_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO24_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO24_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},VG={SERVO25_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO25_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO25_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO25_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO25_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},LG={SERVO26_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO26_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO26_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO26_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO26_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},HG={SERVO27_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO27_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO27_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO27_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO27_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},MG={SERVO28_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO28_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO28_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO28_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO28_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},gG={SERVO29_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO29_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO29_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO29_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO29_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},AG={SERVO2_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO2_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO2_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO2_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO2_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},vG={SERVO30_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO30_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO30_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO30_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO30_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},_G={SERVO31_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO31_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO31_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO31_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO31_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},SG={SERVO32_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO32_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO32_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO32_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO32_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},DG={SERVO3_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO3_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO3_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO3_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO3_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},yG={SERVO4_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO4_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO4_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO4_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO4_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},RG={SERVO5_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO5_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO5_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO5_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO5_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},bG={SERVO6_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO6_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO6_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO6_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO6_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},NG={SERVO7_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO7_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO7_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO7_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO7_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},wG={SERVO8_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO8_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO8_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO8_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO8_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},TG={SERVO9_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO9_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO9_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO9_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO9_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},EG={SERVO_BLH_3DMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16",16:"Channel 17",17:"Channel 18",18:"Channel 19",19:"Channel 20",20:"Channel 21",21:"Channel 22",22:"Channel 23",23:"Channel 24",24:"Channel 25",25:"Channel 26",26:"Channel 27",27:"Channel 28",28:"Channel 29",29:"Channel 30",30:"Channel 31",31:"Channel 32"},Description:"Mask of channels which are dynamically reversible. This is used to configure ESCs in '3D' mode, allowing for the motor to spin in either direction",DisplayName:"BLHeli bitmask of 3D channels",RebootRequired:"True",User:"Advanced"},SERVO_BLH_AUTO:{Description:"If set to 1 this auto-enables BLHeli pass-thru support for all multicopter motors",DisplayName:"BLHeli pass-thru auto-enable for multicopter motors",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},SERVO_BLH_BDMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16",16:"Channel 17",17:"Channel 18",18:"Channel 19",19:"Channel 20",20:"Channel 21",21:"Channel 22",22:"Channel 23",23:"Channel 24",24:"Channel 25",25:"Channel 26",26:"Channel 27",27:"Channel 28",28:"Channel 29",29:"Channel 30",30:"Channel 31",31:"Channel 32"},Description:"Mask of channels which support bi-directional dshot. This is used for ESCs which have firmware that supports bi-directional dshot allowing fast rpm telemetry values to be returned for the harmonic notch.",DisplayName:"BLHeli bitmask of bi-directional dshot channels",RebootRequired:"True",User:"Advanced"},SERVO_BLH_DEBUG:{Description:"When set to 1 this enabled verbose debugging output over MAVLink when the blheli protocol is active. This can be used to diagnose failures.",DisplayName:"BLHeli debug level",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},SERVO_BLH_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16",16:"Channel 17",17:"Channel 18",18:"Channel 19",19:"Channel 20",20:"Channel 21",21:"Channel 22",22:"Channel 23",23:"Channel 24",24:"Channel 25",25:"Channel 26",26:"Channel 27",27:"Channel 28",28:"Channel 29",29:"Channel 30",30:"Channel 31",31:"Channel 32"},Description:"Enable of BLHeli pass-thru servo protocol support to specific channels. This mask is in addition to motors enabled using SERVO_BLH_AUTO (if any)",DisplayName:"BLHeli Channel Bitmask",RebootRequired:"True",User:"Advanced"},SERVO_BLH_OTYPE:{Description:"When set to a non-zero value this overrides the output type for the output channels given by SERVO_BLH_MASK. This can be used to enable DShot on outputs that are not part of the multicopter motors group.",DisplayName:"BLHeli output type override",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"OneShot",2:"OneShot125",3:"Brushed",4:"DShot150",5:"DShot300",6:"DShot600",7:"DShot1200"}},SERVO_BLH_POLES:{Description:"This allows calculation of true RPM from ESC's eRPM. The default is 14.",DisplayName:"BLHeli Motor Poles",Range:{high:"127",low:"1"},RebootRequired:"True",User:"Advanced"},SERVO_BLH_PORT:{Description:"This sets the mavlink channel to use for blheli pass-thru. The channel number is determined by the number of serial ports configured to use mavlink. So 0 is always the console, 1 is the next serial port using mavlink, 2 the next after that and so on.",DisplayName:"Control port",User:"Advanced",Values:{0:"Console",1:"Mavlink Serial Channel1",2:"Mavlink Serial Channel2",3:"Mavlink Serial Channel3",4:"Mavlink Serial Channel4",5:"Mavlink Serial Channel5"}},SERVO_BLH_RVMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16",16:"Channel 17",17:"Channel 18",18:"Channel 19",19:"Channel 20",20:"Channel 21",21:"Channel 22",22:"Channel 23",23:"Channel 24",24:"Channel 25",25:"Channel 26",26:"Channel 27",27:"Channel 28",28:"Channel 29",29:"Channel 30",30:"Channel 31",31:"Channel 32"},Description:"Mask of channels which are reversed. This is used to configure ESCs in reversed mode",DisplayName:"BLHeli bitmask of reversed channels",RebootRequired:"True",User:"Advanced"},SERVO_BLH_TEST:{Description:"Setting SERVO_BLH_TEST to a motor number enables an internal test of the BLHeli ESC protocol to the corresponding ESC. The debug output is displayed on the USB console.",DisplayName:"BLHeli internal interface test",User:"Advanced",Values:{0:"Disabled",1:"TestMotor1",2:"TestMotor2",3:"TestMotor3",4:"TestMotor4",5:"TestMotor5",6:"TestMotor6",7:"TestMotor7",8:"TestMotor8"}},SERVO_BLH_TMOUT:{Description:"This sets the inactivity timeout for the BLHeli protocol in seconds. If no packets are received in this time normal MAVLink operations are resumed. A value of 0 means no timeout",DisplayName:"BLHeli protocol timeout",Range:{high:"300",low:"0"},Units:"s",User:"Standard"},SERVO_BLH_TRATE:{Description:"This sets the rate in Hz for requesting telemetry from ESCs. It is the rate per ESC. Setting to zero disables telemetry requests",DisplayName:"BLHeli telemetry rate",Range:{high:"500",low:"0"},Units:"Hz",User:"Standard"}},PG={SERVO_FTW_MASK:{Bitmask:{0:"SERVO1",1:"SERVO2",2:"SERVO3",3:"SERVO4",4:"SERVO5",5:"SERVO6",6:"SERVO7",7:"SERVO8",8:"SERVO9",9:"SERVO10",10:"SERVO11",11:"SERVO12"},Description:"Servo channel mask specifying FETtec ESC output.",DisplayName:"Servo channel output bitmask",RebootRequired:"True",User:"Standard"},SERVO_FTW_POLES:{Description:"Number of motor electrical poles",DisplayName:"Nr. electrical poles",Range:{high:"50",low:"2"},User:"Standard"},SERVO_FTW_RVMASK:{Bitmask:{0:"SERVO1",1:"SERVO2",2:"SERVO3",3:"SERVO4",4:"SERVO5",5:"SERVO6",6:"SERVO7",7:"SERVO8",8:"SERVO9",9:"SERVO10",10:"SERVO11",11:"SERVO12"},Description:"Servo channel mask to reverse rotation of FETtec ESC outputs.",DisplayName:"Servo channel reverse rotation bitmask",User:"Standard"}},IG={SERVO_ROB_POSMAX:{Description:"Position maximum at servo max value. This should be within the position control range of the servos, normally 0 to 4095",DisplayName:"Robotis servo position max",Range:{high:"4095",low:"0"},User:"Standard"},SERVO_ROB_POSMIN:{Description:"Position minimum at servo min value. This should be within the position control range of the servos, normally 0 to 4095",DisplayName:"Robotis servo position min",Range:{high:"4095",low:"0"},User:"Standard"}},OG={SERVO_SBUS_RATE:{Description:"This sets the SBUS output frame rate in Hz.",DisplayName:"SBUS default output rate",Range:{high:"250",low:"25"},Units:"Hz",User:"Advanced"}},UG={SERVO_VOLZ_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16",16:"Channel17",17:"Channel18",18:"Channel19",19:"Channel20",20:"Channel21",21:"Channel22",22:"Channel23",23:"Channel24",24:"Channel25",25:"Channel26",26:"Channel27",28:"Channel29",29:"Channel30",30:"Channel31",31:"Channel32"},Description:"Enable of volz servo protocol to specific channels",DisplayName:"Channel Bitmask",User:"Standard"}},xG={SID_AXIS:{Description:"Controls which axis are being excited. Set to non-zero to see more parameters",DisplayName:"System identification axis",User:"Standard",Values:{0:"None",1:"Input Roll Angle",2:"Input Pitch Angle",3:"Input Yaw Angle",4:"Recovery Roll Angle",5:"Recovery Pitch Angle",6:"Recovery Yaw Angle",7:"Rate Roll",8:"Rate Pitch",9:"Rate Yaw",10:"Mixer Roll",11:"Mixer Pitch",12:"Mixer Yaw",13:"Mixer Thrust"}},SID_F_START_HZ:{Description:"Frequency at the start of the sweep",DisplayName:"System identification Start Frequency",Range:{high:"100",low:"0.01"},Units:"Hz",User:"Standard"},SID_F_STOP_HZ:{Description:"Frequency at the end of the sweep",DisplayName:"System identification Stop Frequency",Range:{high:"100",low:"0.01"},Units:"Hz",User:"Standard"},SID_MAGNITUDE:{Description:"Magnitude of sweep in deg, deg/s and 0-1 for mixer outputs.",DisplayName:"System identification Chirp Magnitude",User:"Standard"},SID_T_FADE_IN:{Description:"Time to reach maximum amplitude of sweep",DisplayName:"System identification Fade in time",Range:{high:"20",low:"0"},Units:"s",User:"Standard"},SID_T_FADE_OUT:{Description:"Time to reach zero amplitude at the end of the sweep",DisplayName:"System identification Fade out time",Range:{high:"5",low:"0"},Units:"s",User:"Standard"},SID_T_REC:{Description:"Time taken to complete the sweep",DisplayName:"System identification Total Sweep length",Range:{high:"255",low:"0"},Units:"s",User:"Standard"}},FG={SPRAY_ENABLE:{Description:"Allows you to enable (1) or disable (0) the sprayer",DisplayName:"Sprayer enable/disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},SPRAY_PUMP_MIN:{Description:"Minimum pump speed expressed as a percentage",DisplayName:"Pump speed minimum",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},SPRAY_PUMP_RATE:{Description:"Desired pump speed when traveling 1m/s expressed as a percentage",DisplayName:"Pump speed",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},SPRAY_SPEED_MIN:{Description:"Speed minimum at which we will begin spraying",DisplayName:"Speed minimum",Range:{high:"1000",low:"0"},Units:"cm/s",User:"Standard"},SPRAY_SPINNER:{Description:"Spinner's rotation speed in PWM (a higher rate will disperse the spray over a wider area horizontally)",DisplayName:"Spinner rotation speed",Range:{high:"2000",low:"1000"},Units:"ms",User:"Standard"}},kG={SR0_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_EXTRA1:{Description:"Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2 and PID_TUNING to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, SYSTEM_TIME, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, BATTERY2, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION and RPM to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_EXT_STAT:{Description:"Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, and FENCE_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_RAW_CTRL:{Description:"Unused",DisplayName:"Unused",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},BG={SR1_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_EXTRA1:{Description:"Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2 and PID_TUNING to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, SYSTEM_TIME, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, BATTERY2, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION and RPM to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_EXT_STAT:{Description:"Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, and FENCE_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_RAW_CTRL:{Description:"Unused",DisplayName:"Unused",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},zG={SR2_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_EXTRA1:{Description:"Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2 and PID_TUNING to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, SYSTEM_TIME, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, BATTERY2, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION and RPM to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_EXT_STAT:{Description:"Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, and FENCE_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_RAW_CTRL:{Description:"Unused",DisplayName:"Unused",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},ZG={SR3_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_EXTRA1:{Description:"Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2 and PID_TUNING to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, SYSTEM_TIME, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, BATTERY2, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION and RPM to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_EXT_STAT:{Description:"Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, and FENCE_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_RAW_CTRL:{Description:"Unused",DisplayName:"Unused",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},GG={SR4_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_EXTRA1:{Description:"Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2 and PID_TUNING to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, SYSTEM_TIME, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, BATTERY2, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION and RPM to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_EXT_STAT:{Description:"Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, and FENCE_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_RAW_CTRL:{Description:"Unused",DisplayName:"Unused",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},WG={SR5_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_EXTRA1:{Description:"Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2 and PID_TUNING to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, SYSTEM_TIME, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, BATTERY2, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION and RPM to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_EXT_STAT:{Description:"Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, and FENCE_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_RAW_CTRL:{Description:"Unused",DisplayName:"Unused",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},XG={SR6_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_EXTRA1:{Description:"Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2 and PID_TUNING to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, SYSTEM_TIME, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, BATTERY2, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION and RPM to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_EXT_STAT:{Description:"Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, and FENCE_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_RAW_CTRL:{Description:"Unused",DisplayName:"Unused",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},YG={SRTL_ACCURACY:{Description:"SmartRTL accuracy. The minimum distance between points.",DisplayName:"SmartRTL accuracy",Range:{high:"10",low:"0"},Units:"m",User:"Advanced"},SRTL_OPTIONS:{Bitmask:{2:"Ignore pilot yaw"},Description:"Bitmask of SmartRTL options.",DisplayName:"SmartRTL options",User:"Standard"},SRTL_POINTS:{Description:"SmartRTL maximum number of points on path. Set to 0 to disable SmartRTL. 100 points consumes about 3k of memory.",DisplayName:"SmartRTL maximum number of points on path",Range:{high:"500",low:"0"},RebootRequired:"True",User:"Advanced"}},$G={STAT_BOOTCNT:{Description:"Number of times board has been booted",DisplayName:"Boot Count",ReadOnly:"True",User:"Standard"},STAT_FLTTIME:{Description:"Total FlightTime (seconds)",DisplayName:"Total FlightTime",ReadOnly:"True",Units:"s",User:"Standard"},STAT_RESET:{Description:"Seconds since January 1st 2016 (Unix epoch+1451606400) since statistics reset (set to 0 to reset statistics)",DisplayName:"Statistics Reset Time",ReadOnly:"True",Units:"s",User:"Standard"},STAT_RUNTIME:{Description:"Total time autopilot has run",DisplayName:"Total RunTime",ReadOnly:"True",Units:"s",User:"Standard"}},qG={TCAL_BARO_EXP:{Description:"Learned exponent for barometer temperature correction",DisplayName:"Temperature Calibration barometer exponent",ReadOnly:"True",User:"Advanced",Volatile:"True"},TCAL_ENABLED:{Description:"Enable temperature calibration. Set to 0 to disable. Set to 1 to use learned values. Set to 2 to learn new values and use the values",DisplayName:"Temperature calibration enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"EnableAndLearn"}},TCAL_TEMP_MAX:{Description:"Maximum learned temperature. This is automatically set by the learning process",DisplayName:"Temperature calibration max learned temperature",ReadOnly:"True",Units:"degC",User:"Advanced",Volatile:"True"},TCAL_TEMP_MIN:{Description:"Minimum learned temperature. This is automatically set by the learning process",DisplayName:"Temperature calibration min learned temperature",ReadOnly:"True",Units:"degC",User:"Advanced",Volatile:"True"}},KG={TERRAIN_ENABLE:{Description:"enable terrain data. This enables the vehicle storing a database of terrain data on the SD card. The terrain data is requested from the ground station as needed, and stored for later use on the SD card. To be useful the ground station must support TERRAIN_REQUEST messages and have access to a terrain database, such as the SRTM database.",DisplayName:"Terrain data enable",User:"Advanced",Values:{0:"Disable",1:"Enable"}},TERRAIN_MARGIN:{Description:"Margin in centi-meters to accept terrain data from the GCS. This can be used to allow older terrain data generated with less accurate latitude/longitude scaling to be used",DisplayName:"Acceptance margin",Range:{high:"50000",low:"0.05"},Units:"m",User:"Advanced"},TERRAIN_OFS_MAX:{Description:"The maximum adjustment of terrain altitude based on the assumption that the vehicle is on the ground when it is armed. When the vehicle is armed the location of the vehicle is recorded, and when terrain data is available for that location a height adjustment for terrain data is calculated that aligns the terrain height at that location with the altitude recorded at arming. This height adjustment is applied to all terrain data. This parameter clamps the amount of adjustment. A value of zero disables the use of terrain height adjustment.",DisplayName:"Terrain reference offset maximum",Range:{high:"50",low:"0"},Units:"m",User:"Advanced"},TERRAIN_OPTIONS:{Bitmask:{0:"Disable Download"},Description:"Options to change behaviour of terrain system",DisplayName:"Terrain options",User:"Advanced"},TERRAIN_SPACING:{Description:"Distance between terrain grid points in meters. This controls the horizontal resolution of the terrain data that is stored on te SD card and requested from the ground station. If your GCS is using the ArduPilot SRTM database like Mission Planner or MAVProxy, then a resolution of 100 meters is appropriate. Grid spacings lower than 100 meters waste SD card space if the GCS cannot provide that resolution. The grid spacing also controls how much data is kept in memory during flight. A larger grid spacing will allow for a larger amount of data in memory. A grid spacing of 100 meters results in the vehicle keeping 12 grid squares in memory with each grid square having a size of 2.7 kilometers by 3.2 kilometers. Any additional grid squares are stored on the SD once they are fetched from the GCS and will be loaded as needed.",DisplayName:"Terrain grid spacing",Increment:"1",Units:"m",User:"Advanced"}},jG={TMODE_ACTION1:{Description:"This is the action taken when the left action button is pressed",DisplayName:"Tmode action 1",User:"Standard",Values:{0:"None",1:"TakePhoto",2:"ToggleVideo",3:"ModeAcro",4:"ModeAltHold",5:"ModeAuto",6:"ModeLoiter",7:"ModeRTL",8:"ModeCircle",9:"ModeLand",10:"ModeDrift",11:"ModeSport",12:"ModeAutoTune",13:"ModePosHold",14:"ModeBrake",15:"ModeThrow",16:"Flip",17:"ModeStabilize",18:"Disarm",19:"ToggleMode",20:"Arm-Land-RTL",21:"ToggleSimpleMode",22:"ToggleSuperSimpleMode",23:"MotorLoadTest",24:"ModeFlowHold"}},TMODE_ACTION2:{Description:"This is the action taken when the right action button is pressed",DisplayName:"Tmode action 2",User:"Standard",Values:{0:"None",1:"TakePhoto",2:"ToggleVideo",3:"ModeAcro",4:"ModeAltHold",5:"ModeAuto",6:"ModeLoiter",7:"ModeRTL",8:"ModeCircle",9:"ModeLand",10:"ModeDrift",11:"ModeSport",12:"ModeAutoTune",13:"ModePosHold",14:"ModeBrake",15:"ModeThrow",16:"Flip",17:"ModeStabilize",18:"Disarm",19:"ToggleMode",20:"Arm-Land-RTL",21:"ToggleSimpleMode",22:"ToggleSuperSimpleMode",23:"MotorLoadTest",24:"ModeFlowHold"}},TMODE_ACTION3:{Description:"This is the action taken when the power button is pressed",DisplayName:"Tmode action 3",User:"Standard",Values:{0:"None",1:"TakePhoto",2:"ToggleVideo",3:"ModeAcro",4:"ModeAltHold",5:"ModeAuto",6:"ModeLoiter",7:"ModeRTL",8:"ModeCircle",9:"ModeLand",10:"ModeDrift",11:"ModeSport",12:"ModeAutoTune",13:"ModePosHold",14:"ModeBrake",15:"ModeThrow",16:"Flip",17:"ModeStabilize",18:"Disarm",19:"ToggleMode",20:"Arm-Land-RTL",21:"ToggleSimpleMode",22:"ToggleSuperSimpleMode",23:"MotorLoadTest",24:"ModeFlowHold"}},TMODE_ACTION4:{Description:"This is the action taken when the left action button is pressed while the left (Mode) button is held down",DisplayName:"Tmode action 4",User:"Standard",Values:{0:"None",1:"TakePhoto",2:"ToggleVideo",3:"ModeAcro",4:"ModeAltHold",5:"ModeAuto",6:"ModeLoiter",7:"ModeRTL",8:"ModeCircle",9:"ModeLand",10:"ModeDrift",11:"ModeSport",12:"ModeAutoTune",13:"ModePosHold",14:"ModeBrake",15:"ModeThrow",16:"Flip",17:"ModeStabilize",18:"Disarm",19:"ToggleMode",20:"Arm-Land-RTL",21:"ToggleSimpleMode",22:"ToggleSuperSimpleMode",23:"MotorLoadTest",24:"ModeFlowHold"}},TMODE_ACTION5:{Description:"This is the action taken when the right action is pressed while the left (Mode) button is held down",DisplayName:"Tmode action 5",User:"Standard",Values:{0:"None",1:"TakePhoto",2:"ToggleVideo",3:"ModeAcro",4:"ModeAltHold",5:"ModeAuto",6:"ModeLoiter",7:"ModeRTL",8:"ModeCircle",9:"ModeLand",10:"ModeDrift",11:"ModeSport",12:"ModeAutoTune",13:"ModePosHold",14:"ModeBrake",15:"ModeThrow",16:"Flip",17:"ModeStabilize",18:"Disarm",19:"ToggleMode",20:"Arm-Land-RTL",21:"ToggleSimpleMode",22:"ToggleSuperSimpleMode",23:"MotorLoadTest",24:"ModeFlowHold"}},TMODE_ACTION6:{Description:"This is the action taken when the power button is pressed while the left (Mode) button is held down",DisplayName:"Tmode action 6",User:"Standard",Values:{0:"None",1:"TakePhoto",2:"ToggleVideo",3:"ModeAcro",4:"ModeAltHold",5:"ModeAuto",6:"ModeLoiter",7:"ModeRTL",8:"ModeCircle",9:"ModeLand",10:"ModeDrift",11:"ModeSport",12:"ModeAutoTune",13:"ModePosHold",14:"ModeBrake",15:"ModeThrow",16:"Flip",17:"ModeStabilize",18:"Disarm",19:"ToggleMode",20:"Arm-Land-RTL",21:"ToggleSimpleMode",22:"ToggleSuperSimpleMode",23:"MotorLoadTest",24:"ModeFlowHold"}},TMODE_ENABLE:{Description:'tmode (or "toy" mode) gives a simplified user interface designed for mass market drones. Version1 is for the SkyViper V2450GPS. Version2 is for the F412 based boards',DisplayName:"tmode enable ",User:"Advanced",Values:{0:"Disabled",1:"EnableVersion1",2:"EnableVersion2"}},TMODE_FLAGS:{Bitmask:{0:"DisarmOnLowThrottle",1:"ArmOnHighThrottle",2:"UpgradeToLoiter",3:"RTLStickCancel"},Description:"Bitmask of flags to change the behaviour of tmode. DisarmOnLowThrottle means to disarm if throttle is held down for 1 second when landed. ArmOnHighThrottle means to arm if throttle is above 80% for 1 second. UpgradeToLoiter means to allow takeoff in LOITER mode by switching to ALT_HOLD, then auto-upgrading to LOITER once GPS is available. RTLStickCancel means that on large stick inputs in RTL mode that LOITER mode is engaged",DisplayName:"Tmode flags",User:"Standard"},TMODE_LEFT:{Description:"This is the action taken when the left (Mode) button is pressed",DisplayName:"Tmode left action",User:"Standard",Values:{0:"None",1:"TakePhoto",2:"ToggleVideo",3:"ModeAcro",4:"ModeAltHold",5:"ModeAuto",6:"ModeLoiter",7:"ModeRTL",8:"ModeCircle",9:"ModeLand",10:"ModeDrift",11:"ModeSport",12:"ModeAutoTune",13:"ModePosHold",14:"ModeBrake",15:"ModeThrow",16:"Flip",17:"ModeStabilize",18:"Disarm",19:"ToggleMode",20:"Arm-Land-RTL",21:"ToggleSimpleMode",22:"ToggleSuperSimpleMode",23:"MotorLoadTest",24:"ModeFlowHold"}},TMODE_LEFT_LONG:{Description:"This is the action taken when the left (Mode) button is long-pressed",DisplayName:"Tmode left long action",User:"Standard",Values:{0:"None",1:"TakePhoto",2:"ToggleVideo",3:"ModeAcro",4:"ModeAltHold",5:"ModeAuto",6:"ModeLoiter",7:"ModeRTL",8:"ModeCircle",9:"ModeLand",10:"ModeDrift",11:"ModeSport",12:"ModeAutoTune",13:"ModePosHold",14:"ModeBrake",15:"ModeThrow",16:"Flip",17:"ModeStabilize",18:"Disarm",19:"ToggleMode",20:"Arm-Land-RTL",21:"ToggleSimpleMode",22:"ToggleSuperSimpleMode",23:"MotorLoadTest",24:"ModeFlowHold"}},TMODE_LOAD_FILT:{Description:"This filters the load test output. A value of 1 means no filter. 2 means values are repeated once. 3 means values are repeated 3 times, etc",DisplayName:"Load test filter",Range:{high:"100",low:"0"},User:"Advanced"},TMODE_LOAD_MUL:{Description:"This scales the load test output, as a value between 0 and 1",DisplayName:"Load test multiplier",Increment:"0.01",Range:{high:"1",low:"0"},User:"Advanced"},TMODE_LOAD_TYPE:{Description:"This sets the type of load test",DisplayName:"Load test type",User:"Advanced",Values:{0:"ConstantThrust",1:"LogReplay1",2:"LogReplay2"}},TMODE_MODE1:{Description:"This is the initial mode when the vehicle is first turned on. This mode is assumed to not require GPS",DisplayName:"Tmode first mode",User:"Standard",Values:{0:"Stabilize",1:"Acro",2:"AltHold",3:"Auto",4:"Guided",5:"Loiter",6:"RTL",7:"Circle",9:"Land",11:"Drift",13:"Sport",14:"Flip",15:"AutoTune",16:"PosHold",17:"Brake",18:"Throw",19:"Avoid_ADSB",20:"Guided_NoGPS",21:"FlowHold"}},TMODE_MODE2:{Description:"This is the secondary mode. This mode is assumed to require GPS",DisplayName:"Tmode second mode",User:"Standard",Values:{0:"Stabilize",1:"Acro",2:"AltHold",3:"Auto",4:"Guided",5:"Loiter",6:"RTL",7:"Circle",9:"Land",11:"Drift",13:"Sport",14:"Flip",15:"AutoTune",16:"PosHold",17:"Brake",18:"Throw",19:"Avoid_ADSB",20:"Guided_NoGPS",21:"FlowHold"}},TMODE_RIGHT:{Description:"This is the action taken when the right (Return) button is pressed",DisplayName:"Tmode right action",User:"Standard",Values:{0:"None",1:"TakePhoto",2:"ToggleVideo",3:"ModeAcro",4:"ModeAltHold",5:"ModeAuto",6:"ModeLoiter",7:"ModeRTL",8:"ModeCircle",9:"ModeLand",10:"ModeDrift",11:"ModeSport",12:"ModeAutoTune",13:"ModePosHold",14:"ModeBrake",15:"ModeThrow",16:"Flip",17:"ModeStabilize",18:"Disarm",19:"ToggleMode",20:"Arm-Land-RTL",21:"ToggleSimpleMode",22:"ToggleSuperSimpleMode",23:"MotorLoadTest"}},TMODE_TMAX:{Description:"This sets the thrust multiplier when voltage is low",DisplayName:"Max thrust multiplier",Increment:"0.01",Range:{high:"1",low:"0"},User:"Advanced"},TMODE_TMIN:{Description:"This sets the thrust multiplier when voltage is high",DisplayName:"Min thrust multiplier",Increment:"0.01",Range:{high:"1",low:"0"},User:"Advanced"},TMODE_TRIM_AUTO:{Description:"This is the amount of automatic stick trim that can be applied when disarmed with sticks not moving. It is a PWM limit value away from 1500",DisplayName:"Stick auto trim limit",Range:{high:"100",low:"0"},User:"Standard"},TMODE_VMAX:{Description:"This is the battery voltage above which thrust min is used",DisplayName:"Max voltage for output limiting",Increment:"0.01",Range:{high:"5",low:"0"},User:"Advanced"},TMODE_VMIN:{Description:"This is the battery voltage below which no output limiting is done",DisplayName:"Min voltage for output limiting",Increment:"0.01",Range:{high:"5",low:"0"},User:"Advanced"}},QG={VISO_DELAY_MS:{Description:"Visual odometry sensor delay relative to inertial measurements",DisplayName:"Visual odometry sensor delay",Range:{high:"250",low:"0"},Units:"ms",User:"Advanced"},VISO_ORIENT:{Description:"Visual odometery camera orientation",DisplayName:"Visual odometery camera orientation",User:"Advanced",Values:{0:"Forward",2:"Right",4:"Back",6:"Left",24:"Up",25:"Down"}},VISO_POS_M_NSE:{Description:"Visual odometry position measurement noise minimum (meters). This value will be used if the sensor provides a lower noise value (or no noise value)",DisplayName:"Visual odometry position measurement noise ",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},VISO_POS_X:{Description:"X position of the camera in body frame. Positive X is forward of the origin.",DisplayName:"Visual odometry camera X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_POS_Y:{Description:"Y position of the camera in body frame. Positive Y is to the right of the origin.",DisplayName:"Visual odometry camera Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_POS_Z:{Description:"Z position of the camera in body frame. Positive Z is down from the origin.",DisplayName:"Visual odometry camera Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_SCALE:{Description:"Visual odometry scaling factor applied to position estimates from sensor",DisplayName:"Visual odometry scaling factor",User:"Advanced"},VISO_TYPE:{Description:"Visual odometry camera connection type",DisplayName:"Visual odometry camera connection type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"MAVLink",2:"IntelT265",3:"VOXL(ModalAI)"}},VISO_VEL_M_NSE:{Description:"Visual odometry velocity measurement noise in m/s",DisplayName:"Visual odometry velocity measurement noise",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},VISO_YAW_M_NSE:{Description:"Visual odometry yaw measurement noise minimum (radians), This value will be used if the sensor provides a lower noise value (or no noise value)",DisplayName:"Visual odometry yaw measurement noise",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},JG={VTX_BAND:{Description:"Video Transmitter Band",DisplayName:"Video Transmitter Band",User:"Standard",Values:{0:"Band A",1:"Band B",2:"Band E",3:"Airwave",4:"RaceBand",5:"Low RaceBand"}},VTX_CHANNEL:{Description:"Video Transmitter Channel",DisplayName:"Video Transmitter Channel",Range:{high:"7",low:"0"},User:"Standard"},VTX_ENABLE:{Description:"Toggles the Video Transmitter on and off",DisplayName:"Is the Video Transmitter enabled or not",Values:{0:"Disable",1:"Enable"}},VTX_FREQ:{Description:"Video Transmitter Frequency. The frequency is derived from the setting of BAND and CHANNEL",DisplayName:"Video Transmitter Frequency",Range:{high:"6000",low:"5000"},ReadOnly:"True",User:"Standard"},VTX_MAX_POWER:{Description:"Video Transmitter Maximum Power Level. Different VTXs support different power levels, this prevents the power aux switch from requesting too high a power level. The switch supports 6 power levels and the selected power will be a subdivision between 0 and this setting.",DisplayName:"Video Transmitter Max Power Level",Range:{high:"1000",low:"25"}},VTX_OPTIONS:{Bitmask:{0:"Pitmode",1:"Pitmode until armed",2:"Pitmode when disarmed",3:"Unlocked",4:"Add leading zero byte to requests",5:"Use 1 stop-bit in SmartAudio",6:"Ignore CRC in SmartAudio",7:"Ignore status updates in CRSF and blindly set VTX options"},Description:"Video Transmitter Options. Pitmode puts the VTX in a low power state. Unlocked enables certain restricted frequencies and power levels. Do not enable the Unlocked option unless you have appropriate permissions in your jurisdiction to transmit at high power levels. One stop-bit may be required for VTXs that erroneously mimic iNav behaviour.",DisplayName:"Video Transmitter Options",User:"Advanced"},VTX_POWER:{Description:"Video Transmitter Power Level. Different VTXs support different power levels, the power level chosen will be rounded down to the nearest supported power level",DisplayName:"Video Transmitter Power Level",Range:{high:"1000",low:"1"}}},eW={WINCH_POS_P:{Description:"Winch control position error P gain",DisplayName:"Winch control position error P gain",Range:{high:"10.0",low:"0.01"},User:"Standard"},WINCH_RATE_MAX:{Description:"Winch deploy or retract rate maximum. Set to maximum rate with no load.",DisplayName:"Winch deploy or retract rate maximum",Range:{high:"10",low:"0"},Units:"m/s",User:"Standard"},WINCH_TYPE:{Description:"Winch Type",DisplayName:"Winch Type",User:"Standard",Values:{0:"None",1:"PWM",2:"Daiwa"}}},tW={WPNAV_ACCEL:{Description:"Defines the horizontal acceleration in cm/s/s used during missions",DisplayName:"Waypoint Acceleration ",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s/s",User:"Standard"},WPNAV_ACCEL_Z:{Description:"Defines the vertical acceleration in cm/s/s used during missions",DisplayName:"Waypoint Vertical Acceleration",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s/s",User:"Standard"},WPNAV_JERK:{Description:"Defines the horizontal jerk in m/s/s used during missions",DisplayName:"Waypoint Jerk",Range:{high:"20",low:"1"},Units:"m/s/s/s",User:"Standard"},WPNAV_RADIUS:{Description:"Defines the distance from a waypoint, that when crossed indicates the wp has been hit.",DisplayName:"Waypoint Radius",Increment:"1",Range:{high:"1000",low:"5"},Units:"cm",User:"Standard"},WPNAV_RFND_USE:{Description:"This controls if waypoint missions use rangefinder for terrain following",DisplayName:"Waypoint missions use rangefinder for terrain following",User:"Advanced",Values:{0:"Disable",1:"Enable"}},WPNAV_SPEED:{Description:"Defines the speed in cm/s which the aircraft will attempt to maintain horizontally during a WP mission",DisplayName:"Waypoint Horizontal Speed Target",Increment:"50",Range:{high:"2000",low:"20"},Units:"cm/s",User:"Standard"},WPNAV_SPEED_DN:{Description:"Defines the speed in cm/s which the aircraft will attempt to maintain while descending during a WP mission",DisplayName:"Waypoint Descent Speed Target",Increment:"10",Range:{high:"500",low:"10"},Units:"cm/s",User:"Standard"},WPNAV_SPEED_UP:{Description:"Defines the speed in cm/s which the aircraft will attempt to maintain while climbing during a WP mission",DisplayName:"Waypoint Climb Speed Target",Increment:"50",Range:{high:"1000",low:"10"},Units:"cm/s",User:"Standard"},WPNAV_TER_MARGIN:{Description:"Waypoint Terrain following altitude margin. Vehicle will stop if distance from target altitude is larger than this margin (in meters)",DisplayName:"Waypoint Terrain following altitude margin",Range:{high:"100",low:"0.1"},Units:"m",User:"Advanced"}},iW={ZIGZ_AUTO_ENABLE:{Description:"Allows you to enable (1) or disable (0) ZigZag auto feature",DisplayName:"ZigZag auto enable/disable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},ZIGZ_DIRECTION:{Description:"The direction to move sideways in ZigZag mode",DisplayName:"Sideways direction in ZigZag auto",User:"Advanced",Values:{0:"forward",1:"right",2:"backward",3:"left"}},ZIGZ_LINE_NUM:{Description:"Total number of lines for ZigZag auto if 1 or more. -1: Infinity, 0: Just moving to sideways",DisplayName:"Total number of lines",Range:{high:"32767",low:"-1"},User:"Advanced"},ZIGZ_SIDE_DIST:{Description:"The distance to move sideways in ZigZag mode",DisplayName:"Sideways distance in ZigZag auto",Range:{high:"100",low:"0.1"},Units:"m",User:"Advanced"},ZIGZ_SPRAYER:{Description:"Enable the auto sprayer in ZigZag mode. SPRAY_ENABLE = 1 and SERVOx_FUNCTION = 22(SprayerPump) / 23(SprayerSpinner) also must be set. This makes the sprayer on while moving to destination A or B. The sprayer will stop if the vehicle reaches destination or the flight mode is changed from ZigZag to other.",DisplayName:"Auto sprayer in ZigZag",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},ZIGZ_WP_DELAY:{Description:"Waiting time after reached the destination",DisplayName:"The delay for zigzag waypoint",Range:{high:"127",low:"0"},Units:"s",User:"Advanced"}},aW={version:0},aB1={ADSB_:$k,AFS_:qk,AHRS_:Kk,AIS_:jk,ARMING_:Qk,AROT_:Jk,ARSPD:eB,ATC_:tB,AUTOTUNE_:iB,AVD_:aB,AVOID_:rB,BARO:nB,BARO1_WCF_:oB,BARO2_WCF_:sB,BARO3_WCF_:lB,BATT2_:cB,BATT3_:dB,BATT4_:CB,BATT5_:mB,BATT6_:uB,BATT7_:hB,BATT8_:pB,BATT9_:fB,BATT_:VB,BCN:LB,BRD_:HB,BRD_RADIO:MB,BRD_RTC:gB,BTN_:AB,CAM_:vB,CAM_RC_:_B,CAN_:SB,CAN_D1_:DB,CAN_D1_KDE_:yB,CAN_D1_PC_:RB,CAN_D1_TST_:bB,CAN_D1_UC_:NB,CAN_D2_:wB,CAN_D2_KDE_:TB,CAN_D2_PC_:EB,CAN_D2_TST_:PB,CAN_D2_UC_:IB,CAN_D3_:OB,CAN_D3_KDE_:UB,CAN_D3_PC_:xB,CAN_D3_TST_:FB,CAN_D3_UC_:kB,CAN_P1_:BB,CAN_P2_:zB,CAN_P3_:ZB,CAN_SLCAN_:GB,CC:WB,CHUTE_:XB,CIRCLE_:YB,COMPASS_:$B,COMPASS_PMOT:qB,CUST_ROT:KB,CUST_ROT1_:jB,CUST_ROT2_:QB,Copter:JB,DID_:ez,EAHRS:tz,EFI:iz,EK2_:az,EK3_:rz,EK3_SRC:nz,ESC_TLM:oz,FENCE_:sz,FFT_:lz,FHLD:cz,FLOW:dz,FOLL:Cz,FRSKY_:mz,GEN_:uz,GPS:hz,GPS_MB1_:pz,GPS_MB2_:fz,GRIP_:Vz,H_:Lz,H_RSC_:Hz,IM_:Mz,INS_:gz,INS_HNTC2_:Az,INS_HNTCH_:vz,INS_LOG_:_z,INS_TCAL1_:Sz,INS_TCAL2_:Dz,INS_TCAL3_:yz,LGR_:Rz,LOG:bz,LOIT_:Nz,MIS_:wz,MNT1:Tz,MNT2:Ez,MOT_:Pz,MSP:Iz,NTF_:Oz,OA_:Uz,OA_BR_:xz,OA_DB_:Fz,OSD:kz,OSD1_:Bz,OSD2_:zz,OSD3_:Zz,OSD4_:Gz,OSD5_:Wz,OSD5_PARAM1:Xz,OSD5_PARAM2:Yz,OSD5_PARAM3:$z,OSD5_PARAM4:qz,OSD5_PARAM5:Kz,OSD5_PARAM6:jz,OSD5_PARAM7:Qz,OSD5_PARAM8:Jz,OSD5_PARAM9:eZ,OSD6_:tZ,OSD6_PARAM1:iZ,OSD6_PARAM2:aZ,OSD6_PARAM3:rZ,OSD6_PARAM4:nZ,OSD6_PARAM5:oZ,OSD6_PARAM6:sZ,OSD6_PARAM7:lZ,OSD6_PARAM8:cZ,OSD6_PARAM9:dZ,PLND_:CZ,PRX:mZ,PRX1:uZ,PRX2:hZ,PRX3:pZ,PRX4:fZ,PSC:VZ,RALLY_:LZ,RC:HZ,RC10_:MZ,RC11_:gZ,RC12_:AZ,RC13_:vZ,RC14_:_Z,RC15_:SZ,RC16_:DZ,RC1_:yZ,RC2_:RZ,RC3_:bZ,RC4_:NZ,RC5_:wZ,RC6_:TZ,RC7_:EZ,RC8_:PZ,RC9_:IZ,RCMAP_:OZ,RELAY_:UZ,RNGFND1_:xZ,RNGFND2_:FZ,RNGFND3_:kZ,RNGFND4_:BZ,RNGFND5_:zZ,RNGFND6_:ZZ,RNGFND7_:GZ,RNGFND8_:WZ,RNGFND9_:XZ,RNGFNDA_:YZ,RPM1_:$Z,RPM2_:qZ,RSSI_:KZ,SCHED_:jZ,SCR_:QZ,SERIAL:JZ,SERVO:eG,SERVO10_:tG,SERVO11_:iG,SERVO12_:aG,SERVO13_:rG,SERVO14_:nG,SERVO15_:oG,SERVO16_:sG,SERVO17_:lG,SERVO18_:cG,SERVO19_:dG,SERVO1_:CG,SERVO20_:mG,SERVO21_:uG,SERVO22_:hG,SERVO23_:pG,SERVO24_:fG,SERVO25_:VG,SERVO26_:LG,SERVO27_:HG,SERVO28_:MG,SERVO29_:gG,SERVO2_:AG,SERVO30_:vG,SERVO31_:_G,SERVO32_:SG,SERVO3_:DG,SERVO4_:yG,SERVO5_:RG,SERVO6_:bG,SERVO7_:NG,SERVO8_:wG,SERVO9_:TG,SERVO_BLH_:EG,SERVO_FTW_:PG,SERVO_ROB_:IG,SERVO_SBUS_:OG,SERVO_VOLZ_:UG,SID:xG,SPRAY_:FG,SR0_:kG,SR1_:BG,SR2_:zG,SR3_:ZG,SR4_:GG,SR5_:WG,SR6_:XG,SRTL_:YG,STAT:$G,TCAL:qG,TERRAIN_:KG,TMODE:jG,VISO:QG,VTX_:JG,WINCH:eW,WPNAV_:tW,ZIGZ_:iW,json:aW},rB1=Object.freeze(Object.defineProperty({__proto__:null,ADSB_:$k,AFS_:qk,AHRS_:Kk,AIS_:jk,ARMING_:Qk,AROT_:Jk,ARSPD:eB,ATC_:tB,AUTOTUNE_:iB,AVD_:aB,AVOID_:rB,BARO:nB,BARO1_WCF_:oB,BARO2_WCF_:sB,BARO3_WCF_:lB,BATT2_:cB,BATT3_:dB,BATT4_:CB,BATT5_:mB,BATT6_:uB,BATT7_:hB,BATT8_:pB,BATT9_:fB,BATT_:VB,BCN:LB,BRD_:HB,BRD_RADIO:MB,BRD_RTC:gB,BTN_:AB,CAM_:vB,CAM_RC_:_B,CAN_:SB,CAN_D1_:DB,CAN_D1_KDE_:yB,CAN_D1_PC_:RB,CAN_D1_TST_:bB,CAN_D1_UC_:NB,CAN_D2_:wB,CAN_D2_KDE_:TB,CAN_D2_PC_:EB,CAN_D2_TST_:PB,CAN_D2_UC_:IB,CAN_D3_:OB,CAN_D3_KDE_:UB,CAN_D3_PC_:xB,CAN_D3_TST_:FB,CAN_D3_UC_:kB,CAN_P1_:BB,CAN_P2_:zB,CAN_P3_:ZB,CAN_SLCAN_:GB,CC:WB,CHUTE_:XB,CIRCLE_:YB,COMPASS_:$B,COMPASS_PMOT:qB,CUST_ROT:KB,CUST_ROT1_:jB,CUST_ROT2_:QB,Copter:JB,DID_:ez,EAHRS:tz,EFI:iz,EK2_:az,EK3_:rz,EK3_SRC:nz,ESC_TLM:oz,FENCE_:sz,FFT_:lz,FHLD:cz,FLOW:dz,FOLL:Cz,FRSKY_:mz,GEN_:uz,GPS:hz,GPS_MB1_:pz,GPS_MB2_:fz,GRIP_:Vz,H_:Lz,H_RSC_:Hz,IM_:Mz,INS_:gz,INS_HNTC2_:Az,INS_HNTCH_:vz,INS_LOG_:_z,INS_TCAL1_:Sz,INS_TCAL2_:Dz,INS_TCAL3_:yz,LGR_:Rz,LOG:bz,LOIT_:Nz,MIS_:wz,MNT1:Tz,MNT2:Ez,MOT_:Pz,MSP:Iz,NTF_:Oz,OA_:Uz,OA_BR_:xz,OA_DB_:Fz,OSD:kz,OSD1_:Bz,OSD2_:zz,OSD3_:Zz,OSD4_:Gz,OSD5_:Wz,OSD5_PARAM1:Xz,OSD5_PARAM2:Yz,OSD5_PARAM3:$z,OSD5_PARAM4:qz,OSD5_PARAM5:Kz,OSD5_PARAM6:jz,OSD5_PARAM7:Qz,OSD5_PARAM8:Jz,OSD5_PARAM9:eZ,OSD6_:tZ,OSD6_PARAM1:iZ,OSD6_PARAM2:aZ,OSD6_PARAM3:rZ,OSD6_PARAM4:nZ,OSD6_PARAM5:oZ,OSD6_PARAM6:sZ,OSD6_PARAM7:lZ,OSD6_PARAM8:cZ,OSD6_PARAM9:dZ,PLND_:CZ,PRX:mZ,PRX1:uZ,PRX2:hZ,PRX3:pZ,PRX4:fZ,PSC:VZ,RALLY_:LZ,RC:HZ,RC10_:MZ,RC11_:gZ,RC12_:AZ,RC13_:vZ,RC14_:_Z,RC15_:SZ,RC16_:DZ,RC1_:yZ,RC2_:RZ,RC3_:bZ,RC4_:NZ,RC5_:wZ,RC6_:TZ,RC7_:EZ,RC8_:PZ,RC9_:IZ,RCMAP_:OZ,RELAY_:UZ,RNGFND1_:xZ,RNGFND2_:FZ,RNGFND3_:kZ,RNGFND4_:BZ,RNGFND5_:zZ,RNGFND6_:ZZ,RNGFND7_:GZ,RNGFND8_:WZ,RNGFND9_:XZ,RNGFNDA_:YZ,RPM1_:$Z,RPM2_:qZ,RSSI_:KZ,SCHED_:jZ,SCR_:QZ,SERIAL:JZ,SERVO:eG,SERVO10_:tG,SERVO11_:iG,SERVO12_:aG,SERVO13_:rG,SERVO14_:nG,SERVO15_:oG,SERVO16_:sG,SERVO17_:lG,SERVO18_:cG,SERVO19_:dG,SERVO1_:CG,SERVO20_:mG,SERVO21_:uG,SERVO22_:hG,SERVO23_:pG,SERVO24_:fG,SERVO25_:VG,SERVO26_:LG,SERVO27_:HG,SERVO28_:MG,SERVO29_:gG,SERVO2_:AG,SERVO30_:vG,SERVO31_:_G,SERVO32_:SG,SERVO3_:DG,SERVO4_:yG,SERVO5_:RG,SERVO6_:bG,SERVO7_:NG,SERVO8_:wG,SERVO9_:TG,SERVO_BLH_:EG,SERVO_FTW_:PG,SERVO_ROB_:IG,SERVO_SBUS_:OG,SERVO_VOLZ_:UG,SID:xG,SPRAY_:FG,SR0_:kG,SR1_:BG,SR2_:zG,SR3_:ZG,SR4_:GG,SR5_:WG,SR6_:XG,SRTL_:YG,STAT:$G,TCAL:qG,TERRAIN_:KG,TMODE:jG,VISO:QG,VTX_:JG,WINCH:eW,WPNAV_:tW,ZIGZ_:iW,json:aW,default:aB1},Symbol.toStringTag,{value:"Module"}));var cs=(e=>(e.PASS_BY="Pass by",e))(cs||{}),Tt=(e=>(e.ABSOLUTE_RELATIVE_TO_MSL="Absolute (relative to mean sea level)",e.RELATIVE_TO_HOME="Relative to home",e.RELATIVE_TO_TERRAIN="Relative to terrain",e))(Tt||{});const nB1=e=>{const t=["version","settings","waypoints"],i=["mapCenter","zoom","currentWaypointType","currentWaypointAltitude","currentWaypointAltitudeRefType","defaultCruiseSpeed"];return t.every(r=>e[r]!==void 0)&&i.every(r=>e.settings[r]!==void 0)},n_=async()=>{},rW=[[sn.MAV_FRAME_GLOBAL_INT,Tt.ABSOLUTE_RELATIVE_TO_MSL],[sn.MAV_FRAME_GLOBAL_RELATIVE_ALT_INT,Tt.RELATIVE_TO_HOME],[sn.MAV_FRAME_GLOBAL_TERRAIN_ALT_INT,Tt.RELATIVE_TO_TERRAIN]],oB1=e=>{const t=rW.find(i=>i[1]===e);return t===void 0?void 0:t[0]},sB1=e=>{const t=rW.find(i=>i[0]===e);return t===void 0?void 0:t[1]},lB1=(e,t)=>e.map((i,a)=>({target_system:t,target_component:1,type:se.MISSION_ITEM_INT,seq:a,frame:{type:oB1(i.altitudeReferenceType)||sn.MAV_FRAME_GLOBAL_RELATIVE_ALT_INT},command:{type:Fr.MAV_CMD_NAV_WAYPOINT},current:0,autocontinue:1,param1:0,param2:5,param3:0,param4:999,x:Ee(i.coordinates[0]*Math.pow(10,7)),y:Ee(i.coordinates[1]*Math.pow(10,7)),z:i.altitude,mission_type:{type:Cd.MAV_MISSION_TYPE_MISSION}})),cB1=e=>e.map(t=>({id:pt(),coordinates:[t.x/Math.pow(10,7),t.y/Math.pow(10,7)],altitude:t.z,altitudeReferenceType:sB1(t.frame.type)||Tt.RELATIVE_TO_HOME,type:cs.PASS_BY})),dB1={[ia.MAV_SEVERITY_EMERGENCY]:_e.Critical,[ia.MAV_SEVERITY_ALERT]:_e.Critical,[ia.MAV_SEVERITY_CRITICAL]:_e.Critical,[ia.MAV_SEVERITY_ERROR]:_e.Error,[ia.MAV_SEVERITY_WARNING]:_e.Warning,[ia.MAV_SEVERITY_NOTICE]:_e.Warning,[ia.MAV_SEVERITY_INFO]:_e.Info,[ia.MAV_SEVERITY_DEBUG]:_e.Info};class jC extends iB1{constructor(i,a){super(M4.ArduPilot,i);S1(this,"_altitude",new Wk1({msl:0,rel:0}));S1(this,"_attitude",new Gk1({roll:0,pitch:0,yaw:0}));S1(this,"_communicationDropRate",0);S1(this,"_communicationErrors",0);S1(this,"_coordinates",new Yk({precision:0,altitude:0,latitude:0,longitude:0}));S1(this,"_velocity",new $k1({x:0,y:0,z:0,ground:0,overall:0}));S1(this,"_cpuLoad",0);S1(this,"_isArmed",!1);S1(this,"_powerSupply",new Xk1);S1(this,"_lastParameter",new Yk1);S1(this,"_totalParametersCount");S1(this,"_currentCockpitMissionItemsOnPlanning",[]);S1(this,"_currentMavlinkMissionItemsOnVehicle",[]);S1(this,"_statusText",new qk1);S1(this,"_statusGPS",new Kk1);S1(this,"_vehicleSpecificErrors",[0,0,0,0]);S1(this,"_metadata");S1(this,"_messages",new Map);S1(this,"onMAVLinkMessage",new Sk1);S1(this,"_flying",!1);S1(this,"currentSystemId",1);this.currentSystemId=a}onMAVLinkPackage(i){}sendCommandLong(i,a,r,n,o,s,l,d){const C={type:se.COMMAND_LONG,param1:a!=null?a:0,param2:r!=null?r:0,param3:n!=null?n:0,param4:o!=null?o:0,param5:s!=null?s:0,param6:l!=null?l:0,param7:d!=null?d:0,command:{type:i},target_system:this.currentSystemId,target_component:1,confirmation:0};this.write(C)}write(i){const a={header:{system_id:255,component_id:Number(Fk.MAV_COMP_ID_UDP_BRIDGE),sequence:0},message:i},r=new TextEncoder;Pt.write(r.encode(JSON.stringify(a)))}onMessage(i){const a=new TextDecoder;let r;const n=a.decode(i);try{r=JSON.parse(n)}catch{if(/Ok\((\d+)\)/.exec(n))return;console.error(`Failed to parse mavlink message: ${n}`);return}const{system_id:o,component_id:s}=r.header;if(o!==this.currentSystemId||s!==1)return;this._messages.set(r.message.type,{...r.message,epoch:new Date().getTime()});const l=["cam_idx","camera_id","compass_id","gcs_system_id","gimbal_device_id","gps_id","hw_unique_id","id","idx","rtk_receiver_id","sensor_id","storage_id","stream_id","uas_id"],d=(C,m,u)=>{Object.entries(C).forEach(([p,V])=>{if(V instanceof Object){let f;Object.keys(V).forEach(M=>{l.includes(M)&&(f=M)}),f===void 0?d(V,m,p):d(V,m,`${p}.ID${V[f]}`)}else u===void 0?m[p]=V:m[`${u}.${p}`]=V})};switch(d(Object.fromEntries(this._messages),this._genericVariables),this.onMAVLinkMessage.emit_value(r.message.type,r),r.message.type){case se.AHRS2:{const C=r.message;this._altitude.msl=C.altitude,this.onAltitude.emit();break}case se.ATTITUDE:{const C=r.message;this._attitude.roll=C.roll,this._attitude.pitch=C.pitch,this._attitude.yaw=C.yaw,this.onAttitude.emit();break}case se.GLOBAL_POSITION_INT:{const C=r.message;this._coordinates.precision=1,this._coordinates.altitude=C.alt/1e3,this._coordinates.latitude=C.lat/1e7,this._coordinates.longitude=C.lon/1e7,this.onPosition.emit(),this._velocity.x=C.vx/100,this._velocity.y=C.vy/100,this._velocity.z=C.vz/100,this._velocity.ground=Math.sqrt(this._velocity.x**2+this._velocity.y**2),this._velocity.overall=Math.sqrt(this._velocity.x**2+this._velocity.y**2+this._velocity.z**2),this.onVelocity.emit(),this._altitude.rel=C.relative_alt/1e3,this.onAltitude.emit();break}case se.GPS_RAW_INT:{const C=r.message;this._statusGPS.visibleSatellites=C.satellites_visible,this._statusGPS.HDOP=Ee(C.eph/100),this._statusGPS.VDOP=Ee(C.epv/100);const m={[o3.GPS_FIX_TYPE_NO_GPS]:s3.NO_GPS,[o3.GPS_FIX_TYPE_NO_FIX]:s3.NO_FIX,[o3.GPS_FIX_TYPE_2D_FIX]:s3.FIX_2D,[o3.GPS_FIX_TYPE_3D_FIX]:s3.FIX_3D,[o3.GPS_FIX_TYPE_DGPS]:s3.DGPS,[o3.GPS_FIX_TYPE_RTK_FLOAT]:s3.RTK_FLOAT,[o3.GPS_FIX_TYPE_RTK_FIXED]:s3.RTK_FIXED,[o3.GPS_FIX_TYPE_STATIC]:s3.STATIC,[o3.GPS_FIX_TYPE_PPP]:s3.PPP};this._statusGPS.fixType=m[C.fix_type.type],this.onStatusGPS.emit();break}case se.HEARTBEAT:{const C=r.message;this._isArmed=Boolean(C.base_mode.bits&_n.MAV_MODE_FLAG_SAFETY_ARMED),this.onArm.emit(),this._flying=C.system_status.type===Xp.MAV_STATE_ACTIVE,this.onTakeoff.emit();break}case se.SYS_STATUS:{const C=r.message;this._cpuLoad=C.load/10,this.onCpuLoad.emit(),this._powerSupply.voltage=C.voltage_battery/1e3,this._powerSupply.current=C.current_battery===-1?void 0:C.current_battery/100,this._powerSupply.remaining=C.battery_remaining===-1?void 0:C.battery_remaining,this.onPowerSupply.emit(),this._communicationDropRate=C.drop_rate_comm,this._communicationErrors=C.errors_comm,this._vehicleSpecificErrors=[C._errors_count1,C._errors_count2,C._errors_count3,C._errors_count4];break}case se.PARAM_VALUE:{const C=r.message,m=C.param_id.join("").replace(/\0/g,""),{param_value:u,param_count:p}=C,V=Math.round(u*1e4)/1e4;this._lastParameter={name:m,value:V},this._totalParametersCount=Number(p),this.onParameter.emit();break}case se.STATUSTEXT:{const C=r.message;this._statusText.text=C.text.filter(m=>m.toString()!=="\0").join(""),this._statusText.severity=dB1[C.severity.type],this.onStatusText.emit();break}case se.NAMED_VALUE_FLOAT:{const C=r.message,m=C.name.join("").replaceAll("\0","");this._genericVariables[m]=C.value,this.onGenericVariables.emit();break}case se.NAMED_VALUE_INT:{const C=r.message,m=C.name.join("").replaceAll("\0","");this._genericVariables[m]=C.value,this.onGenericVariables.emit();break}}this.onMAVLinkPackage(r)}_arm(i,a){this.sendCommandLong(Fr.MAV_CMD_COMPONENT_ARM_DISARM,i?1:0,a?21196:0)}arm(){return this._arm(!0),!0}_changeAltitude(i){const a={time_boot_ms:0,type:se.SET_POSITION_TARGET_LOCAL_NED,target_system:1,target_component:1,coordinate_frame:{type:sn.MAV_FRAME_LOCAL_OFFSET_NED},type_mask:{bits:4088},x:0,y:0,z:i,vx:0,vy:0,vz:0,afx:0,afy:0,afz:0,yaw:0,yaw_rate:0};this.write(a)}changeAltitude(i){this._changeAltitude(i)}_takeoff(i){this.sendCommandLong(Fr.MAV_CMD_NAV_TAKEOFF,0,0,0,0,0,0,i)}takeoff(i){const a=this.modesAvailable().get("GUIDED");a!==void 0&&(this.setMode(a),this.arm(),this._takeoff(i),this.onTakeoff.emit())}land(){const i=this.modesAvailable().get("LAND");i!==void 0&&this.setMode(i)}goTo(i,a,r,n,o){const s={type:se.COMMAND_INT,target_system:this.currentSystemId,target_component:1,seq:0,frame:{type:sn.MAV_FRAME_GLOBAL},command:{type:Fr.MAV_CMD_DO_REPOSITION},current:0,autocontinue:0,param1:i,param2:a,param3:r,param4:n,x:Math.round(o.latitude*1e7),y:Math.round(o.longitude*1e7),z:o.altitude};this.write(s)}altitude(){return this._altitude}attitude(){return this._attitude}batteries(){return[new jk1({cells:[0,0,0,0,0,0],voltage:0})]}configurationPages(){return[]}cpuLoad(){return this._cpuLoad}disarm(){return this._arm(!1),!0}isArmed(){return this._isArmed}flying(){return this._flying}metadata(){return this._metadata}position(){return this._coordinates}velocity(){return this._velocity}powerSupply(){return this._powerSupply}lastParameter(){return this._lastParameter}totalParametersCount(){return this._totalParametersCount}statusText(){return this._statusText}statusGPS(){return this._statusGPS}sendManualControl(i){const a=i,r={type:se.MANUAL_CONTROL,x:a.x,y:a.y,z:a.z,r:a.r,s:a.s,t:a.t,buttons:a.buttons,buttons2:a.buttons2,target:this.currentSystemId};this.write(r)}sendGcsHeartbeat(){const i={type:se.HEARTBEAT,custom_mode:0,mavtype:{type:I5.MAV_TYPE_GCS},autopilot:{type:dd.MAV_AUTOPILOT_INVALID},base_mode:{bits:192},system_status:{type:Xp.MAV_STATE_ACTIVE},mavlink_version:1};this.write(i)}setMode(i){this.sendCommandLong(Fr.MAV_CMD_DO_SET_MODE,_n.MAV_MODE_FLAG_CUSTOM_MODE_ENABLED,Number(i))}requestParametersList(){const i={type:se.PARAM_REQUEST_LIST,target_system:0,target_component:0};this.write(i)}setParameter(i){var n;const a=[...i.id];for(;a.length<16;)a.push("\0");const r={type:se.PARAM_SET,target_system:this.currentSystemId,target_component:0,param_id:a,param_value:i.value,param_type:(n=i.type)!=null?n:{type:kk.MAV_PARAM_TYPE_UINT8}};this.write(r)}sendMissionCount(i,a){const r={type:se.MISSION_COUNT,target_system:this.currentSystemId,target_component:1,count:i,mission_type:{type:a}};this.write(r)}requestMissionItemsList(i){const a={type:se.MISSION_REQUEST_LIST,target_system:this.currentSystemId,target_component:1,mission_type:{type:i}};this.write(a)}requestMissionItem(i,a){const r={type:se.MISSION_REQUEST_INT,target_system:0,target_component:0,seq:i,mission_type:{type:a}};this.write(r)}sendMissionAck(i,a){const r={type:se.MISSION_ACK,target_system:0,target_component:0,mavtype:{type:i?jl.MAV_MISSION_ACCEPTED:jl.MAV_MISSION_DENIED},mission_type:{type:a}};this.write(r)}sendMissionItem(i,a,r,n,o,s,l,d,C,m,u,p,V){const f={type:se.MISSION_ITEM,target_system:this.currentSystemId,target_component:1,seq:i,frame:{type:a},command:{type:r},current:n?1:0,autocontinue:o?1:0,param1:s,param2:l,param3:d,param4:C,x:m,y:u,z:p,mission_type:{type:V}};this.write(f)}async fetchMission(i=n_){const a=Cd.MAV_MISSION_TYPE_MISSION,r=new Date().getTime();let n=!1,o;for(this.requestMissionItemsList(a);o===void 0&&!n;){const u=this._messages.get(se.MISSION_COUNT);if(u!==void 0&&u.epoch>r){o=u.count;break}await new Promise(p=>setTimeout(p,100)),n=new Date().getTime()-r>1e4}if(o===void 0)throw Error("Did not receive number of mission items from vehicle.");const s=[];let l=!1,d=0;const C=new Date().getTime();let m=!1;for(;!l&&!m;){await new Promise(p=>setTimeout(p,100)),m=new Date().getTime()-C>1e4,i(100*d/o),this.requestMissionItem(d,a);const u=this._messages.get(se.MISSION_ITEM_INT);if(!(u===void 0||u.epochsetTimeout(o,100));if(this.mode()!==a)throw Error(`Could not put vehicle in ${i} mode. Please do it manually.`);const n=new Date().getTime();for(;!this.isArmed()&&new Date().getTime()-n<5e3;)this.arm(),await new Promise(o=>setTimeout(o,100));if(!this.isArmed)throw Error("Could not arm the vehicle. Please arm it manually.");this.sendCommandLong(Fr.MAV_CMD_MISSION_START,0,0)}async uploadMission(i,a=n_){this._currentCockpitMissionItemsOnPlanning=i;const r=lB1(i,this.currentSystemId),n=Cd.MAV_MISSION_TYPE_MISSION;this.sendMissionCount(r.length,n);let o;const s=new Date().getTime();let l=!1,d=-1,C=-1;for(;o===void 0&&!l;){await new Promise(H=>setTimeout(H,10)),l=new Date().getTime()-s>1e4;const m=this._messages.get(se.MISSION_REQUEST)||this._messages.get(se.MISSION_REQUEST_INT);if(m===void 0)continue;const u=m.epochs&&(o=f.mavtype.type),a(100*m.seq/r.length)}if(o===void 0)throw Error("Did not receive acknowledgment of mission upload.");if(o!==jl.MAV_MISSION_ACCEPTED)throw Error(`Failed uploading mission. Result received: ${o}.`);a(100),console.debug("Successfully sent all mission items.")}}var nW=(e=>(e[e.PRE_FLIGHT=-1]="PRE_FLIGHT",e[e.STABILIZE=0]="STABILIZE",e[e.ACRO=1]="ACRO",e[e.ALT_HOLD=2]="ALT_HOLD",e[e.AUTO=3]="AUTO",e[e.GUIDED=4]="GUIDED",e[e.LOITER=5]="LOITER",e[e.RTL=6]="RTL",e[e.CIRCLE=7]="CIRCLE",e[e.LAND=9]="LAND",e[e.DRIFT=11]="DRIFT",e[e.SPORT=13]="SPORT",e[e.FLIP=14]="FLIP",e[e.AUTOTUNE=15]="AUTOTUNE",e[e.POSHOLD=16]="POSHOLD",e[e.BRAKE=17]="BRAKE",e[e.THROW=18]="THROW",e[e.AVOID_ADSB=19]="AVOID_ADSB",e[e.GUIDED_NOGPS=20]="GUIDED_NOGPS",e[e.SMART_RTL=21]="SMART_RTL",e[e.FLOWHOLD=22]="FLOWHOLD",e[e.FOLLOW=23]="FOLLOW",e[e.ZIGZAG=24]="ZIGZAG",e[e.SYSTEMID=25]="SYSTEMID",e[e.AUTOROTATE=26]="AUTOROTATE",e[e.AUTO_RTL=27]="AUTO_RTL",e[e.TURTLE=28]="TURTLE",e))(nW||{});class CB1 extends jC{constructor(i){super(a0.Copter,i);S1(this,"_mode",-1);S1(this,"_metadata",rB1)}mode(){return this._mode}modesAvailable(){const i=new Map;return Object.entries(nW).filter(([a])=>isNaN(Number(a))).forEach(([a,r])=>{i.set(a,r)}),i}onMAVLinkPackage(i){switch(i.message.type){case se.HEARTBEAT:{const a=i.message;if(a.base_mode.bits===0){this._mode=-1,this.onMode.emit();return}if(!(a.base_mode.bits&_n.MAV_MODE_FLAG_CUSTOM_MODE_ENABLED)){console.log(`no custom: ${JSON.stringify(a.base_mode)}`);return}this._mode=a.custom_mode,this.onMode.emit()}}}}const oW={ADSB_EMIT_TYPE:{Description:"ADSB classification for the type of vehicle emitting the transponder signal. Default value is 14 (UAV).",DisplayName:"Emitter type",User:"Advanced",Values:{0:"NoInfo",1:"Light",2:"Small",3:"Large",4:"HighVortexlarge",5:"Heavy",6:"HighlyManuv",7:"Rotocraft",8:"RESERVED",9:"Glider",10:"LightAir",11:"Parachute",12:"UltraLight",13:"RESERVED",14:"UAV",15:"Space",16:"RESERVED",17:"EmergencySurface",18:"ServiceSurface",19:"PointObstacle"}},ADSB_ICAO_ID:{Description:"ICAO_ID unique vehicle identification number of this aircraft. This is an integer limited to 24bits. If set to 0 then one will be randomly generated. If set to -1 then static information is not sent, transceiver is assumed pre-programmed.",DisplayName:"ICAO_ID vehicle identification number",Range:{high:"16777215",low:"-1"},User:"Advanced"},ADSB_ICAO_SPECL:{Description:"ICAO_ID of special vehicle that ignores ADSB_LIST_RADIUS and ADSB_LIST_ALT. The vehicle is always tracked. Use 0 to disable.",DisplayName:"ICAO_ID of special vehicle",User:"Advanced"},ADSB_LEN_WIDTH:{Description:"Aircraft length and width dimension options in Length and Width in meters. In most cases, use a value of 1 for smallest size.",DisplayName:"Aircraft length and width",User:"Advanced",Values:{0:"NO_DATA",1:"L15W23",2:"L25W28P5",3:"L25W34",4:"L35W33",5:"L35W38",6:"L45W39P5",7:"L45W45",8:"L55W45",9:"L55W52",10:"L65W59P5",11:"L65W67",12:"L75W72P5",13:"L75W80",14:"L85W80",15:"L85W90"}},ADSB_LIST_ALT:{Description:"ADSB vehicle list altitude filter. Vehicles detected above this altitude will be completely ignored. They will not show up in the SRx_ADSB stream to the GCS and will not be considered in any avoidance calculations. A value of 0 will disable this filter.",DisplayName:"ADSB vehicle list altitude filter",Range:{high:"32767",low:"0"},Units:"m",User:"Advanced"},ADSB_LIST_MAX:{Description:"ADSB list size of nearest vehicles. Longer lists take longer to refresh with lower SRx_ADSB values.",DisplayName:"ADSB vehicle list size",Range:{high:"100",low:"1"},RebootRequired:"True",User:"Advanced"},ADSB_LIST_RADIUS:{Description:"ADSB vehicle list radius filter. Vehicles detected outside this radius will be completely ignored. They will not show up in the SRx_ADSB stream to the GCS and will not be considered in any avoidance calculations. A value of 0 will disable this filter.",DisplayName:"ADSB vehicle list radius filter",Range:{high:"100000",low:"0"},Units:"m",User:"Advanced"},ADSB_LOG:{Description:"0: no logging, 1: log only special ID, 2:log all",DisplayName:"ADS-B logging",User:"Advanced",Values:{0:"no logging",1:"log only special ID",2:"log all"}},ADSB_OFFSET_LAT:{Description:"GPS antenna lateral offset. This describes the physical location offest from center of the GPS antenna on the aircraft.",DisplayName:"GPS antenna lateral offset",User:"Advanced",Values:{0:"NoData",1:"Left2m",2:"Left4m",3:"Left6m",4:"Center",5:"Right2m",6:"Right4m",7:"Right6m"}},ADSB_OFFSET_LON:{Description:"GPS antenna longitudinal offset. This is usually set to 1, Applied By Sensor",DisplayName:"GPS antenna longitudinal offset",User:"Advanced",Values:{0:"NO_DATA",1:"AppliedBySensor"}},ADSB_OPTIONS:{Bitmask:{0:"Ping200X Send GPS",1:"Squawk 7400 on RC failsafe",2:"Squawk 7400 on GCS failsafe",3:"Sagetech MXS use External Config"},Description:"Options for emergency failsafe codes and device capabilities",DisplayName:"ADS-B Options",User:"Advanced"},ADSB_RF_CAPABLE:{Bitmask:{0:"UAT_in",1:"1090ES_in",2:"UAT_out",3:"1090ES_out"},Description:"Describes your hardware RF In/Out capabilities.",DisplayName:"RF capabilities",User:"Advanced"},ADSB_RF_SELECT:{Bitmask:{0:"Rx",1:"Tx"},Description:"Transceiver RF selection for Rx enable and/or Tx enable. This only effects devices that can Tx and/or Rx. Rx-only devices should override this to always be Rx-only.",DisplayName:"Transceiver RF selection",User:"Advanced"},ADSB_SQUAWK:{Description:"VFR squawk (Mode 3/A) code is a pre-programmed default code when the pilot is flying VFR and not in contact with ATC. In the USA, the VFR squawk code is octal 1200 (hex 0x280, decimal 640) and in most parts of Europe the VFR squawk code is octal 7000. If an invalid octal number is set then it will be reset to 1200.",DisplayName:"Squawk code",Range:{high:"7777",low:"0"},Units:"octal",User:"Advanced"},ADSB_TYPE:{Description:"Type of ADS-B hardware for ADSB-in and ADSB-out configuration and operation. If any type is selected then MAVLink based ADSB-in messages will always be enabled",DisplayName:"ADSB Type",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"uAvionix-MAVLink",2:"Sagetech",3:"uAvionix-UCP",4:"Sagetech MX Series"}}},sW={AFS_AMSL_ERR_GPS:{Description:"This sets margin for error in GPS derived altitude limit. This error margin is only used if the barometer has failed. If the barometer fails then the GPS will be used to enforce the AMSL_LIMIT, but this margin will be subtracted from the AMSL_LIMIT first, to ensure that even with the given amount of GPS altitude error the pressure altitude is not breached. OBC users should set this to comply with their D2 safety case. A value of -1 will mean that barometer failure will lead to immediate termination.",DisplayName:"Error margin for GPS based AMSL limit",Units:"m",User:"Advanced"},AFS_AMSL_LIMIT:{Description:"This sets the AMSL (above mean sea level) altitude limit. If the pressure altitude determined by QNH exceeds this limit then flight termination will be forced. Note that this limit is in meters, whereas pressure altitude limits are often quoted in feet. A value of zero disables the pressure altitude limit.",DisplayName:"AMSL limit",Units:"m",User:"Advanced"},AFS_DUAL_LOSS:{Description:'This enables the dual loss termination part of the AFS system. If this parameter is 1 and both GPS and the ground control station fail simultaneously, this will be considered a "dual loss" and cause termination.',DisplayName:"Enable dual loss terminate due to failure of both GCS and GPS simultaneously",User:"Advanced"},AFS_ENABLE:{Description:"This enables the advanced failsafe system. If this is set to zero (disable) then all the other AFS options have no effect",DisplayName:"Enable Advanced Failsafe",User:"Advanced"},AFS_GEOFENCE:{Description:"This enables the geofence part of the AFS. Will only be in effect if AFS_ENABLE is also 1",DisplayName:"Enable geofence Advanced Failsafe",User:"Advanced"},AFS_HB_PIN:{Description:`This sets a digital output pin which is cycled at 10Hz when termination is not activated. Note that if a FS_TERM_PIN is set then the heartbeat pin will continue to cycle at 10Hz when termination is activated, to allow the termination board to distinguish between autopilot crash and termination. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Heartbeat Pin",User:"Advanced",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},AFS_MAN_PIN:{Description:`This sets a digital output pin to set high when in manual mode. See the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Manual Pin",User:"Advanced"},AFS_MAX_COM_LOSS:{Description:"Maximum number of comms loss events before the aircraft stops returning to mission on comms recovery. Use zero to allow for any number of comms loss events.",DisplayName:"Maximum number of comms loss events",User:"Advanced"},AFS_MAX_GPS_LOSS:{Description:"Maximum number of GPS loss events before the aircraft stops returning to mission on GPS recovery. Use zero to allow for any number of GPS loss events.",DisplayName:"Maximum number of GPS loss events",User:"Advanced"},AFS_MAX_RANGE:{Description:"This is the maximum range of the vehicle in kilometers from first arming. If the vehicle goes beyond this range then the TERM_ACTION is performed. A value of zero disables this feature.",DisplayName:"Max allowed range",Units:"km",User:"Advanced"},AFS_QNH_PRESSURE:{Description:"This sets the QNH pressure in millibars to be used for pressure altitude in the altitude limit. A value of zero disables the altitude limit.",DisplayName:"QNH pressure",Units:"hPa",User:"Advanced"},AFS_RC:{Description:"This enables the RC part of the AFS. Will only be in effect if AFS_ENABLE is also 1",DisplayName:"Enable RC Advanced Failsafe",User:"Advanced"},AFS_RC_FAIL_TIME:{Description:"This is the time in seconds in manual mode that failsafe termination will activate if RC input is lost. For the OBC rules this should be (1.5). Use 0 to disable.",DisplayName:"RC failure time",Units:"s",User:"Advanced"},AFS_RC_MAN_ONLY:{Description:"If this parameter is set to 1, then an RC loss will only cause the plane to terminate in manual control modes. If it is 0, then the plane will terminate in any flight mode.",DisplayName:"Enable RC Termination only in manual control modes",User:"Advanced"},AFS_TERMINATE:{Description:"Can be set in flight to force termination of the heartbeat signal",DisplayName:"Force Terminate",User:"Advanced"},AFS_TERM_ACTION:{Description:"This can be used to force an action on flight termination. Normally this is handled by an external failsafe board, but you can setup ArduPilot to handle it here. Please consult the wiki for more information on the possible values of the parameter",DisplayName:"Terminate action",User:"Advanced"},AFS_TERM_PIN:{Description:`This sets a digital output pin to set high on flight termination. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Terminate Pin",User:"Advanced",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},AFS_WP_COMMS:{Description:"Waypoint number to navigate to on comms loss",DisplayName:"Comms Waypoint",User:"Advanced"},AFS_WP_GPS_LOSS:{Description:"Waypoint number to navigate to on GPS lock loss",DisplayName:"GPS Loss Waypoint",User:"Advanced"}},lW={AHRS_COMP_BETA:{Description:"This controls the time constant for the cross-over frequency used to fuse AHRS (airspeed and heading) and GPS data to estimate ground velocity. Time constant is 0.1/beta. A larger time constant will use GPS data less and a small time constant will use air data less.",DisplayName:"AHRS Velocity Complementary Filter Beta Coefficient",Increment:".01",Range:{high:"0.5",low:"0.001"},User:"Advanced"},AHRS_CUSTOM_PIT:{Description:"Autopilot mounting position pitch offset. Positive values = pitch up, negative values = pitch down. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation pitch offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_CUSTOM_ROLL:{Description:"Autopilot mounting position roll offset. Positive values = roll right, negative values = roll left. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation roll offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_CUSTOM_YAW:{Description:"Autopilot mounting position yaw offset. Positive values = yaw right, negative values = yaw left. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation yaw offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_EKF_TYPE:{Description:"This controls which NavEKF Kalman filter version is used for attitude and position estimation",DisplayName:"Use NavEKF Kalman filter for attitude and position estimation",User:"Advanced",Values:{0:"Disabled",2:"Enable EKF2",3:"Enable EKF3",11:"ExternalAHRS"}},AHRS_GPS_GAIN:{Description:"This controls how much to use the GPS to correct the attitude. This should never be set to zero for a plane as it would result in the plane losing control in turns. For a plane please use the default value of 1.0.",DisplayName:"AHRS GPS gain",Increment:".01",Range:{high:"1.0",low:"0.0"},User:"Advanced"},AHRS_GPS_MINSATS:{Description:"Minimum number of satellites visible to use GPS for velocity based corrections attitude correction. This defaults to 6, which is about the point at which the velocity numbers from a GPS become too unreliable for accurate correction of the accelerometers.",DisplayName:"AHRS GPS Minimum satellites",Increment:"1",Range:{high:"10",low:"0"},User:"Advanced"},AHRS_GPS_USE:{Description:"This controls whether to use dead-reckoning or GPS based navigation. If set to 0 then the GPS won't be used for navigation, and only dead reckoning will be used. A value of zero should never be used for normal flight. Currently this affects only the DCM-based AHRS: the EKF uses GPS according to its own parameters. A value of 2 means to use GPS for height as well as position - both in DCM estimation and when determining altitude-above-home.",DisplayName:"AHRS use GPS for DCM navigation and position-down",User:"Advanced",Values:{0:"Disabled",1:"Use GPS for DCM position",2:"Use GPS for DCM position and height"}},AHRS_ORIENTATION:{Description:"Overall board orientation relative to the standard orientation for the board type. This rotates the IMU and compass readings to allow the board to be oriented in your vehicle at any 90 or 45 degree angle. The label for each option is specified in the order of rotations for that orientation. This option takes affect on next boot. After changing you will need to re-level your vehicle. Firmware versions 4.2 and prior can use a CUSTOM (100) rotation to set the AHRS_CUSTOM_ROLL/PIT/YAW angles for AHRS orientation. Later versions provide two general custom rotations which can be used, Custom 1 and Custom 2, with CUST_ROT1_ROLL/PIT/YAW or CUST_ROT2_ROLL/PIT/YAW angles.",DisplayName:"Board Orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Yaw45Roll180",10:"Yaw90Roll180",11:"Yaw135Roll180",12:"Pitch180",13:"Yaw225Roll180",14:"Yaw270Roll180",15:"Yaw315Roll180",16:"Roll90",17:"Yaw45Roll90",18:"Yaw90Roll90",19:"Yaw135Roll90",20:"Roll270",21:"Yaw45Roll270",22:"Yaw90Roll270",23:"Yaw135Roll270",24:"Pitch90",25:"Pitch270",26:"Yaw90Pitch180",27:"Yaw270Pitch180",28:"Pitch90Roll90",29:"Pitch90Roll180",30:"Pitch90Roll270",31:"Pitch180Roll90",32:"Pitch180Roll270",33:"Pitch270Roll90",34:"Pitch270Roll180",35:"Pitch270Roll270",36:"Yaw90Pitch180Roll90",37:"Yaw270Roll90",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Pitch315Roll90",42:"Roll45",43:"Roll315",100:"Custom 4.1 and older",101:"Custom 1",102:"Custom 2"}},AHRS_RP_P:{Description:"This controls how fast the accelerometers correct the attitude",DisplayName:"AHRS RP_P",Increment:".01",Range:{high:"0.4",low:"0.1"},User:"Advanced"},AHRS_TRIM_X:{Description:"Compensates for the roll angle difference between the control board and the frame. Positive values make the vehicle roll right.",DisplayName:"AHRS Trim Roll",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Standard"},AHRS_TRIM_Y:{Description:"Compensates for the pitch angle difference between the control board and the frame. Positive values make the vehicle pitch up/back.",DisplayName:"AHRS Trim Pitch",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Standard"},AHRS_TRIM_Z:{Description:"Not Used",DisplayName:"AHRS Trim Yaw",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Advanced"},AHRS_WIND_MAX:{Description:"This sets the maximum allowable difference between ground speed and airspeed. This allows the plane to cope with a failing airspeed sensor. A value of zero means to use the airspeed as is. See ARSPD_OPTIONS and ARSPD_MAX_WIND to disable airspeed sensors.",DisplayName:"Maximum wind",Increment:"1",Range:{high:"127",low:"0"},Units:"m/s",User:"Advanced"},AHRS_YAW_P:{Description:"This controls the weight the compass or GPS has on the heading. A higher value means the heading will track the yaw source (GPS or compass) more rapidly.",DisplayName:"Yaw P",Increment:".01",Range:{high:"0.4",low:"0.1"},User:"Advanced"}},cW={AIS_LIST_MAX:{Description:"AIS list size of nearest vessels. Longer lists take longer to refresh with lower SRx_ADSB values.",DisplayName:"AIS vessel list size",Range:{high:"100",low:"1"},User:"Advanced"},AIS_LOGGING:{Bitmask:{0:"Log all AIVDM messages",1:"Log only unsupported AIVDM messages",2:"Log decoded messages"},Description:"Bitmask of AIS logging options",DisplayName:"AIS logging options",User:"Advanced"},AIS_TIME_OUT:{Description:"if no updates are received in this time a vessel will be removed from the list",DisplayName:"AIS vessel time out",Range:{high:"2000",low:"1"},Units:"s",User:"Advanced"},AIS_TYPE:{Description:"AIS receiver type",DisplayName:"AIS receiver type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"NMEA AIVDM message"}}},dW={ARMING_ACCTHRESH:{Description:"Accelerometer error threshold used to determine inconsistent accelerometers. Compares this error range to other accelerometers to detect a hardware or calibration error. Lower value means tighter check and harder to pass arming check. Not all accelerometers are created equal.",DisplayName:"Accelerometer error threshold",Range:{high:"3.0",low:"0.25"},Units:"m/s/s",User:"Advanced"},ARMING_CHECK:{Bitmask:{0:"All",1:"Barometer",2:"Compass",3:"GPS lock",4:"INS",5:"Parameters",6:"RC Channels",7:"Board voltage",8:"Battery Level",9:"Airspeed",10:"Logging Available",11:"Hardware safety switch",12:"GPS Configuration",13:"System",14:"Mission",15:"Rangefinder",16:"Camera",17:"AuxAuth",19:"FFT"},Description:"Checks prior to arming motor. This is a bitmask of checks that will be performed before allowing arming. For most users it is recommended to leave this at the default of 1 (all checks enabled). You can select whatever checks you prefer by adding together the values of each check type to set this parameter. For example, to only allow arming when you have GPS lock and no RC failsafe you would set ARMING_CHECK to 72.",DisplayName:"Arm Checks to Perform (bitmask)",User:"Standard"},ARMING_MIS_ITEMS:{Bitmask:{0:"Land",1:"VTOL Land",2:"DO_LAND_START",3:"Takeoff",4:"VTOL Takeoff",5:"Rallypoint"},Description:"Bitmask of mission items that are required to be planned in order to arm the aircraft",DisplayName:"Required mission items",User:"Advanced"},ARMING_OPTIONS:{Description:"Options that can be applied to change arming behaviour",DisplayName:"Arming options",User:"Advanced",Values:{0:"None",1:"Disable prearm display"}},ARMING_REQUIRE:{Description:"Arming disabled until some requirements are met. If 0, there are no requirements (arm immediately). If 1, require rudder stick or GCS arming before arming motors and sends the minimum throttle PWM value to the throttle channel when disarmed. If 2, require rudder stick or GCS arming and send 0 PWM to throttle channel when disarmed. See the ARMING_CHECK_* parameters to see what checks are done before arming. Note, if setting this parameter to 0 a reboot is required to arm the plane. Also note, even with this parameter at 0, if ARMING_CHECK parameter is not also zero the plane may fail to arm throttle at boot due to a pre-arm check failure.",DisplayName:"Require Arming Motors ",User:"Advanced",Values:{0:"Disabled",1:"THR_MIN PWM when disarmed",2:"0 PWM when disarmed"}},ARMING_RUDDER:{Description:"Allow arm/disarm by rudder input. When enabled arming can be done with right rudder, disarming with left rudder. Rudder arming only works in manual throttle modes with throttle at zero +- deadzone (RCx_DZ)",DisplayName:"Arming with Rudder enable/disable",User:"Advanced",Values:{0:"Disabled",1:"ArmingOnly",2:"ArmOrDisarm"}}},CW={ARSPD2_AUTOCAL:{Description:"If this is enabled then the autopilot will automatically adjust the ARSPD_RATIO during flight, based upon an estimation filter using ground speed and true airspeed. The automatic calibration will save the new ratio to EEPROM every 2 minutes if it changes by more than 5%. This option should be enabled for a calibration flight then disabled again when calibration is complete. Leaving it enabled all the time is not recommended.",DisplayName:"Automatic airspeed ratio calibration for 2nd airspeed sensor",User:"Advanced"},ARSPD2_BUS:{Description:"The bus number of the I2C bus to look for the sensor on",DisplayName:"Airspeed I2C bus for 2nd sensor",User:"Advanced",Values:{0:"Bus0(internal)",1:"Bus1(external)",2:"Bus2(auxiliary)"}},ARSPD2_DEVID:{Description:"Airspeed2 sensor ID, taking into account its type, bus and instance",DisplayName:"Airspeed2 ID",ReadOnly:"True",User:"Advanced"},ARSPD2_OFFSET:{Description:"Airspeed calibration offset",DisplayName:"Airspeed offset for 2nd airspeed sensor",Increment:"0.1",User:"Advanced"},ARSPD2_PIN:{Description:"Pin number indicating location of analog airspeed sensors. Pixhawk/Cube if set to 15. ",DisplayName:"Airspeed pin for 2nd airspeed sensor",User:"Advanced"},ARSPD2_PSI_RANGE:{Description:"This parameter allows you to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",DisplayName:"The PSI range of the device for 2nd sensor",User:"Advanced"},ARSPD2_RATIO:{Description:"Airspeed calibration ratio",DisplayName:"Airspeed ratio for 2nd airspeed sensor",Increment:"0.1",User:"Advanced"},ARSPD2_SKIP_CAL:{Description:"This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",DisplayName:"Skip airspeed offset calibration on startup for 2nd sensor",User:"Advanced",Values:{0:"Disable",1:"Enable"}},ARSPD2_TUBE_ORDR:{Description:"This parameter allows you to control whether the order in which the tubes are attached to your pitot tube matters. If you set this to 0 then the first (often the top) connector on the sensor needs to be the stagnation pressure (the pressure at the tip of the pitot tube). If set to 1 then the second (often the bottom) connector needs to be the stagnation pressure. If set to 2 (the default) then the airspeed driver will accept either order. The reason you may wish to specify the order is it will allow your airspeed sensor to detect if the aircraft is receiving excessive pressure on the static port compared to the stagnation port such as during a stall, which would otherwise be seen as a positive airspeed.",DisplayName:"Control pitot tube order of 2nd airspeed sensor",User:"Advanced",Values:{0:"Normal",1:"Swapped",2:"Auto Detect"}},ARSPD2_TYPE:{Description:"Type of 2nd airspeed sensor",DisplayName:"Second Airspeed type",User:"Standard",Values:{0:"None",1:"I2C-MS4525D0",2:"Analog",3:"I2C-MS5525",4:"I2C-MS5525 (0x76)",5:"I2C-MS5525 (0x77)",6:"I2C-SDP3X",7:"I2C-DLVR-5in",8:"DroneCAN",9:"I2C-DLVR-10in",10:"I2C-DLVR-20in",11:"I2C-DLVR-30in",12:"I2C-DLVR-60in",13:"NMEA water speed",14:"MSP",15:"ASP5033"}},ARSPD2_USE:{Description:"use airspeed for flight control. When set to 0 airspeed sensor can be logged and displayed on a GCS but won't be used for flight. When set to 1 it will be logged and used. When set to 2 it will be only used when the throttle is zero, which can be useful in gliders with airspeed sensors behind a propeller",DisplayName:"Enable use of 2nd airspeed sensor",User:"Standard",Values:{0:"Don't Use",1:"use",2:"UseWhenZeroThrottle"}},ARSPD_AUTOCAL:{Description:"Enables automatic adjustment of ARSPD_RATIO during a calibration flight based on estimation of ground speed and true airspeed. New ratio saved every 2 minutes if change is > 5%. Should not be left enabled.",DisplayName:"Automatic airspeed ratio calibration",User:"Advanced"},ARSPD_BUS:{Description:"Bus number of the I2C bus where the airspeed sensor is connected",DisplayName:"Airspeed I2C bus",User:"Advanced",Values:{0:"Bus0(internal)",1:"Bus1(external)",2:"Bus2(auxiliary)"}},ARSPD_DEVID:{Description:"Airspeed sensor ID, taking into account its type, bus and instance",DisplayName:"Airspeed ID",ReadOnly:"True",User:"Advanced"},ARSPD_OFFSET:{Description:"Airspeed calibration offset",DisplayName:"Airspeed offset",Increment:"0.1",User:"Advanced"},ARSPD_OPTIONS:{Bitmask:{0:"SpeedMismatchDisable",1:"AllowSpeedMismatchRecovery",2:"DisableVoltageCorrection",3:"UseEkf3Consistency"},Description:"Bitmask of options to use with airspeed. 0:Disable use based on airspeed/groundspeed mismatch (see ARSPD_WIND_MAX), 1:Automatically reenable use based on airspeed/groundspeed mismatch recovery (see ARSPD_WIND_MAX) 2:Disable voltage correction, 3:Check that the airspeed is statistically consistent with the navigation EKF vehicle and wind velocity estimates using EKF3 (requires AHRS_EKF_TYPE = 3)",DisplayName:"Airspeed options bitmask",User:"Advanced"},ARSPD_PIN:{Description:"The pin number that the airspeed sensor is connected to for analog sensors. Set to 15 on the Pixhawk for the analog airspeed port. ",DisplayName:"Airspeed pin",User:"Advanced"},ARSPD_PRIMARY:{Description:"This selects which airspeed sensor will be the primary if multiple sensors are found",DisplayName:"Primary airspeed sensor",User:"Advanced",Values:{0:"FirstSensor",1:"2ndSensor"}},ARSPD_PSI_RANGE:{Description:"This parameter allows you to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",DisplayName:"The PSI range of the device",User:"Advanced"},ARSPD_RATIO:{Description:"Calibrates pitot tube pressure to velocity. Increasing this value will indicate a higher airspeed at any given dynamic pressure.",DisplayName:"Airspeed ratio",Increment:"0.1",User:"Advanced"},ARSPD_SKIP_CAL:{Description:"This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",DisplayName:"Skip airspeed offset calibration on startup",User:"Advanced",Values:{0:"Disable",1:"Enable"}},ARSPD_TUBE_ORDER:{Description:"This parameter allows you to control whether the order in which the tubes are attached to your pitot tube matters. If you set this to 0 then the first (often the top) connector on the sensor needs to be the stagnation pressure (the pressure at the tip of the pitot tube). If set to 1 then the second (often the bottom) connector needs to be the stagnation pressure. If set to 2 (the default) then the airspeed driver will accept either order. The reason you may wish to specify the order is it will allow your airspeed sensor to detect if the aircraft is receiving excessive pressure on the static port compared to the stagnation port such as during a stall, which would otherwise be seen as a positive airspeed.",DisplayName:"Control pitot tube order",User:"Advanced",Values:{0:"Normal",1:"Swapped",2:"Auto Detect"}},ARSPD_TYPE:{Description:"Type of airspeed sensor",DisplayName:"Airspeed type",User:"Standard",Values:{0:"None",1:"I2C-MS4525D0",2:"Analog",3:"I2C-MS5525",4:"I2C-MS5525 (0x76)",5:"I2C-MS5525 (0x77)",6:"I2C-SDP3X",7:"I2C-DLVR-5in",8:"DroneCAN",9:"I2C-DLVR-10in",10:"I2C-DLVR-20in",11:"I2C-DLVR-30in",12:"I2C-DLVR-60in",13:"NMEA water speed",14:"MSP",15:"ASP5033",100:"SITL"}},ARSPD_USE:{Description:"Enables airspeed use for automatic throttle modes and replaces control from THR_TRIM. Continues to display and log airspeed if set to 0. Uses airspeed for control if set to 1. Only uses airspeed when throttle = 0 if set to 2 (useful for gliders with airspeed sensors behind propellers).",DisplayName:"Airspeed use",User:"Standard",Values:{0:"DoNotUse",1:"Use",2:"UseWhenZeroThrottle"}},ARSPD_WIND_GATE:{Description:"Number of standard deviations applied to the re-enable EKF consistency check that is used when ARSPD_OPTIONS bit position 3 is set. Larger values will make the re-enabling of the airspeed sensor faster, but increase the likelihood of re-enabling a degraded sensor. The value can be tuned by using the ARSP.TR log message by setting ARSP_WIND_GATE to a value that is higher than the value for ARSP.TR observed with a healthy airspeed sensor. Occasional transients in ARSP.TR above the value set by ARSP_WIND_GATE can be tolerated provided they are less than 5 seconds in duration and less than 10% duty cycle.",DisplayName:"Re-enable Consistency Check Gate Size",Range:{high:"10.0",low:"0.0"},User:"Advanced"},ARSPD_WIND_MAX:{Description:"If the difference between airspeed and ground speed is greater than this value the sensor will be marked unhealthy. Using ARSPD_OPTION this health value can be used to disable the sensor.",DisplayName:"Maximum airspeed and ground speed difference",Units:"m/s",User:"Advanced"},ARSPD_WIND_WARN:{Description:"If the difference between airspeed and ground speed is greater than this value the sensor will issue a warning. If 0 ARSPD_WIND_MAX is used.",DisplayName:"Airspeed and ground speed difference that gives a warning",Units:"m/s",User:"Advanced"}},mW={AVD_ENABLE:{Description:"Enable Avoidance using ADSB",DisplayName:"Enable Avoidance using ADSB",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},AVD_F_ACTION:{Description:"Specifies aircraft behaviour when a collision is imminent",DisplayName:"Collision Avoidance Behavior",User:"Advanced",Values:{0:"None",1:"Report",2:"Climb Or Descend",3:"Move Horizontally",4:"Move Perpendicularly in 3D",5:"RTL",6:"Hover"}},AVD_F_ALT_MIN:{Description:"Minimum AMSL (above mean sea level) altitude for ADS-B avoidance. If the vehicle is below this altitude, no avoidance action will take place. Useful to prevent ADS-B avoidance from activating while below the tree line or around structures. Default of 0 is no minimum.",DisplayName:"ADS-B avoidance minimum altitude",Units:"m",User:"Advanced"},AVD_F_DIST_XY:{Description:"Closest allowed projected distance before F_ACTION is undertaken",DisplayName:"Distance Fail XY",Units:"m",User:"Advanced"},AVD_F_DIST_Z:{Description:"Closest allowed projected distance before BEHAVIOUR_F is undertaken",DisplayName:"Distance Fail Z",Units:"m",User:"Advanced"},AVD_F_RCVRY:{Description:"Determines what the aircraft will do after a fail event is resolved",DisplayName:"Recovery behaviour after a fail event",User:"Advanced",Values:{0:"Remain in AVOID_ADSB",1:"Resume previous flight mode",2:"RTL",3:"Resume if AUTO else Loiter"}},AVD_F_TIME:{Description:"Aircraft velocity vectors are multiplied by this time to determine closest approach. If this results in an approach closer than F_DIST_XY or F_DIST_Z then F_ACTION is undertaken",DisplayName:"Time Horizon Fail",Units:"s",User:"Advanced"},AVD_OBS_MAX:{Description:"Maximum number of obstacles to track",DisplayName:"Maximum number of obstacles to track",User:"Advanced"},AVD_W_ACTION:{Description:"Specifies aircraft behaviour when a collision may occur",DisplayName:"Collision Avoidance Behavior - Warn",User:"Advanced",Values:{0:"None",1:"Report"}},AVD_W_DIST_XY:{Description:"Closest allowed projected distance before W_ACTION is undertaken",DisplayName:"Distance Warn XY",Units:"m",User:"Advanced"},AVD_W_DIST_Z:{Description:"Closest allowed projected distance before BEHAVIOUR_W is undertaken",DisplayName:"Distance Warn Z",Units:"m",User:"Advanced"},AVD_W_TIME:{Description:"Aircraft velocity vectors are multiplied by this time to determine closest approach. If this results in an approach closer than W_DIST_XY or W_DIST_Z then W_ACTION is undertaken (assuming F_ACTION is not undertaken)",DisplayName:"Time Horizon Warn",Units:"s",User:"Advanced"}},uW={BARO1_DEVID:{Description:"Barometer sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID",ReadOnly:"True",User:"Advanced"},BARO1_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Ground Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO2_DEVID:{Description:"Barometer2 sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID2",ReadOnly:"True",User:"Advanced"},BARO2_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Ground Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO3_DEVID:{Description:"Barometer3 sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID3",ReadOnly:"True",User:"Advanced"},BARO3_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Absolute Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO_ALT_OFFSET:{Description:"altitude offset in meters added to barometric altitude. This is used to allow for automatic adjustment of the base barometric altitude by a ground station equipped with a barometer. The value is added to the barometric altitude read by the aircraft. It is automatically reset to 0 when the barometer is calibrated on each reboot or when a preflight calibration is performed.",DisplayName:"altitude offset",Increment:"0.1",Units:"m",User:"Advanced"},BARO_EXT_BUS:{Description:"This selects the bus number for looking for an I2C barometer. When set to -1 it will probe all external i2c buses based on the GND_PROBE_EXT parameter.",DisplayName:"External baro bus",User:"Advanced",Values:{0:"Bus0",1:"Bus1","-1":"Disabled"}},BARO_FIELD_ELV:{Description:"User provided field elevation in meters. This is used to improve the calculation of the altitude the vehicle is at. This parameter is not persistent and will be reset to 0 every time the vehicle is rebooted. A value of 0 means no correction for takeoff height above sea level is performed.",DisplayName:"field elevation",Increment:"0.1",Units:"m",User:"Advanced",Volatile:"True"},BARO_FLTR_RNG:{Description:"This sets the range around the average value that new samples must be within to be accepted. This can help reduce the impact of noise on sensors that are on long I2C cables. The value is a percentage from the average value. A value of zero disables this filter.",DisplayName:"Range in which sample is accepted",Increment:"1",Range:{high:"100",low:"0"},Units:"%"},BARO_GND_TEMP:{Description:"User provided ambient ground temperature in degrees Celsius. This is used to improve the calculation of the altitude the vehicle is at. This parameter is not persistent and will be reset to 0 every time the vehicle is rebooted. A value of 0 means use the internal measurement ambient temperature.",DisplayName:"ground temperature",Increment:"1",Units:"degC",User:"Advanced",Volatile:"True"},BARO_PRIMARY:{Description:"This selects which barometer will be the primary if multiple barometers are found",DisplayName:"Primary barometer",User:"Advanced",Values:{0:"FirstBaro",1:"2ndBaro",2:"3rdBaro"}},BARO_PROBE_EXT:{Bitmask:{0:"BMP085",1:"BMP280",2:"MS5611",3:"MS5607",4:"MS5637",5:"FBM320",6:"DPS280",7:"LPS25H",8:"Keller",9:"MS5837",10:"BMP388",11:"SPL06",12:"MSP"},Description:"This sets which types of external i2c barometer to look for. It is a bitmask of barometer types. The I2C buses to probe is based on GND_EXT_BUS. If BARO_EXT_BUS is -1 then it will probe all external buses, otherwise it will probe just the bus number given in GND_EXT_BUS.",DisplayName:"External barometers to probe",User:"Advanced"}},hW={BARO1_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO1_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},pW={BARO2_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO2_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},fW={BARO3_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO3_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},VW={BATT2_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT2_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT2_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT2__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT2_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT2_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT2__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT2_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT2_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT2_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT2_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT2_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT2_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT2_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT2_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT2_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",5:"Parachute",6:"Loiter to QLand"}},BATT2_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",6:"Loiter to QLand"}},BATT2_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT2_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT2_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT2_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT2_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT2_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT2_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT2_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT2_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT2_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT2_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT2_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT2_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT2_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT2_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT2_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}},BATT2_WATT_MAX:{Description:"If battery wattage (voltage * current) exceeds this value then the system will reduce max throttle (THR_MAX, TKOFF_THR_MAX and THR_MIN for reverse thrust) to satisfy this limit. This helps limit high current to low C rated batteries regardless of battery voltage. The max throttle will slowly grow back to THR_MAX (or TKOFF_THR_MAX ) and THR_MIN if demanding the current max and under the watt max. Use 0 to disable.",DisplayName:"Maximum allowed power (Watts)",Increment:"1",Units:"W",User:"Advanced"}},LW={BATT3_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT3_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT3_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT3__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT3_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT3_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT3__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT3_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT3_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT3_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT3_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT3_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT3_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT3_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT3_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT3_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",5:"Parachute",6:"Loiter to QLand"}},BATT3_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",6:"Loiter to QLand"}},BATT3_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT3_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT3_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT3_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT3_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT3_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT3_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT3_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT3_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT3_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT3_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT3_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT3_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT3_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT3_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT3_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}},BATT3_WATT_MAX:{Description:"If battery wattage (voltage * current) exceeds this value then the system will reduce max throttle (THR_MAX, TKOFF_THR_MAX and THR_MIN for reverse thrust) to satisfy this limit. This helps limit high current to low C rated batteries regardless of battery voltage. The max throttle will slowly grow back to THR_MAX (or TKOFF_THR_MAX ) and THR_MIN if demanding the current max and under the watt max. Use 0 to disable.",DisplayName:"Maximum allowed power (Watts)",Increment:"1",Units:"W",User:"Advanced"}},HW={BATT4_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT4_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT4_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT4__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT4_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT4_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT4__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT4_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT4_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT4_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT4_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT4_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT4_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT4_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT4_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT4_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",5:"Parachute",6:"Loiter to QLand"}},BATT4_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",6:"Loiter to QLand"}},BATT4_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT4_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT4_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT4_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT4_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT4_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT4_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT4_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT4_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT4_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT4_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT4_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT4_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT4_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT4_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT4_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}},BATT4_WATT_MAX:{Description:"If battery wattage (voltage * current) exceeds this value then the system will reduce max throttle (THR_MAX, TKOFF_THR_MAX and THR_MIN for reverse thrust) to satisfy this limit. This helps limit high current to low C rated batteries regardless of battery voltage. The max throttle will slowly grow back to THR_MAX (or TKOFF_THR_MAX ) and THR_MIN if demanding the current max and under the watt max. Use 0 to disable.",DisplayName:"Maximum allowed power (Watts)",Increment:"1",Units:"W",User:"Advanced"}},MW={BATT5_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT5_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT5_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT5__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT5_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT5_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT5__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT5_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT5_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT5_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT5_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT5_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT5_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT5_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT5_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT5_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",5:"Parachute",6:"Loiter to QLand"}},BATT5_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",6:"Loiter to QLand"}},BATT5_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT5_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT5_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT5_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT5_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT5_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT5_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT5_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT5_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT5_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT5_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT5_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT5_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT5_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT5_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT5_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}},BATT5_WATT_MAX:{Description:"If battery wattage (voltage * current) exceeds this value then the system will reduce max throttle (THR_MAX, TKOFF_THR_MAX and THR_MIN for reverse thrust) to satisfy this limit. This helps limit high current to low C rated batteries regardless of battery voltage. The max throttle will slowly grow back to THR_MAX (or TKOFF_THR_MAX ) and THR_MIN if demanding the current max and under the watt max. Use 0 to disable.",DisplayName:"Maximum allowed power (Watts)",Increment:"1",Units:"W",User:"Advanced"}},gW={BATT6_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT6_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT6_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT6__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT6_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT6_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT6__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT6_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT6_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT6_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT6_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT6_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT6_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT6_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT6_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT6_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",5:"Parachute",6:"Loiter to QLand"}},BATT6_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",6:"Loiter to QLand"}},BATT6_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT6_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT6_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT6_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT6_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT6_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT6_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT6_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT6_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT6_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT6_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT6_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT6_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT6_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT6_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT6_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}},BATT6_WATT_MAX:{Description:"If battery wattage (voltage * current) exceeds this value then the system will reduce max throttle (THR_MAX, TKOFF_THR_MAX and THR_MIN for reverse thrust) to satisfy this limit. This helps limit high current to low C rated batteries regardless of battery voltage. The max throttle will slowly grow back to THR_MAX (or TKOFF_THR_MAX ) and THR_MIN if demanding the current max and under the watt max. Use 0 to disable.",DisplayName:"Maximum allowed power (Watts)",Increment:"1",Units:"W",User:"Advanced"}},AW={BATT7_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT7_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT7_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT7__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT7_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT7_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT7__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT7_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT7_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT7_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT7_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT7_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT7_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT7_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT7_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT7_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",5:"Parachute",6:"Loiter to QLand"}},BATT7_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",6:"Loiter to QLand"}},BATT7_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT7_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT7_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT7_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT7_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT7_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT7_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT7_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT7_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT7_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT7_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT7_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT7_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT7_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT7_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT7_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}},BATT7_WATT_MAX:{Description:"If battery wattage (voltage * current) exceeds this value then the system will reduce max throttle (THR_MAX, TKOFF_THR_MAX and THR_MIN for reverse thrust) to satisfy this limit. This helps limit high current to low C rated batteries regardless of battery voltage. The max throttle will slowly grow back to THR_MAX (or TKOFF_THR_MAX ) and THR_MIN if demanding the current max and under the watt max. Use 0 to disable.",DisplayName:"Maximum allowed power (Watts)",Increment:"1",Units:"W",User:"Advanced"}},vW={BATT8_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT8_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT8_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT8__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT8_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT8_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT8__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT8_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT8_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT8_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT8_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT8_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT8_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT8_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT8_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT8_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",5:"Parachute",6:"Loiter to QLand"}},BATT8_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",6:"Loiter to QLand"}},BATT8_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT8_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT8_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT8_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT8_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT8_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT8_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT8_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT8_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT8_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT8_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT8_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT8_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT8_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT8_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT8_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}},BATT8_WATT_MAX:{Description:"If battery wattage (voltage * current) exceeds this value then the system will reduce max throttle (THR_MAX, TKOFF_THR_MAX and THR_MIN for reverse thrust) to satisfy this limit. This helps limit high current to low C rated batteries regardless of battery voltage. The max throttle will slowly grow back to THR_MAX (or TKOFF_THR_MAX ) and THR_MIN if demanding the current max and under the watt max. Use 0 to disable.",DisplayName:"Maximum allowed power (Watts)",Increment:"1",Units:"W",User:"Advanced"}},_W={BATT9_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT9_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT9_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT9__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT9_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT9_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT9__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT9_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT9_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT9_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT9_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT9_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT9_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT9_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT9_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT9_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",5:"Parachute",6:"Loiter to QLand"}},BATT9_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",6:"Loiter to QLand"}},BATT9_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT9_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT9_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT9_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT9_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT9_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT9_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT9_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT9_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT9_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT9_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT9_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT9_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT9_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT9_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT9_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}},BATT9_WATT_MAX:{Description:"If battery wattage (voltage * current) exceeds this value then the system will reduce max throttle (THR_MAX, TKOFF_THR_MAX and THR_MIN for reverse thrust) to satisfy this limit. This helps limit high current to low C rated batteries regardless of battery voltage. The max throttle will slowly grow back to THR_MAX (or TKOFF_THR_MAX ) and THR_MIN if demanding the current max and under the watt max. Use 0 to disable.",DisplayName:"Maximum allowed power (Watts)",Increment:"1",Units:"W",User:"Advanced"}},SW={BATT_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",5:"Parachute",6:"Loiter to QLand"}},BATT_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",6:"Loiter to QLand"}},BATT_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}},BATT_WATT_MAX:{Description:"If battery wattage (voltage * current) exceeds this value then the system will reduce max throttle (THR_MAX, TKOFF_THR_MAX and THR_MIN for reverse thrust) to satisfy this limit. This helps limit high current to low C rated batteries regardless of battery voltage. The max throttle will slowly grow back to THR_MAX (or TKOFF_THR_MAX ) and THR_MIN if demanding the current max and under the watt max. Use 0 to disable.",DisplayName:"Maximum allowed power (Watts)",Increment:"1",Units:"W",User:"Advanced"}},DW={BRD_ALT_CONFIG:{Description:"Select an alternative hardware configuration. A value of zero selects the default configuration for this board. Other values are board specific. Please see the documentation for your board for details on any alternative configuration values that may be available.",DisplayName:"Alternative HW config",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},BRD_BOOT_DELAY:{Description:"This adds a delay in milliseconds to boot to ensure peripherals initialise fully",DisplayName:"Boot delay",Range:{high:"10000",low:"0"},Units:"ms",User:"Advanced"},BRD_HEAT_I:{Description:"Board Heater integrator gain",DisplayName:"Board Heater I gain",Increment:"0.1",Range:{high:"1",low:"0"},User:"Advanced"},BRD_HEAT_IMAX:{Description:"Board Heater integrator maximum",DisplayName:"Board Heater IMAX",Increment:"1",Range:{high:"100",low:"0"},User:"Advanced"},BRD_HEAT_LOWMGN:{Description:"Arming check will fail if temp is lower than this margin below BRD_HEAT_TARG. 0 disables the low temperature check",DisplayName:"Board heater temp lower margin",Range:{high:"20",low:"0"},Units:"degC",User:"Advanced"},BRD_HEAT_P:{Description:"Board Heater P gain",DisplayName:"Board Heater P gain",Increment:"1",Range:{high:"500",low:"1"},User:"Advanced"},BRD_HEAT_TARG:{Description:"Board heater target temperature for boards with controllable heating units. DO NOT SET to -1 on the Cube. Set to -1 to disable the heater, please reboot after setting to -1.",DisplayName:"Board heater temperature target",Range:{high:"80",low:"-1"},Units:"degC",User:"Advanced"},BRD_IO_ENABLE:{Description:"This allows for the IO co-processor on FMUv1 and FMUv2 to be disabled",DisplayName:"Enable IO co-processor",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BRD_OPTIONS:{Bitmask:{0:"Enable hardware watchdog",1:"Disable MAVftp",2:"Enable set of internal parameters",3:"Enable Debug Pins",4:"Unlock flash on reboot",5:"Write protect firmware flash on reboot",6:"Write protect bootloader flash on reboot"},Description:"Board specific option flags",DisplayName:"Board options",User:"Advanced"},BRD_PWM_VOLT_SEL:{Description:"This sets the voltage max for PWM output pulses. 0 for 3.3V and 1 for 5V output.",DisplayName:"Set PWM Out Voltage",User:"Advanced",Values:{0:"3.3V",1:"5V"}},BRD_SAFETYENABLE:{Description:"This controls the default state of the safety switch at startup. When set to 1 the safety switch will start in the safe state (flashing) at boot. When set to zero the safety switch will start in the unsafe state (solid) at startup. Note that if a safety switch is fitted the user can still control the safety state after startup using the switch. The safety state can also be controlled in software using a MAVLink message.",DisplayName:"Enable use of safety arming switch",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},BRD_SAFETYOPTION:{Bitmask:{0:"ActiveForSafetyEnable",1:"ActiveForSafetyDisable",2:"ActiveWhenArmed",3:"Force safety on when the aircraft disarms"},Description:"This controls the activation of the safety button. It allows you to control if the safety button can be used for safety enable and/or disable, and whether the button is only active when disarmed",DisplayName:"Options for safety button behavior",User:"Standard"},BRD_SAFETY_MASK:{Bitmask:{0:"Output1",1:"Output2",2:"Output3",3:"Output4",4:"Output5",5:"Output6",6:"Output7",7:"Output8",8:"Output9",9:"Output10",10:"Output11",11:"Output12",12:"Output13",13:"Output14"},Description:"A bitmask which controls what outputs can move while the safety switch has not been pressed",DisplayName:"Outputs which ignore the safety switch state",RebootRequired:"True",User:"Advanced"},BRD_SBUS_OUT:{Description:"This sets the SBUS output frame rate in Hz",DisplayName:" SBUS output rate",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"50Hz",2:"75Hz",3:"100Hz",4:"150Hz",5:"200Hz",6:"250Hz",7:"300Hz"}},BRD_SD_SLOWDOWN:{Description:"This is a scaling factor to slow down microSD operation. It can be used on flight board and microSD card combinations where full speed is not reliable. For normal full speed operation a value of 0 should be used.",DisplayName:"microSD slowdown",Increment:"1",Range:{high:"32",low:"0"},User:"Advanced"},BRD_SER1_RTSCTS:{Description:"Enable flow control on serial 1 (telemetry 1). You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup. Note that the PX4v1 does not have hardware flow control pins on this port, so you should leave this disabled.",DisplayName:"Serial 1 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER2_RTSCTS:{Description:"Enable flow control on serial 2 (telemetry 2). You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 2 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER3_RTSCTS:{Description:"Enable flow control on serial 3. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 3 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER4_RTSCTS:{Description:"Enable flow control on serial 4. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 4 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER5_RTSCTS:{Description:"Enable flow control on serial 5. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 5 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SERIAL_NUM:{Description:"User-defined serial number of this vehicle, it can be any arbitrary number you want and has no effect on the autopilot",DisplayName:"User-defined serial number",Range:{high:"8388607",low:"-8388608"},User:"Standard"},BRD_TYPE:{Description:"This allows selection of a PX4 or VRBRAIN board type. If set to zero then the board type is auto-detected (PX4)",DisplayName:"Board type",RebootRequired:"True",User:"Advanced",Values:{0:"AUTO",1:"PX4V1",2:"Pixhawk",3:"Cube/Pixhawk2",4:"Pixracer",5:"PixhawkMini",6:"Pixhawk2Slim",13:"Intel Aero FC",14:"Pixhawk Pro",20:"AUAV2.1",21:"PCNC1",22:"MINDPXV2",23:"SP01",24:"CUAVv5/FMUV5",30:"VRX BRAIN51",32:"VRX BRAIN52",33:"VRX BRAIN52E",34:"VRX UBRAIN51",35:"VRX UBRAIN52",36:"VRX CORE10",38:"VRX BRAIN54",39:"PX4 FMUV6",100:"PX4 OLDDRIVERS"}},BRD_VBUS_MIN:{Description:"Minimum voltage on the autopilot power rail to allow the aircraft to arm. 0 to disable the check.",DisplayName:"Autopilot board voltage requirement",Increment:"0.1",Range:{high:"5.5",low:"4.0"},Units:"V",User:"Advanced"},BRD_VSERVO_MIN:{Description:"Minimum voltage on the servo rail to allow the aircraft to arm. 0 to disable the check.",DisplayName:"Servo voltage requirement",Increment:"0.1",Range:{high:"12.0",low:"3.3"},Units:"V",User:"Advanced"}},yW={BRD_RADIO_ABLVL:{Description:"This sets the minimum RSSI of an auto-bind packet for it to be accepted. This should be set so that auto-bind will only happen at short range to minimise the change of an auto-bind happening accidentially",DisplayName:"Auto-bind level",Range:{high:"31",low:"0"},User:"Advanced"},BRD_RADIO_ABTIME:{Description:"When non-zero this sets the time with no transmitter packets before we start looking for auto-bind packets.",DisplayName:"Auto-bind time",Range:{high:"120",low:"0"},User:"Advanced"},BRD_RADIO_BZOFS:{Description:"Set transmitter buzzer note adjustment (adjust frequency up)",DisplayName:"Transmitter buzzer adjustment",Range:{high:"40",low:"0"},User:"Advanced"},BRD_RADIO_DEBUG:{Description:"radio debug level",DisplayName:"debug level",Range:{high:"4",low:"0"},User:"Advanced"},BRD_RADIO_DISCRC:{Description:"disable receive CRC (for debug)",DisplayName:"disable receive CRC",User:"Advanced",Values:{0:"NotDisabled",1:"Disabled"}},BRD_RADIO_FCCTST:{Description:"If this is enabled then the radio will continuously transmit as required for FCC testing. The transmit channel is set by the value of the parameter. The radio will not work for RC input while this is enabled",DisplayName:"Put radio into FCC test mode",User:"Advanced",Values:{0:"Disabled",1:"MinChannel",2:"MidChannel",3:"MaxChannel",4:"MinChannelCW",5:"MidChannelCW",6:"MaxChannelCW"}},BRD_RADIO_PPSCH:{Description:"Channel to show received packet-per-second rate, or zero for disabled",DisplayName:"Packet rate channel",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_PROT:{Description:"Select air protocol",DisplayName:"protocol",User:"Advanced",Values:{0:"Auto",1:"DSM2",2:"DSMX"}},BRD_RADIO_SIGCH:{Description:"Channel to show receive RSSI signal strength, or zero for disabled",DisplayName:"RSSI signal strength",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_STKMD:{Description:"This selects between different stick input modes. The default is mode2, which has throttle on the left stick and pitch on the right stick. You can instead set mode1, which has throttle on the right stick and pitch on the left stick.",DisplayName:"Stick input mode",User:"Advanced",Values:{1:"Mode1",2:"Mode2"}},BRD_RADIO_TELEM:{Description:"If this is non-zero then telemetry packets will be sent over DSM",DisplayName:"Enable telemetry",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BRD_RADIO_TESTCH:{Description:"This sets the radio to a fixed test channel for factory testing. Using a fixed channel avoids the need for binding in factory testing.",DisplayName:"Set radio to factory test channel",User:"Advanced",Values:{0:"Disabled",1:"TestChan1",2:"TestChan2",3:"TestChan3",4:"TestChan4",5:"TestChan5",6:"TestChan6",7:"TestChan7",8:"TestChan8"}},BRD_RADIO_TPPSCH:{Description:"Channel to show telemetry packets-per-second value, as received at TX",DisplayName:"Telemetry PPS channel",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_TSIGCH:{Description:"Channel to show telemetry RSSI value as received by TX",DisplayName:"RSSI value channel for telemetry data on transmitter",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_TXMAX:{Description:"Set transmitter maximum transmit power (from 1 to 8)",DisplayName:"Transmitter transmit power",Range:{high:"8",low:"1"},User:"Advanced"},BRD_RADIO_TXPOW:{Description:"Set telemetry transmit power. This is the power level (from 1 to 8) for telemetry packets sent from the RX to the TX",DisplayName:"Telemetry Transmit power",Range:{high:"8",low:"1"},User:"Advanced"},BRD_RADIO_TYPE:{Description:"This enables support for direct attached radio receivers",DisplayName:"Set type of direct attached radio",Values:{0:"None",1:"CYRF6936",2:"CC2500",3:"BK2425"}}},RW={BRD_RTC_TYPES:{Bitmask:{0:"GPS",1:"MAVLINK_SYSTEM_TIME",2:"HW"},Description:"Specifies which sources of UTC time will be accepted",DisplayName:"Allowed sources of RTC time",User:"Advanced"},BRD_RTC_TZ_MIN:{Description:"Adds offset in +- minutes from UTC to calculate local time",DisplayName:"Timezone offset from UTC",Range:{high:"+840",low:"-720"},User:"Advanced"}},bW={BTN_ENABLE:{Description:"This enables the button checking module. When this is disabled the parameters for setting button inputs are not visible",DisplayName:"Enable button reporting",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BTN_FUNC1:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 1 RC Channel function",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_FUNC2:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 2 RC Channel function",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_FUNC3:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 3 RC Channel function",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_FUNC4:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 4 RC Channel function",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_OPTIONS1:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 1. PWM input detects PWM above or below 1800/1200us instead of logic level. If PWM is not detected or is less than 800us or above 2200us the button will interpreted as low. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 1 Options",User:"Standard"},BTN_OPTIONS2:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 2. PWM input detects PWM above or below 1800/1200us instead of logic level. If PWM is not detected or is less than 800us or above 2200us the button will interpreted as low. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 2 Options",User:"Standard"},BTN_OPTIONS3:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 3. PWM input detects PWM above or below 1800/1200us instead of logic level. If PWM is not detected or is less than 800us or above 2200us the button will interpreted as low. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 3 Options"},BTN_OPTIONS4:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 4. PWM input detects PWM above or below 1800/1200us instead of logic level. If PWM is not detected or is less than 800us or above 2200us the button will interpreted as low. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 4 Options",User:"Standard"},BTN_PIN1:{Description:`Digital pin number for first button input. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"First button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_PIN2:{Description:`Digital pin number for second button input. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Second button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_PIN3:{Description:`Digital pin number for third button input. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Third button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_PIN4:{Description:`Digital pin number for fourth button input. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Fourth button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_REPORT_SEND:{Description:"The duration in seconds that a BUTTON_CHANGE report is repeatedly sent to the GCS regarding a button changing state. Note that the BUTTON_CHANGE message is MAVLink2 only.",DisplayName:"Report send time",Range:{high:"3600",low:"0"},User:"Standard"}},NW={CAM_AUTO_ONLY:{Description:"When enabled, trigging by distance is done in AUTO mode only.",DisplayName:"Distance-trigging in AUTO mode only",User:"Standard",Values:{0:"Always",1:"Only when in AUTO"}},CAM_DURATION:{Description:"How long the shutter will be held open in 10ths of a second (i.e. enter 10 for 1second, 50 for 5seconds)",DisplayName:"Duration that shutter is held open",Range:{high:"50",low:"0"},Units:"ds",User:"Standard"},CAM_FEEDBACK_PIN:{Description:`pin number to use for save accurate camera feedback messages. If set to -1 then don't use a pin flag for this, otherwise this is a pin number which if held high after a picture trigger order, will save camera messages when camera really takes a picture. A universal camera hot shoe is needed. The pin should be held high for at least 2 milliseconds for reliable trigger detection. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot. See also the CAM_FEEDBACK_POL option.`,DisplayName:"Camera feedback pin",RebootRequired:"True",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},CAM_FEEDBACK_POL:{Description:"Polarity for feedback pin. If this is 1 then the feedback pin should go high on trigger. If set to 0 then it should go low",DisplayName:"Camera feedback pin polarity",User:"Standard",Values:{0:"TriggerLow",1:"TriggerHigh"}},CAM_MAX_ROLL:{Description:"Postpone shooting if roll is greater than limit. (0=Disable, will shoot regardless of roll).",DisplayName:"Maximum photo roll angle.",Range:{high:"180",low:"0"},Units:"deg",User:"Standard"},CAM_MIN_INTERVAL:{Description:"Postpone shooting if previous picture was taken less than preset time(ms) ago.",DisplayName:"Minimum time between photos",Range:{high:"10000",low:"0"},Units:"ms",User:"Standard"},CAM_RELAY_ON:{Description:"This sets whether the relay goes high or low when it triggers. Note that you should also set RELAY_DEFAULT appropriately for your camera",DisplayName:"Relay ON value",User:"Standard",Values:{0:"Low",1:"High"}},CAM_SERVO_OFF:{Description:"PWM value in microseconds to move servo to when shutter is deactivated",DisplayName:"Servo OFF PWM value",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CAM_SERVO_ON:{Description:"PWM value in microseconds to move servo to when shutter is activated",DisplayName:"Servo ON PWM value",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CAM_TRIGG_DIST:{Description:"Distance in meters between camera triggers. If this value is non-zero then the camera will trigger whenever the position changes by this number of meters regardless of what mode the APM is in. Note that this parameter can also be set in an auto mission using the DO_SET_CAM_TRIGG_DIST command, allowing you to enable/disable the triggering of the camera during the flight.",DisplayName:"Camera trigger distance",Range:{high:"1000",low:"0"},Units:"m",User:"Standard"},CAM_TRIGG_TYPE:{Description:"how to trigger the camera to take a picture",DisplayName:"Camera shutter (trigger) type",User:"Standard",Values:{0:"Servo",1:"Relay",2:"GoPro in Solo Gimbal"}},CAM_TYPE:{Description:"Set the camera type that is being used, certain cameras have custom functions that need further configuration, this enables that.",DisplayName:"Type of camera (0: None, 1: BMMCC)",User:"Standard",Values:{0:"Default",1:"BMMCC"}}},wW={CAM_RC_BTN_DELAY:{Description:"Time it takes for the a RunCam button press to be actived in ms. If this is too short then commands can get out of sync.",DisplayName:"RunCam button delay before allowing further button presses",User:"Advanced"},CAM_RC_BT_DELAY:{Description:"Time it takes for the RunCam to become fully ready in ms. If this is too short then commands can get out of sync.",DisplayName:"RunCam boot delay before allowing updates",User:"Advanced"},CAM_RC_CONTROL:{Bitmask:{0:"Stick yaw right",1:"Stick roll right",2:"3-position switch",3:"2-position switch",4:"Autorecording enabled"},Description:"Specifies the allowed actions required to enter the OSD menu",DisplayName:"RunCam control option",User:"Advanced"},CAM_RC_FEATURES:{Bitmask:{0:"Power Button",1:"WiFi Button",2:"Change Mode",3:"5-Key OSD",4:"Settings Access",5:"DisplayPort",6:"Start Recording",7:"Stop Recording"},Description:"The available features of the attached RunCam device. If 0 then the RunCam device will be queried for the features it supports, otherwise this setting is used.",DisplayName:"RunCam features available",User:"Advanced"},CAM_RC_MDE_DELAY:{Description:"Time it takes for the a RunCam mode button press to be actived in ms. If a mode change first requires a video recording change then double this value is used. If this is too short then commands can get out of sync.",DisplayName:"RunCam mode delay before allowing further button presses",User:"Advanced"},CAM_RC_TYPE:{Description:"RunCam deviee type used to determine OSD menu structure and shutter options.",DisplayName:"RunCam device type",Values:{0:"Disabled",1:"RunCam Split Micro/RunCam with UART",2:"RunCam Split",3:"RunCam Split4 4k",4:"RunCam Hybrid"}}},TW={CAN_LOGLEVEL:{Description:"Loglevel for recording initialisation and debug information from CAN Interface",DisplayName:"Loglevel",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Log None",1:"Log Error",2:"Log Warning and below",3:"Log Info and below",4:"Log Everything"}}},EW={CAN_D1_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"DroneCAN",4:"PiccoloCAN",5:"CANTester",6:"EFI_NWPMU",7:"USD1",8:"KDECAN",10:"Scripting",11:"Benewake",12:"Scripting2"}}},PW={CAN_D1_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},IW={CAN_D1_PC_ECU_ID:{Description:"Node ID to send ECU throttle messages to. Set to zero to disable ECU throttle messages. Set to 255 to broadcast to all ECUs.",DisplayName:"ECU Node ID",Range:{high:"255",low:"0"},User:"Advanced"},CAN_D1_PC_ECU_RT:{Description:"Output rate of ECU command messages",DisplayName:"ECU command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D1_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D1_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D1_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D1_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},OW={CAN_D1_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC",7:"TEST_UAVCAN_FD_ESC"}},CAN_D1_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},UW={CAN_D1_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"Output channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D1_UC_ESC_OF:{Description:"Offset for ESC numbering in DroneCAN ESC RawCommand messages. This allows for more efficient packing of ESC command messages. If your ESCs are on servo functions 5 to 8 and you set this parameter to 4 then the ESC RawCommand will be sent with the first 4 slots filled. This can be used for more efficint usage of CAN bandwidth",DisplayName:"ESC Output channels offset",Range:{high:"18",low:"0"},User:"Advanced"},CAN_D1_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D1_UC_NTF_RT:{Description:"Maximum transmit rate for Notify State Message",DisplayName:"Notify State rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"},CAN_D1_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts",2:"EnableCanfd",3:"IgnoreDNANodeUnhealthy"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D1_UC_POOL:{Description:"Amount of memory in bytes to allocate for the DroneCAN memory pool. More memory is needed for higher CAN bus loads",DisplayName:"CAN pool size",Range:{high:"16384",low:"1024"},User:"Advanced"},CAN_D1_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16",16:"Servo 17",17:"Servo 18",18:"Servo 19",19:"Servo 20",20:"Servo 21",21:"Servo 22",22:"Servo 23",23:"Servo 24",24:"Servo 25",25:"Servo 26",26:"Servo 27",27:"Servo 28",28:"Servo 29",29:"Servo 30",30:"Servo 31",31:"Servo 32"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"Output channels to be transmitted as servo over UAVCAN"},CAN_D1_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},xW={CAN_D2_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"DroneCAN",4:"PiccoloCAN",5:"CANTester",6:"EFI_NWPMU",7:"USD1",8:"KDECAN",10:"Scripting",11:"Benewake",12:"Scripting2"}}},FW={CAN_D2_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},kW={CAN_D2_PC_ECU_ID:{Description:"Node ID to send ECU throttle messages to. Set to zero to disable ECU throttle messages. Set to 255 to broadcast to all ECUs.",DisplayName:"ECU Node ID",Range:{high:"255",low:"0"},User:"Advanced"},CAN_D2_PC_ECU_RT:{Description:"Output rate of ECU command messages",DisplayName:"ECU command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D2_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D2_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D2_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D2_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},BW={CAN_D2_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC",7:"TEST_UAVCAN_FD_ESC"}},CAN_D2_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},zW={CAN_D2_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"Output channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D2_UC_ESC_OF:{Description:"Offset for ESC numbering in DroneCAN ESC RawCommand messages. This allows for more efficient packing of ESC command messages. If your ESCs are on servo functions 5 to 8 and you set this parameter to 4 then the ESC RawCommand will be sent with the first 4 slots filled. This can be used for more efficint usage of CAN bandwidth",DisplayName:"ESC Output channels offset",Range:{high:"18",low:"0"},User:"Advanced"},CAN_D2_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D2_UC_NTF_RT:{Description:"Maximum transmit rate for Notify State Message",DisplayName:"Notify State rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"},CAN_D2_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts",2:"EnableCanfd",3:"IgnoreDNANodeUnhealthy"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D2_UC_POOL:{Description:"Amount of memory in bytes to allocate for the DroneCAN memory pool. More memory is needed for higher CAN bus loads",DisplayName:"CAN pool size",Range:{high:"16384",low:"1024"},User:"Advanced"},CAN_D2_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16",16:"Servo 17",17:"Servo 18",18:"Servo 19",19:"Servo 20",20:"Servo 21",21:"Servo 22",22:"Servo 23",23:"Servo 24",24:"Servo 25",25:"Servo 26",26:"Servo 27",27:"Servo 28",28:"Servo 29",29:"Servo 30",30:"Servo 31",31:"Servo 32"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"Output channels to be transmitted as servo over UAVCAN"},CAN_D2_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},ZW={CAN_D3_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"DroneCAN",4:"PiccoloCAN",5:"CANTester",6:"EFI_NWPMU",7:"USD1",8:"KDECAN",10:"Scripting",11:"Benewake",12:"Scripting2"}}},GW={CAN_D3_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},WW={CAN_D3_PC_ECU_ID:{Description:"Node ID to send ECU throttle messages to. Set to zero to disable ECU throttle messages. Set to 255 to broadcast to all ECUs.",DisplayName:"ECU Node ID",Range:{high:"255",low:"0"},User:"Advanced"},CAN_D3_PC_ECU_RT:{Description:"Output rate of ECU command messages",DisplayName:"ECU command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D3_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D3_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D3_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D3_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},XW={CAN_D3_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC",7:"TEST_UAVCAN_FD_ESC"}},CAN_D3_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},YW={CAN_D3_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"Output channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D3_UC_ESC_OF:{Description:"Offset for ESC numbering in DroneCAN ESC RawCommand messages. This allows for more efficient packing of ESC command messages. If your ESCs are on servo functions 5 to 8 and you set this parameter to 4 then the ESC RawCommand will be sent with the first 4 slots filled. This can be used for more efficint usage of CAN bandwidth",DisplayName:"ESC Output channels offset",Range:{high:"18",low:"0"},User:"Advanced"},CAN_D3_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D3_UC_NTF_RT:{Description:"Maximum transmit rate for Notify State Message",DisplayName:"Notify State rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"},CAN_D3_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts",2:"EnableCanfd",3:"IgnoreDNANodeUnhealthy"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D3_UC_POOL:{Description:"Amount of memory in bytes to allocate for the DroneCAN memory pool. More memory is needed for higher CAN bus loads",DisplayName:"CAN pool size",Range:{high:"16384",low:"1024"},User:"Advanced"},CAN_D3_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16",16:"Servo 17",17:"Servo 18",18:"Servo 19",19:"Servo 20",20:"Servo 21",21:"Servo 22",22:"Servo 23",23:"Servo 24",24:"Servo 25",25:"Servo 26",26:"Servo 27",27:"Servo 28",28:"Servo 29",29:"Servo 30",30:"Servo 31",31:"Servo 32"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"Output channels to be transmitted as servo over UAVCAN"},CAN_D3_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},$W={CAN_P1_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P1_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver",3:"Third driver"}},CAN_P1_FDBITRATE:{Description:"Bit rate can be set up to from 1000000 to 8000000",DisplayName:"Bitrate of CANFD interface",User:"Advanced",Values:{1:"1M",2:"2M",4:"4M",5:"5M",8:"8M"}}},qW={CAN_P2_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P2_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver",3:"Third driver"}},CAN_P2_FDBITRATE:{Description:"Bit rate can be set up to from 1000000 to 8000000",DisplayName:"Bitrate of CANFD interface",User:"Advanced",Values:{1:"1M",2:"2M",4:"4M",5:"5M",8:"8M"}}},KW={CAN_P3_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P3_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver",3:"Third driver"}},CAN_P3_FDBITRATE:{Description:"Bit rate can be set up to from 1000000 to 8000000",DisplayName:"Bitrate of CANFD interface",User:"Advanced",Values:{1:"1M",2:"2M",4:"4M",5:"5M",8:"8M"}}},jW={CAN_SLCAN_CPORT:{Description:"CAN Interface ID to be routed to SLCAN, 0 means no routing",DisplayName:"SLCAN Route",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First interface",2:"Second interface"}},CAN_SLCAN_SDELAY:{Description:"Duration after which slcan starts after setting SERNUM in seconds.",DisplayName:"SLCAN Start Delay",Range:{high:"127",low:"0"},User:"Standard"},CAN_SLCAN_SERNUM:{Description:"Serial Port ID to be used for temporary SLCAN iface, -1 means no temporary serial. This parameter is automatically reset on reboot or on timeout. See CAN_SLCAN_TIMOUT for timeout details",DisplayName:"SLCAN Serial Port",User:"Standard",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},CAN_SLCAN_TIMOUT:{Description:"Duration of inactivity after which SLCAN is switched back to original driver in seconds.",DisplayName:"SLCAN Timeout",Range:{high:"127",low:"0"},User:"Standard"}},QW={CHUTE_ALT_MIN:{Description:"Parachute min altitude above home. Parachute will not be released below this altitude. 0 to disable alt check.",DisplayName:"Parachute min altitude in meters above home",Increment:"1",Range:{high:"32000",low:"0"},Units:"m",User:"Standard"},CHUTE_CRT_SINK:{Description:"Release parachute when critical sink rate is reached",DisplayName:"Critical sink speed rate in m/s to trigger emergency parachute",Increment:"1",Range:{high:"15",low:"0"},Units:"m/s",User:"Standard"},CHUTE_DELAY_MS:{Description:"Delay in millseconds between motor stop and chute release",DisplayName:"Parachute release delay",Increment:"1",Range:{high:"5000",low:"0"},Units:"ms",User:"Standard"},CHUTE_ENABLED:{Description:"Parachute release enabled or disabled",DisplayName:"Parachute release enabled or disabled",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},CHUTE_OPTIONS:{Bitmask:{0:"hold open forever after release"},Description:"Optional behaviour for parachute",DisplayName:"Parachute options",User:"Standard"},CHUTE_SERVO_OFF:{Description:"Parachute Servo PWM value in microseconds when parachute is not released",DisplayName:"Servo OFF PWM value",Increment:"1",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CHUTE_SERVO_ON:{Description:"Parachute Servo PWM value in microseconds when parachute is released",DisplayName:"Parachute Servo ON PWM value",Increment:"1",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CHUTE_TYPE:{Description:"Parachute release mechanism type (relay or servo)",DisplayName:"Parachute release mechanism type (relay or servo)",User:"Standard",Values:{0:"First Relay",1:"Second Relay",2:"Third Relay",3:"Fourth Relay",10:"Servo"}}},JW={COMPASS_AUTODEC:{Description:"Enable or disable the automatic calculation of the declination based on gps location",DisplayName:"Auto Declination",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_AUTO_ROT:{Description:"When enabled this will automatically check the orientation of compasses on successful completion of compass calibration. If set to 2 then external compasses will have their orientation automatically corrected.",DisplayName:"Automatically check orientation",Values:{0:"Disabled",1:"CheckOnly",2:"CheckAndFix",3:"use same tolerance to auto rotate 45 deg rotations"}},COMPASS_CAL_FIT:{Description:"This controls the fitness level required for a successful compass calibration. A lower value makes for a stricter fit (less likely to pass). This is the value used for the primary magnetometer. Other magnetometers get double the value.",DisplayName:"Compass calibration fitness",Increment:"0.1",Range:{high:"32",low:"4"},User:"Advanced",Values:{4:"Very Strict",8:"Strict",16:"Default",32:"Relaxed"}},COMPASS_CUS_PIT:{Description:"Compass mounting position pitch offset. Positive values = pitch up, negative values = pitch down. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation pitch offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_CUS_ROLL:{Description:"Compass mounting position roll offset. Positive values = roll right, negative values = roll left. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation roll offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_CUS_YAW:{Description:"Compass mounting position yaw offset. Positive values = yaw right, negative values = yaw left. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation yaw offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_DEC:{Description:"An angle to compensate between the true north and magnetic north",DisplayName:"Compass declination",Increment:"0.01",Range:{high:"3.142",low:"-3.142"},Units:"rad",User:"Standard"},COMPASS_DEV_ID:{Description:"Compass device id. Automatically detected, do not set manually",DisplayName:"Compass device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID2:{Description:"Second compass's device id. Automatically detected, do not set manually",DisplayName:"Compass2 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID3:{Description:"Third compass's device id. Automatically detected, do not set manually",DisplayName:"Compass3 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID4:{Description:"Extra 4th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass4 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID5:{Description:"Extra 5th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass5 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID6:{Description:"Extra 6th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass6 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID7:{Description:"Extra 7th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass7 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID8:{Description:"Extra 8th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass8 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DIA2_X:{Calibration:"1",Description:"DIA_X in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA2_Y:{Calibration:"1",Description:"DIA_Y in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA2_Z:{Description:"DIA_Z in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal Z component",User:"Advanced"},COMPASS_DIA3_X:{Calibration:"1",Description:"DIA_X in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA3_Y:{Calibration:"1",Description:"DIA_Y in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA3_Z:{Description:"DIA_Z in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal Z component",User:"Advanced"},COMPASS_DIA_X:{Calibration:"1",Description:"DIA_X in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA_Y:{Calibration:"1",Description:"DIA_Y in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA_Z:{Description:"DIA_Z in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal Z component",User:"Advanced"},COMPASS_ENABLE:{Description:"Setting this to Enabled(1) will enable the compass. Setting this to Disabled(0) will disable the compass. Note that this is separate from COMPASS_USE. This will enable the low level senor, and will enable logging of magnetometer data. To use the compass for navigation you must also set COMPASS_USE to 1.",DisplayName:"Enable Compass",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},COMPASS_EXTERN2:{Description:"Configure second compass so it is attached externally. This is auto-detected on most boards. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass2 is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_EXTERN3:{Description:"Configure third compass so it is attached externally. This is auto-detected on most boards. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass3 is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_EXTERNAL:{Description:"Configure compass so it is attached externally. This is auto-detected on most boards. Set to 1 if the compass is externally connected. When externally connected the COMPASS_ORIENT option operates independently of the AHRS_ORIENTATION board orientation option. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_FLTR_RNG:{Description:"This sets the range around the average value that new samples must be within to be accepted. This can help reduce the impact of noise on sensors that are on long I2C cables. The value is a percentage from the average value. A value of zero disables this filter.",DisplayName:"Range in which sample is accepted",Increment:"1",Range:{high:"100",low:"0"},Units:"%"},COMPASS_LEARN:{Description:"Enable or disable the automatic learning of compass offsets. You can enable learning either using a compass-only method that is suitable only for fixed wing aircraft or using the offsets learnt by the active EKF state estimator. If this option is enabled then the learnt offsets are saved when you disarm the vehicle. If InFlight learning is enabled then the compass with automatically start learning once a flight starts (must be armed). While InFlight learning is running you cannot use position control modes.",DisplayName:"Learn compass offsets automatically",User:"Advanced",Values:{0:"Disabled",1:"Internal-Learning",2:"EKF-Learning",3:"InFlight-Learning"}},COMPASS_MOT2_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass2's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT2_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass2's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT2_Z:{Description:"Multiplied by the current throttle and added to compass2's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass3's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass3's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_Z:{Description:"Multiplied by the current throttle and added to compass3's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOTCT:{Calibration:"1",Description:"Set motor interference compensation type to disabled, throttle or current. Do not change manually.",DisplayName:"Motor interference compensation type",User:"Advanced",Values:{0:"Disabled",1:"Use Throttle",2:"Use Current"}},COMPASS_MOT_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to the compass's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to the compass's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT_Z:{Description:"Multiplied by the current throttle and added to the compass's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_ODI2_X:{Calibration:"1",Description:"ODI_X in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI2_Y:{Calibration:"1",Description:"ODI_Y in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI2_Z:{Description:"ODI_Z in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_ODI3_X:{Calibration:"1",Description:"ODI_X in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI3_Y:{Calibration:"1",Description:"ODI_Y in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI3_Z:{Description:"ODI_Z in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_ODI_X:{Calibration:"1",Description:"ODI_X in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI_Y:{Calibration:"1",Description:"ODI_Y in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI_Z:{Description:"ODI_Z in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_OFFS_MAX:{Description:"This sets the maximum allowed compass offset in calibration and arming checks",DisplayName:"Compass maximum offset",Increment:"1",Range:{high:"3000",low:"500"},User:"Advanced"},COMPASS_OFS2_X:{Calibration:"1",Description:"Offset to be added to compass2's x-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS2_Y:{Calibration:"1",Description:"Offset to be added to compass2's y-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS2_Z:{Description:"Offset to be added to compass2's z-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_X:{Calibration:"1",Description:"Offset to be added to compass3's x-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_Y:{Calibration:"1",Description:"Offset to be added to compass3's y-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_Z:{Description:"Offset to be added to compass3's z-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_X:{Calibration:"1",Description:"Offset to be added to the compass x-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_Y:{Calibration:"1",Description:"Offset to be added to the compass y-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_Z:{Description:"Offset to be added to the compass z-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OPTIONS:{Bitmask:{0:"CalRequireGPS"},Description:"This sets options to change the behaviour of the compass",DisplayName:"Compass options",User:"Advanced"},COMPASS_ORIENT:{Description:"The orientation of the first external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used. The label for each option is specified in the order of rotations for that orientation. Firmware versions 4.2 and prior can use a CUSTOM (100) rotation to set the COMPASS_CUS_ROLL/PIT/YAW angles for Compass orientation. Later versions provide two general custom rotations which can be used, Custom 1 and Custom 2, with CUST_1_ROLL/PIT/YAW or CUST_2_ROLL/PIT/YAW angles.",DisplayName:"Compass orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Yaw45Roll180",10:"Yaw90Roll180",11:"Yaw135Roll180",12:"Pitch180",13:"Yaw225Roll180",14:"Yaw270Roll180",15:"Yaw315Roll180",16:"Roll90",17:"Yaw45Roll90",18:"Yaw90Roll90",19:"Yaw135Roll90",20:"Roll270",21:"Yaw45Roll270",22:"Yaw90Roll270",23:"Yaw135Roll270",24:"Pitch90",25:"Pitch270",26:"Yaw90Pitch180",27:"Yaw270Pitch180",28:"Pitch90Roll90",29:"Pitch90Roll180",30:"Pitch90Roll270",31:"Pitch180Roll90",32:"Pitch180Roll270",33:"Pitch270Roll90",34:"Pitch270Roll180",35:"Pitch270Roll270",36:"Yaw90Pitch180Roll90",37:"Yaw270Roll90",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Pitch315Roll90",42:"Roll45",43:"Roll315",100:"Custom 4.1 and older",101:"Custom 1",102:"Custom 2"}},COMPASS_ORIENT2:{Description:"The orientation of a second external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used. The label for each option is specified in the order of rotations for that orientation. Firmware versions 4.2 and prior can use a CUSTOM (100) rotation to set the COMPASS_CUS_ROLL/PIT/YAW angles for Compass orientation. Later versions provide two general custom rotations which can be used, Custom 1 and Custom 2, with CUST_1_ROLL/PIT/YAW or CUST_2_ROLL/PIT/YAW angles.",DisplayName:"Compass2 orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Yaw45Roll180",10:"Yaw90Roll180",11:"Yaw135Roll180",12:"Pitch180",13:"Yaw225Roll180",14:"Yaw270Roll180",15:"Yaw315Roll180",16:"Roll90",17:"Yaw45Roll90",18:"Yaw90Roll90",19:"Yaw135Roll90",20:"Roll270",21:"Yaw45Roll270",22:"Yaw90Roll270",23:"Yaw135Roll270",24:"Pitch90",25:"Pitch270",26:"Yaw90Pitch180",27:"Yaw270Pitch180",28:"Pitch90Roll90",29:"Pitch90Roll180",30:"Pitch90Roll270",31:"Pitch180Roll90",32:"Pitch180Roll270",33:"Pitch270Roll90",34:"Pitch270Roll180",35:"Pitch270Roll270",36:"Yaw90Pitch180Roll90",37:"Yaw270Roll90",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Pitch315Roll90",42:"Roll45",43:"Roll315",100:"Custom 4.1 and older",101:"Custom 1",102:"Custom 2"}},COMPASS_ORIENT3:{Description:"The orientation of a third external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used. The label for each option is specified in the order of rotations for that orientation. Firmware versions 4.2 and prior can use a CUSTOM (100) rotation to set the COMPASS_CUS_ROLL/PIT/YAW angles for Compass orientation. Later versions provide two general custom rotations which can be used, Custom 1 and Custom 2, with CUST_1_ROLL/PIT/YAW or CUST_2_ROLL/PIT/YAW angles.",DisplayName:"Compass3 orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Yaw45Roll180",10:"Yaw90Roll180",11:"Yaw135Roll180",12:"Pitch180",13:"Yaw225Roll180",14:"Yaw270Roll180",15:"Yaw315Roll180",16:"Roll90",17:"Yaw45Roll90",18:"Yaw90Roll90",19:"Yaw135Roll90",20:"Roll270",21:"Yaw45Roll270",22:"Yaw90Roll270",23:"Yaw135Roll270",24:"Pitch90",25:"Pitch270",26:"Yaw90Pitch180",27:"Yaw270Pitch180",28:"Pitch90Roll90",29:"Pitch90Roll180",30:"Pitch90Roll270",31:"Pitch180Roll90",32:"Pitch180Roll270",33:"Pitch270Roll90",34:"Pitch270Roll180",35:"Pitch270Roll270",36:"Yaw90Pitch180Roll90",37:"Yaw270Roll90",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Pitch315Roll90",42:"Roll45",43:"Roll315",100:"Custom 4.1 and older",101:"Custom 1",102:"Custom 2"}},COMPASS_PRIO1_ID:{Description:"Compass device id with 1st order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 1st order priority",RebootRequired:"True",User:"Advanced"},COMPASS_PRIO2_ID:{Description:"Compass device id with 2nd order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 2nd order priority",RebootRequired:"True",User:"Advanced"},COMPASS_PRIO3_ID:{Description:"Compass device id with 3rd order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 3rd order priority",RebootRequired:"True",User:"Advanced"},COMPASS_SCALE:{Description:"Scaling factor for first compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass1 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_SCALE2:{Description:"Scaling factor for 2nd compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass2 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_SCALE3:{Description:"Scaling factor for 3rd compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass3 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_TYPEMASK:{Bitmask:{0:"HMC5883",1:"LSM303D",2:"AK8963",3:"BMM150",4:"LSM9DS1",5:"LIS3MDL",6:"AK09916",7:"IST8310",8:"ICM20948",9:"MMC3416",11:"DroneCAN",12:"QMC5883",14:"MAG3110",15:"IST8308",16:"RM3100",17:"MSP",18:"ExternalAHRS"},Description:"This is a bitmask of driver types to disable. If a driver type is set in this mask then that driver will not try to find a sensor at startup",DisplayName:"Compass disable driver type mask",User:"Advanced"},COMPASS_USE:{Description:"Enable or disable the use of the compass (instead of the GPS) for determining heading",DisplayName:"Use compass for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_USE2:{Description:"Enable or disable the secondary compass for determining heading.",DisplayName:"Compass2 used for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_USE3:{Description:"Enable or disable the tertiary compass for determining heading.",DisplayName:"Compass3 used for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}}},eX={COMPASS_PMOT1_X:{Description:"Compensation for X axis of motor1",DisplayName:"Compass per-motor1 X",User:"Advanced"},COMPASS_PMOT1_Y:{Description:"Compensation for Y axis of motor1",DisplayName:"Compass per-motor1 Y",User:"Advanced"},COMPASS_PMOT1_Z:{Description:"Compensation for Z axis of motor1",DisplayName:"Compass per-motor1 Z",User:"Advanced"},COMPASS_PMOT2_X:{Description:"Compensation for X axis of motor2",DisplayName:"Compass per-motor2 X",User:"Advanced"},COMPASS_PMOT2_Y:{Description:"Compensation for Y axis of motor2",DisplayName:"Compass per-motor2 Y",User:"Advanced"},COMPASS_PMOT2_Z:{Description:"Compensation for Z axis of motor2",DisplayName:"Compass per-motor2 Z",User:"Advanced"},COMPASS_PMOT3_X:{Description:"Compensation for X axis of motor3",DisplayName:"Compass per-motor3 X",User:"Advanced"},COMPASS_PMOT3_Y:{Description:"Compensation for Y axis of motor3",DisplayName:"Compass per-motor3 Y",User:"Advanced"},COMPASS_PMOT3_Z:{Description:"Compensation for Z axis of motor3",DisplayName:"Compass per-motor3 Z",User:"Advanced"},COMPASS_PMOT4_X:{Description:"Compensation for X axis of motor4",DisplayName:"Compass per-motor4 X",User:"Advanced"},COMPASS_PMOT4_Y:{Description:"Compensation for Y axis of motor4",DisplayName:"Compass per-motor4 Y",User:"Advanced"},COMPASS_PMOT4_Z:{Description:"Compensation for Z axis of motor4",DisplayName:"Compass per-motor4 Z",User:"Advanced"},COMPASS_PMOT_EN:{Description:"This enables per-motor compass corrections",DisplayName:"per-motor compass correction enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_PMOT_EXP:{Description:"This is the exponential correction for the power output of the motor for per-motor compass correction",DisplayName:"per-motor exponential correction",Increment:"0.01",Range:{high:"2",low:"0"},User:"Advanced"}},tX={CUST_ROT_ENABLE:{Description:"This enables custom rotations",DisplayName:"Enable Custom rotations",RebootRequired:"True",User:"Standard",Values:{0:"Disable",1:"Enable"}}},iX={CUST_ROT1_PITCH:{Description:"Custom euler pitch, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom pitch",RebootRequired:"True",Units:"deg"},CUST_ROT1_ROLL:{Description:"Custom euler roll, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom roll",RebootRequired:"True",Units:"deg"},CUST_ROT1_YAW:{Description:"Custom euler yaw, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom yaw",RebootRequired:"True",Units:"deg"}},aX={CUST_ROT2_PITCH:{Description:"Custom euler pitch, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom pitch",RebootRequired:"True",Units:"deg"},CUST_ROT2_ROLL:{Description:"Custom euler roll, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom roll",RebootRequired:"True",Units:"deg"},CUST_ROT2_YAW:{Description:"Custom euler yaw, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom yaw",RebootRequired:"True",Units:"deg"}},rX={DID_BARO_ACC:{Description:"Barometer Vertical Accuracy when installed in the vehicle. Note this is dependent upon installation conditions and thus disabled by default",DisplayName:"Barometer vertical accuraacy",Units:"m",User:"Advanced"},DID_CANDRIVER:{Description:"DroneCAN driver index, 0 to disable DroneCAN",DisplayName:"DroneCAN driver number",Values:{0:"Disabled",1:"Driver1",2:"Driver2"}},DID_ENABLE:{Description:"Enable ODID subsystem",DisplayName:"Enable ODID subsystem",Values:{0:"Disabled",1:"Enabled"}},DID_MAVPORT:{Description:"Serial port number to send OpenDroneID MAVLink messages to. Can be -1 if using DroneCAN.",DisplayName:"MAVLink serial port",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},DID_OPTIONS:{Bitmask:{0:"EnforceArming"},Description:"Options for OpenDroneID subsystem. Bit 0 means to enforce arming checks",DisplayName:"OpenDroneID options"}},nX={EAHRS_RATE:{Description:"Requested rate for AHRS device",DisplayName:"AHRS data rate",Units:"Hz",User:"Standard"},EAHRS_TYPE:{Description:"Type of AHRS device",DisplayName:"AHRS type",User:"Standard",Values:{0:"None",1:"VectorNav",2:"LORD"}}},oX={EFI_COEF1:{Description:"Used to calibrate fuel flow for MS protocol (Slope). This should be calculated from a log at constant fuel usage rate. Plot (ECYL[0].InjT*EFI.Rpm)/600.0 to get the duty_cycle. Measure actual fuel usage in cm^3/min, and set EFI_COEF1 = fuel_usage_cm3permin / duty_cycle",DisplayName:"EFI Calibration Coefficient 1",Range:{high:"1",low:"0"},User:"Advanced"},EFI_COEF2:{Description:"Used to calibrate fuel flow for MS protocol (Offset). This can be used to correct for a non-zero offset in the fuel consumption calculation of EFI_COEF1",DisplayName:"EFI Calibration Coefficient 2",Range:{high:"10",low:"0"},User:"Advanced"},EFI_FUEL_DENS:{Description:"Used to calculate fuel consumption",DisplayName:"ECU Fuel Density",Range:{high:"10000",low:"0"},Units:"kg/m/m/m",User:"Advanced"},EFI_TYPE:{Description:"What method of communication is used for EFI #1",DisplayName:"EFI communication type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Serial-MS",2:"NWPMU",3:"Serial-Lutan",5:"DroneCAN",6:"Currawong-ECU",7:"Scripting"}}},sX={EK2_ABIAS_P_NSE:{Description:"This noise controls the growth of the vertical accelerometer delta velocity bias state error estimate. Increasing it makes accelerometer bias estimation faster and noisier.",DisplayName:"Accelerometer bias stability (m/s^3)",Range:{high:"0.005",low:"0.00001"},Units:"m/s/s/s",User:"Advanced"},EK2_ACC_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to accelerometer measurement errors excluding bias. Increasing it makes the flter trust the accelerometer measurements less and other measurements more.",DisplayName:"Accelerometer noise (m/s^2)",Increment:"0.01",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK2_ALT_M_NSE:{Description:"This is the RMS value of noise in the altitude measurement. Increasing it reduces the weighting of the baro measurement and will make the filter respond more slowly to baro measurement errors, but will make it more sensitive to GPS and accelerometer errors.",DisplayName:"Altitude measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_ALT_SOURCE:{Description:"Primary height sensor used by the EKF. If a sensor other than Baro is selected and becomes unavailable, then the Baro sensor will be used as a fallback. NOTE: The EK2_RNG_USE_HGT parameter can be used to switch to range-finder when close to the ground in conjunction with EK2_ALT_SOURCE = 0 or 2 (Baro or GPS).",DisplayName:"Primary altitude sensor source",RebootRequired:"True",User:"Advanced",Values:{0:"Use Baro",1:"Use Range Finder",2:"Use GPS",3:"Use Range Beacon"}},EK2_BCN_DELAY:{Description:"This is the number of msec that the range beacon measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Range beacon measurement delay (msec)",Increment:"10",Range:{high:"127",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_BCN_I_GTE:{Description:"This sets the percentage number of standard deviations applied to the range beacon measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range beacon measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_BCN_M_NSE:{Description:"This is the RMS value of noise in the range beacon measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range beacon measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_CHECK_SCALE:{Description:"This scales the thresholds that are used to check GPS accuracy before it is used by the EKF. A value of 100 is the default. Values greater than 100 increase and values less than 100 reduce the maximum GPS error the EKF will accept. A value of 200 will double the allowable GPS error.",DisplayName:"GPS accuracy check scaler (%)",Range:{high:"200",low:"50"},Units:"%",User:"Advanced"},EK2_EAS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the airspeed measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Airspeed measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_EAS_M_NSE:{Description:"This is the RMS value of noise in equivalent airspeed measurements used by planes. Increasing it reduces the weighting of airspeed measurements and will make wind speed estimates less noisy and slower to converge. Increasing also increases navigation errors when dead-reckoning without GPS measurements.",DisplayName:"Equivalent airspeed measurement noise (m/s)",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK2_ENABLE:{Description:"This enables EKF2. Enabling EKF2 only makes the maths run, it does not mean it will be used for flight control. To use it for flight control set AHRS_EKF_TYPE=2. A reboot or restart will need to be performed after changing the value of EK2_ENABLE for it to take effect.",DisplayName:"Enable EKF2",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},EK2_FLOW_DELAY:{Description:"This is the number of msec that the optical flow measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Optical Flow measurement delay (msec)",Increment:"10",Range:{high:"127",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_FLOW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the optical flow innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Optical Flow measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_FLOW_M_NSE:{Description:"This is the RMS value of noise and errors in optical flow measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Optical flow measurement noise (rad/s)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad/s",User:"Advanced"},EK2_FLOW_USE:{Description:"Controls if the optical flow data is fused into the 24-state navigation estimator OR the 1-state terrain height estimator.",DisplayName:"Optical flow use bitmask",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Navigation",2:"Terrain"}},EK2_GBIAS_P_NSE:{Description:"This state process noise controls growth of the gyro delta angle bias state error estimate. Increasing it makes rate gyro bias estimation faster and noisier.",DisplayName:"Rate gyro bias stability (rad/s/s)",Range:{high:"0.001",low:"0.00001"},Units:"rad/s/s",User:"Advanced"},EK2_GLITCH_RAD:{Description:"This controls the maximum radial uncertainty in position between the value predicted by the filter and the value measured by the GPS before the filter position and velocity states are reset to the GPS. Making this value larger allows the filter to ignore larger GPS glitches but also means that non-GPS errors such as IMU and compass can create a larger error in position before the filter is forced back to the GPS position.",DisplayName:"GPS glitch radius gate size (m)",Increment:"5",Range:{high:"100",low:"10"},Units:"m",User:"Advanced"},EK2_GPS_CHECK:{Bitmask:{0:"NSats",1:"HDoP",2:"speed error",3:"position error",4:"yaw error",5:"pos drift",6:"vert speed",7:"horiz speed"},Description:"This is a 1 byte bitmap controlling which GPS preflight checks are performed. Set to 0 to bypass all checks. Set to 255 perform all checks. Set to 3 to check just the number of satellites and HDoP. Set to 31 for the most rigorous checks that will still allow checks to pass when the copter is moving, eg launch from a boat.",DisplayName:"GPS preflight check",User:"Advanced"},EK2_GPS_TYPE:{Description:"This controls use of GPS measurements : 0 = use 3D velocity & 2D position, 1 = use 2D velocity and 2D position, 2 = use 2D position, 3 = Inhibit GPS use - this can be useful when flying with an optical flow sensor in an environment where GPS quality is poor and subject to large multipath errors.",DisplayName:"GPS mode control",User:"Advanced",Values:{0:"GPS 3D Vel and 2D Pos",1:"GPS 2D vel and 2D pos",2:"GPS 2D pos",3:"No GPS"}},EK2_GSCL_P_NSE:{Description:"This noise controls the rate of gyro scale factor learning. Increasing it makes rate gyro scale factor estimation faster and noisier.",DisplayName:"Rate gyro scale factor stability (1/s)",Range:{high:"0.001",low:"0.000001"},Units:"Hz",User:"Advanced"},EK2_GSF_RST_MAX:{Description:"Sets the maximum number of times the EKF2 will be allowed to reset its yaw to the estimate from the EKF-GSF yaw estimator. No resets will be allowed unless the use of the EKF-GSF yaw estimate is enabled via the EK2_GSF_USE_MASK parameter.",DisplayName:"Maximum number of resets to the EKF-GSF yaw estimate allowed",Increment:"1",Range:{high:"10",low:"1"},RebootRequired:"True",User:"Advanced"},EK2_GSF_RUN_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"A bitmask of which EKF2 instances run an independant EKF-GSF yaw estimator to provide a backup yaw estimate that doesn't rely on magnetometer data. This estimator uses IMU, GPS and, if available, airspeed data. EKF-GSF yaw estimator data for the primary EKF2 instance will be logged as GSF0 and GSF1 messages. Use of the yaw estimate generated by this algorithm is controlled by the EK2_GSF_USE_MASK and EK2_GSF_RST_MAX parameters. To run the EKF-GSF yaw estimator in ride-along and logging only, set EK2_GSF_USE_MASK to 0. ",DisplayName:"Bitmask of which EKF-GSF yaw estimators run",RebootRequired:"True",User:"Advanced"},EK2_GSF_USE_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of which EKF2 instances will use the output from the EKF-GSF yaw estimator that has been turned on by the EK2_GSF_RUN_MASK parameter. If the inertial navigation calculation stops following the GPS, then the vehicle code can request EKF2 to attempt to resolve the issue, either by performing a yaw reset if enabled by this parameter by switching to another EKF2 instance.",DisplayName:"Bitmask of which EKF-GSF yaw estimators are used",RebootRequired:"True",User:"Advanced"},EK2_GYRO_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to gyro measurement errors excluding bias. Increasing it makes the flter trust the gyro measurements less and other measurements more.",DisplayName:"Rate gyro noise (rad/s)",Increment:"0.0001",Range:{high:"0.1",low:"0.0001"},Units:"rad/s",User:"Advanced"},EK2_HGT_DELAY:{Description:"This is the number of msec that the Height measurements lag behind the inertial measurements.",DisplayName:"Height measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_HGT_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the height measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Height measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_HRT_FILT:{Description:"Specifies the crossover frequency of the complementary filter used to calculate the output predictor height rate derivative.",DisplayName:"Height rate filter crossover frequency",Range:{high:"30.0",low:"0.1"},Units:"Hz"},EK2_IMU_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU"},Description:"1 byte bitmap of IMUs to use in EKF2. A separate instance of EKF2 will be started for each IMU selected. Set to 1 to use the first IMU only (default), set to 2 to use the second IMU only, set to 3 to use the first and second IMU. Additional IMU's can be used up to a maximum of 6 if memory and processing resources permit. There may be insufficient memory and processing resources to run multiple instances. If this occurs EKF2 will fail to start.",DisplayName:"Bitmask of active IMUs",RebootRequired:"True",User:"Advanced"},EK2_MAGB_P_NSE:{Description:"This state process noise controls the growth of body magnetic field state error estimates. Increasing it makes magnetometer bias error estimation faster and noisier.",DisplayName:"Body magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK2_MAGE_P_NSE:{Description:"This state process noise controls the growth of earth magnetic field state error estimates. Increasing it makes earth magnetic field estimation faster and noisier.",DisplayName:"Earth magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK2_MAG_CAL:{Description:"This determines when the filter will use the 3-axis magnetometer fusion model that estimates both earth and body fixed magnetic field states, when it will use a simpler magnetic heading fusion model that does not use magnetic field states and when it will use an alternative method of yaw determination to the magnetometer. The 3-axis magnetometer fusion is only suitable for use when the external magnetic field environment is stable. EK2_MAG_CAL = 0 uses heading fusion on ground, 3-axis fusion in-flight, and is the default setting for Plane users. EK2_MAG_CAL = 1 uses 3-axis fusion only when manoeuvring. EK2_MAG_CAL = 2 uses heading fusion at all times, is recommended if the external magnetic field is varying and is the default for rovers. EK2_MAG_CAL = 3 uses heading fusion on the ground and 3-axis fusion after the first in-air field and yaw reset has completed, and is the default for copters. EK2_MAG_CAL = 4 uses 3-axis fusion at all times. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK2_MAG_MASK parameter. NOTE: limited operation without a magnetometer or any other yaw sensor is possible by setting all COMPASS_USE, COMPASS_USE2, COMPASS_USE3, etc parameters to 0 with COMPASS_ENABLE set to 1. If this is done, the EK2_GSF_RUN and EK2_GSF_USE masks must be set to the same as EK2_IMU_MASK.",DisplayName:"Magnetometer default fusion mode",User:"Advanced",Values:{0:"When flying",1:"When manoeuvring",2:"Never",3:"After first climb yaw reset",4:"Always"}},EK2_MAG_EF_LIM:{Description:"This limits the difference between the learned earth magnetic field and the earth field from the world magnetic model tables. A value of zero means to disable the use of the WMM tables.",DisplayName:"EarthField error limit",Range:{high:"500",low:"0"},Units:"mGauss",User:"Advanced"},EK2_MAG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Magnetometer measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_MAG_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of EKF cores that will disable magnetic field states and use simple magnetic heading fusion at all times. This parameter enables specified cores to be used as a backup for flight into an environment with high levels of external magnetic interference which may degrade the EKF attitude estimate when using 3-axis magnetometer fusion. NOTE : Use of a different magnetometer fusion algorithm on different cores makes unwanted EKF core switches due to magnetometer errors more likely.",DisplayName:"Bitmask of active EKF cores that will always use heading fusion",RebootRequired:"True",User:"Advanced"},EK2_MAG_M_NSE:{Description:"This is the RMS value of noise in magnetometer measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Magnetometer measurement noise (Gauss)",Increment:"0.01",Range:{high:"0.5",low:"0.01"},Units:"Gauss",User:"Advanced"},EK2_MAX_FLOW:{Description:"This sets the magnitude maximum optical flow rate in rad/sec that will be accepted by the filter",DisplayName:"Maximum valid optical flow rate",Increment:"0.1",Range:{high:"4.0",low:"1.0"},Units:"rad/s",User:"Advanced"},EK2_NOAID_M_NSE:{Description:"This sets the amount of position variation that the EKF allows for when operating without external measurements (eg GPS or optical flow). Increasing this parameter makes the EKF attitude estimate less sensitive to vehicle manoeuvres but more sensitive to IMU errors.",DisplayName:"Non-GPS operation position uncertainty (m)",Range:{high:"50.0",low:"0.5"},Units:"m",User:"Advanced"},EK2_OGN_HGT_MASK:{Bitmask:{0:"Correct when using Baro height",1:"Correct when using range finder height",2:"Apply corrections to local position"},Description:"When a height sensor other than GPS is used as the primary height source by the EKF, the position of the zero height datum is defined by that sensor and its frame of reference. If a GPS height measurement is also available, then the height of the WGS-84 height datum used by the EKF can be corrected so that the height returned by the getLLH() function is compensated for primary height sensor drift and change in datum over time. The first two bit positions control when the height datum will be corrected. Correction is performed using a Bayes filter and only operates when GPS quality permits. The third bit position controls where the corrections to the GPS reference datum are applied. Corrections can be applied to the local vertical position or to the reported EKF origin height (default).",DisplayName:"Bitmask control of EKF reference height correction",RebootRequired:"True",User:"Advanced"},EK2_POSNE_M_NSE:{Description:"This sets the GPS horizontal position observation noise. Increasing it reduces the weighting of GPS horizontal position measurements.",DisplayName:"GPS horizontal position measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_POS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS position measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS position measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_RNG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the range finder innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range finder measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_RNG_M_NSE:{Description:"This is the RMS value of noise in the range finder measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range finder measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_RNG_USE_HGT:{Description:"Range finder can be used as the primary height source when below this percentage of its maximum range (see RNGFND_MAX_CM). This will not work unless Baro or GPS height is selected as the primary height source vis EK2_ALT_SOURCE = 0 or 2 respectively. This feature should not be used for terrain following as it is designed for vertical takeoff and landing with climb above the range finder use height before commencing the mission, and with horizontal position changes below that height being limited to a flat region around the takeoff and landing point.",DisplayName:"Range finder switch height percentage",Increment:"1",Range:{high:"70",low:"-1"},Units:"%",User:"Advanced"},EK2_RNG_USE_SPD:{Description:"The range finder will not be used as the primary height source when the horizontal ground speed is greater than this value.",DisplayName:"Range finder max ground speed",Increment:"0.5",Range:{high:"6.0",low:"2.0"},Units:"m/s",User:"Advanced"},EK2_TAU_OUTPUT:{Description:"Sets the time constant of the output complementary filter/predictor in centi-seconds.",DisplayName:"Output complementary filter time constant (centi-sec)",Increment:"5",Range:{high:"50",low:"10"},Units:"cs",User:"Advanced"},EK2_TERR_GRAD:{Description:"Specifies the maximum gradient of the terrain below the vehicle assumed when it is fusing range finder or optical flow to estimate terrain height.",DisplayName:"Maximum terrain gradient",Increment:"0.01",Range:{high:"0.2",low:"0"},User:"Advanced"},EK2_VELD_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set vertical velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS vertical velocity measurements.",DisplayName:"GPS vertical velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK2_VELNE_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set horizontal velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS horizontal velocity measurements.",DisplayName:"GPS horizontal velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK2_VEL_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS velocity measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS velocity innovation gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_WIND_PSCALE:{Description:"This controls how much the process noise on the wind states is increased when gaining or losing altitude to take into account changes in wind speed and direction with altitude. Increasing this parameter increases how rapidly the wind states adapt when changing altitude, but does make wind velocity estimation noiser.",DisplayName:"Height rate to wind process noise scaler",Increment:"0.1",Range:{high:"1.0",low:"0.0"},User:"Advanced"},EK2_WIND_P_NSE:{Description:"This state process noise controls the growth of wind state error estimates. Increasing it makes wind estimation faster and noisier.",DisplayName:"Wind velocity process noise (m/s^2)",Increment:"0.1",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK2_YAW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer yaw measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Yaw measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_YAW_M_NSE:{Description:"This is the RMS value of noise in yaw measurements from the magnetometer. Increasing it reduces the weighting on these measurements.",DisplayName:"Yaw measurement noise (rad)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},lX={EK3_ABIAS_P_NSE:{Description:"This noise controls the growth of the vertical accelerometer delta velocity bias state error estimate. Increasing it makes accelerometer bias estimation faster and noisier.",DisplayName:"Accelerometer bias stability (m/s^3)",Range:{high:"0.005",low:"0.00001"},Units:"m/s/s/s",User:"Advanced"},EK3_ACC_BIAS_LIM:{Description:"The accelerometer bias state will be limited to +- this value",DisplayName:"Accelerometer bias limit",Increment:"0.1",Range:{high:"2.5",low:"0.5"},Units:"m/s/s",User:"Advanced"},EK3_ACC_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to accelerometer measurement errors excluding bias. Increasing it makes the flter trust the accelerometer measurements less and other measurements more.",DisplayName:"Accelerometer noise (m/s^2)",Increment:"0.01",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK3_AFFINITY:{Bitmask:{0:"EnableGPSAffinity",1:"EnableBaroAffinity",2:"EnableCompassAffinity",3:"EnableAirspeedAffinity"},Description:"These options control the affinity between sensor instances and EKF cores",DisplayName:"EKF3 Sensor Affinity Options",RebootRequired:"True",User:"Advanced"},EK3_ALT_M_NSE:{Description:"This is the RMS value of noise in the altitude measurement. Increasing it reduces the weighting of the baro measurement and will make the filter respond more slowly to baro measurement errors, but will make it more sensitive to GPS and accelerometer errors.",DisplayName:"Altitude measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_BCN_DELAY:{Description:"This is the number of msec that the range beacon measurements lag behind the inertial measurements.",DisplayName:"Range beacon measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_BCN_I_GTE:{Description:"This sets the percentage number of standard deviations applied to the range beacon measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range beacon measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_BCN_M_NSE:{Description:"This is the RMS value of noise in the range beacon measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range beacon measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_BETA_MASK:{Bitmask:{0:"Always",1:"WhenNoYawSensor"},Description:"1 byte bitmap controlling use of sideslip angle fusion for estimation of non wind states during operation of 'fly forward' vehicle types such as fixed wing planes. By assuming that the angle of sideslip is small, the wind velocity state estimates are corrected whenever the EKF is not dead reckoning (e.g. has an independent velocity or position sensor such as GPS). This behaviour is on by default and cannot be disabled. When the EKF is dead reckoning, the wind states are used as a reference, enabling use of the small angle of sideslip assumption to correct non wind velocity states (eg attitude, velocity, position, etc) and improve navigation accuracy. This behaviour is on by default and cannot be disabled. The behaviour controlled by this parameter is the use of the small angle of sideslip assumption to correct non wind velocity states when the EKF is NOT dead reckoning. This is primarily of benefit to reduce the buildup of yaw angle errors during straight and level flight without a yaw sensor (e.g. magnetometer or dual antenna GPS yaw) provided aerobatic flight maneuvers with large sideslip angles are not performed. The 'always' option might be used where the yaw sensor is intentionally not fitted or disabled. The 'WhenNoYawSensor' option might be used if a yaw sensor is fitted, but protection against in-flight failure and continual rejection by the EKF is desired. For vehicles operated within visual range of the operator performing frequent turning maneuvers, setting this parameter is unnecessary.",DisplayName:"Bitmask controlling sidelip angle fusion",RebootRequired:"True",User:"Advanced"},EK3_CHECK_SCALE:{Description:"This scales the thresholds that are used to check GPS accuracy before it is used by the EKF. A value of 100 is the default. Values greater than 100 increase and values less than 100 reduce the maximum GPS error the EKF will accept. A value of 200 will double the allowable GPS error.",DisplayName:"GPS accuracy check scaler (%)",Range:{high:"200",low:"50"},Units:"%",User:"Advanced"},EK3_DRAG_BCOEF_X:{Description:"Ratio of mass to drag coefficient measured along the X body axis. This parameter enables estimation of wind drift for vehicles with bluff bodies and without propulsion forces in the X and Y direction (eg multicopters). The drag produced by this effect scales with speed squared. Set to a postive value > 1.0 to enable. A starting value is the mass in Kg divided by the frontal area. The predicted drag from the rotors is specified separately by the EK3_DRAG_MCOEF parameter.",DisplayName:"Ballistic coefficient for X axis drag",Range:{high:"1000.0",low:"0.0"},Units:"kg/m/m",User:"Advanced"},EK3_DRAG_BCOEF_Y:{Description:"Ratio of mass to drag coefficient measured along the Y body axis. This parameter enables estimation of wind drift for vehicles with bluff bodies and without propulsion forces in the X and Y direction (eg multicopters). The drag produced by this effect scales with speed squared. Set to a postive value > 1.0 to enable. A starting value is the mass in Kg divided by the side area. The predicted drag from the rotors is specified separately by the EK3_DRAG_MCOEF parameter.",DisplayName:"Ballistic coefficient for Y axis drag",Range:{high:"1000.0",low:"50.0"},Units:"kg/m/m",User:"Advanced"},EK3_DRAG_MCOEF:{Description:"This parameter is used to predict the drag produced by the rotors when flying a multi-copter, enabling estimation of wind drift. The drag produced by this effect scales with speed not speed squared and is produced because some of the air velocity normal to the rotors axis of rotation is lost when passing through the rotor disc which changes the momentum of the airflow causing drag. For unducted rotors the effect is roughly proportional to the area of the propeller blades when viewed side on and changes with different propellers. It is higher for ducted rotors. For example if flying at 15 m/s at sea level conditions produces a rotor induced drag acceleration of 1.5 m/s/s, then EK3_DRAG_MCOEF would be set to 0.1 = (1.5/15.0). Set EK3_MCOEF to a postive value to enable wind estimation using this drag effect. To account for the drag produced by the body which scales with speed squared, see documentation for the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters.",DisplayName:"Momentum coefficient for propeller drag",Increment:"0.01",Range:{high:"1.0",low:"0.0"},Units:"1/s",User:"Advanced"},EK3_DRAG_M_NSE:{Description:"This sets the amount of noise used when fusing X and Y acceleration as an observation that enables esitmation of wind velocity for multi-rotor vehicles. This feature is enabled by the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters",DisplayName:"Observation noise for drag acceleration",Increment:"0.1",Range:{high:"2.0",low:"0.1"},Units:"m/s/s",User:"Advanced"},EK3_EAS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the airspeed measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Airspeed measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_EAS_M_NSE:{Description:"This is the RMS value of noise in equivalent airspeed measurements used by planes. Increasing it reduces the weighting of airspeed measurements and will make wind speed estimates less noisy and slower to converge. Increasing also increases navigation errors when dead-reckoning without GPS measurements.",DisplayName:"Equivalent airspeed measurement noise (m/s)",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK3_ENABLE:{Description:"This enables EKF3. Enabling EKF3 only makes the maths run, it does not mean it will be used for flight control. To use it for flight control set AHRS_EKF_TYPE=3. A reboot or restart will need to be performed after changing the value of EK3_ENABLE for it to take effect.",DisplayName:"Enable EKF3",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},EK3_ERR_THRESH:{Description:"lanes have to be consistently better than the primary by at least this threshold to reduce their overall relativeCoreError, lowering this makes lane switching more sensitive to smaller error differences",DisplayName:"EKF3 Lane Relative Error Sensitivity Threshold",Increment:"0.05",Range:{high:"1",low:"0.05"},User:"Advanced"},EK3_FLOW_DELAY:{Description:"This is the number of msec that the optical flow measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Optical Flow measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_FLOW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the optical flow innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Optical Flow measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_FLOW_M_NSE:{Description:"This is the RMS value of noise and errors in optical flow measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Optical flow measurement noise (rad/s)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad/s",User:"Advanced"},EK3_FLOW_USE:{Description:"Controls if the optical flow data is fused into the 24-state navigation estimator OR the 1-state terrain height estimator.",DisplayName:"Optical flow use bitmask",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Navigation",2:"Terrain"}},EK3_GBIAS_P_NSE:{Description:"This state process noise controls growth of the gyro delta angle bias state error estimate. Increasing it makes rate gyro bias estimation faster and noisier.",DisplayName:"Rate gyro bias stability (rad/s/s)",Range:{high:"0.001",low:"0.00001"},Units:"rad/s/s",User:"Advanced"},EK3_GLITCH_RAD:{Description:"This controls the maximum radial uncertainty in position between the value predicted by the filter and the value measured by the GPS before the filter position and velocity states are reset to the GPS. Making this value larger allows the filter to ignore larger GPS glitches but also means that non-GPS errors such as IMU and compass can create a larger error in position before the filter is forced back to the GPS position.",DisplayName:"GPS glitch radius gate size (m)",Increment:"5",Range:{high:"100",low:"10"},Units:"m",User:"Advanced"},EK3_GND_EFF_DZ:{Description:"This parameter sets the size of the dead zone that is applied to negative baro height spikes that can occur when taking off or landing when a vehicle with lift rotors is operating in ground effect ground effect. Set to about 0.5m less than the amount of negative offset in baro height that occurs just prior to takeoff when lift motors are spooling up. Set to 0 if no ground effect is present.",DisplayName:"Baro height ground effect dead zone",Increment:"0.5",Range:{high:"10.0",low:"0.0"},User:"Advanced"},EK3_GPS_CHECK:{Bitmask:{0:"NSats",1:"HDoP",2:"speed error",3:"position error",4:"yaw error",5:"pos drift",6:"vert speed",7:"horiz speed"},Description:"This is a 1 byte bitmap controlling which GPS preflight checks are performed. Set to 0 to bypass all checks. Set to 255 perform all checks. Set to 3 to check just the number of satellites and HDoP. Set to 31 for the most rigorous checks that will still allow checks to pass when the copter is moving, eg launch from a boat.",DisplayName:"GPS preflight check",User:"Advanced"},EK3_GPS_VACC_MAX:{Description:"Vertical accuracy threshold for GPS as the altitude source. The GPS will not be used as an altitude source if the reported vertical accuracy of the GPS is larger than this threshold, falling back to baro instead. Set to zero to deactivate the threshold check.",DisplayName:"GPS vertical accuracy threshold",Increment:"0.1",Range:{high:"10.0",low:"0.0"},Units:"m",User:"Advanced"},EK3_GSF_RST_MAX:{Description:"Sets the maximum number of times the EKF3 will be allowed to reset its yaw to the estimate from the EKF-GSF yaw estimator. No resets will be allowed unless the use of the EKF-GSF yaw estimate is enabled via the EK3_GSF_USE_MASK parameter.",DisplayName:"Maximum number of resets to the EKF-GSF yaw estimate allowed",Increment:"1",Range:{high:"10",low:"1"},RebootRequired:"True",User:"Advanced"},EK3_GSF_RUN_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of which EKF3 instances run an independant EKF-GSF yaw estimator to provide a backup yaw estimate that doesn't rely on magnetometer data. This estimator uses IMU, GPS and, if available, airspeed data. EKF-GSF yaw estimator data for the primary EKF3 instance will be logged as GSF0 and GSF1 messages. Use of the yaw estimate generated by this algorithm is controlled by the EK3_GSF_USE_MASK and EK3_GSF_RST_MAX parameters. To run the EKF-GSF yaw estimator in ride-along and logging only, set EK3_GSF_USE to 0. ",DisplayName:"Bitmask of which EKF-GSF yaw estimators run",RebootRequired:"True",User:"Advanced"},EK3_GSF_USE_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"A bitmask of which EKF3 instances will use the output from the EKF-GSF yaw estimator that has been turned on by the EK3_GSF_RUN_MASK parameter. If the inertial navigation calculation stops following the GPS, then the vehicle code can request EKF3 to attempt to resolve the issue, either by performing a yaw reset if enabled by this parameter by switching to another EKF3 instance.",DisplayName:"Bitmask of which EKF-GSF yaw estimators are used",RebootRequired:"True",User:"Advanced"},EK3_GYRO_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to gyro measurement errors excluding bias. Increasing it makes the flter trust the gyro measurements less and other measurements more.",DisplayName:"Rate gyro noise (rad/s)",Increment:"0.0001",Range:{high:"0.1",low:"0.0001"},Units:"rad/s",User:"Advanced"},EK3_HGT_DELAY:{Description:"This is the number of msec that the Height measurements lag behind the inertial measurements.",DisplayName:"Height measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_HGT_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the height measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Height measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_HRT_FILT:{Description:"Specifies the crossover frequency of the complementary filter used to calculate the output predictor height rate derivative.",DisplayName:"Height rate filter crossover frequency",Range:{high:"30.0",low:"0.1"},Units:"Hz"},EK3_IMU_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU"},Description:"1 byte bitmap of IMUs to use in EKF3. A separate instance of EKF3 will be started for each IMU selected. Set to 1 to use the first IMU only (default), set to 2 to use the second IMU only, set to 3 to use the first and second IMU. Additional IMU's can be used up to a maximum of 6 if memory and processing resources permit. There may be insufficient memory and processing resources to run multiple instances. If this occurs EKF3 will fail to start.",DisplayName:"Bitmask of active IMUs",RebootRequired:"True",User:"Advanced"},EK3_LOG_LEVEL:{Description:"Determines how verbose the EKF3 streaming logging is. A value of 0 provides full logging(default), a value of 1 only XKF4 scaled innovations are logged, a value of 2 both XKF4 and GSF are logged, and a value of 3 disables all streaming logging of EKF3.",DisplayName:"Logging Level",Increment:"1",Range:{high:"3",low:"0"},User:"Advanced"},EK3_MAGB_P_NSE:{Description:"This state process noise controls the growth of body magnetic field state error estimates. Increasing it makes magnetometer bias error estimation faster and noisier.",DisplayName:"Body magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK3_MAGE_P_NSE:{Description:"This state process noise controls the growth of earth magnetic field state error estimates. Increasing it makes earth magnetic field estimation faster and noisier.",DisplayName:"Earth magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK3_MAG_CAL:{Description:"This determines when the filter will use the 3-axis magnetometer fusion model that estimates both earth and body fixed magnetic field states and when it will use a simpler magnetic heading fusion model that does not use magnetic field states. The 3-axis magnetometer fusion is only suitable for use when the external magnetic field environment is stable. EK3_MAG_CAL = 0 uses heading fusion on ground, 3-axis fusion in-flight, and is the default setting for Plane users. EK3_MAG_CAL = 1 uses 3-axis fusion only when manoeuvring. EK3_MAG_CAL = 2 uses heading fusion at all times, is recommended if the external magnetic field is varying and is the default for rovers. EK3_MAG_CAL = 3 uses heading fusion on the ground and 3-axis fusion after the first in-air field and yaw reset has completed, and is the default for copters. EK3_MAG_CAL = 4 uses 3-axis fusion at all times. EK3_MAG_CAL = 5 uses an external yaw sensor with simple heading fusion. NOTE : Use of simple heading magnetometer fusion makes vehicle compass calibration and alignment errors harder for the EKF to detect which reduces the sensitivity of the Copter EKF failsafe algorithm. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK3_MAG_MASK parameter. EK3_MAG_CAL = 6 uses an external yaw sensor with fallback to compass when the external sensor is not available if we are flying. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK3_MAG_MASK parameter. NOTE: limited operation without a magnetometer or any other yaw sensor is possible by setting all COMPASS_USE, COMPASS_USE2, COMPASS_USE3, etc parameters to 0 and setting COMPASS_ENABLE to 0. If this is done, the EK3_GSF_RUN and EK3_GSF_USE masks must be set to the same as EK3_IMU_MASK. A yaw angle derived from IMU and GPS velocity data using a Gaussian Sum Filter (GSF) will then be used to align the yaw when flight commences and there is sufficient movement.",DisplayName:"Magnetometer default fusion mode",RebootRequired:"True",User:"Advanced",Values:{0:"When flying",1:"When manoeuvring",2:"Never",3:"After first climb yaw reset",4:"Always",5:"Use external yaw sensor (Deprecated in 4.1+ see EK3_SRCn_YAW)",6:"External yaw sensor with compass fallback (Deprecated in 4.1+ see EK3_SRCn_YAW)"}},EK3_MAG_EF_LIM:{Description:"This limits the difference between the learned earth magnetic field and the earth field from the world magnetic model tables. A value of zero means to disable the use of the WMM tables.",DisplayName:"EarthField error limit",Range:{high:"500",low:"0"},Units:"mGauss",User:"Advanced"},EK3_MAG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Magnetometer measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_MAG_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of EKF cores that will disable magnetic field states and use simple magnetic heading fusion at all times. This parameter enables specified cores to be used as a backup for flight into an environment with high levels of external magnetic interference which may degrade the EKF attitude estimate when using 3-axis magnetometer fusion. NOTE : Use of a different magnetometer fusion algorithm on different cores makes unwanted EKF core switches due to magnetometer errors more likely.",DisplayName:"Bitmask of active EKF cores that will always use heading fusion",RebootRequired:"True",User:"Advanced"},EK3_MAG_M_NSE:{Description:"This is the RMS value of noise in magnetometer measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Magnetometer measurement noise (Gauss)",Increment:"0.01",Range:{high:"0.5",low:"0.01"},Units:"Gauss",User:"Advanced"},EK3_MAX_FLOW:{Description:"This sets the magnitude maximum optical flow rate in rad/sec that will be accepted by the filter",DisplayName:"Maximum valid optical flow rate",Increment:"0.1",Range:{high:"4.0",low:"1.0"},Units:"rad/s",User:"Advanced"},EK3_NOAID_M_NSE:{Description:"This sets the amount of position variation that the EKF allows for when operating without external measurements (eg GPS or optical flow). Increasing this parameter makes the EKF attitude estimate less sensitive to vehicle manoeuvres but more sensitive to IMU errors.",DisplayName:"Non-GPS operation position uncertainty (m)",Range:{high:"50.0",low:"0.5"},Units:"m",User:"Advanced"},EK3_OGNM_TEST_SF:{Description:"This parameter is adjust the sensitivity of the on ground not moving test which is used to assist with learning the yaw gyro bias and stopping yaw drift before flight when operating without a yaw sensor. Bigger values allow the detection of a not moving condition with noiser IMU data. Check the XKFM data logged when the vehicle is on ground not moving and adjust the value of OGNM_TEST_SF to be slightly higher than the maximum value of the XKFM.ADR, XKFM.ALR, XKFM.GDR and XKFM.GLR test levels.",DisplayName:"On ground not moving test scale factor",Increment:"0.5",Range:{high:"10.0",low:"1.0"},User:"Advanced"},EK3_OGN_HGT_MASK:{Bitmask:{0:"Correct when using Baro height",1:"Correct when using range finder height",2:"Apply corrections to local position"},Description:"When a height sensor other than GPS is used as the primary height source by the EKF, the position of the zero height datum is defined by that sensor and its frame of reference. If a GPS height measurement is also available, then the height of the WGS-84 height datum used by the EKF can be corrected so that the height returned by the getLLH() function is compensated for primary height sensor drift and change in datum over time. The first two bit positions control when the height datum will be corrected. Correction is performed using a Bayes filter and only operates when GPS quality permits. The third bit position controls where the corrections to the GPS reference datum are applied. Corrections can be applied to the local vertical position or to the reported EKF origin height (default).",DisplayName:"Bitmask control of EKF reference height correction",RebootRequired:"True",User:"Advanced"},EK3_POSNE_M_NSE:{Description:"This sets the GPS horizontal position observation noise. Increasing it reduces the weighting of GPS horizontal position measurements.",DisplayName:"GPS horizontal position measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_POS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS position measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS position measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_PRIMARY:{Description:"The core number (index in IMU mask) that will be used as the primary EKF core on startup. While disarmed the EKF will force the use of this core. A value of 0 corresponds to the first IMU in EK3_IMU_MASK.",DisplayName:"Primary core number",Increment:"1",Range:{high:"2",low:"0"},User:"Advanced"},EK3_RNG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the range finder innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range finder measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_RNG_M_NSE:{Description:"This is the RMS value of noise in the range finder measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range finder measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_RNG_USE_HGT:{Description:"Range finder can be used as the primary height source when below this percentage of its maximum range (see RNGFNDx_MAX_CM) and the primary height source is Baro or GPS (see EK3_SRCx_POSZ). This feature should not be used for terrain following as it is designed for vertical takeoff and landing with climb above the range finder use height before commencing the mission, and with horizontal position changes below that height being limited to a flat region around the takeoff and landing point.",DisplayName:"Range finder switch height percentage",Increment:"1",Range:{high:"70",low:"-1"},Units:"%",User:"Advanced"},EK3_RNG_USE_SPD:{Description:"The range finder will not be used as the primary height source when the horizontal ground speed is greater than this value.",DisplayName:"Range finder max ground speed",Increment:"0.5",Range:{high:"6.0",low:"2.0"},Units:"m/s",User:"Advanced"},EK3_TAU_OUTPUT:{Description:"Sets the time constant of the output complementary filter/predictor in centi-seconds.",DisplayName:"Output complementary filter time constant (centi-sec)",Increment:"5",Range:{high:"50",low:"10"},Units:"cs",User:"Advanced"},EK3_TERR_GRAD:{Description:"Specifies the maximum gradient of the terrain below the vehicle when it is using range finder as a height reference",DisplayName:"Maximum terrain gradient",Increment:"0.01",Range:{high:"0.2",low:"0"},User:"Advanced"},EK3_VELD_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set vertical velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS vertical velocity measurements.",DisplayName:"GPS vertical velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_VELNE_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set horizontal velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS horizontal velocity measurements.",DisplayName:"GPS horizontal velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_VEL_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS velocity measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS velocity innovation gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_VIS_VERR_MAX:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when minimum quality is reported by the sensor. When quality is between max and min, the error will be calculated using linear interpolation between VIS_VERR_MIN and VIS_VERR_MAX.",DisplayName:"Visual odometry maximum velocity error",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK3_VIS_VERR_MIN:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when maximum quality is reported by the sensor. When quality is between max and min, the error will be calculated using linear interpolation between VIS_VERR_MIN and VIS_VERR_MAX.",DisplayName:"Visual odometry minimum velocity error",Increment:"0.05",Range:{high:"0.5",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_WENC_VERR:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when wheel encoder data is being fused.",DisplayName:"Wheel odometry velocity error",Increment:"0.1",Range:{high:"1.0",low:"0.01"},Units:"m/s",User:"Advanced"},EK3_WIND_PSCALE:{Description:"This controls how much the process noise on the wind states is increased when gaining or losing altitude to take into account changes in wind speed and direction with altitude. Increasing this parameter increases how rapidly the wind states adapt when changing altitude, but does make wind velocity estimation noiser.",DisplayName:"Height rate to wind process noise scaler",Increment:"0.1",Range:{high:"2.0",low:"0.0"},User:"Advanced"},EK3_WIND_P_NSE:{Description:"This state process noise controls the growth of wind state error estimates. Increasing it makes wind estimation faster and noisier.",DisplayName:"Wind velocity process noise (m/s^2)",Increment:"0.1",Range:{high:"2.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK3_YAW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer yaw measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Yaw measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_YAW_M_NSE:{Description:"This is the RMS value of noise in yaw measurements from the magnetometer. Increasing it reduces the weighting on these measurements.",DisplayName:"Yaw measurement noise (rad)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},cX={EK3_SRC1_POSXY:{Description:"Position Horizontal Source (Primary)",DisplayName:"Position Horizontal Source (Primary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_POSZ:{Description:"Position Vertical Source",DisplayName:"Position Vertical Source",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_VELXY:{Description:"Velocity Horizontal Source",DisplayName:"Velocity Horizontal Source",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC1_VELZ:{Description:"Velocity Vertical Source",DisplayName:"Velocity Vertical Source",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_YAW:{Description:"Yaw Source",DisplayName:"Yaw Source",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC2_POSXY:{Description:"Position Horizontal Source (Secondary)",DisplayName:"Position Horizontal Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_POSZ:{Description:"Position Vertical Source (Secondary)",DisplayName:"Position Vertical Source (Secondary)",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_VELXY:{Description:"Velocity Horizontal Source (Secondary)",DisplayName:"Velocity Horizontal Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC2_VELZ:{Description:"Velocity Vertical Source (Secondary)",DisplayName:"Velocity Vertical Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_YAW:{Description:"Yaw Source (Secondary)",DisplayName:"Yaw Source (Secondary)",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC3_POSXY:{Description:"Position Horizontal Source (Tertiary)",DisplayName:"Position Horizontal Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_POSZ:{Description:"Position Vertical Source (Tertiary)",DisplayName:"Position Vertical Source (Tertiary)",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_VELXY:{Description:"Velocity Horizontal Source (Tertiary)",DisplayName:"Velocity Horizontal Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC3_VELZ:{Description:"Velocity Vertical Source (Tertiary)",DisplayName:"Velocity Vertical Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_YAW:{Description:"Yaw Source (Tertiary)",DisplayName:"Yaw Source (Tertiary)",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC_OPTIONS:{Bitmask:{0:"FuseAllVelocities"},Description:"EKF Source Options",DisplayName:"EKF Source Options",User:"Advanced"}},dX={ESC_TLM_MAV_OFS:{Description:"Offset to apply to ESC numbers when reporting as ESC_TELEMETRY packets over MAVLink. This allows high numbered motors to be displayed as low numbered ESCs for convenience on GCS displays. A value of 4 would send ESC on output 5 as ESC number 1 in ESC_TELEMETRY packets",DisplayName:"ESC Telemetry mavlink offset",Increment:"1",Range:{high:"31",low:"0"},User:"Standard"}},CX={FENCE_ACTION:{Description:"What action should be taken when fence is breached",DisplayName:"Fence Action",User:"Standard",Values:{0:"Report Only",1:"RTL",6:"Guided",7:"GuidedThrottlePass"}},FENCE_ALT_MAX:{Description:"Maximum altitude allowed before geofence triggers",DisplayName:"Fence Maximum Altitude",Increment:"1",Range:{high:"1000",low:"10"},Units:"m",User:"Standard"},FENCE_ALT_MIN:{Description:"Minimum altitude allowed before geofence triggers",DisplayName:"Fence Minimum Altitude",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FENCE_AUTOENABLE:{Description:"Auto-enable of fence",DisplayName:"Fence Auto-Enable",Increment:"1",Range:{high:"3",low:"0"},User:"Standard",Values:{0:"AutoEnableOff",1:"AutoEnableOnTakeoff",2:"AutoEnableDisableFloorOnLanding",3:"AutoEnableOnlyWhenArmed"}},FENCE_ENABLE:{Description:"Allows you to enable (1) or disable (0) the fence functionality",DisplayName:"Fence enable/disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},FENCE_MARGIN:{Description:"Distance that autopilot's should maintain from the fence to avoid a breach",DisplayName:"Fence Margin",Range:{high:"10",low:"1"},Units:"m",User:"Standard"},FENCE_OPTIONS:{Bitmask:{0:"Disable mode change following fence action until fence breach is cleared"},Description:"0:Disable mode change following fence action until fence breach is cleared",DisplayName:"Fence options",User:"Standard"},FENCE_RADIUS:{Description:"Circle fence radius which when breached will cause an RTL",DisplayName:"Circular Fence Radius",Range:{high:"10000",low:"30"},Units:"m",User:"Standard"},FENCE_RET_ALT:{Description:"Altitude the vehicle will transit to when a fence breach occurs",DisplayName:"Fence Return Altitude",Increment:"1",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},FENCE_RET_RALLY:{Description:"Should the vehicle return to fence return point or rally point",DisplayName:"Fence Return to Rally",Increment:"1",Range:{high:"1",low:"0"},User:"Standard",Values:{0:"Fence Return Point",1:"Nearest Rally Point"}},FENCE_TOTAL:{Description:"Number of polygon points saved in eeprom (do not update manually)",DisplayName:"Fence polygon point total",Range:{high:"20",low:"1"},User:"Standard"},FENCE_TYPE:{Bitmask:{0:"Max altitude",1:"Circle",2:"Polygon",3:"Min altitude"},Description:"Enabled fence types held as bitmask",DisplayName:"Fence Type",User:"Standard"}},mX={FFT_ATT_REF:{Description:"FFT attenuation level in dB for bandwidth calculation and peak detection. The bandwidth is calculated by comparing peak power output with the attenuated version. The default of 15 has shown to be a good compromise in both simulations and real flight.",DisplayName:"FFT attenuation for bandwidth calculation",Range:{high:"100",low:"0"},User:"Advanced"},FFT_BW_HOVER:{Description:"FFT learned bandwidth at hover for the attenuation frequencies.",DisplayName:"FFT learned bandwidth at hover",Range:{high:"200",low:"0"},User:"Advanced"},FFT_ENABLE:{Description:"Enable Gyro FFT analyser",DisplayName:"Enable",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},FFT_FREQ_HOVER:{Description:"The learned hover noise frequency",DisplayName:"FFT learned hover frequency",Range:{high:"250",low:"0"},User:"Advanced"},FFT_HMNC_FIT:{Description:"FFT harmonic fit frequency threshold percentage at which a signal of the appropriate frequency is determined to be the harmonic of another. Signals that have a harmonic relationship that varies at most by this percentage are considered harmonics of each other for the purpose of selecting the harmonic notch frequency. If a match is found then the lower frequency harmonic is always used as the basis for the dynamic harmonic notch. A value of zero completely disables harmonic matching.",DisplayName:"FFT harmonic fit frequency threshold",Range:{high:"100",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_HMNC_PEAK:{Description:"The FFT harmonic peak target that should be returned by FTN1.PkAvg. The resulting value will be used by the harmonic notch if configured to track the FFT frequency. By default the appropriate peak is auto-detected based on the harmonic fit between peaks and the energy-weighted average frequency on roll on pitch is used. Setting this to 1 will always target the highest energy peak. Setting this to 2 will target the highest energy peak that is lower in frequency than the highest energy peak. Setting this to 3 will target the highest energy peak that is higher in frequency than the highest energy peak. Setting this to 4 will target the highest energy peak on the roll axis only and only the roll frequency will be used (some vehicles have a much more pronounced peak on roll). Setting this to 5 will target the highest energy peak on the pitch axis only and only the pitch frequency will be used (some vehicles have a much more pronounced peak on roll).",DisplayName:"FFT harmonic peak target",User:"Advanced",Values:{0:"Auto",1:"Center Frequency",2:"Lower-Shoulder Frequency",3:"Upper-Shoulder Frequency",4:"Roll-Axis",5:"Pitch-Axis"}},FFT_MAXHZ:{Description:"Upper bound of FFT frequency detection in Hz. On smaller vehicles the maximum motor frequency is likely to be significantly higher than for larger vehicles.",DisplayName:"Maximum Frequency",Range:{high:"495",low:"20"},Units:"Hz",User:"Advanced"},FFT_MINHZ:{Description:"Lower bound of FFT frequency detection in Hz. On larger vehicles the minimum motor frequency is likely to be significantly lower than for smaller vehicles.",DisplayName:"Minimum Frequency",Range:{high:"400",low:"20"},Units:"Hz",User:"Advanced"},FFT_NUM_FRAMES:{Description:"Number of output frequency frames to retain and average in order to calculate final frequencies. Averaging output frames can drastically reduce noise and jitter at the cost of latency as long as the input is stable. The default is to perform no averaging. For rapidly changing frequencies (e.g. smaller aircraft) fewer frames should be averaged.",DisplayName:"FFT output frames to retain and average",Range:{high:"8",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_SAMPLE_MODE:{Description:"Sampling mode (and therefore rate). 0: Gyro rate sampling, 1: Fast loop rate sampling, 2: Fast loop rate / 2 sampling, 3: Fast loop rate / 3 sampling. Takes effect on reboot.",DisplayName:"Sample Mode",Range:{high:"4",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_SNR_REF:{Description:"FFT SNR reference threshold in dB at which a signal is determined to be present.",DisplayName:"FFT SNR reference threshold",Range:{high:"100.0",low:"0.0"},User:"Advanced"},FFT_THR_REF:{Description:"FFT learned thrust reference for the hover frequency and FFT minimum frequency.",DisplayName:"FFT learned thrust reference",Range:{high:"0.9",low:"0.01"},User:"Advanced"},FFT_WINDOW_OLAP:{Description:"Percentage of window to be overlapped before another frame is process. Takes effect on reboot. A good default is 50% overlap. Higher overlap results in more processed frames but not necessarily more temporal resolution. Lower overlap results in lost information at the frame edges.",DisplayName:"FFT window overlap",Range:{high:"0.9",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_WINDOW_SIZE:{Description:"Size of window to be used in FFT calculations. Takes effect on reboot. Must be a power of 2 and between 32 and 512. Larger windows give greater frequency resolution but poorer time resolution, consume more CPU time and may not be appropriate for all vehicles. Time and frequency resolution are given by the sample-rate / window-size. Windows of 256 are only really recommended for F7 class boards, windows of 512 or more H7 class.",DisplayName:"FFT window size",Range:{high:"1024",low:"32"},RebootRequired:"True",User:"Advanced"}},uX={FLOW_ADDR:{Description:"This is used to select between multiple possible I2C addresses for some sensor types. For PX4Flow you can choose 0 to 7 for the 8 possible addresses on the I2C bus.",DisplayName:"Address on the bus",Range:{high:"127",low:"0"},User:"Advanced"},FLOW_FXSCALER:{Description:"This sets the parts per thousand scale factor correction applied to the flow sensor X axis optical rate. It can be used to correct for variations in effective focal length. Each positive increment of 1 increases the scale factor applied to the X axis optical flow reading by 0.1%. Negative values reduce the scale factor.",DisplayName:"X axis optical flow scale factor correction",Increment:"1",Range:{high:"+200",low:"-200"},User:"Standard"},FLOW_FYSCALER:{Description:"This sets the parts per thousand scale factor correction applied to the flow sensor Y axis optical rate. It can be used to correct for variations in effective focal length. Each positive increment of 1 increases the scale factor applied to the Y axis optical flow reading by 0.1%. Negative values reduce the scale factor.",DisplayName:"Y axis optical flow scale factor correction",Increment:"1",Range:{high:"+200",low:"-200"},User:"Standard"},FLOW_ORIENT_YAW:{Description:"Specifies the number of centi-degrees that the flow sensor is yawed relative to the vehicle. A sensor with its X-axis pointing to the right of the vehicle X axis has a positive yaw angle.",DisplayName:"Flow sensor yaw alignment",Increment:"10",Range:{high:"+18000",low:"-17999"},Units:"cdeg",User:"Standard"},FLOW_POS_X:{Description:"X position of the optical flow sensor focal point in body frame. Positive X is forward of the origin.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},FLOW_POS_Y:{Description:"Y position of the optical flow sensor focal point in body frame. Positive Y is to the right of the origin.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},FLOW_POS_Z:{Description:"Z position of the optical flow sensor focal point in body frame. Positive Z is down from the origin.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},FLOW_TYPE:{Description:"Optical flow sensor type",DisplayName:"Optical flow sensor type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"PX4Flow",2:"Pixart",3:"Bebop",4:"CXOF",5:"MAVLink",6:"DroneCAN",7:"MSP",8:"UPFLOW"}}},hX={FOLL_ALT_TYPE:{Description:"Follow altitude type",DisplayName:"Follow altitude type",User:"Standard",Values:{0:"absolute",1:"relative"}},FOLL_DIST_MAX:{Description:"Follow distance maximum. targets further than this will be ignored",DisplayName:"Follow distance maximum",Range:{high:"1000",low:"1"},Units:"m",User:"Standard"},FOLL_ENABLE:{Description:"Enabled/disable following a target",DisplayName:"Follow enable/disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},FOLL_OFS_TYPE:{Description:"Follow offset type",DisplayName:"Follow offset type",User:"Standard",Values:{0:"North-East-Down",1:"Relative to lead vehicle heading"}},FOLL_OFS_X:{Description:"Follow offsets in meters north/forward. If positive, this vehicle fly ahead or north of lead vehicle. Depends on FOLL_OFS_TYPE",DisplayName:"Follow offsets in meters north/forward",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FOLL_OFS_Y:{Description:"Follow offsets in meters east/right. If positive, this vehicle will fly to the right or east of lead vehicle. Depends on FOLL_OFS_TYPE",DisplayName:"Follow offsets in meters east/right",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FOLL_OFS_Z:{Description:"Follow offsets in meters down. If positive, this vehicle will fly below the lead vehicle",DisplayName:"Follow offsets in meters down",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FOLL_POS_P:{Description:"Follow position error P gain. Converts the difference between desired vertical speed and actual speed into a desired acceleration that is passed to the throttle acceleration controller",DisplayName:"Follow position error P gain",Increment:"0.01",Range:{high:"1.00",low:"0.01"},User:"Standard"},FOLL_SYSID:{Description:"Follow target's mavlink system id",DisplayName:"Follow target's mavlink system id",Range:{high:"255",low:"0"},User:"Standard"},FOLL_YAW_BEHAVE:{Description:"Follow yaw behaviour",DisplayName:"Follow yaw behaviour",User:"Standard",Values:{0:"None",1:"Face Lead Vehicle",2:"Same as Lead vehicle",3:"Direction of Flight"}}},pX={FRSKY_DNLINK1_ID:{Description:"Change the first extra downlink sensor id (SPort only)",DisplayName:"First downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}},FRSKY_DNLINK2_ID:{Description:"Change the second extra downlink sensor id (SPort only)",DisplayName:"Second downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}},FRSKY_DNLINK_ID:{Description:"Change the default downlink sensor id (SPort only)",DisplayName:"Default downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26",27:"27","-1":"Disable"}},FRSKY_OPTIONS:{Bitmask:{0:"EnableAirspeedAndGroundspeed"},Description:"A bitmask to set some FRSky Telemetry specific options",DisplayName:"FRSky Telemetry Options",User:"Standard"},FRSKY_UPLINK_ID:{Description:"Change the uplink sensor id (SPort only)",DisplayName:"Uplink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}}},fX={GEN_OPTIONS:{Bitmask:{0:"Supress Maintenance-Required Warnings"},Description:"Bitmask of options for generators",DisplayName:"Generator Options",User:"Standard"},GEN_TYPE:{Description:"Generator type",DisplayName:"Generator type",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"IE 650w 800w Fuel Cell",2:"IE 2.4kW Fuel Cell",3:"Richenpower"}}},VX={GPS1_CAN_OVRIDE:{Description:"GPS Node id for first GPS. If 0 the gps will be automatically selected on a first-come-first-GPS basis.",DisplayName:"First DroneCAN GPS NODE ID",User:"Advanced"},GPS2_CAN_OVRIDE:{Description:"GPS Node id for second GPS. If 0 the gps will be automatically selected on a second-come-second-GPS basis.",DisplayName:"Second DroneCAN GPS NODE ID",User:"Advanced"},GPS_AUTO_CONFIG:{Description:"Controls if the autopilot should automatically configure the GPS based on the parameters and default settings",DisplayName:"Automatic GPS configuration",User:"Advanced",Values:{0:"Disables automatic configuration",1:"Enable automatic configuration for Serial GPSes only",2:"Enable automatic configuration for DroneCAN as well"}},GPS_AUTO_SWITCH:{Description:"Automatic switchover to GPS reporting best lock, 1:UseBest selects the GPS with highest status, if both are equal the GPS with highest satellite count is used 4:Use primary if 3D fix or better, will revert to 'UseBest' behaviour if 3D fix is lost on primary",DisplayName:"Automatic Switchover Setting",User:"Advanced",Values:{0:"Use primary",1:"UseBest",2:"Blend",4:"Use primary if 3D fix or better"}},GPS_BLEND_MASK:{Bitmask:{0:"Horiz Pos",1:"Vert Pos",2:"Speed"},Description:"Determines which of the accuracy measures Horizontal position, Vertical Position and Speed are used to calculate the weighting on each GPS receiver when soft switching has been selected by setting GPS_AUTO_SWITCH to 2(Blend)",DisplayName:"Multi GPS Blending Mask",User:"Advanced"},GPS_BLEND_TC:{Description:"Controls the slowest time constant applied to the calculation of GPS position and height offsets used to adjust different GPS receivers for steady state position differences.",DisplayName:"Blending time constant",Range:{high:"30.0",low:"5.0"},Units:"s",User:"Advanced"},GPS_CAN_NODEID1:{Description:"GPS Node id for first-discovered GPS.",DisplayName:"GPS Node ID 1",ReadOnly:"True",User:"Advanced"},GPS_CAN_NODEID2:{Description:"GPS Node id for second-discovered GPS.",DisplayName:"GPS Node ID 2",ReadOnly:"True",User:"Advanced"},GPS_COM_PORT:{Description:"The physical COM port on the connected device, currently only applies to SBF GPS",DisplayName:"GPS physical COM port",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},GPS_COM_PORT2:{Description:"The physical COM port on the connected device, currently only applies to SBF GPS",DisplayName:"GPS physical COM port",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},GPS_DELAY_MS:{Description:"Controls the amount of GPS measurement delay that the autopilot compensates for. Set to zero to use the default delay for the detected GPS type.",DisplayName:"GPS delay in milliseconds",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},GPS_DELAY_MS2:{Description:"Controls the amount of GPS measurement delay that the autopilot compensates for. Set to zero to use the default delay for the detected GPS type.",DisplayName:"GPS 2 delay in milliseconds",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},GPS_DRV_OPTIONS:{Bitmask:{0:"Use UART2 for moving baseline on ublox",1:"Use base station for GPS yaw on SBF",2:"Use baudrate 115200",3:"Use dedicated CAN port b/w GPSes for moving baseline",4:"Use ellipsoid height instead of AMSL for uBlox driver"},Description:"Additional backend specific options",DisplayName:"driver options",User:"Advanced"},GPS_GNSS_MODE:{Bitmask:{0:"GPS",1:"SBAS",2:"Galileo",3:"Beidou",4:"IMES",5:"QZSS",6:"GLONASS"},Description:"Bitmask for what GNSS system to use on the first GPS (all unchecked or zero to leave GPS as configured)",DisplayName:"GNSS system configuration",User:"Advanced"},GPS_GNSS_MODE2:{Bitmask:{0:"GPS",1:"SBAS",2:"Galileo",3:"Beidou",4:"IMES",5:"QZSS",6:"GLONASS"},Description:"Bitmask for what GNSS system to use on the second GPS (all unchecked or zero to leave GPS as configured)",DisplayName:"GNSS system configuration",User:"Advanced"},GPS_INJECT_TO:{Description:"The GGS can send raw serial packets to inject data to multiple GPSes.",DisplayName:"Destination for GPS_INJECT_DATA MAVLink packets",User:"Advanced",Values:{0:"send to first GPS",1:"send to 2nd GPS",127:"send to all"}},GPS_MIN_DGPS:{Description:"Sets the minimum type of differential GPS corrections required before allowing to switch into DGPS mode.",DisplayName:"Minimum Lock Type Accepted for DGPS",RebootRequired:"True",User:"Advanced",Values:{0:"Any",50:"FloatRTK",100:"IntegerRTK"}},GPS_MIN_ELEV:{Description:"This sets the minimum elevation of satellites above the horizon for them to be used for navigation. Setting this to -100 leaves the minimum elevation set to the GPS modules default.",DisplayName:"Minimum elevation",Range:{high:"90",low:"-100"},Units:"deg",User:"Advanced"},GPS_NAVFILTER:{Description:"Navigation filter engine setting",DisplayName:"Navigation filter setting",User:"Advanced",Values:{0:"Portable",2:"Stationary",3:"Pedestrian",4:"Automotive",5:"Sea",6:"Airborne1G",7:"Airborne2G",8:"Airborne4G"}},GPS_POS1_X:{Description:"X position of the first GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS1_Y:{Description:"Y position of the first GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS1_Z:{Description:"Z position of the first GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_X:{Description:"X position of the second GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_Y:{Description:"Y position of the second GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_Z:{Description:"Z position of the second GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_PRIMARY:{Description:"This GPS will be used when GPS_AUTO_SWITCH is 0 and used preferentially with GPS_AUTO_SWITCH = 4.",DisplayName:"Primary GPS",Increment:"1",User:"Advanced",Values:{0:"FirstGPS",1:"SecondGPS"}},GPS_RATE_MS:{Description:"Controls how often the GPS should provide a position update. Lowering below 5Hz(default) is not allowed. Raising the rate above 5Hz usually provides little benefit and for some GPS (eg Ublox M9N) can severely impact performance.",DisplayName:"GPS update rate in milliseconds",Range:{high:"200",low:"50"},Units:"ms",User:"Advanced",Values:{100:"10Hz",125:"8Hz",200:"5Hz"}},GPS_RATE_MS2:{Description:"Controls how often the GPS should provide a position update. Lowering below 5Hz(default) is not allowed. Raising the rate above 5Hz usually provides little benefit and for some GPS (eg Ublox M9N) can severely impact performance.",DisplayName:"GPS 2 update rate in milliseconds",Range:{high:"200",low:"50"},Units:"ms",User:"Advanced",Values:{100:"10Hz",125:"8Hz",200:"5Hz"}},GPS_RAW_DATA:{Description:"Handles logging raw data; on uBlox chips that support raw data this will log RXM messages into logger; on Septentrio this will log on the equipment's SD card and when set to 2, the autopilot will try to stop logging after disarming and restart after arming",DisplayName:"Raw data logging",RebootRequired:"True",User:"Advanced",Values:{0:"Ignore",1:"Always log",2:"Stop logging when disarmed (SBF only)",5:"Only log every five samples (uBlox only)"}},GPS_SAVE_CFG:{Description:"Determines whether the configuration for this GPS should be written to non-volatile memory on the GPS. Currently working for UBlox 6 series and above.",DisplayName:"Save GPS configuration",User:"Advanced",Values:{0:"Do not save config",1:"Save config",2:"Save only when needed"}},GPS_SBAS_MODE:{Description:"This sets the SBAS (satellite based augmentation system) mode if available on this GPS. If set to 2 then the SBAS mode is not changed in the GPS. Otherwise the GPS will be reconfigured to enable/disable SBAS. Disabling SBAS may be worthwhile in some parts of the world where an SBAS signal is available but the baseline is too long to be useful.",DisplayName:"SBAS Mode",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"NoChange"}},GPS_SBP_LOGMASK:{Description:"Masked with the SBP msg_type field to determine whether SBR1/SBR2 data is logged",DisplayName:"Swift Binary Protocol Logging Mask",User:"Advanced",Values:{0:"None (0x0000)","-1":"All (0xFFFF)","-256":"External only (0xFF00)"}},GPS_TYPE:{Description:"GPS type of 1st GPS",DisplayName:"1st GPS type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"AUTO",2:"uBlox",5:"NMEA",6:"SiRF",7:"HIL",8:"SwiftNav",9:"DroneCAN",10:"SBF",11:"GSOF",13:"ERB",14:"MAV",15:"NOVA",16:"HemisphereNMEA",17:"uBlox-MovingBaseline-Base",18:"uBlox-MovingBaseline-Rover",19:"MSP",20:"AllyStar",21:"ExternalAHRS",22:"DroneCAN-MovingBaseline-Base",23:"DroneCAN-MovingBaseline-Rover"}},GPS_TYPE2:{Description:"GPS type of 2nd GPS",DisplayName:"2nd GPS type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"AUTO",2:"uBlox",5:"NMEA",6:"SiRF",7:"HIL",8:"SwiftNav",9:"DroneCAN",10:"SBF",11:"GSOF",13:"ERB",14:"MAV",15:"NOVA",16:"HemisphereNMEA",17:"uBlox-MovingBaseline-Base",18:"uBlox-MovingBaseline-Rover",19:"MSP",20:"AllyStar",21:"ExternalAHRS",22:"DroneCAN-MovingBaseline-Base",23:"DroneCAN-MovingBaseline-Rover"}}},LX={GPS_MB1_OFS_X:{Description:"X position of the base GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_OFS_Y:{Description:"Y position of the base GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Y position offset ",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_OFS_Z:{Description:"Z position of the base GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_TYPE:{Description:"Controls the type of moving base used if using moving base.",DisplayName:"Moving base type",RebootRequired:"True",User:"Advanced",Values:{0:"Relative to alternate GPS instance",1:"RelativeToCustomBase"}}},HX={GPS_MB2_OFS_X:{Description:"X position of the base GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_OFS_Y:{Description:"Y position of the base GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Y position offset ",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_OFS_Z:{Description:"Z position of the base GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_TYPE:{Description:"Controls the type of moving base used if using moving base.",DisplayName:"Moving base type",RebootRequired:"True",User:"Advanced",Values:{0:"Relative to alternate GPS instance",1:"RelativeToCustomBase"}}},MX={GRIP_AUTOCLOSE:{Description:"Time in seconds that gripper close the gripper after opening; 0 to disable",DisplayName:"Gripper Autoclose time",Range:{high:"255",low:"0.25"},Units:"s",User:"Advanced"},GRIP_CAN_ID:{Description:"Refer to https://docs.zubax.com/opengrab_epm_v3#UAVCAN_interface",DisplayName:"EPM UAVCAN Hardpoint ID",Range:{high:"255",low:"0"},User:"Standard"},GRIP_ENABLE:{Description:"Gripper enable/disable",DisplayName:"Gripper Enable/Disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},GRIP_GRAB:{Description:"PWM value in microseconds sent to Gripper to initiate grabbing the cargo",DisplayName:"Gripper Grab PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_NEUTRAL:{Description:"PWM value in microseconds sent to grabber when not grabbing or releasing",DisplayName:"Neutral PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_REGRAB:{Description:"Time in seconds that EPM gripper will regrab the cargo to ensure grip has not weakened; 0 to disable",DisplayName:"EPM Gripper Regrab interval",Range:{high:"255",low:"0"},Units:"s",User:"Advanced"},GRIP_RELEASE:{Description:"PWM value in microseconds sent to Gripper to release the cargo",DisplayName:"Gripper Release PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_TYPE:{Description:"Gripper enable/disable",DisplayName:"Gripper Type",User:"Standard",Values:{0:"None",1:"Servo",2:"EPM"}}},gX={GUIDED_D:{Description:"D Gain which produces an output that is proportional to the rate of change of the error",DisplayName:"PID Derivative Gain"},GUIDED_FF:{Description:"FF Gain which produces an output value that is proportional to the demanded input",DisplayName:"FF FeedForward Gain"},GUIDED_FLTD:{Description:"Derivative filter frequency in Hz",DisplayName:"PID Derivative term filter frequency in Hz",Units:"Hz"},GUIDED_FLTE:{Description:"Error filter frequency in Hz",DisplayName:"PID Error filter frequency in Hz",Units:"Hz"},GUIDED_FLTT:{Description:"Target filter frequency in Hz",DisplayName:"PID Target filter frequency in Hz",Units:"Hz"},GUIDED_I:{Description:"I Gain which produces an output that is proportional to both the magnitude and the duration of the error",DisplayName:"PID Integral Gain"},GUIDED_IMAX:{Description:"The maximum/minimum value that the I term can output",DisplayName:"PID Integral Maximum"},GUIDED_P:{Description:"P Gain which produces an output value that is proportional to the current error value",DisplayName:"PID Proportional Gain"},GUIDED_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"}},AX={ICE_ENABLE:{Description:"This enables internal combustion engine control",DisplayName:"Enable ICEngine control",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},ICE_IDLE_DB:{Description:"This configures the deadband that is tolerated before adjusting the idle setpoint",DisplayName:"Deadband for Idle Governor"},ICE_IDLE_PCT:{Description:"This is the minimum percentage throttle output while running, this includes being disarmed, but not safe",DisplayName:"Throttle percentage for engine idle",Range:{high:"100",low:"0"},User:"Standard"},ICE_IDLE_RPM:{Description:"This configures the RPM that will be commanded by the idle governor. Set to -1 to disable",DisplayName:"RPM Setpoint for Idle Governor",User:"Advanced"},ICE_IDLE_SLEW:{Description:"This configures the slewrate used to adjust the idle setpoint in percentage points per second",DisplayName:"Slew Rate for idle control"},ICE_OPTIONS:{Bitmask:{0:"DisableIgnitionRCFailsafe",1:"DisableRedineGovernor",2:"ThrottleWhileDisarmed"},Description:"Options for ICE control. The DisableIgnitionRCFailsafe option will cause the ignition to be set off on any R/C failsafe. If ThrottleWhileDisarmed is set then throttle control will be allowed while disarmed for planes when in MANUAL mode.",DisplayName:"ICE options"},ICE_PWM_IGN_OFF:{Description:"This is the value sent to the ignition channel when off",DisplayName:"PWM value for ignition off",Range:{high:"2000",low:"1000"},User:"Standard"},ICE_PWM_IGN_ON:{Description:"This is the value sent to the ignition channel when on",DisplayName:"PWM value for ignition on",Range:{high:"2000",low:"1000"},User:"Standard"},ICE_PWM_STRT_OFF:{Description:"This is the value sent to the starter channel when off",DisplayName:"PWM value for starter off",Range:{high:"2000",low:"1000"},User:"Standard"},ICE_PWM_STRT_ON:{Description:"This is the value sent to the starter channel when on",DisplayName:"PWM value for starter on",Range:{high:"2000",low:"1000"},User:"Standard"},ICE_REDLINE_RPM:{Description:"Maximum RPM for the engine provided by the manufacturer. A value of 0 disables this feature. See ICE_OPTIONS to enable or disable the governor.",DisplayName:"RPM of the redline limit for the engine",Range:{high:"2000000",low:"0"},Units:"RPM",User:"Advanced"},ICE_RPM_CHAN:{Description:"This is which of the RPM instances to use for detecting the RPM of the engine",DisplayName:"RPM instance channel to use",User:"Standard",Values:{0:"None",1:"RPM1",2:"RPM2"}},ICE_RPM_THRESH:{Description:"This is the measured RPM above which the engine is considered to be running",DisplayName:"RPM threshold",Range:{high:"100000",low:"100"},User:"Standard"},ICE_STARTCHN_MIN:{Description:"This is a minimum PWM value for engine start channel for an engine stop to be commanded. Setting this value will avoid RC input glitches with low PWM values from causing an unwanted engine stop. A value of zero means any PWM below 1300 triggers an engine stop.",DisplayName:"Input channel for engine start minimum PWM",Range:{high:"1300",low:"0"},User:"Standard"},ICE_STARTER_TIME:{Description:"This is the number of seconds to run the starter when trying to start the engine",DisplayName:"Time to run starter",Range:{high:"5",low:"0.1"},Units:"s",User:"Standard"},ICE_START_CHAN:{Description:"This is an RC input channel for requesting engine start. Engine will try to start when channel is at or above 1700. Engine will stop when channel is at or below 1300. Between 1301 and 1699 the engine will not change state unless a MAVLink command or mission item commands a state change, or the vehicle is disarmed. See ICE_STARTCHN_MIN parameter to change engine stop PWM value and/or to enable debouncing of the START_CH to avoid accidental engine kills due to noise on channel.",DisplayName:"Input channel for engine start",User:"Standard",Values:{0:"None",1:"Chan1",2:"Chan2",3:"Chan3",4:"Chan4",5:"Chan5",6:"Chan6",7:"Chan7",8:"Chan8",9:"Chan9",10:"Chan10",11:"Chan11",12:"Chan12",13:"Chan13",14:"Chan14",15:"Chan15",16:"Chan16"}},ICE_START_DELAY:{Description:"Delay between start attempts",DisplayName:"Time to wait between starts",Range:{high:"10",low:"1"},Units:"s",User:"Standard"},ICE_START_PCT:{Description:"This is the percentage throttle output for engine start",DisplayName:"Throttle percentage for engine start",Range:{high:"100",low:"0"},User:"Standard"}},vX={INS_ACC1_CALTEMP:{Calibration:"1",Description:"Temperature that the 1st accelerometer was calibrated at",DisplayName:"Calibration temperature for 1st accelerometer",Units:"degC",User:"Advanced"},INS_ACC2OFFS_X:{Calibration:"1",Description:"Accelerometer2 offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2OFFS_Y:{Calibration:"1",Description:"Accelerometer2 offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2OFFS_Z:{Calibration:"1",Description:"Accelerometer2 offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2SCAL_X:{Calibration:"1",Description:"Accelerometer2 scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2SCAL_Y:{Calibration:"1",Description:"Accelerometer2 scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2SCAL_Z:{Calibration:"1",Description:"Accelerometer2 scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2_CALTEMP:{Calibration:"1",Description:"Temperature that the 2nd accelerometer was calibrated at",DisplayName:"Calibration temperature for 2nd accelerometer",Units:"degC",User:"Advanced"},INS_ACC2_ID:{Description:"Accelerometer2 sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer2 ID",ReadOnly:"True",User:"Advanced"},INS_ACC3OFFS_X:{Calibration:"1",Description:"Accelerometer3 offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3OFFS_Y:{Calibration:"1",Description:"Accelerometer3 offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3OFFS_Z:{Calibration:"1",Description:"Accelerometer3 offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3SCAL_X:{Calibration:"1",Description:"Accelerometer3 scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3SCAL_Y:{Calibration:"1",Description:"Accelerometer3 scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3SCAL_Z:{Calibration:"1",Description:"Accelerometer3 scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3_CALTEMP:{Calibration:"1",Description:"Temperature that the 3rd accelerometer was calibrated at",DisplayName:"Calibration temperature for 3rd accelerometer",Units:"degC",User:"Advanced"},INS_ACC3_ID:{Description:"Accelerometer3 sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer3 ID",ReadOnly:"True",User:"Advanced"},INS_ACCEL_FILTER:{Description:"Filter cutoff frequency for accelerometers. This can be set to a lower value to try to cope with very high vibration levels in aircraft. A value of zero means no filtering (not recommended!)",DisplayName:"Accel filter cutoff frequency",Range:{high:"256",low:"0"},Units:"Hz",User:"Advanced"},INS_ACCOFFS_X:{Calibration:"1",Description:"Accelerometer offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCOFFS_Y:{Calibration:"1",Description:"Accelerometer offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCOFFS_Z:{Calibration:"1",Description:"Accelerometer offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCSCAL_X:{Calibration:"1",Description:"Accelerometer scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACCSCAL_Y:{Calibration:"1",Description:"Accelerometer scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACCSCAL_Z:{Calibration:"1",Description:"Accelerometer scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC_BODYFIX:{Description:"The body-fixed accelerometer to be used for trim calculation",DisplayName:"Body-fixed accelerometer",User:"Advanced",Values:{1:"IMU 1",2:"IMU 2",3:"IMU 3"}},INS_ACC_ID:{Description:"Accelerometer sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer ID",ReadOnly:"True",User:"Advanced"},INS_ENABLE_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU",6:"SeventhIMU"},Description:"Bitmask of IMUs to enable. It can be used to prevent startup of specific detected IMUs",DisplayName:"IMU enable mask",User:"Advanced"},INS_FAST_SAMPLE:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU"},Description:"Mask of IMUs to enable fast sampling on, if available",DisplayName:"Fast sampling mask",User:"Advanced"},INS_GYR1_CALTEMP:{Calibration:"1",Description:"Temperature that the 1st gyroscope was calibrated at",DisplayName:"Calibration temperature for 1st gyroscope",Units:"degC",User:"Advanced"},INS_GYR2OFFS_X:{Calibration:"1",Description:"Gyro2 sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYR2OFFS_Y:{Calibration:"1",Description:"Gyro2 sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYR2OFFS_Z:{Calibration:"1",Description:"Gyro2 sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYR2_CALTEMP:{Calibration:"1",Description:"Temperature that the 2nd gyroscope was calibrated at",DisplayName:"Calibration temperature for 2nd gyroscope",Units:"degC",User:"Advanced"},INS_GYR2_ID:{Description:"Gyro2 sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro2 ID",ReadOnly:"True",User:"Advanced"},INS_GYR3OFFS_X:{Calibration:"1",Description:"Gyro3 sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYR3OFFS_Y:{Calibration:"1",Description:"Gyro3 sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYR3OFFS_Z:{Calibration:"1",Description:"Gyro3 sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYR3_CALTEMP:{Calibration:"1",Description:"Temperature that the 3rd gyroscope was calibrated at",DisplayName:"Calibration temperature for 3rd gyroscope",Units:"degC",User:"Advanced"},INS_GYR3_ID:{Description:"Gyro3 sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro3 ID",ReadOnly:"True",User:"Advanced"},INS_GYROFFS_X:{Calibration:"1",Description:"Gyro sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYROFFS_Y:{Calibration:"1",Description:"Gyro sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYROFFS_Z:{Calibration:"1",Description:"Gyro sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYRO_FILTER:{Description:"Filter cutoff frequency for gyroscopes. This can be set to a lower value to try to cope with very high vibration levels in aircraft. A value of zero means no filtering (not recommended!)",DisplayName:"Gyro filter cutoff frequency",Range:{high:"256",low:"0"},Units:"Hz",User:"Advanced"},INS_GYRO_RATE:{Description:"Gyro rate for IMUs with fast sampling enabled. The gyro rate is the sample rate at which the IMU filters operate and needs to be at least double the maximum filter frequency. If the sensor does not support the selected rate the next highest supported rate will be used. For IMUs which do not support fast sampling this setting is ignored and the default gyro rate of 1Khz is used.",DisplayName:"Gyro rate for IMUs with Fast Sampling enabled",RebootRequired:"True",User:"Advanced",Values:{0:"1kHz",1:"2kHz",2:"4kHz",3:"8kHz"}},INS_GYR_CAL:{Description:"Conrols when automatic gyro calibration is performed",DisplayName:"Gyro Calibration scheme",User:"Advanced",Values:{0:"Never",1:"Start-up only"}},INS_GYR_ID:{Description:"Gyro sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro ID",ReadOnly:"True",User:"Advanced"},INS_POS1_X:{Description:"X position of the first IMU Accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS1_Y:{Description:"Y position of the first IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS1_Z:{Description:"Z position of the first IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_X:{Description:"X position of the second IMU accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_Y:{Description:"Y position of the second IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_Z:{Description:"Z position of the second IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS3_X:{Description:"X position of the third IMU accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Range:{high:"10",low:"-10"},Units:"m",User:"Advanced"},INS_POS3_Y:{Description:"Y position of the third IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS3_Z:{Description:"Z position of the third IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_STILL_THRESH:{Description:"Threshold to tolerate vibration to determine if vehicle is motionless. This depends on the frame type and if there is a constant vibration due to motors before launch or after landing. Total motionless is about 0.05. Suggested values: Planes/rover use 0.1, multirotors use 1, tradHeli uses 5",DisplayName:"Stillness threshold for detecting if we are moving",Range:{high:"50",low:"0.05"},User:"Advanced"},INS_TCAL_OPTIONS:{Bitmask:{0:"PersistParams"},Description:"This enables optional temperature calibration features. Setting PersistParams will save the accelerometer and temperature calibration parameters in the bootloader sector on the next update of the bootloader.",DisplayName:"Options for temperature calibration",User:"Advanced"},INS_TRIM_OPTION:{Description:"Specifies how the accel cal routine determines the trims",DisplayName:"Accel cal trim option",User:"Advanced",Values:{0:"Don't adjust the trims",1:"Assume first orientation was level",2:"Assume ACC_BODYFIX is perfectly aligned to the vehicle"}},INS_USE:{Description:"Use first IMU for attitude, velocity and position estimates",DisplayName:"Use first IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_USE2:{Description:"Use second IMU for attitude, velocity and position estimates",DisplayName:"Use second IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_USE3:{Description:"Use third IMU for attitude, velocity and position estimates",DisplayName:"Use third IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}}},_X={INS_HNTC2_ATT:{Description:"Harmonic Notch Filter attenuation in dB. Values greater than 40dB will typically produce a hard notch rather than a modest attenuation of motor noise.",DisplayName:"Harmonic Notch Filter attenuation",Range:{high:"50",low:"5"},Units:"dB",User:"Advanced"},INS_HNTC2_BW:{Description:"Harmonic Notch Filter bandwidth in Hz. This is typically set to half the base frequency. The ratio of base frequency to bandwidth determines the notch quality factor and is fixed across harmonics.",DisplayName:"Harmonic Notch Filter bandwidth",Range:{high:"250",low:"5"},Units:"Hz",User:"Advanced"},INS_HNTC2_ENABLE:{Description:"Harmonic Notch Filter enable",DisplayName:"Harmonic Notch Filter enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_HNTC2_FM_RAT:{Description:"The minimum ratio below the configured frequency to take throttle based notch filters when flying at a throttle level below the reference throttle. Note that lower frequency notch filters will have more phase lag. If you want throttle based notch filtering to be effective at a throttle up to 30% below the configured notch frequency then set this parameter to 0.7. The default of 1.0 means the notch will not go below the frequency in the FREQ parameter.",DisplayName:"Throttle notch min freqency ratio",Range:{high:"1.0",low:"0.1"},User:"Advanced"},INS_HNTC2_FREQ:{Description:"Harmonic Notch Filter base center frequency in Hz. This should be set at most half the backend gyro rate (which is typically 1Khz). For helicopters using RPM sensor to dynamically set the notch frequency, use this parameter to provide a lower limit to the dynamic notch filter. Recommend setting it to half the operating rotor speed in Hz.",DisplayName:"Harmonic Notch Filter base frequency",Range:{high:"495",low:"10"},Units:"Hz",User:"Advanced"},INS_HNTC2_HMNCS:{Bitmask:{0:"1st harmonic",1:"2nd harmonic",2:"3rd harmonic",3:"4th hamronic",4:"5th harmonic",5:"6th harmonic",6:"7th harmonic",7:"8th harmonic"},Description:"Bitmask of harmonic frequencies to apply Harmonic Notch Filter to. This option takes effect on the next reboot. A value of 0 disables this filter. The first harmonic refers to the base frequency.",DisplayName:"Harmonic Notch Filter harmonics",RebootRequired:"True",User:"Advanced"},INS_HNTC2_MODE:{Description:"Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based updates should only be used with multicopters.",DisplayName:"Harmonic Notch Filter dynamic frequency tracking mode",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Disabled",1:"Throttle",2:"RPM Sensor",3:"ESC Telemetry",4:"Dynamic FFT",5:"Second RPM Sensor"}},INS_HNTC2_OPTS:{Bitmask:{0:"Double notch",1:"Dynamic harmonic",2:"Update at loop rate",3:"EnableOnAllIMUs",4:"Triple notch"},Description:"Harmonic Notch Filter options. Triple and double-notches can provide deeper attenuation across a wider bandwidth with reduced latency than single notches and are suitable for larger aircraft. Dynamic harmonics attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz. If both double and triple notches are specified only double notches will take effect.",DisplayName:"Harmonic Notch Filter options",RebootRequired:"True",User:"Advanced"},INS_HNTC2_REF:{Description:"A reference value of zero disables dynamic updates on the Harmonic Notch Filter and a positive value enables dynamic updates on the Harmonic Notch Filter. For throttle-based scaling, this parameter is the reference value associated with the specified frequency to facilitate frequency scaling of the Harmonic Notch Filter. For RPM and ESC telemetry based tracking, this parameter is set to 1 to enable the Harmonic Notch Filter using the RPM sensor or ESC telemetry set to measure rotor speed. The sensor data is converted to Hz automatically for use in the Harmonic Notch Filter. This reference value may also be used to scale the sensor data, if required. For example, rpm sensor data is required to measure heli motor RPM. Therefore the reference value can be used to scale the RPM sensor to the rotor RPM.",DisplayName:"Harmonic Notch Filter reference value",Range:{high:"1.0",low:"0.0"},RebootRequired:"True",User:"Advanced"}},SX={INS_HNTCH_ATT:{Description:"Harmonic Notch Filter attenuation in dB. Values greater than 40dB will typically produce a hard notch rather than a modest attenuation of motor noise.",DisplayName:"Harmonic Notch Filter attenuation",Range:{high:"50",low:"5"},Units:"dB",User:"Advanced"},INS_HNTCH_BW:{Description:"Harmonic Notch Filter bandwidth in Hz. This is typically set to half the base frequency. The ratio of base frequency to bandwidth determines the notch quality factor and is fixed across harmonics.",DisplayName:"Harmonic Notch Filter bandwidth",Range:{high:"250",low:"5"},Units:"Hz",User:"Advanced"},INS_HNTCH_ENABLE:{Description:"Harmonic Notch Filter enable",DisplayName:"Harmonic Notch Filter enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_HNTCH_FM_RAT:{Description:"The minimum ratio below the configured frequency to take throttle based notch filters when flying at a throttle level below the reference throttle. Note that lower frequency notch filters will have more phase lag. If you want throttle based notch filtering to be effective at a throttle up to 30% below the configured notch frequency then set this parameter to 0.7. The default of 1.0 means the notch will not go below the frequency in the FREQ parameter.",DisplayName:"Throttle notch min freqency ratio",Range:{high:"1.0",low:"0.1"},User:"Advanced"},INS_HNTCH_FREQ:{Description:"Harmonic Notch Filter base center frequency in Hz. This should be set at most half the backend gyro rate (which is typically 1Khz). For helicopters using RPM sensor to dynamically set the notch frequency, use this parameter to provide a lower limit to the dynamic notch filter. Recommend setting it to half the operating rotor speed in Hz.",DisplayName:"Harmonic Notch Filter base frequency",Range:{high:"495",low:"10"},Units:"Hz",User:"Advanced"},INS_HNTCH_HMNCS:{Bitmask:{0:"1st harmonic",1:"2nd harmonic",2:"3rd harmonic",3:"4th hamronic",4:"5th harmonic",5:"6th harmonic",6:"7th harmonic",7:"8th harmonic"},Description:"Bitmask of harmonic frequencies to apply Harmonic Notch Filter to. This option takes effect on the next reboot. A value of 0 disables this filter. The first harmonic refers to the base frequency.",DisplayName:"Harmonic Notch Filter harmonics",RebootRequired:"True",User:"Advanced"},INS_HNTCH_MODE:{Description:"Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based updates should only be used with multicopters.",DisplayName:"Harmonic Notch Filter dynamic frequency tracking mode",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Disabled",1:"Throttle",2:"RPM Sensor",3:"ESC Telemetry",4:"Dynamic FFT",5:"Second RPM Sensor"}},INS_HNTCH_OPTS:{Bitmask:{0:"Double notch",1:"Dynamic harmonic",2:"Update at loop rate",3:"EnableOnAllIMUs",4:"Triple notch"},Description:"Harmonic Notch Filter options. Triple and double-notches can provide deeper attenuation across a wider bandwidth with reduced latency than single notches and are suitable for larger aircraft. Dynamic harmonics attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz. If both double and triple notches are specified only double notches will take effect.",DisplayName:"Harmonic Notch Filter options",RebootRequired:"True",User:"Advanced"},INS_HNTCH_REF:{Description:"A reference value of zero disables dynamic updates on the Harmonic Notch Filter and a positive value enables dynamic updates on the Harmonic Notch Filter. For throttle-based scaling, this parameter is the reference value associated with the specified frequency to facilitate frequency scaling of the Harmonic Notch Filter. For RPM and ESC telemetry based tracking, this parameter is set to 1 to enable the Harmonic Notch Filter using the RPM sensor or ESC telemetry set to measure rotor speed. The sensor data is converted to Hz automatically for use in the Harmonic Notch Filter. This reference value may also be used to scale the sensor data, if required. For example, rpm sensor data is required to measure heli motor RPM. Therefore the reference value can be used to scale the RPM sensor to the rotor RPM.",DisplayName:"Harmonic Notch Filter reference value",Range:{high:"1.0",low:"0.0"},RebootRequired:"True",User:"Advanced"}},DX={INS_LOG_BAT_CNT:{Description:"Number of samples to take when logging streams of IMU sensor readings. Will be rounded down to a multiple of 32. This option takes effect on the next reboot.",DisplayName:"sample count per batch",Increment:"32",RebootRequired:"True",User:"Advanced"},INS_LOG_BAT_LGCT:{Description:"Number of samples to push to count every INS_LOG_BAT_LGIN",DisplayName:"logging count",Increment:"1"},INS_LOG_BAT_LGIN:{Description:"Interval between pushing samples to the AP_Logger log",DisplayName:"logging interval",Increment:"10",Units:"ms"},INS_LOG_BAT_MASK:{Bitmask:{0:"IMU1",1:"IMU2",2:"IMU3"},Description:"Bitmap of which IMUs to log batch data for. This option takes effect on the next reboot.",DisplayName:"Sensor Bitmask",RebootRequired:"True",User:"Advanced"},INS_LOG_BAT_OPT:{Bitmask:{0:"Sensor-Rate Logging (sample at full sensor rate seen by AP)",1:"Sample post-filtering",2:"Sample pre- and post-filter"},Description:"Options for the BatchSampler.",DisplayName:"Batch Logging Options Mask",User:"Advanced"}},yX={INS_TCAL1_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL1_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL1_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},RX={INS_TCAL2_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL2_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL2_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},bX={INS_TCAL3_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL3_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL3_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},NX={LAND_ABORT_DEG:{Description:"This parameter is used when using a rangefinder during landing for altitude correction from baro drift (RNGFND_LANDING=1) and the altitude correction indicates your actual altitude is higher than the intended slope path. Normally it would pitch down steeply but that can result in a crash with high airspeed so this allows remembering the baro offset and self-abort the landing and come around for another landing with the correct baro offset applied for a perfect slope. An auto-abort go-around will only happen once, next attempt will not auto-abort again. This operation happens entirely automatically in AUTO mode. This value is the delta degrees threshold to trigger the go-around compared to the original slope. Example: if set to 5 deg and the mission planned slope is 15 deg then if the new slope is 21 then it will go-around. Set to 0 to disable. Requires LAND_SLOPE_RCALC > 0.",DisplayName:"Landing auto-abort slope threshold",Increment:"0.1",Range:{high:"90",low:"0"},Units:"deg",User:"Advanced"},LAND_ABORT_THR:{Description:"Allow a landing abort to trigger with an input throttle >= 90%. This works with or without stick-mixing enabled.",DisplayName:"Landing abort using throttle",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},LAND_DISARMDELAY:{Description:"After a landing has completed using a LAND waypoint, automatically disarm after this many seconds have passed. Use 0 to not disarm.",DisplayName:"Landing disarm delay",Increment:"1",Range:{high:"127",low:"0"},Units:"s",User:"Advanced"},LAND_FLAP_PERCNT:{Description:"The amount of flaps (as a percentage) to apply in the landing approach and flare of an automatic landing",DisplayName:"Landing flap percentage",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Advanced"},LAND_FLARE_ALT:{Description:"Altitude in autoland at which to lock heading and flare to the LAND_PITCH_CD pitch. Note that this option is secondary to LAND_FLARE_SEC. For a good landing it preferable that the flare is triggered by LAND_FLARE_SEC.",DisplayName:"Landing flare altitude",Increment:"0.1",Range:{high:"30",low:"0"},Units:"m",User:"Advanced"},LAND_FLARE_SEC:{Description:"Vertical time before landing point at which to lock heading and flare with the motor stopped. This is vertical time, and is calculated based solely on the current height above the ground and the current descent rate. Set to 0 if you only wish to flare based on altitude (see LAND_FLARE_ALT).",DisplayName:"Landing flare time",Increment:"0.1",Range:{high:"10",low:"0"},Units:"s",User:"Advanced"},LAND_OPTIONS:{Bitmask:{0:"honor min throttle during landing flare"},Description:"Bitmask of options to use with landing.",DisplayName:"Landing options bitmask",User:"Advanced"},LAND_PF_ALT:{Description:"Altitude to trigger pre-flare flight stage where LAND_PF_ARSPD controls airspeed. The pre-flare flight stage trigger works just like LAND_FLARE_ALT but higher. Disabled when LAND_PF_ARSPD is 0.",DisplayName:"Landing pre-flare altitude",Increment:"0.1",Range:{high:"30",low:"0"},Units:"m",User:"Advanced"},LAND_PF_ARSPD:{Description:"Desired airspeed during pre-flare flight stage. This is useful to reduce airspeed just before the flare. Use 0 to disable.",DisplayName:"Landing pre-flare airspeed",Increment:"0.1",Range:{high:"30",low:"0"},Units:"m/s",User:"Advanced"},LAND_PF_SEC:{Description:"Vertical time to ground to trigger pre-flare flight stage where LAND_PF_ARSPD controls airspeed. This pre-flare flight stage trigger works just like LAND_FLARE_SEC but earlier. Disabled when LAND_PF_ARSPD is 0.",DisplayName:"Landing pre-flare time",Increment:"0.1",Range:{high:"10",low:"0"},Units:"s",User:"Advanced"},LAND_PITCH_CD:{Description:"Used in autoland to give the minimum pitch in the final stage of landing (after the flare). This parameter can be used to ensure that the final landing attitude is appropriate for the type of undercarriage on the aircraft. Note that it is a minimum pitch only - the landing code will control pitch above this value to try to achieve the configured landing sink rate.",DisplayName:"Landing Pitch",Increment:"10",Range:{high:"2000",low:"-2000"},Units:"cdeg",User:"Advanced"},LAND_SLOPE_RCALC:{Description:"This parameter is used when using a rangefinder during landing for altitude correction from baro drift (RNGFND_LANDING=1) and the altitude correction indicates your altitude is lower than the intended slope path. This value is the threshold of the correction to re-calculate the landing approach slope. Set to zero to keep the original slope all the way down and any detected baro drift will be corrected by pitching/throttling up to snap back to resume the original slope path. Otherwise, when a rangefinder altitude correction exceeds this threshold it will trigger a slope re-calculate to give a shallower slope. This also smoothes out the approach when flying over objects such as trees. Recommend a value of 2m.",DisplayName:"Landing slope re-calc threshold",Increment:"0.5",Range:{high:"5",low:"0"},Units:"m",User:"Advanced"},LAND_THEN_NEUTRL:{Description:"When enabled, after an autoland and auto-disarm via LAND_DISARMDELAY happens then set all servos to neutral. This is helpful when an aircraft has a rough landing upside down or a crazy angle causing the servos to strain.",DisplayName:"Set servos to neutral after landing",User:"Advanced",Values:{0:"Disabled",1:"Servos to Neutral",2:"Servos to Zero PWM"}},LAND_THR_SLEW:{Description:"This parameter sets the slew rate for the throttle during auto landing. When this is zero the THR_SLEWRATE parameter is used during landing. The value is a percentage throttle change per second, so a value of 20 means to advance the throttle over 5 seconds on landing. Values below 50 are not recommended as it may cause a stall when airspeed is low and you can not throttle up fast enough.",DisplayName:"Landing throttle slew rate",Increment:"1",Range:{high:"127",low:"0"},Units:"%",User:"Standard"},LAND_TYPE:{Description:"Specifies the auto-landing type to use",DisplayName:"Auto-landing type",User:"Standard",Values:{0:"Standard Glide Slope",1:"Deepstall"}}},wX={LAND_DS_ABORTALT:{Description:"The minimum altitude which the aircraft must be above to abort a deepstall landing",DisplayName:"Deepstall minimum abort altitude",Range:{high:"50",low:"0"},Units:"m",User:"Advanced"},LAND_DS_AIL_SCL:{Description:"A scalar to reduce or increase the aileron control",DisplayName:"Aileron landing gain scalaing",Range:{high:"2.0",low:"0"},User:"Advanced"},LAND_DS_APP_EXT:{Description:"The horizontal distance from which the aircraft will approach before the stall",DisplayName:"Deepstall approach extension",Range:{high:"200",low:"10"},Units:"m",User:"Advanced"},LAND_DS_ARSP_MAX:{Description:"The maximum aispeed where the deepstall steering controller is allowed to have control",DisplayName:"Deepstall enabled airspeed",Range:{high:"20",low:"5"},Units:"m/s",User:"Advanced"},LAND_DS_ARSP_MIN:{Description:"Deepstall lowest airspeed where the deepstall controller isn't allowed full control",DisplayName:"Deepstall minimum derating airspeed",Range:{high:"20",low:"5"},Units:"m/s",User:"Advanced"},LAND_DS_D:{Description:"D gain",DisplayName:"D gain",User:"Standard"},LAND_DS_ELEV_PWM:{Description:"The PWM value in microseconds for the elevator at full deflection in deepstall",DisplayName:"Deepstall elevator PWM",Range:{high:"2100",low:"900"},Units:"PWM",User:"Advanced"},LAND_DS_I:{Description:"I gain",DisplayName:"I gain",User:"Standard"},LAND_DS_IMAX:{Description:"Maximum integrator value",DisplayName:"IMax",User:"Standard"},LAND_DS_L1:{Description:"Deepstall L1 navigational controller period",DisplayName:"Deepstall L1 period",Range:{high:"50",low:"5"},Units:"s",User:"Advanced"},LAND_DS_L1_I:{Description:"Deepstall L1 integratior gain",DisplayName:"Deepstall L1 I gain",Range:{high:"1",low:"0"},User:"Advanced"},LAND_DS_L1_TCON:{Description:"Time constant for deepstall L1 control",DisplayName:"Deepstall L1 time constant",Range:{high:"1",low:"0"},Units:"s",User:"Advanced"},LAND_DS_P:{Description:"P gain",DisplayName:"P gain",User:"Standard"},LAND_DS_SLEW_SPD:{Description:"The speed at which the elevator slews to deepstall",DisplayName:"Deepstall slew speed",Range:{high:"2",low:"0"},Units:"s",User:"Advanced"},LAND_DS_SLOPE_A:{Description:"The a component of distance = a*wind + b",DisplayName:"Deepstall slope a",User:"Advanced"},LAND_DS_SLOPE_B:{Description:"The a component of distance = a*wind + b",DisplayName:"Deepstall slope b",User:"Advanced"},LAND_DS_V_DWN:{Description:"The downward velocity of the aircraft while stalled",DisplayName:"Deepstall velocity down",Range:{high:"20",low:"0"},Units:"m/s",User:"Advanced"},LAND_DS_V_FWD:{Description:"The forward velocity of the aircraft while stalled",DisplayName:"Deepstall forward velocity",Range:{high:"20",low:"0"},Units:"m/s",User:"Advanced"},LAND_DS_YAW_LIM:{Description:"The yaw rate limit while navigating in deepstall",DisplayName:"Deepstall yaw rate limit",Range:{high:"90",low:"0"},Units:"deg/s",User:"Advanced"}},TX={LGR_DEPLOY_ALT:{Description:"Altitude where the landing gear will be deployed. This should be lower than the RETRACT_ALT. If zero then altitude is not used for deploying landing gear. Only applies when vehicle is armed.",DisplayName:"Landing gear deployment altitude",Increment:"1",Range:{high:"1000",low:"0"},Units:"m",User:"Standard"},LGR_DEPLOY_PIN:{Description:`Pin number to use for detection of gear deployment. If set to -1 feedback is disabled. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Chassis deployment feedback pin",RebootRequired:"True",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},LGR_DEPLOY_POL:{Description:"Polarity for feedback pin. If this is 1 then the pin should be high when gear are deployed. If set to 0 then then deployed gear level is low.",DisplayName:"Chassis deployment feedback pin polarity",User:"Standard",Values:{0:"Low",1:"High"}},LGR_ENABLE:{Description:"Enable landing gear control",DisplayName:"Enable landing gear",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},LGR_OPTIONS:{Bitmask:{0:"Retract after Takeoff",1:"Deploy during Land"},Description:"Options to retract or deploy landing gear in Auto or Guided mode",DisplayName:"Landing gear auto retract/deploy options",User:"Standard"},LGR_RETRACT_ALT:{Description:"Altitude where the landing gear will be retracted. This should be higher than the DEPLOY_ALT. If zero then altitude is not used for retracting landing gear. Only applies when vehicle is armed.",DisplayName:"Landing gear retract altitude",Increment:"1",Range:{high:"1000",low:"0"},Units:"m",User:"Standard"},LGR_STARTUP:{Description:"Landing Gear Startup behaviour control",DisplayName:"Landing Gear Startup position",User:"Standard",Values:{0:"WaitForPilotInput",1:"Retract",2:"Deploy"}},LGR_WOW_PIN:{Description:`Pin number to use for feedback of weight on wheels condition. If set to -1 feedback is disabled. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Weight on wheels feedback pin",RebootRequired:"True",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},LGR_WOW_POL:{Description:"Polarity for feedback pin. If this is 1 then the pin should be high when there is weight on wheels. If set to 0 then then weight on wheels level is low.",DisplayName:"Weight on wheels feedback pin polarity",User:"Standard",Values:{0:"Low",1:"High"}}},EX={LOG_BACKEND_TYPE:{Bitmask:{0:"File",1:"MAVLink",2:"Block"},Description:"Bitmap of what Logger backend types to enable. Block-based logging is available on SITL and boards with dataflash chips. Multiple backends can be selected.",DisplayName:"AP_Logger Backend Storage type",User:"Standard"},LOG_BLK_RATEMAX:{Description:"This sets the maximum rate that streaming log messages will be logged to the mavlink backend. A value of zero means that rate limiting is disabled.",DisplayName:"Maximum logging rate for block backend",Increment:"0.1",Range:{high:"1000",low:"0"},Units:"Hz",User:"Standard"},LOG_DISARMED:{Description:"If LOG_DISARMED is set to 1 then logging will be enabled while disarmed. This can make for very large logfiles but can help a lot when tracking down startup issues",DisplayName:"Enable logging while disarmed",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},LOG_FILE_BUFSIZE:{Description:'The File and Block backends use a buffer to store data before writing to the block device. Raising this value may reduce "gaps" in your SD card logging. This buffer size may be reduced depending on available memory. PixHawk requires at least 4 kilobytes. Maximum value available here is 64 kilobytes.',DisplayName:"Maximum AP_Logger File and Block Backend buffer size (in kilobytes)",User:"Standard"},LOG_FILE_DSRMROT:{Description:"When set, the current log file is closed when the vehicle is disarmed. If LOG_DISARMED is set then a fresh log will be opened. Applies to the File and Block logging backends.",DisplayName:"Stop logging to current file on disarm",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},LOG_FILE_MB_FREE:{Description:"Set this such that the free space is larger than your largest typical flight log",DisplayName:"Old logs on the SD card will be deleted to maintain this amount of free space",Range:{high:"1000",low:"10"},Units:"MB",User:"Standard"},LOG_FILE_RATEMAX:{Description:"This sets the maximum rate that streaming log messages will be logged to the file backend. A value of zero means that rate limiting is disabled.",DisplayName:"Maximum logging rate for file backend",Increment:"0.1",Range:{high:"1000",low:"0"},Units:"Hz",User:"Standard"},LOG_FILE_TIMEOUT:{Description:"This controls the amount of time before failing writes to a log file cause the file to be closed and logging stopped.",DisplayName:"Timeout before giving up on file writes",Units:"s",User:"Standard"},LOG_MAV_BUFSIZE:{Description:"Maximum amount of memory to allocate to AP_Logger-over-mavlink",DisplayName:"Maximum AP_Logger MAVLink Backend buffer size",Units:"kB",User:"Advanced"},LOG_MAV_RATEMAX:{Description:"This sets the maximum rate that streaming log messages will be logged to the mavlink backend. A value of zero means that rate limiting is disabled.",DisplayName:"Maximum logging rate for mavlink backend",Increment:"0.1",Range:{high:"1000",low:"0"},Units:"Hz",User:"Standard"},LOG_REPLAY:{Description:"If LOG_REPLAY is set to 1 then the EKF2 state estimator will log detailed information needed for diagnosing problems with the Kalman filter. It is suggested that you also raise LOG_FILE_BUFSIZE to give more buffer space for logging and use a high quality microSD card to ensure no sensor data is lost",DisplayName:"Enable logging of information needed for Replay",User:"Standard",Values:{0:"Disabled",1:"Enabled"}}},PX={MIS_OPTIONS:{Bitmask:{0:"Clear Mission on reboot",1:"Use distance to land calc on battery failsafe",2:"ContinueAfterLand"},Description:"Bitmask of what options to use in missions.",DisplayName:"Mission options bitmask",User:"Advanced"},MIS_RESTART:{Description:"Controls mission starting point when entering Auto mode (either restart from beginning of mission or resume from last command run)",DisplayName:"Mission Restart when entering Auto mode",User:"Advanced",Values:{0:"Resume Mission",1:"Restart Mission"}},MIS_TOTAL:{Description:"The number of mission mission items that has been loaded by the ground station. Do not change this manually.",DisplayName:"Total mission commands",Increment:"1",Range:{high:"32766",low:"0"},ReadOnly:"True",User:"Advanced"}},IX={MNT1_DEFLT_MODE:{Description:"Mount default operating mode on startup and after control is returned from autopilot",DisplayName:"Mount default operating mode",User:"Standard",Values:{0:"Retracted",1:"Neutral",2:"MavLink Targeting",3:"RC Targeting",4:"GPS Point",6:"Home Location"}},MNT1_LEAD_PTCH:{Description:"Servo mount pitch angle output leads the vehicle angle by this amount of time based on current pitch rate. Increase until the servo is responsive but does not overshoot",DisplayName:"Mount Pitch stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT1_LEAD_RLL:{Description:"Servo mount roll angle output leads the vehicle angle by this amount of time based on current roll rate. Increase until the servo is responsive but does not overshoot",DisplayName:"Mount Roll stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT1_NEUTRAL_X:{Description:"Mount roll angle when in neutral position",DisplayName:"Mount roll angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_NEUTRAL_Y:{Description:"Mount pitch angle when in neutral position",DisplayName:"Mount pitch angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_NEUTRAL_Z:{Description:"Mount yaw angle when in neutral position",DisplayName:"Mount yaw angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_PITCH_MAX:{Description:"Mount Pitch angle maximum",DisplayName:"Mount Pitch angle maximum",Increment:"1",Range:{high:"90",low:"-90"},Units:"deg",User:"Standard"},MNT1_PITCH_MIN:{Description:"Mount Pitch angle minimum",DisplayName:"Mount Pitch angle minimum",Increment:"1",Range:{high:"90",low:"-90"},Units:"deg",User:"Standard"},MNT1_RC_RATE:{Description:"Pilot rate control's maximum rate. Set to zero to use angle control",DisplayName:"Mount RC Rate",Increment:"1",Range:{high:"90",low:"0"},Units:"deg/s",User:"Standard"},MNT1_RETRACT_X:{Description:"Mount roll angle when in retracted position",DisplayName:"Mount roll angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_RETRACT_Y:{Description:"Mount pitch angle when in retracted position",DisplayName:"Mount pitch angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_RETRACT_Z:{Description:"Mount yaw angle when in retracted position",DisplayName:"Mount yaw angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_ROLL_MAX:{Description:"Mount Roll angle maximum",DisplayName:"Mount Roll angle maximum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT1_ROLL_MIN:{Description:"Mount Roll angle minimum",DisplayName:"Mount Roll angle minimum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT1_TYPE:{Description:"Mount Type",DisplayName:"Mount Type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"Servo",2:"3DR Solo",3:"Alexmos Serial",4:"SToRM32 MAVLink",5:"SToRM32 Serial",6:"Gremsy",7:"BrushlessPWM"}},MNT1_YAW_MAX:{Description:"Mount Yaw angle maximum",DisplayName:"Mount Yaw angle maximum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT1_YAW_MIN:{Description:"Mount Yaw angle minimum",DisplayName:"Mount Yaw angle minimum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"}},OX={MNT2_DEFLT_MODE:{Description:"Mount default operating mode on startup and after control is returned from autopilot",DisplayName:"Mount default operating mode",User:"Standard",Values:{0:"Retracted",1:"Neutral",2:"MavLink Targeting",3:"RC Targeting",4:"GPS Point",6:"Home Location"}},MNT2_LEAD_PTCH:{Description:"Servo mount pitch angle output leads the vehicle angle by this amount of time based on current pitch rate. Increase until the servo is responsive but does not overshoot",DisplayName:"Mount Pitch stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT2_LEAD_RLL:{Description:"Servo mount roll angle output leads the vehicle angle by this amount of time based on current roll rate. Increase until the servo is responsive but does not overshoot",DisplayName:"Mount Roll stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT2_NEUTRAL_X:{Description:"Mount roll angle when in neutral position",DisplayName:"Mount roll angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_NEUTRAL_Y:{Description:"Mount pitch angle when in neutral position",DisplayName:"Mount pitch angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_NEUTRAL_Z:{Description:"Mount yaw angle when in neutral position",DisplayName:"Mount yaw angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_PITCH_MAX:{Description:"Mount Pitch angle maximum",DisplayName:"Mount Pitch angle maximum",Increment:"1",Range:{high:"90",low:"-90"},Units:"deg",User:"Standard"},MNT2_PITCH_MIN:{Description:"Mount Pitch angle minimum",DisplayName:"Mount Pitch angle minimum",Increment:"1",Range:{high:"90",low:"-90"},Units:"deg",User:"Standard"},MNT2_RC_RATE:{Description:"Pilot rate control's maximum rate. Set to zero to use angle control",DisplayName:"Mount RC Rate",Increment:"1",Range:{high:"90",low:"0"},Units:"deg/s",User:"Standard"},MNT2_RETRACT_X:{Description:"Mount roll angle when in retracted position",DisplayName:"Mount roll angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_RETRACT_Y:{Description:"Mount pitch angle when in retracted position",DisplayName:"Mount pitch angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_RETRACT_Z:{Description:"Mount yaw angle when in retracted position",DisplayName:"Mount yaw angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_ROLL_MAX:{Description:"Mount Roll angle maximum",DisplayName:"Mount Roll angle maximum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT2_ROLL_MIN:{Description:"Mount Roll angle minimum",DisplayName:"Mount Roll angle minimum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT2_TYPE:{Description:"Mount Type",DisplayName:"Mount Type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"Servo",2:"3DR Solo",3:"Alexmos Serial",4:"SToRM32 MAVLink",5:"SToRM32 Serial",6:"Gremsy",7:"BrushlessPWM"}},MNT2_YAW_MAX:{Description:"Mount Yaw angle maximum",DisplayName:"Mount Yaw angle maximum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT2_YAW_MIN:{Description:"Mount Yaw angle minimum",DisplayName:"Mount Yaw angle minimum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"}},UX={MSP_OPTIONS:{Bitmask:{0:"EnableTelemetryMode",1:"DisableDJIWorkarounds",2:"EnableBTFLFonts"},Description:"A bitmask to set some MSP specific options",DisplayName:"MSP OSD Options",User:"Standard"},MSP_OSD_NCELLS:{Description:"Used for average cell voltage calculation",DisplayName:"Cell count override",User:"Standard",Values:{0:"Auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14"}}},xX={NAVL1_DAMPING:{Description:"Damping ratio for L1 control. Increase this in increments of 0.05 if you are getting overshoot in path tracking. You should not need a value below 0.7 or above 0.85.",DisplayName:"L1 control damping ratio",Increment:"0.05",Range:{high:"1.0",low:"0.6"},User:"Advanced"},NAVL1_LIM_BANK:{Description:"The sealevel bank angle limit for a continous loiter. (Used to calculate airframe loading limits at higher altitudes). Setting to 0, will instead just scale the loiter radius directly",DisplayName:"Loiter Radius Bank Angle Limit",Range:{high:"89",low:"0"},Units:"deg",User:"Advanced"},NAVL1_PERIOD:{Description:"Period in seconds of L1 tracking loop. This parameter is the primary control for agressiveness of turns in auto mode. This needs to be larger for less responsive airframes. The default of 20 is quite conservative, but for most RC aircraft will lead to reasonable flight. For smaller more agile aircraft a value closer to 15 is appropriate, or even as low as 10 for some very agile aircraft. When tuning, change this value in small increments, as a value that is much too small (say 5 or 10 below the right value) can lead to very radical turns, and a risk of stalling.",DisplayName:"L1 control period",Increment:"1",Range:{high:"60",low:"1"},Units:"s",User:"Standard"},NAVL1_XTRACK_I:{Description:"Crosstrack error integrator gain. This gain is applied to the crosstrack error to ensure it converges to zero. Set to zero to disable. Smaller values converge slower, higher values will cause crosstrack error oscillation.",DisplayName:"L1 control crosstrack integrator gain",Increment:"0.01",Range:{high:"0.1",low:"0"},User:"Advanced"}},FX={NTF_BUZZ_ON_LVL:{Description:"Specifies pin level that indicates buzzer should play",DisplayName:"Buzzer-on pin logic level",User:"Advanced",Values:{0:"LowIsOn",1:"HighIsOn"}},NTF_BUZZ_PIN:{Description:`Enables to connect active buzzer to arbitrary pin. Requires 3-pin buzzer or additional MOSFET! Some the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Buzzer pin",User:"Advanced",Values:{0:"Disabled"}},NTF_BUZZ_TYPES:{Bitmask:{0:"Built-in buzzer",1:"DShot",2:"DroneCAN"},Description:"Controls what types of Buzzer will be enabled",DisplayName:"Buzzer Driver Types",User:"Advanced"},NTF_BUZZ_VOLUME:{Description:"Control the volume of the buzzer",DisplayName:"Buzzer volume",Range:{high:"100",low:"0"},Units:"%"},NTF_DISPLAY_TYPE:{Description:"This sets up the type of on-board I2C display. Disabled by default.",DisplayName:"Type of on-board I2C display",User:"Advanced",Values:{0:"Disable",1:"ssd1306",2:"sh1106",10:"SITL"}},NTF_LED_BRIGHT:{Description:"Select the RGB LED brightness level. When USB is connected brightness will never be higher than low regardless of the setting.",DisplayName:"LED Brightness",User:"Advanced",Values:{0:"Off",1:"Low",2:"Medium",3:"High"}},NTF_LED_LEN:{Description:"The number of Serial LED's to use for notifications (NeoPixel's and ProfiLED)",DisplayName:"Serial LED String Length",Range:{high:"32",low:"1"},RebootRequired:"True",User:"Advanced"},NTF_LED_OVERRIDE:{Description:'Specifies the source for the colours and brightness for the LED. OutbackChallenge conforms to the MedicalExpress (https://uavchallenge.org/medical-express/) rules, essentially "Green" is disarmed (safe-to-approach), "Red" is armed (not safe-to-approach). Traffic light is a simplified color set, red when armed, yellow when the safety switch is not surpressing outputs (but disarmed), and green when outputs are surpressed and disarmed, the LED will blink faster if disarmed and failing arming checks.',DisplayName:"Specifies colour source for the RGBLed",User:"Advanced",Values:{0:"Standard",1:"MAVLink/Scripting/AP_Periph",2:"OutbackChallenge",3:"TrafficLight"}},NTF_LED_TYPES:{Bitmask:{0:"Built-in LED",1:"Internal ToshibaLED",2:"External ToshibaLED",3:"External PCA9685",4:"Oreo LED",5:"DroneCAN",6:"NCP5623 External",7:"NCP5623 Internal",8:"NeoPixel",9:"ProfiLED",10:"Scripting",11:"DShot",12:"ProfiLED_SPI"},Description:"Controls what types of LEDs will be enabled",DisplayName:"LED Driver Types",User:"Advanced"},NTF_OREO_THEME:{Description:"Enable/Disable Solo Oreo LED driver, 0 to disable, 1 for Aircraft theme, 2 for Rover theme",DisplayName:"OreoLED Theme",User:"Advanced",Values:{0:"Disabled",1:"Aircraft",2:"Rover"}}},kX={OSD_ARM_SCR:{Description:"Screen to be shown on Arm event. Zero to disable the feature.",DisplayName:"Arm screen",Range:{high:"4",low:"0"},User:"Standard"},OSD_BTN_DELAY:{Description:"Debounce time in ms for stick commanded parameter navigation.",DisplayName:"Button delay",Range:{high:"3000",low:"0"},User:"Advanced"},OSD_CELL_COUNT:{Description:"Used for average cell voltage display. -1 disables, 0 uses cell count autodetection for well charged LIPO/LIION batteries at connection, other values manually select cell count used.",DisplayName:"Battery cell count",Increment:"1",User:"Advanced"},OSD_CHAN:{Description:"This sets the channel used to switch different OSD screens.",DisplayName:"Screen switch transmitter channel",User:"Standard",Values:{0:"Disable",5:"Chan5",6:"Chan6",7:"Chan7",8:"Chan8",9:"Chan9",10:"Chan10",11:"Chan11",12:"Chan12",13:"Chan13",14:"Chan14",15:"Chan15",16:"Chan16"}},OSD_DSARM_SCR:{Description:"Screen to be shown on disarm event. Zero to disable the feature.",DisplayName:"Disarm screen",Range:{high:"4",low:"0"},User:"Standard"},OSD_FONT:{Description:"This sets which OSD font to use. It is an integer from 0 to the number of fonts available",DisplayName:"OSD Font",RebootRequired:"True",User:"Standard"},OSD_FS_SCR:{Description:"Screen to be shown on failsafe event. Zero to disable the feature.",DisplayName:"Failsafe screen",Range:{high:"4",low:"0"},User:"Standard"},OSD_H_OFFSET:{Description:"Sets horizontal offset of the osd inside image",DisplayName:"OSD horizontal offset",Range:{high:"63",low:"0"},RebootRequired:"True",User:"Standard"},OSD_MSG_TIME:{Description:"Sets message duration seconds",DisplayName:"Message display duration in seconds",Range:{high:"20",low:"1"},User:"Standard"},OSD_OPTIONS:{Bitmask:{0:"UseDecimalPack",1:"InvertedWindPointer",2:"InvertedAHRoll",3:"Convert feet to miles at 5280ft instead of 10000ft",4:"DisableCrosshair"},Description:"This sets options that change the display",DisplayName:"OSD Options",User:"Standard"},OSD_SW_METHOD:{Description:"This sets the method used to switch different OSD screens.",DisplayName:"Screen switch method",User:"Standard",Values:{0:"switch to next screen if channel value was changed",1:"select screen based on pwm ranges specified for each screen",2:"switch to next screen after low to high transition and every 1s while channel value is high"}},OSD_TYPE:{Description:"OSD type. TXONLY makes the OSD parameter selection available to other modules even if there is no native OSD support on the board, for instance CRSF.",DisplayName:"OSD type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"MAX7456",2:"SITL",3:"MSP",4:"TXONLY"}},OSD_UNITS:{Description:"Sets the units to use in displaying items",DisplayName:"Display Units",User:"Standard",Values:{0:"Metric",1:"Imperial",2:"SI",3:"Aviation"}},OSD_V_OFFSET:{Description:"Sets vertical offset of the osd inside image",DisplayName:"OSD vertical offset",Range:{high:"31",low:"0"},RebootRequired:"True",User:"Standard"},OSD_W_AVGCELLV:{Description:"Set level at which AVGCELLV item will flash",DisplayName:"AVGCELLV warn level",Range:{high:"100",low:"0"},User:"Standard"},OSD_W_BATVOLT:{Description:"Set level at which BAT_VOLT item will flash",DisplayName:"BAT_VOLT warn level",Range:{high:"100",low:"0"},User:"Standard"},OSD_W_NSAT:{Description:"Set level at which NSAT item will flash",DisplayName:"NSAT warn level",Range:{high:"30",low:"1"},User:"Standard"},OSD_W_RESTVOLT:{Description:"Set level at which RESTVOLT item will flash",DisplayName:"RESTVOLT warn level",Range:{high:"100",low:"0"},User:"Standard"},OSD_W_RSSI:{Description:"Set level at which RSSI item will flash",DisplayName:"RSSI warn level (in %)",Range:{high:"99",low:"0"},User:"Standard"},OSD_W_TERR:{Description:"Set level below which TER_HGT item will flash. -1 disables.",DisplayName:"Terrain warn level",Range:{high:"3000",low:"-1"},Units:"m",User:"Standard"}},BX={OSD1_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD1_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD1_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD1_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD1_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD1_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD1_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD1_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD1_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD1_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD1_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD1_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD1_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD1_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD1_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD1_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD1_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD1_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD1_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD1_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD1_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD1_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD1_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD1_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD1_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD1_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD1_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD1_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD1_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD1_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD1_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD1_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD1_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD1_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD1_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD1_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD1_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD1_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD1_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD1_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD1_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD1_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD1_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD1_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD1_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD1_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD1_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD1_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD1_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD1_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD1_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD1_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD1_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD1_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD1_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD1_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD1_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD1_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD1_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD1_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD1_FONT:{Description:"Sets the font index for this screen (MSP DisplayPort only)",DisplayName:"Sets the font index for this screen (MSP DisplayPort only)",Range:{high:"15",low:"0"},User:"Standard"},OSD1_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD1_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD1_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD1_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD1_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD1_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD1_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD1_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD1_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD1_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD1_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD1_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD1_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD1_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD1_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD1_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD1_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD1_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD1_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD1_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD1_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD1_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD1_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD1_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD1_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD1_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD1_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD1_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD1_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD1_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD1_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD1_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD1_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD1_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD1_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD1_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD1_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD1_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD1_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD1_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD1_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD1_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD1_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD1_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD1_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD1_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD1_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD1_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD1_TXT_RES:{Description:"Sets the overlay text resolution for this screen to either LD 30x16 or HD 50x18 (MSP DisplayPort only)",DisplayName:"Sets the overlay text resolution (MSP DisplayPort only)",User:"Standard",Values:{0:"30x16",1:"50x18"}},OSD1_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD1_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD1_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD1_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD1_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD1_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD1_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD1_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD1_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD1_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},zX={OSD2_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD2_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD2_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD2_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD2_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD2_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD2_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD2_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD2_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD2_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD2_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD2_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD2_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD2_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD2_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD2_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD2_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD2_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD2_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD2_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD2_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD2_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD2_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD2_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD2_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD2_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD2_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD2_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD2_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD2_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD2_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD2_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD2_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD2_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD2_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD2_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD2_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD2_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD2_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD2_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD2_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD2_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD2_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD2_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD2_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD2_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD2_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD2_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD2_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD2_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD2_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD2_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD2_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD2_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD2_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD2_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD2_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD2_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD2_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD2_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD2_FONT:{Description:"Sets the font index for this screen (MSP DisplayPort only)",DisplayName:"Sets the font index for this screen (MSP DisplayPort only)",Range:{high:"15",low:"0"},User:"Standard"},OSD2_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD2_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD2_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD2_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD2_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD2_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD2_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD2_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD2_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD2_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD2_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD2_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD2_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD2_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD2_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD2_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD2_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD2_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD2_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD2_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD2_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD2_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD2_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD2_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD2_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD2_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD2_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD2_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD2_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD2_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD2_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD2_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD2_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD2_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD2_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD2_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD2_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD2_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD2_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD2_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD2_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD2_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD2_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD2_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD2_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD2_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD2_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD2_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD2_TXT_RES:{Description:"Sets the overlay text resolution for this screen to either LD 30x16 or HD 50x18 (MSP DisplayPort only)",DisplayName:"Sets the overlay text resolution (MSP DisplayPort only)",User:"Standard",Values:{0:"30x16",1:"50x18"}},OSD2_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD2_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD2_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD2_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD2_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD2_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD2_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD2_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD2_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD2_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},ZX={OSD3_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD3_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD3_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD3_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD3_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD3_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD3_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD3_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD3_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD3_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD3_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD3_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD3_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD3_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD3_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD3_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD3_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD3_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD3_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD3_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD3_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD3_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD3_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD3_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD3_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD3_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD3_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD3_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD3_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD3_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD3_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD3_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD3_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD3_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD3_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD3_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD3_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD3_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD3_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD3_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD3_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD3_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD3_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD3_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD3_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD3_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD3_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD3_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD3_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD3_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD3_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD3_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD3_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD3_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD3_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD3_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD3_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD3_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD3_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD3_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD3_FONT:{Description:"Sets the font index for this screen (MSP DisplayPort only)",DisplayName:"Sets the font index for this screen (MSP DisplayPort only)",Range:{high:"15",low:"0"},User:"Standard"},OSD3_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD3_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD3_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD3_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD3_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD3_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD3_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD3_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD3_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD3_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD3_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD3_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD3_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD3_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD3_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD3_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD3_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD3_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD3_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD3_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD3_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD3_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD3_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD3_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD3_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD3_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD3_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD3_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD3_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD3_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD3_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD3_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD3_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD3_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD3_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD3_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD3_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD3_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD3_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD3_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD3_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD3_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD3_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD3_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD3_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD3_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD3_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD3_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD3_TXT_RES:{Description:"Sets the overlay text resolution for this screen to either LD 30x16 or HD 50x18 (MSP DisplayPort only)",DisplayName:"Sets the overlay text resolution (MSP DisplayPort only)",User:"Standard",Values:{0:"30x16",1:"50x18"}},OSD3_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD3_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD3_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD3_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD3_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD3_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD3_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD3_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD3_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD3_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},GX={OSD4_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD4_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD4_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD4_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD4_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD4_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD4_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD4_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD4_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD4_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD4_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD4_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD4_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD4_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD4_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD4_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD4_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD4_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD4_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD4_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD4_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD4_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD4_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD4_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD4_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD4_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD4_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD4_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD4_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD4_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD4_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD4_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD4_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD4_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD4_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD4_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD4_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD4_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD4_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD4_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD4_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD4_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD4_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD4_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD4_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD4_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD4_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD4_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD4_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD4_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD4_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD4_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD4_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD4_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD4_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD4_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD4_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD4_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD4_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD4_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD4_FONT:{Description:"Sets the font index for this screen (MSP DisplayPort only)",DisplayName:"Sets the font index for this screen (MSP DisplayPort only)",Range:{high:"15",low:"0"},User:"Standard"},OSD4_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD4_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD4_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD4_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD4_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD4_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD4_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD4_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD4_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD4_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD4_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD4_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD4_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD4_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD4_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD4_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD4_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD4_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD4_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD4_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD4_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD4_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD4_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD4_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD4_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD4_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD4_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD4_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD4_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD4_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD4_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD4_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD4_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD4_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD4_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD4_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD4_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD4_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD4_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD4_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD4_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD4_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD4_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD4_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD4_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD4_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD4_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD4_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD4_TXT_RES:{Description:"Sets the overlay text resolution for this screen to either LD 30x16 or HD 50x18 (MSP DisplayPort only)",DisplayName:"Sets the overlay text resolution (MSP DisplayPort only)",User:"Standard",Values:{0:"30x16",1:"50x18"}},OSD4_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD4_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD4_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD4_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD4_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD4_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD4_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD4_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD4_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD4_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},WX={OSD5_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD5_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD5_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_SAVE_X:{Description:"Horizontal position of Save button on screen",DisplayName:"SAVE_X",Range:{high:"25",low:"0"},User:"Advanced"},OSD5_SAVE_Y:{Description:"Vertical position of Save button on screen",DisplayName:"SAVE_Y",Range:{high:"15",low:"0"},User:"Advanced"}},XX={OSD5_PARAM1_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM1_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM1_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM1_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM1_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM1_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM1_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM1_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM1_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM1_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},YX={OSD5_PARAM2_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM2_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM2_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM2_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM2_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM2_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM2_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM2_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM2_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM2_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},$X={OSD5_PARAM3_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM3_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM3_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM3_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM3_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM3_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM3_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM3_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM3_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM3_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},qX={OSD5_PARAM4_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM4_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM4_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM4_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM4_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM4_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM4_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM4_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM4_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM4_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},KX={OSD5_PARAM5_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM5_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM5_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM5_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM5_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM5_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM5_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM5_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM5_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM5_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},jX={OSD5_PARAM6_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM6_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM6_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM6_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM6_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM6_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM6_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM6_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM6_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM6_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},QX={OSD5_PARAM7_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM7_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM7_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM7_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM7_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM7_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM7_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM7_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM7_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM7_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},JX={OSD5_PARAM8_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM8_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM8_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM8_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM8_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM8_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM8_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM8_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM8_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM8_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},eY={OSD5_PARAM9_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM9_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM9_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM9_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM9_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM9_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM9_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM9_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM9_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM9_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},tY={OSD6_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD6_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD6_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_SAVE_X:{Description:"Horizontal position of Save button on screen",DisplayName:"SAVE_X",Range:{high:"25",low:"0"},User:"Advanced"},OSD6_SAVE_Y:{Description:"Vertical position of Save button on screen",DisplayName:"SAVE_Y",Range:{high:"15",low:"0"},User:"Advanced"}},iY={OSD6_PARAM1_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM1_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM1_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM1_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM1_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM1_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM1_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM1_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM1_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM1_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},aY={OSD6_PARAM2_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM2_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM2_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM2_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM2_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM2_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM2_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM2_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM2_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM2_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},rY={OSD6_PARAM3_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM3_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM3_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM3_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM3_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM3_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM3_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM3_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM3_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM3_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},nY={OSD6_PARAM4_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM4_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM4_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM4_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM4_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM4_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM4_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM4_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM4_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM4_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},oY={OSD6_PARAM5_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM5_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM5_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM5_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM5_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM5_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM5_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM5_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM5_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM5_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},sY={OSD6_PARAM6_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM6_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM6_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM6_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM6_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM6_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM6_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM6_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM6_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM6_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},lY={OSD6_PARAM7_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM7_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM7_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM7_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM7_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM7_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM7_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM7_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM7_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM7_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},cY={OSD6_PARAM8_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM8_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM8_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM8_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM8_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM8_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM8_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM8_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM8_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM8_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},dY={OSD6_PARAM9_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM9_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM9_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM9_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM9_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM9_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM9_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM9_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM9_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM9_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},CY={PTCH2SRV_RLL:{Description:"Gain added to pitch to keep aircraft from descending or ascending in turns. Increase in increments of 0.05 to reduce altitude loss. Decrease for altitude gain.",DisplayName:"Roll compensation",Increment:"0.05",Range:{high:"1.5",low:"0.7"},User:"Standard"},PTCH2SRV_RMAX_DN:{Description:"This sets the maximum nose down pitch rate that the attitude controller will demand (degrees/sec) in angle stabilized modes. Setting it to zero disables the limit.",DisplayName:"Pitch down max rate",Increment:"1",Range:{high:"100",low:"0"},Units:"deg/s",User:"Advanced"},PTCH2SRV_RMAX_UP:{Description:"This sets the maximum nose up pitch rate that the attitude controller will demand (degrees/sec) in angle stabilized modes. Setting it to zero disables the limit.",DisplayName:"Pitch up max rate",Increment:"1",Range:{high:"100",low:"0"},Units:"deg/s",User:"Advanced"},PTCH2SRV_TCONST:{Description:"Time constant in seconds from demanded to achieved pitch angle. Most models respond well to 0.5. May be reduced for faster responses, but setting lower than a model can achieve will not help.",DisplayName:"Pitch Time Constant",Increment:"0.1",Range:{high:"1.0",low:"0.4"},Units:"s",User:"Advanced"},PTCH_RATE_D:{Description:"Pitch axis rate controller D gain. Compensates for short-term change in desired roll rate vs actual roll rate",DisplayName:"Pitch axis rate controller D gain",Increment:"0.001",Range:{high:"0.03",low:"0.001"},User:"Standard"},PTCH_RATE_FF:{Description:"Pitch axis rate controller feed forward",DisplayName:"Pitch axis rate controller feed forward",Increment:"0.001",Range:{high:"3.0",low:"0"},User:"Standard"},PTCH_RATE_FLTD:{Description:"Pitch axis rate controller derivative frequency in Hz",DisplayName:"Pitch axis rate controller derivative frequency in Hz",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Standard"},PTCH_RATE_FLTE:{Description:"Pitch axis rate controller error frequency in Hz",DisplayName:"Pitch axis rate controller error frequency in Hz",Increment:"1",Range:{high:"50",low:"2"},Units:"Hz",User:"Standard"},PTCH_RATE_FLTT:{Description:"Pitch axis rate controller target frequency in Hz",DisplayName:"Pitch axis rate controller target frequency in Hz",Increment:"1",Range:{high:"50",low:"2"},Units:"Hz",User:"Standard"},PTCH_RATE_I:{Description:"Pitch axis rate controller I gain. Corrects long-term difference in desired roll rate vs actual roll rate",DisplayName:"Pitch axis rate controller I gain",Increment:"0.01",Range:{high:"0.6",low:"0.01"},User:"Standard"},PTCH_RATE_IMAX:{Description:"Pitch axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Pitch axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},PTCH_RATE_P:{Description:"Pitch axis rate controller P gain. Converts the difference between desired roll rate and actual roll rate into a motor speed output",DisplayName:"Pitch axis rate controller P gain",Increment:"0.005",Range:{high:"0.35",low:"0.08"},User:"Standard"},PTCH_RATE_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Pitch slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"}},mY={ACRO_LOCKING:{Description:"Enable attitude locking when sticks are released",DisplayName:"ACRO mode attitude locking",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},ACRO_PITCH_RATE:{Description:"The maximum pitch rate at full stick deflection in ACRO mode",DisplayName:"ACRO mode pitch rate",Increment:"1",Range:{high:"500",low:"10"},Units:"deg/s",User:"Standard"},ACRO_ROLL_RATE:{Description:"The maximum roll rate at full stick deflection in ACRO mode",DisplayName:"ACRO mode roll rate",Increment:"1",Range:{high:"500",low:"10"},Units:"deg/s",User:"Standard"},ACRO_YAW_RATE:{Description:"The maximum yaw rate at full stick deflection in ACRO mode. If this is zero then rudder is directly controlled by rudder stick input. This option is only available if you also set YAW_RATE_ENABLE to 1.",DisplayName:"ACRO mode yaw rate",Increment:"1",Range:{high:"500",low:"0"},Units:"deg/s",User:"Standard"},ALT_HOLD_FBWCM:{Description:"This is the minimum altitude in centimeters that FBWB and CRUISE modes will allow. If you attempt to descend below this altitude then the plane will level off. A value of zero means no limit.",DisplayName:"Minimum altitude for FBWB mode",Units:"cm",User:"Standard"},ALT_HOLD_RTL:{Description:"Target altitude above home for RTL mode. Maintains current altitude if set to -1. Rally point altitudes are used if plane does not return to home.",DisplayName:"RTL altitude",Units:"cm",User:"Standard"},ALT_OFFSET:{Description:"This is added to the target altitude in automatic flight. It can be used to add a global altitude offset to a mission",DisplayName:"Altitude offset",Increment:"1",Range:{high:"32767",low:"-32767"},Units:"m",User:"Advanced"},ARSPD_FBW_MAX:{Description:"Maximum airspeed demanded in automatic throttle modes. Should be set slightly less than level flight speed at THR_MAX and also at least 50% above ARSPD_FBW_MIN to allow for accurate TECS altitude control.",DisplayName:"Maximum Airspeed",Increment:"1",Range:{high:"100",low:"5"},Units:"m/s",User:"Standard"},ARSPD_FBW_MIN:{Description:"Minimum airspeed demanded in automatic throttle modes. Should be set to 20% higher than level flight stall speed.",DisplayName:"Minimum Airspeed",Increment:"1",Range:{high:"100",low:"5"},Units:"m/s",User:"Standard"},AUTOTUNE_LEVEL:{Description:"Level of aggressiveness of pitch and roll PID gains. Lower values result in a 'softer' tune. Level 6 recommended for most planes. A value of 0 means to keep the current values of RMAX and TCONST for the controllers, tuning only the PID values",DisplayName:"Autotune level",Increment:"1",Range:{high:"10",low:"0"},User:"Standard"},CRASH_ACC_THRESH:{Description:"X-Axis deceleration threshold to notify the crash detector that there was a possible impact which helps disarm the motor quickly after a crash. This value should be much higher than normal negative x-axis forces during normal flight, check flight log files to determine the average IMU.x values for your aircraft and motor type. Higher value means less sensative (triggers on higher impact). For electric planes that don't vibrate much during fight a value of 25 is good (that's about 2.5G). For petrol/nitro planes you'll want a higher value. Set to 0 to disable the collision detector.",DisplayName:"Crash Deceleration Threshold",Increment:"1",Range:{high:"127",low:"10"},Units:"m/s/s",User:"Advanced"},CRASH_DETECT:{Bitmask:{0:"Disarm"},Description:"Automatically detect a crash during AUTO flight and perform the bitmask selected action(s). Disarm will turn off motor for safety and to help against burning out ESC and motor. Set to 0 to disable crash detection.",DisplayName:"Crash Detection",User:"Advanced",Values:{0:"Disabled"}},DSPOILER_AILMTCH:{Description:"This scales down the inner flaps so less than full downwards range can be used for differential spoiler and full span ailerons, 100 is use full range, upwards travel is unaffected",DisplayName:"Differential spoiler aileron matching",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Advanced"},DSPOILER_CROW_W1:{Description:"This is amount of deflection applied to the two outer surfaces for differential spoilers for flaps to give crow flaps. It is a number from 0 to 100. At zero no crow flaps are applied. A recommended starting value is 25.",DisplayName:"Differential spoiler crow flaps outer weight",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Advanced"},DSPOILER_CROW_W2:{Description:"This is amount of deflection applied to the two inner surfaces for differential spoilers for flaps to give crow flaps. It is a number from 0 to 100. At zero no crow flaps are applied. A recommended starting value is 45.",DisplayName:"Differential spoiler crow flaps inner weight",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Advanced"},DSPOILER_OPTS:{Bitmask:{0:"pitch control",1:"full span",2:"Progressive crow"},Description:"Differential spoiler and crow flaps options",DisplayName:"Differential spoiler and crow flaps options",User:"Advanced",Values:{0:"none",1:"D spoilers have pitch input",2:"use both control surfaces on each wing for roll",4:"Progressive crow flaps only first (0-50% flap in) then crow flaps (50 - 100% flap in)"}},DSPOILR_RUD_RATE:{Description:"Sets the amount of deflection that the rudder output will apply to the differential spoilers, as a percentage. The default value of 100 results in full rudder applying full deflection. A value of 0 will result in the differential spoilers exactly following the elevons (no rudder effect).",DisplayName:"Differential spoilers rudder rate",Range:{high:"100",low:"-100"},Units:"%",User:"Standard"},FBWB_CLIMB_RATE:{Description:"This sets the rate in m/s at which FBWB and CRUISE modes will change its target altitude for full elevator deflection. Note that the actual climb rate of the aircraft can be lower than this, depending on your airspeed and throttle control settings. If you have this parameter set to the default value of 2.0, then holding the elevator at maximum deflection for 10 seconds would change the target altitude by 20 meters.",DisplayName:"Fly By Wire B altitude change rate",Increment:"0.1",Range:{high:"10",low:"1"},Units:"m/s",User:"Standard"},FBWB_ELEV_REV:{Description:"Reverse sense of elevator in FBWB and CRUISE modes. When set to 0 up elevator (pulling back on the stick) means to lower altitude. When set to 1, up elevator means to raise altitude.",DisplayName:"Fly By Wire elevator reverse",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},FLAP_1_PERCNT:{Description:"The percentage change in flap position when FLAP_1_SPEED is reached. Use zero to disable flaps",DisplayName:"Flap 1 percentage",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Advanced"},FLAP_1_SPEED:{Description:"The speed in meters per second at which to engage FLAP_1_PERCENT of flaps. Note that FLAP_1_SPEED should be greater than or equal to FLAP_2_SPEED",DisplayName:"Flap 1 speed",Increment:"1",Range:{high:"100",low:"0"},Units:"m/s",User:"Advanced"},FLAP_2_PERCNT:{Description:"The percentage change in flap position when FLAP_2_SPEED is reached. Use zero to disable flaps",DisplayName:"Flap 2 percentage",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Advanced"},FLAP_2_SPEED:{Description:"The speed in meters per second at which to engage FLAP_2_PERCENT of flaps. Note that FLAP_1_SPEED should be greater than or equal to FLAP_2_SPEED",DisplayName:"Flap 2 speed",Increment:"1",Range:{high:"100",low:"0"},Units:"m/s",User:"Advanced"},FLAP_SLEWRATE:{Description:"maximum percentage change in flap output per second. A setting of 25 means to not change the flap by more than 25% of the full flap range in one second. A value of 0 means no rate limiting.",DisplayName:"Flap slew rate",Increment:"1",Range:{high:"100",low:"0"},Units:"%/s",User:"Advanced"},FLIGHT_OPTIONS:{Bitmask:{0:"Rudder mixing in direct flight modes only (Manual / Stabilize / Acro)",1:"Use centered throttle in Cruise or FBWB to indicate trim airspeed",2:"Disable attitude check for takeoff arming",3:"Force target airspeed to trim airspeed in Cruise or FBWB",4:"Climb to ALT_HOLD_RTL before turning for RTL",5:"Enable yaw damper in acro mode",6:"Surpress speed scaling during auto takeoffs to be 1 or less to prevent oscillations without airpseed sensor.",7:"EnableDefaultAirspeed for takeoff",8:"Remove the TRIM_PITCH_CD on the GCS horizon",9:"Remove the TRIM_PITCH_CD on the OSD horizon",10:"Adjust mid-throttle to be TRIM_THROTTLE in non-auto throttle modes except MANUAL",11:"Disable suppression of fixed wing rate gains in ground mode",12:"Enable FBWB style loiter altitude control"},Description:"Flight mode specific options",DisplayName:"Flight mode options",User:"Advanced"},FLTMODE1:{Description:"Flight mode for switch position 1 (910 to 1230 and above 2049)",DisplayName:"FlightMode1",User:"Standard",Values:{0:"Manual",1:"CIRCLE",2:"STABILIZE",3:"TRAINING",4:"ACRO",5:"FBWA",6:"FBWB",7:"CRUISE",8:"AUTOTUNE",10:"Auto",11:"RTL",12:"Loiter",13:"TAKEOFF",14:"AVOID_ADSB",15:"Guided",17:"QSTABILIZE",18:"QHOVER",19:"QLOITER",20:"QLAND",21:"QRTL",22:"QAUTOTUNE",23:"QACRO",24:"THERMAL",25:"Loiter to QLand"}},FLTMODE2:{Description:"Flight mode for switch position 2 (1231 to 1360)",DisplayName:"FlightMode2",User:"Standard",Values:{0:"Manual",1:"CIRCLE",2:"STABILIZE",3:"TRAINING",4:"ACRO",5:"FBWA",6:"FBWB",7:"CRUISE",8:"AUTOTUNE",10:"Auto",11:"RTL",12:"Loiter",13:"TAKEOFF",14:"AVOID_ADSB",15:"Guided",17:"QSTABILIZE",18:"QHOVER",19:"QLOITER",20:"QLAND",21:"QRTL",22:"QAUTOTUNE",23:"QACRO",24:"THERMAL",25:"Loiter to QLand"}},FLTMODE3:{Description:"Flight mode for switch position 3 (1361 to 1490)",DisplayName:"FlightMode3",User:"Standard",Values:{0:"Manual",1:"CIRCLE",2:"STABILIZE",3:"TRAINING",4:"ACRO",5:"FBWA",6:"FBWB",7:"CRUISE",8:"AUTOTUNE",10:"Auto",11:"RTL",12:"Loiter",13:"TAKEOFF",14:"AVOID_ADSB",15:"Guided",17:"QSTABILIZE",18:"QHOVER",19:"QLOITER",20:"QLAND",21:"QRTL",22:"QAUTOTUNE",23:"QACRO",24:"THERMAL",25:"Loiter to QLand"}},FLTMODE4:{Description:"Flight mode for switch position 4 (1491 to 1620)",DisplayName:"FlightMode4",User:"Standard",Values:{0:"Manual",1:"CIRCLE",2:"STABILIZE",3:"TRAINING",4:"ACRO",5:"FBWA",6:"FBWB",7:"CRUISE",8:"AUTOTUNE",10:"Auto",11:"RTL",12:"Loiter",13:"TAKEOFF",14:"AVOID_ADSB",15:"Guided",17:"QSTABILIZE",18:"QHOVER",19:"QLOITER",20:"QLAND",21:"QRTL",22:"QAUTOTUNE",23:"QACRO",24:"THERMAL",25:"Loiter to QLand"}},FLTMODE5:{Description:"Flight mode for switch position 5 (1621 to 1749)",DisplayName:"FlightMode5",User:"Standard",Values:{0:"Manual",1:"CIRCLE",2:"STABILIZE",3:"TRAINING",4:"ACRO",5:"FBWA",6:"FBWB",7:"CRUISE",8:"AUTOTUNE",10:"Auto",11:"RTL",12:"Loiter",13:"TAKEOFF",14:"AVOID_ADSB",15:"Guided",17:"QSTABILIZE",18:"QHOVER",19:"QLOITER",20:"QLAND",21:"QRTL",22:"QAUTOTUNE",23:"QACRO",24:"THERMAL",25:"Loiter to QLand"}},FLTMODE6:{Description:"Flight mode for switch position 6 (1750 to 2049)",DisplayName:"FlightMode6",User:"Standard",Values:{0:"Manual",1:"CIRCLE",2:"STABILIZE",3:"TRAINING",4:"ACRO",5:"FBWA",6:"FBWB",7:"CRUISE",8:"AUTOTUNE",10:"Auto",11:"RTL",12:"Loiter",13:"TAKEOFF",14:"AVOID_ADSB",15:"Guided",17:"QSTABILIZE",18:"QHOVER",19:"QLOITER",20:"QLAND",21:"QRTL",22:"QAUTOTUNE",23:"QACRO",24:"THERMAL",25:"Loiter to QLand"}},FLTMODE_CH:{Description:"RC Channel to use for flight mode control",DisplayName:"Flightmode channel",Increment:"1",Range:{high:"16",low:"1"},User:"Advanced"},FORMAT_VERSION:{Description:"This value is incremented when changes are made to the eeprom format",DisplayName:"Eeprom format version number",User:"Advanced"},FS_EKF_THRESH:{Description:"Allows setting the maximum acceptable compass and velocity variance used to check navigation health in VTOL modes",DisplayName:"EKF failsafe variance threshold",User:"Advanced",Values:{"0.6":"Strict","0.8":"Default","1.0":"Relaxed"}},FS_GCS_ENABL:{Description:"Enable ground control station telemetry failsafe. Failsafe will trigger after FS_LONG_TIMEOUT seconds of no MAVLink heartbeat messages. There are three possible enabled settings. Setting FS_GCS_ENABL to 1 means that GCS failsafe will be triggered when the aircraft has not received a MAVLink HEARTBEAT message. Setting FS_GCS_ENABL to 2 means that GCS failsafe will be triggered on either a loss of HEARTBEAT messages, or a RADIO_STATUS message from a MAVLink enabled 3DR radio indicating that the ground station is not receiving status updates from the aircraft, which is indicated by the RADIO_STATUS.remrssi field being zero (this may happen if you have a one way link due to asymmetric noise on the ground station and aircraft radios).Setting FS_GCS_ENABL to 3 means that GCS failsafe will be triggered by Heartbeat(like option one), but only in AUTO mode. WARNING: Enabling this option opens up the possibility of your plane going into failsafe mode and running the motor on the ground it it loses contact with your ground station. If this option is enabled on an electric plane then you should enable ARMING_REQUIRED.",DisplayName:"GCS failsafe enable",User:"Standard",Values:{0:"Disabled",1:"Heartbeat",2:"HeartbeatAndREMRSSI",3:"HeartbeatAndAUTO"}},FS_LONG_ACTN:{Description:"The action to take on a long (FS_LONG_TIMEOUT seconds) failsafe event. If the aircraft was in a stabilization or manual mode when failsafe started and a long failsafe occurs then it will change to RTL mode if FS_LONG_ACTN is 0 or 1, and will change to FBWA if FS_LONG_ACTN is set to 2. If the aircraft was in an auto mode (such as AUTO or GUIDED) when the failsafe started then it will continue in the auto mode if FS_LONG_ACTN is set to 0, will change to RTL mode if FS_LONG_ACTN is set to 1 and will change to FBWA mode if FS_LONG_ACTN is set to 2. If FS_LONG_ACTION is set to 3, the parachute will be deployed (make sure the chute is configured and enabled).",DisplayName:"Long failsafe action",User:"Standard",Values:{0:"Continue",1:"ReturnToLaunch",2:"Glide",3:"Deploy Parachute"}},FS_LONG_TIMEOUT:{Description:"The time in seconds that a failsafe condition has to persist before a long failsafe event will occur. This defaults to 5 seconds.",DisplayName:"Long failsafe timeout",Increment:"0.5",Range:{high:"300",low:"1"},Units:"s",User:"Standard"},FS_SHORT_ACTN:{Description:"The action to take on a short (FS_SHORT_TIMEOUT) failsafe event. A short failsafe event can be triggered either by loss of RC control (see THR_FS_VALUE) or by loss of GCS control (see FS_GCS_ENABL). If in CIRCLE or RTL mode this parameter is ignored. A short failsafe event in stabilization and manual modes will cause a change to CIRCLE mode if FS_SHORT_ACTN is 0 or 1, a change to FBWA mode with zero throttle if FS_SHORT_ACTN is 2, and a change to FBWB mode if FS_SHORT_ACTN is 4. In all other modes (AUTO, GUIDED and LOITER) a short failsafe event will cause no mode change if FS_SHORT_ACTN is set to 0, will cause a change to CIRCLE mode if set to 1, will change to FBWA mode with zero throttle if set to 2, or will change to FBWB if set to 4. Please see the documentation for FS_LONG_ACTN for the behaviour after FS_LONG_TIMEOUT seconds of failsafe.",DisplayName:"Short failsafe action",User:"Standard",Values:{0:"CIRCLE/no change(if already in AUTO|GUIDED|LOITER)",1:"CIRCLE",2:"FBWA at zero throttle",3:"Disable",4:"FBWB"}},FS_SHORT_TIMEOUT:{Description:"The time in seconds that a failsafe condition has to persist before a short failsafe event will occur. This defaults to 1.5 seconds",DisplayName:"Short failsafe timeout",Increment:"0.5",Range:{high:"100",low:"1"},Units:"s",User:"Standard"},FWD_BAT_IDX:{Description:"Which battery monitor should be used for doing compensation for the forward throttle",DisplayName:"Forward throttle battery compensation index",User:"Advanced",Values:{0:"First battery",1:"Second battery"}},FWD_BAT_VOLT_MAX:{Description:"Forward throttle battery voltage compensation maximum voltage (voltage above this will have no additional scaling effect on thrust). Recommend 4.2 * cell count, 0 = Disabled. Recommend THR_MAX is set to no more than 100 x FWD_BAT_VOLT_MIN / FWD_BAT_VOLT_MAX, THR_MIN is set to no less than -100 x FWD_BAT_VOLT_MIN / FWD_BAT_VOLT_MAX and climb descent rate limits are set accordingly.",DisplayName:"Forward throttle battery voltage compensation maximum voltage",Increment:"0.1",Range:{high:"35",low:"6"},Units:"V",User:"Advanced"},FWD_BAT_VOLT_MIN:{Description:"Forward throttle battery voltage compensation minimum voltage (voltage below this will have no additional scaling effect on thrust). Recommend 3.5 * cell count, 0 = Disabled. Recommend THR_MAX is set to no more than 100 x FWD_BAT_VOLT_MIN / FWD_BAT_VOLT_MAX, THR_MIN is set to no less than -100 x FWD_BAT_VOLT_MIN / FWD_BAT_VOLT_MAX and climb descent rate limits are set accordingly.",DisplayName:"Forward throttle battery voltage compensation minimum voltage",Increment:"0.1",Range:{high:"35",low:"6"},Units:"V",User:"Advanced"},GCS_PID_MASK:{Bitmask:{0:"Roll",1:"Pitch",2:"Yaw",3:"Steering",4:"Landing"},Description:"bitmask of PIDs to send MAVLink PID_TUNING messages for",DisplayName:"GCS PID tuning mask",User:"Advanced"},GLIDE_SLOPE_MIN:{Description:"This controls the minimum altitude change for a waypoint before a glide slope will be used instead of an immediate altitude change. The default value is 15 meters, which helps to smooth out waypoint missions where small altitude changes happen near waypoints. If you don't want glide slopes to be used in missions then you can set this to zero, which will disable glide slope calculations. Otherwise you can set it to a minimum number of meters of altitude error to the destination waypoint before a glide slope will be used to change altitude.",DisplayName:"Glide slope minimum",Increment:"1",Range:{high:"1000",low:"0"},Units:"m",User:"Advanced"},GLIDE_SLOPE_THR:{Description:"This controls the height above the glide slope the plane may be before rebuilding a glide slope. This is useful for smoothing out an autotakeoff",DisplayName:"Glide slope threshold",Increment:"1",Range:{high:"100",low:"0"},Units:"m",User:"Advanced"},GROUND_STEER_ALT:{Description:"Altitude at which to use the ground steering controller on the rudder. If non-zero then the STEER2SRV controller will be used to control the rudder for altitudes within this limit of the home altitude.",DisplayName:"Ground steer altitude",Increment:"0.1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},GROUND_STEER_DPS:{Description:"Ground steering rate in degrees per second for full rudder stick deflection",DisplayName:"Ground steer rate",Increment:"1",Range:{high:"360",low:"10"},Units:"deg/s",User:"Advanced"},HOME_RESET_ALT:{Description:"When the aircraft is within this altitude of the home waypoint, while disarmed it will automatically update the home position. Set to 0 to continously reset it.",DisplayName:"Home reset altitude threshold",Range:{high:"127",low:"-1"},Units:"m",User:"Advanced",Values:{0:"Always reset","-1":"Never reset"}},INITIAL_MODE:{Description:"This selects the mode to start in on boot. This is useful for when you want to start in AUTO mode on boot without a receiver.",DisplayName:"Initial flight mode",User:"Advanced",Values:{0:"Manual",1:"CIRCLE",2:"STABILIZE",3:"TRAINING",4:"ACRO",5:"FBWA",6:"FBWB",7:"CRUISE",8:"AUTOTUNE",10:"Auto",11:"RTL",12:"Loiter",13:"TAKEOFF",14:"AVOID_ADSB",15:"Guided",17:"QSTABILIZE",18:"QHOVER",19:"QLOITER",20:"QLAND",21:"QRTL",22:"QAUTOTUNE",23:"QACRO",24:"THERMAL",25:"Loiter to QLand"}},KFF_RDDRMIX:{Description:"Amount of rudder to add during aileron movement. Increase if nose initially yaws away from roll. Reduces adverse yaw.",DisplayName:"Rudder Mix",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},KFF_THR2PTCH:{Description:"Pitch up to add in proportion to throttle. 100% throttle will add this number of degrees to the pitch target.",DisplayName:"Throttle to Pitch Mix",Increment:"0.01",Range:{high:"5",low:"0"},User:"Advanced"},LEVEL_ROLL_LIMIT:{Description:"This controls the maximum bank angle in degrees during flight modes where level flight is desired, such as in the final stages of landing, and during auto takeoff. This should be a small angle (such as 5 degrees) to prevent a wing hitting the runway during takeoff or landing. Setting this to zero will completely disable heading hold on auto takeoff and final landing approach.",DisplayName:"Level flight roll limit",Increment:"1",Range:{high:"45",low:"0"},Units:"deg",User:"Standard"},LIM_PITCH_MAX:{Description:"Maximum pitch up angle commanded in modes with stabilized limits.",DisplayName:"Maximum Pitch Angle",Increment:"10",Range:{high:"9000",low:"0"},Units:"cdeg",User:"Standard"},LIM_PITCH_MIN:{Description:"Maximum pitch down angle commanded in modes with stabilized limits",DisplayName:"Minimum Pitch Angle",Increment:"10",Range:{high:"0",low:"-9000"},Units:"cdeg",User:"Standard"},LIM_ROLL_CD:{Description:"Maximum bank angle commanded in modes with stabilized limits. Increase this value for sharper turns, but decrease to prevent accelerated stalls.",DisplayName:"Maximum Bank Angle",Increment:"10",Range:{high:"9000",low:"0"},Units:"cdeg",User:"Standard"},LOG_BITMASK:{Bitmask:{0:"Fast Attitude",1:"Medium Attitude",2:"GPS",3:"Performance",4:"Control Tuning",5:"Navigation Tuning",7:"IMU",8:"Mission Commands",9:"Battery Monitor",10:"Compass",11:"TECS",12:"Camera",13:"RC Input-Output",14:"Rangefinder",19:"Raw IMU",20:"Fullrate Attitude",21:"Video Stabilization"},Description:"Bitmap of what on-board log types to enable. This value is made up of the sum of each of the log types you want to be saved. It is usually best just to enable all basic log types by setting this to 65535.",DisplayName:"Log bitmask",User:"Advanced"},MANUAL_RCMASK:{Bitmask:{0:"Chan1",1:"Chan2",2:"Chan3",3:"Chan4",4:"Chan5",5:"Chan6",6:"Chan7",7:"Chan8",8:"Chan9",9:"Chan10",10:"Chan11",11:"Chan12",12:"Chan13",13:"Chan14",14:"Chan15",15:"Chan16"},Description:"Mask of R/C channels to pass directly to corresponding output channel when in MANUAL mode. When in any mode except MANUAL the channels selected with this option behave normally. This parameter is designed to allow for complex mixing strategies to be used for MANUAL flight using transmitter based mixing. Note that when this option is used you need to be very careful with pre-flight checks to ensure that the output is correct both in MANUAL and non-MANUAL modes.",DisplayName:"Manual R/C pass-through mask",User:"Advanced"},MAN_EXPO_PITCH:{Description:"Percentage exponential for pitch input in MANUAL, ACRO and TRAINING modes",DisplayName:"Manual input expo for pitch",Increment:"1",Range:{high:"100",low:"0"},User:"Standard"},MAN_EXPO_ROLL:{Description:"Percentage exponential for roll input in MANUAL, ACRO and TRAINING modes",DisplayName:"Manual control expo for roll",Increment:"1",Range:{high:"100",low:"0"},User:"Standard"},MAN_EXPO_RUDDER:{Description:"Percentage exponential for rudder input in MANUAL, ACRO and TRAINING modes",DisplayName:"Manual input expo for rudder",Increment:"1",Range:{high:"100",low:"0"},User:"Standard"},MIN_GNDSPD_CM:{Description:"Minimum ground speed in cm/s when under airspeed control",DisplayName:"Minimum ground speed",Units:"cm/s",User:"Advanced"},MIXING_GAIN:{Description:"The gain for the Vtail and elevon output mixers. The default is 0.5, which ensures that the mixer doesn't saturate, allowing both input channels to go to extremes while retaining control over the output. Hardware mixers often have a 1.0 gain, which gives more servo throw, but can saturate. If you don't have enough throw on your servos with VTAIL_OUTPUT or ELEVON_OUTPUT enabled then you can raise the gain using MIXING_GAIN. The mixer allows outputs in the range 900 to 2100 microseconds.",DisplayName:"Mixing Gain",Range:{high:"1.2",low:"0.5"},User:"Standard"},MIXING_OFFSET:{Description:"The offset for the Vtail and elevon output mixers, as a percentage. This can be used in combination with MIXING_GAIN to configure how the control surfaces respond to input. The response to aileron or elevator input can be increased by setting this parameter to a positive or negative value. A common usage is to enter a positive value to increase the aileron response of the elevons of a flying wing. The default value of zero will leave the aileron-input response equal to the elevator-input response.",DisplayName:"Mixing Offset",Range:{high:"1000",low:"-1000"},Units:"d%",User:"Standard"},ONESHOT_MASK:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15"},Description:"Mask of output channels to use oneshot on",DisplayName:"Oneshot output mask",User:"Advanced"},OVERRIDE_CHAN:{Description:"If set to a non-zero value then this is an RC input channel number to use for giving IO manual control in case the main FMU microcontroller on a board with a IO co-processor fails. When this RC input channel goes above 1750 the FMU microcontroller will no longer be involved in controlling the servos and instead the IO microcontroller will directly control the servos. Note that IO manual control will be automatically activated if the FMU crashes for any reason. This parameter allows you to test for correct manual behaviour without actually crashing the FMU. This parameter is can be set to a non-zero value either for ground testing purposes or for giving the effect of an external override control board. Note that you may set OVERRIDE_CHAN to the same channel as FLTMODE_CH to get IO based override when in flight mode 6. Note that when override is triggered due to a FMU crash the 6 auxiliary output channels on the FMU will no longer be updated, so all the flight controls you need must be assigned to the first 8 channels on boards with an IOMCU.",DisplayName:"IO override channel",Increment:"1",Range:{high:"16",low:"0"},User:"Advanced"},RNGFND_LANDING:{Description:"This enables the use of a rangefinder for automatic landing. The rangefinder will be used both on the landing approach and for final flare",DisplayName:"Enable rangefinder for landing",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},RTL_AUTOLAND:{Description:"Automatically begin landing sequence after arriving at RTL location. This requires the addition of a DO_LAND_START mission item, which acts as a marker for the start of a landing sequence. The closest landing sequence will be chosen to the current location. If this is set to 0 and there is a DO_LAND_START mission item then you will get an arming check failure. You can set to a value of 3 to avoid the arming check failure and use the DO_LAND_START for go-around without it changing RTL behaviour. For a value of 1 a rally point will be used instead of HOME if in range (see rally point documentation).",DisplayName:"RTL auto land",User:"Standard",Values:{0:"Disable",1:"Fly HOME then land",2:"Go directly to landing sequence",3:"OnlyForGoAround"}},RTL_CLIMB_MIN:{Description:"The vehicle will climb this many m during the initial climb portion of the RTL. During this time the roll will be limited to LEVEL_ROLL_LIMIT degrees.",DisplayName:"RTL minimum climb",Increment:"1",Range:{high:"30",low:"0"},Units:"m",User:"Standard"},RTL_RADIUS:{Description:"Defines the radius of the loiter circle when in RTL mode. If this is zero then WP_LOITER_RAD is used. If the radius is negative then a counter-clockwise is used. If positive then a clockwise loiter is used.",DisplayName:"RTL loiter radius",Increment:"1",Range:{high:"32767",low:"-32767"},Units:"m",User:"Standard"},RUDDER_ONLY:{Description:"Enable rudder only mode. The rudder will control attitude in attitude controlled modes (such as FBWA). You should setup your transmitter to send roll stick inputs to the RCMAP_YAW channel (normally channel 4). The rudder servo should be attached to the RCMAP_YAW channel as well. Note that automatic ground steering will be disabled for rudder only aircraft. You should also set KFF_RDDRMIX to 1.0. You will also need to setup the YAW2SRV_DAMP yaw damping appropriately for your aircraft. A value of 0.5 for YAW2SRV_DAMP is a good starting point.",DisplayName:"Rudder only aircraft",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},RUDD_DT_GAIN:{Description:"gain control from rudder to differential thrust",DisplayName:"rudder differential thrust gain",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},SCALING_SPEED:{Description:"Airspeed in m/s to use when calculating surface speed scaling. Note that changing this value will affect all PID values",DisplayName:"speed used for speed scaling calculations",Increment:"0.1",Range:{high:"50",low:"0"},Units:"m/s",User:"Advanced"},STAB_PITCH_DOWN:{Description:"Degrees of down pitch added when throttle is below TRIM_THROTTLE in FBWA and AUTOTUNE modes. Scales linearly so full value is added when THR_MIN is reached. Helps to keep airspeed higher in glides or landing approaches and prevents accidental stalls. 2 degrees recommended for most planes.",DisplayName:"Low throttle pitch down trim",Increment:"0.1",Range:{high:"15",low:"0"},Units:"deg",User:"Advanced"},STALL_PREVENTION:{Description:"Enables roll limits at low airspeed in roll limiting flight modes. Roll limits based on aerodynamic load factor in turns and scale on ARSPD_FBW_MIN that must be set correctly. Without airspeed sensor, uses synthetic airspeed from wind speed estimate that may both be inaccurate.",DisplayName:"Enable stall prevention",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},STICK_MIXING:{Description:'When enabled, this adds user stick input to the control surfaces in auto modes, allowing the user to have some degree of flight control without changing modes. There are two types of stick mixing available. If you set STICK_MIXING to 1 then it will use "fly by wire" mixing, which controls the roll and pitch in the same way that the FBWA mode does. This is the safest option if you usually fly ArduPlane in FBWA or FBWB mode. If you set STICK_MIXING to 2 then it will enable direct mixing mode, which is what the STABILIZE mode uses. That will allow for much more extreme maneuvers while in AUTO mode. If you set STICK_MIXING to 3 then it will apply to the yaw while in quadplane modes only, such as while doing an automatic VTOL takeoff or landing.',DisplayName:"Stick Mixing",User:"Advanced",Values:{0:"Disabled",1:"FBWMixing",2:"DirectMixing",3:"VTOL Yaw only"}},SYSID_ENFORCE:{Description:"This controls whether packets from other than the expected GCS system ID will be accepted",DisplayName:"GCS sysid enforcement",User:"Advanced",Values:{0:"NotEnforced",1:"Enforced"}},SYSID_MYGCS:{Description:"The identifier of the ground station in the MAVLink protocol. Don't change this unless you also modify the ground station to match.",DisplayName:"Ground station MAVLink system ID",Range:{high:"255",low:"1"},User:"Advanced"},SYSID_THISMAV:{Description:"Allows setting an individual MAVLink system id for this vehicle to distinguish it from others on the same network",DisplayName:"MAVLink system ID of this vehicle",Range:{high:"255",low:"1"},User:"Advanced"},SYS_NUM_RESETS:{Description:"Number of APM board resets",DisplayName:"Num Resets",ReadOnly:"True",User:"Advanced"},TELEM_DELAY:{Description:"The amount of time (in seconds) to delay radio telemetry to prevent an Xbee bricking on power up",DisplayName:"Telemetry startup delay",Increment:"1",Range:{high:"30",low:"0"},Units:"s",User:"Standard"},TERRAIN_FOLLOW:{Bitmask:{0:"Enable all modes",1:"FBWB",2:"Cruise",3:"Auto",4:"RTL",5:"Avoid_ADSB",6:"Guided",7:"Loiter",8:"Circle",9:"QRTL",10:"QLand",11:"Qloiter"},Description:"This enables terrain following for CRUISE mode, FBWB mode, RTL and for rally points. To use this option you also need to set TERRAIN_ENABLE to 1, which enables terrain data fetching from the GCS, and you need to have a GCS that supports sending terrain data to the aircraft. When terrain following is enabled then CRUISE and FBWB mode will hold height above terrain rather than height above home. In RTL the return to launch altitude will be considered to be a height above the terrain. Rally point altitudes will be taken as height above the terrain. This option does not affect mission items, which have a per-waypoint flag for whether they are height above home or height above the terrain. To use terrain following missions you need a ground station which can set the waypoint type to be a terrain height waypoint when creating the mission.",DisplayName:"Use terrain following",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},TERRAIN_LOOKAHD:{Description:"This controls how far ahead the terrain following code looks to ensure it stays above upcoming terrain. A value of zero means no lookahead, so the controller will track only the terrain directly below the aircraft. The lookahead will never extend beyond the next waypoint when in AUTO mode.",DisplayName:"Terrain lookahead",Range:{high:"10000",low:"0"},Units:"m",User:"Standard"},THROTTLE_NUDGE:{Description:"When enabled, this uses the throttle input in auto-throttle modes to 'nudge' the throttle or airspeed to higher or lower values. When you have an airspeed sensor the nudge affects the target airspeed, so that throttle inputs above 50% will increase the target airspeed from TRIM_ARSPD_CM up to a maximum of ARSPD_FBW_MAX. When no airspeed sensor is enabled the throttle nudge will push up the target throttle for throttle inputs above 50%.",DisplayName:"Throttle nudge enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},THR_FAILSAFE:{Description:"0 disables the failsafe. 1 enables failsafe on loss of RC input. This is detected either by throttle values below THR_FS_VALUE, loss of receiver valid pulses/data, or by the FS bit in receivers that provide it, like SBUS. A programmable failsafe action will occur and RC inputs, if present, will be ignored. A value of 2 means that the RC inputs won't be used when RC failsafe is detected by any of the above methods, but it won't trigger an RC failsafe action.",DisplayName:"Throttle and RC Failsafe Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled",2:"EnabledNoFailsafe"}},THR_FS_VALUE:{Description:"The PWM level on the throttle input channel below which throttle failsafe triggers. Note that this should be well below the normal minimum for your throttle channel.",DisplayName:"Throttle Failsafe Value",Increment:"1",Range:{high:"2200",low:"925"},User:"Standard"},THR_MAX:{Description:"Maximum throttle percentage used in all modes except manual, provided THR_PASS_STAB is not set.",DisplayName:"Maximum Throttle",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},THR_MIN:{Description:"Minimum throttle percentage used in all modes except manual, provided THR_PASS_STAB is not set. Negative values allow reverse thrust if hardware supports it.",DisplayName:"Minimum Throttle",Increment:"1",Range:{high:"100",low:"-100"},Units:"%",User:"Standard"},THR_PASS_STAB:{Description:"If this is set then when in STABILIZE, FBWA or ACRO modes the throttle is a direct passthru from the transmitter. This means the THR_MIN and THR_MAX settings are not used in these modes. This is useful for petrol engines where you setup a throttle cut switch that suppresses the throttle below the normal minimum.",DisplayName:"Throttle passthru in stabilize",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},THR_SLEWRATE:{Description:"Maximum change in throttle percentage per second. Lower limit based on 1 microsend of servo increase per loop. Divide SCHED_LOOP_RATE by approximately 10 to determine minimum achievable value.",DisplayName:"Throttle slew rate",Increment:"1",Range:{high:"127",low:"0"},Units:"%/s",User:"Standard"},THR_SUPP_MAN:{Description:"When throttle is suppressed in auto mode it is normally forced to zero. If you enable this option, then while suppressed it will be manual throttle. This is useful on petrol engines to hold the idle throttle manually while waiting for takeoff",DisplayName:"Throttle suppress manual passthru",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},TKOFF_ACCEL_CNT:{Description:"This is the number of acceleration events to require for arming with TKOFF_THR_MINACC. The default is 1, which means a single forward acceleration above TKOFF_THR_MINACC will arm. By setting this higher than 1 you can require more forward/backward movements to arm.",DisplayName:"Takeoff throttle acceleration count",Range:{high:"10",low:"1"},User:"Standard"},TKOFF_FLAP_PCNT:{Description:"The amount of flaps (as a percentage) to apply in automatic takeoff",DisplayName:"Takeoff flap percentage",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Advanced"},TKOFF_PLIM_SEC:{Description:"This parameter reduces the pitch minimum limit of an auto-takeoff just a few seconds before it reaches the target altitude. This reduces overshoot by allowing the flight controller to start leveling off a few seconds before reaching the target height. When set to zero, the mission pitch min is enforced all the way to and through the target altitude, otherwise the pitch min slowly reduces to zero in the final segment. This is the pitch_min, not the demand. The flight controller should still be commanding to gain altitude to finish the takeoff but with this param it is not forcing it higher than it wants to be.",DisplayName:"Takeoff pitch limit reduction",Increment:"0.5",Range:{high:"10",low:"0"},Units:"s",User:"Advanced"},TKOFF_ROTATE_SPD:{Description:'This parameter sets the airspeed at which the aircraft will "rotate", setting climb pitch specified in the mission. If TKOFF_ROTATE_SPD is zero then the climb pitch will be used as soon as takeoff is started. For hand launch and catapult launches a TKOFF_ROTATE_SPD of zero should be set. For all ground launches TKOFF_ROTATE_SPD should be set above the stall speed, usually by about 10 to 30 percent',DisplayName:"Takeoff rotate speed",Increment:"0.1",Range:{high:"30",low:"0"},Units:"m/s",User:"Standard"},TKOFF_TDRAG_ELEV:{Description:`This parameter sets the amount of elevator to apply during the initial stage of a takeoff. It is used to hold the tail wheel of a taildragger on the ground during the initial takeoff stage to give maximum steering. This option should be combined with the TKOFF_TDRAG_SPD1 option and the GROUND_STEER_ALT option along with tuning of the ground steering controller. A value of zero means to bypass the initial "tail hold" stage of takeoff. Set to zero for hand and catapult launch. For tail-draggers you should normally set this to 100, meaning full up elevator during the initial stage of takeoff. For most tricycle undercarriage aircraft a value of zero will work well, but for some tricycle aircraft a small negative value (say around -20 to -30) will apply down elevator which will hold the nose wheel firmly on the ground during initial acceleration. Only use a negative value if you find that the nosewheel doesn't grip well during takeoff. Too much down elevator on a tricycle undercarriage may cause instability in steering as the plane pivots around the nosewheel. Add down elevator 10 percent at a time.`,DisplayName:"Takeoff tail dragger elevator",Increment:"1",Range:{high:"100",low:"-100"},Units:"%",User:"Standard"},TKOFF_TDRAG_SPD1:{Description:'This parameter sets the airspeed at which to stop holding the tail down and transition to rudder control of steering on the ground. When TKOFF_TDRAG_SPD1 is reached the pitch of the aircraft will be held level until TKOFF_ROTATE_SPD is reached, at which point the takeoff pitch specified in the mission will be used to "rotate" the pitch for takeoff climb. Set TKOFF_TDRAG_SPD1 to zero to go straight to rotation. This should be set to zero for hand launch and catapult launch. It should also be set to zero for tricycle undercarriages unless you are using the method above to genetly hold the nose wheel down. For tail dragger aircraft it should be set just below the stall speed.',DisplayName:"Takeoff tail dragger speed1",Increment:"0.1",Range:{high:"30",low:"0"},Units:"m/s",User:"Standard"},TKOFF_THR_DELAY:{Description:"This parameter sets the time delay (in 1/10ths of a second) that the ground speed check is delayed after the forward acceleration check controlled by TKOFF_THR_MINACC has passed. For hand launches with pusher propellers it is essential that this is set to a value of no less than 2 (0.2 seconds) to ensure that the aircraft is safely clear of the throwers arm before the motor can start. For bungee launches a larger value can be used (such as 30) to give time for the bungee to release from the aircraft before the motor is started.",DisplayName:"Takeoff throttle delay",Increment:"1",Range:{high:"127",low:"0"},Units:"ds",User:"Standard"},TKOFF_THR_MAX:{Description:"The maximum throttle setting during automatic takeoff. If this is zero then THR_MAX is used for takeoff as well.",DisplayName:"Maximum Throttle for takeoff",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Advanced"},TKOFF_THR_MINACC:{Description:'Minimum forward acceleration in m/s/s before arming the ground speed check in auto-takeoff. This is meant to be used for hand launches. Setting this value to 0 disables the acceleration test which means the ground speed check will always be armed which could allow GPS velocity jumps to start the engine. For hand launches and bungee launches this should be set to around 15. Also see TKOFF_ACCEL_CNT paramter for control of full "shake to arm".',DisplayName:"Takeoff throttle min acceleration",Increment:"0.1",Range:{high:"30",low:"0"},Units:"m/s/s",User:"Standard"},TKOFF_THR_MINSPD:{Description:"Minimum GPS ground speed in m/s used by the speed check that un-suppresses throttle in auto-takeoff. This can be be used for catapult launches where you want the motor to engage only after the plane leaves the catapult, but it is preferable to use the TKOFF_THR_MINACC and TKOFF_THR_DELAY parameters for catapult launches due to the errors associated with GPS measurements. For hand launches with a pusher prop it is strongly advised that this parameter be set to a value no less than 4 m/s to provide additional protection against premature motor start. Note that the GPS velocity will lag the real velocity by about 0.5 seconds. The ground speed check is delayed by the TKOFF_THR_DELAY parameter.",DisplayName:"Takeoff throttle min speed",Increment:"0.1",Range:{high:"30",low:"0"},Units:"m/s",User:"Standard"},TKOFF_THR_SLEW:{Description:"This parameter sets the slew rate for the throttle during auto takeoff. When this is zero the THR_SLEWRATE parameter is used during takeoff. For rolling takeoffs it can be a good idea to set a lower slewrate for takeoff to give a slower acceleration which can improve ground steering control. The value is a percentage throttle change per second, so a value of 20 means to advance the throttle over 5 seconds on takeoff. Values below 20 are not recommended as they may cause the plane to try to climb out with too little throttle. A value of -1 means no limit on slew rate in takeoff.",DisplayName:"Takeoff throttle slew rate",Increment:"1",Range:{high:"127",low:"-1"},Units:"%/s",User:"Standard"},TKOFF_TIMEOUT:{Description:"This is the timeout for an automatic takeoff. If this is non-zero and the aircraft does not reach a ground speed of at least 4 m/s within this number of seconds then the takeoff is aborted and the vehicle disarmed. If the value is zero then no timeout applies.",DisplayName:"Takeoff timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Standard"},TRIM_ARSPD_CM:{Description:"Target airspeed in cm/s in automatic throttle modes. Value is as an indicated (calibrated/apparent) airspeed.",DisplayName:"Target airspeed",Units:"cm/s",User:"Standard"},TRIM_PITCH_CD:{Description:"Offset applied to AHRS pitch used for in-flight pitch trimming. Correct ground leveling is better than changing this parameter.",DisplayName:"Pitch angle offset",Increment:"10",Range:{high:"4500",low:"-4500"},Units:"cdeg",User:"Advanced"},TRIM_THROTTLE:{Description:"Target percentage of throttle to apply for flight in automatic throttle modes and throttle percentage that maintains TRIM_ARSPD_CM. Caution: low battery voltages at the end of flights may require higher throttle to maintain airspeed.",DisplayName:"Throttle cruise percentage",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},USE_REV_THRUST:{Bitmask:{0:"AUTO_ALWAYS",1:"AUTO_LAND",2:"AUTO_LOITER_TO_ALT",3:"AUTO_LOITER_ALL",4:"AUTO_WAYPOINTS",5:"LOITER",6:"RTL",7:"CIRCLE",8:"CRUISE",9:"FBWB",10:"GUIDED",11:"AUTO_LANDING_PATTERN",12:"FBWA",13:"ACRO",14:"STABILIZE",15:"THERMAL"},Description:"This controls when to use reverse thrust. If set to zero then reverse thrust is never used. If set to a non-zero value then the bits correspond to flight stages where reverse thrust may be used. The most commonly used value for USE_REV_THRUST is 2, which means AUTO_LAND only. That enables reverse thrust in the landing stage of AUTO mode. Another common choice is 1, which means to use reverse thrust in all auto flight stages. Reverse thrust is always used in MANUAL mode if enabled with THR_MIN < 0. In non-autothrottle controlled modes, if reverse thrust is not used, then THR_MIN is effectively set to 0 for that mode.",DisplayName:"Bitmask for when to allow negative reverse thrust",User:"Advanced",Values:{0:"MANUAL ONLY",1:"AutoAlways",2:"AutoLanding"}},WP_LOITER_RAD:{Description:"Defines the distance from the waypoint center, the plane will maintain during a loiter. If you set this value to a negative number then the default loiter direction will be counter-clockwise instead of clockwise.",DisplayName:"Waypoint Loiter Radius",Increment:"1",Range:{high:"32767",low:"-32767"},Units:"m",User:"Standard"},WP_MAX_RADIUS:{Description:'Sets the maximum distance to a waypoint for the waypoint to be considered complete. This overrides the "cross the finish line" logic that is normally used to consider a waypoint complete. For normal AUTO behaviour this parameter should be set to zero. Using a non-zero value is only recommended when it is critical that the aircraft does approach within the given radius, and should loop around until it has done so. This can cause the aircraft to loop forever if its turn radius is greater than the maximum radius set.',DisplayName:"Waypoint Maximum Radius",Increment:"1",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},WP_RADIUS:{Description:'Defines the maximum distance from a waypoint that when crossed indicates the waypoint may be complete. To avoid the aircraft looping around the waypoint in case it misses by more than the WP_RADIUS an additional check is made to see if the aircraft has crossed a "finish line" passing through the waypoint and perpendicular to the flight path from the previous waypoint. If that finish line is crossed then the waypoint is considered complete. Note that the navigation controller may decide to turn later than WP_RADIUS before a waypoint, based on how sharp the turn is and the speed of the aircraft. It is safe to set WP_RADIUS much larger than the usual turn radius of your aircraft and the navigation controller will work out when to turn. If you set WP_RADIUS too small then you will tend to overshoot the turns.',DisplayName:"Waypoint Radius",Increment:"1",Range:{high:"32767",low:"1"},Units:"m",User:"Standard"}},uY={Q_ACCEL_Z:{Description:"The vertical acceleration used when pilot is controlling the altitude",DisplayName:"Pilot vertical acceleration",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s/s",User:"Standard"},Q_ACRO_PIT_RATE:{Description:"The maximum pitch rate at full stick deflection in QACRO mode",DisplayName:"QACRO mode pitch rate",Increment:"1",Range:{high:"500",low:"10"},Units:"deg/s",User:"Standard"},Q_ACRO_RLL_RATE:{Description:"The maximum roll rate at full stick deflection in QACRO mode",DisplayName:"QACRO mode roll rate",Increment:"1",Range:{high:"500",low:"10"},Units:"deg/s",User:"Standard"},Q_ACRO_YAW_RATE:{Description:"The maximum yaw rate at full stick deflection in QACRO mode",DisplayName:"QACRO mode yaw rate",Increment:"1",Range:{high:"500",low:"10"},Units:"deg/s",User:"Standard"},Q_ANGLE_MAX:{Description:"Maximum lean angle in all VTOL flight modes",DisplayName:"Angle Max",Increment:"10",Range:{high:"8000",low:"1000"},Units:"cdeg",User:"Advanced"},Q_ASSIST_ALT:{Description:"This is the altitude below which quadplane assistance will be triggered. This acts the same way as Q_ASSIST_ANGLE and Q_ASSIST_SPEED, but triggers if the aircraft drops below the given altitude while the VTOL motors are not running. A value of zero disables this feature. The altutude is calculated as being above ground level. The height above ground is given from a Lidar used if available and RNGFND_LANDING=1. Otherwise it comes from terrain data if TERRAIN_FOLLOW=1 and comes from height above home otherwise.",DisplayName:"Quadplane assistance altitude",Increment:"1",Range:{high:"120",low:"0"},Units:"m",User:"Standard"},Q_ASSIST_ANGLE:{Description:"This is the angular error in attitude beyond which the quadplane VTOL motors will provide stability assistance. This will only be used if Q_ASSIST_SPEED is also non-zero. Assistance will be given if the attitude is outside the normal attitude limits by at least 5 degrees and the angular error in roll or pitch is greater than this angle for at least Q_ASSIST_DELAY seconds. Set to zero to disable angle assistance.",DisplayName:"Quadplane assistance angle",Increment:"1",Range:{high:"90",low:"0"},Units:"deg",User:"Standard"},Q_ASSIST_DELAY:{Description:"This is delay between the assistance thresholds being met and the assistance starting.",DisplayName:"Quadplane assistance delay",Increment:"0.1",Range:{high:"2",low:"0"},Units:"s",User:"Standard"},Q_ASSIST_SPEED:{Description:"This is the speed below which the quad motors will provide stability and lift assistance in fixed wing modes. Zero means no assistance except during transition. Note that if this is set to zero then other Q_ASSIST features are also disabled. A higher value will lead to more false positives which can waste battery. A lower value will result in less false positive, but will result in assistance taking longer to trigger. If unsure then set to 3 m/s below the minimum airspeed you will fly at. If you don't have an airspeed sensor then use 5 m/s below the minimum airspeed you fly at. If you want to disable the arming check Q_ASSIST_SPEED then set to -1.",DisplayName:"Quadplane assistance speed",Increment:"0.1",Range:{high:"100",low:"0"},Units:"m/s",User:"Standard"},Q_BACKTRANS_MS:{Description:"Pitch angle will increase from 0 to angle max over this duration when switching into VTOL flight in a postion control mode. 0 Disables.",DisplayName:"SLT and Tiltrotor back transition pitch limit duration",Range:{high:"10000",low:"0"},Units:"ms"},Q_ENABLE:{Description:"This enables QuadPlane functionality, assuming multicopter motors start on output 5. If this is set to 2 then when starting AUTO mode it will initially be in VTOL AUTO mode.",DisplayName:"Enable QuadPlane",RebootRequired:"True",User:"Standard",Values:{0:"Disable",1:"Enable",2:"Enable VTOL AUTO"}},Q_ESC_CAL:{Description:"This is used to calibrate the throttle range of the VTOL motors. Please read https://ardupilot.org/plane/docs/quadplane-esc-calibration.html before using. This parameter is automatically set back to 0 on every boot. This parameter only takes effect in QSTABILIZE mode. When set to 1 the output of all motors will come directly from the throttle stick when armed, and will be zero when disarmed. When set to 2 the output of all motors will be maximum when armed and zero when disarmed. Make sure you remove all properllers before using.",DisplayName:"ESC Calibration",User:"Standard",Values:{0:"Disabled",1:"ThrottleInput",2:"FullInput"}},Q_FRAME_CLASS:{Description:"Controls major frame class for multicopter component",DisplayName:"Frame Class",User:"Standard",Values:{0:"Undefined",1:"Quad",2:"Hexa",3:"Octa",4:"OctaQuad",5:"Y6",7:"Tri",10:"Single/Dual",12:"DodecaHexa",14:"Deca",15:"Scripting Matrix",17:"Dynamic Scripting Matrix"}},Q_FRAME_TYPE:{Description:"Controls motor mixing for multicopter component",DisplayName:"Frame Type (+, X or V)",User:"Standard",Values:{0:"Plus",1:"X",2:"V",3:"H",4:"V-Tail",5:"A-Tail",10:"Y6B",11:"Y6F",12:"BetaFlightX",13:"DJIX",14:"ClockwiseX",15:"I",16:"MOTOR_FRAME_TYPE_NYT_PLUS",17:"MOTOR_FRAME_TYPE_NYT_X",18:"BetaFlightXReversed"}},Q_FWD_MANTHR_MAX:{Description:"Maximum value for manual forward throttle; used with RC option FWD_THR (209)",DisplayName:"VTOL manual forward throttle max percent",Range:{high:"100",low:"0"}},Q_FW_LND_APR_RAD:{Description:"This provides the radius used, when using a fixed wing landing approach. If set to 0 then the WP_LOITER_RAD will be selected.",DisplayName:"Quadplane fixed wing landing approach radius",Increment:"5",Range:{high:"200",low:"0"},Units:"m",User:"Advanced"},Q_GUIDED_MODE:{Description:"This enables use of VTOL in guided mode. When enabled the aircraft will switch to VTOL flight when the guided destination is reached and hover at the destination.",DisplayName:"Enable VTOL in GUIDED mode",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},Q_LAND_ALTCHG:{Description:"The maximum altitude change allowed during land detection. You can raise this value if you find that landing detection takes a long time to complete. It is the maximum change in altitude over a period of 4 seconds for landing to be detected",DisplayName:"Land detection altitude change threshold",Increment:"0.05",Range:{high:"0.6",low:"0.1"},Units:"m",User:"Standard"},Q_LAND_FINAL_ALT:{Description:"The altitude at which we should switch to Q_LAND_SPEED descent rate",DisplayName:"Land final altitude",Increment:"0.1",Range:{high:"50",low:"0.5"},Units:"m",User:"Standard"},Q_LAND_ICE_CUT:{Description:"This controls stopping an internal combustion engine in the final landing stage of a VTOL. This is important for aircraft where the forward thrust engine may experience prop-strike if left running during landing. This requires the engine controls are enabled using the ICE_* parameters.",DisplayName:"Cut IC engine on landing",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},Q_LAND_SPEED:{Description:"The descent speed for the final stage of landing in cm/s",DisplayName:"Land speed",Increment:"10",Range:{high:"200",low:"30"},Units:"cm/s",User:"Standard"},Q_MAV_TYPE:{Description:"This controls the mavlink type given in HEARTBEAT messages. For some GCS types a particular setting will be needed for correct operation.",DisplayName:"MAVLink type identifier",Values:{0:"AUTO",1:"FIXED_WING",2:"QUADROTOR",3:"COAXIAL",4:"HELICOPTER",7:"AIRSHIP",8:"FREE_BALLOON",9:"ROCKET",10:"GROUND_ROVER",11:"SURFACE_BOAT",12:"SUBMARINE",16:"FLAPPING_WING",17:"KITE",19:"VTOL_DUOROTOR",20:"VTOL_QUADROTOR",21:"VTOL_TILTROTOR"}},Q_NAVALT_MIN:{Description:"This is the altitude in meters above which navigation begins in auto takeoff. Below this altitude the target roll and pitch will be zero. A value of zero disables the feature",DisplayName:"Minimum navigation altitude",Range:{high:"5",low:"0"},User:"Advanced"},Q_OPTIONS:{Bitmask:{0:"Level Transition",1:"Allow FW Takeoff",2:"Allow FW Land",3:"Vtol Takeoff Frame",4:"Always use FW spiral approach",5:"Use QRTL",6:"Use Governor",7:"Force Qassist",8:"Mtrs_Only_Qassist",10:"Disarmed Yaw Tilt",11:"Delay Spoolup",12:"disable Qassist based on synthetic airspeed",13:"Disable Ground Effect Compensation",14:"Ignore forward flight angle limits in Qmodes",15:"ThrLandControl",16:"DisableApproach",17:"EnableLandReposition",18:"ARMVtol",19:"CompleteTransition if Q_TRANS_FAIL",20:"Force RTL mode on VTOL failsafes overriding bit 5(USE QRTL)"},Description:"Level Transition:Keep wings within LEVEL_ROLL_LIMIT and only use forward motor(s) for climb during transition, Allow FW Takeoff: If bit is not set then NAV_TAKEOFF command on quadplanes will instead perform a NAV_VTOL takeoff, Allow FW Land:If bit is not set then NAV_LAND command on quadplanes will instead perform a NAV_VTOL_LAND, Vtol Takeoff Frame: command NAV_VTOL_TAKEOFF altitude is as set by the command's reference frame rather than a delta above current location, Always use FW spiral approach:Always use Use a fixed wing spiral approach for VTOL landings, USE QRTL:instead of QLAND for rc failsafe when in VTOL modes, Use Governor:Use ICE Idle Governor in MANUAL for forward motor, Force Qassist: on always,Mtrs_Only_Qassist: in tailsitters only, uses VTOL motors and not flying surfaces for QASSIST, Airmode_On_Arm:Airmode enabled when arming by aux switch, Disarmed Yaw Tilt:Enable motor tilt for yaw when disarmed, Delay Spoolup:Delay VTOL spoolup for 2 seconds after arming, ThrLandControl: enable throttle stick control of landing rate, DisableApproach: Disable use of approach and airbrake stages in VTOL landing, EnableLandResposition: enable pilot controlled repositioning in AUTO land. Descent will pause while repositioning. ARMVTOL: Arm only in VTOL or AUTO modes. CompleteTransition: to fixed wing if Q_TRANS_FAIL timer times out instead of QLAND. Force RTL mode: forces RTL mode on rc failsafe in VTOL modes overriding bit 5(USE_QRTL).",DisplayName:"quadplane options"},Q_PLT_Y_EXPO:{Description:"Pilot controlled yaw expo to allow faster rotation when stick at edges",DisplayName:"Pilot controlled yaw expo",Range:{high:"1.0",low:"-0.5"},User:"Advanced",Values:{0:"Disabled","0.1":"Very Low","0.2":"Low","0.3":"Medium","0.4":"High","0.5":"Very High"}},Q_PLT_Y_RATE:{Description:"Pilot controlled yaw rate max. Used in all pilot controlled modes except QAcro",DisplayName:"Pilot controlled yaw rate",Range:{high:"360",low:"1"},Units:"deg/s",User:"Standard"},Q_PLT_Y_RATE_TC:{Description:"Pilot yaw rate control input time constant. Low numbers lead to sharper response, higher numbers to softer response.",DisplayName:"Pilot yaw rate control input time constant",Increment:"0.01",Range:{high:"1",low:"0"},Units:"s",User:"Standard",Values:{"0.05":"Very Crisp","0.1":"Crisp","0.15":"Medium","0.2":"Soft","0.5":"Very Soft"}},Q_RC_SPEED:{Description:"This is the PWM refresh rate in Hz for QuadPlane quad motors",DisplayName:"RC output speed in Hz",Increment:"10",Range:{high:"500",low:"50"},Units:"Hz",User:"Standard"},Q_RTL_ALT:{Description:"The altitude which QRTL mode heads to initially",DisplayName:"QRTL return altitude",Increment:"1",Range:{high:"200",low:"1"},Units:"m",User:"Standard"},Q_RTL_MODE:{Description:"If this is set to 1 then an RTL will change to QRTL when within RTL_RADIUS meters of the RTL destination, VTOL approach: vehicle will RTL at RTL alt and circle with a radius of Q_FW_LND_APR_RAD down to Q_RTL_ALT and then transition into the wind and QRTL, see 'AUTO VTOL Landing', QRTL Always: do a QRTL instead of RTL",DisplayName:"VTOL RTL mode",User:"Standard",Values:{0:"Disabled",1:"Enabled",2:"VTOL approach",3:"QRTL Always"}},Q_THROTTLE_EXPO:{Description:"Amount of curvature in throttle curve: 0 is linear, 1 is cubic",DisplayName:"Throttle expo strength",Increment:".1",Range:{high:"1",low:"0"},User:"Advanced"},Q_TKOFF_ARSP_LIM:{Description:"Airspeed limit during takeoff. If the airspeed exceeds this level the vehicle will switch to QLAND. This is useful for ensuring that you don't takeoff into excessively strong wind. If set to 0 there is no limit on airspeed during takeoff.",DisplayName:"Takeoff airspeed limit",Increment:"1",Range:{high:"20",low:"0"},Units:"m/s",User:"Advanced"},Q_TKOFF_FAIL_SCL:{Description:"Scalar for how long past the expected takeoff time a takeoff should be considered as failed and the vehicle will switch to QLAND. If set to 0 there is no limit on takeoff time.",DisplayName:"Takeoff time failure scalar",Increment:"5.1",Range:{high:"5.0",low:"1.1"},User:"Advanced"},Q_TRANSITION_MS:{Description:"Transition time in milliseconds after minimum airspeed is reached",DisplayName:"Transition time",Range:{high:"30000",low:"1"},Units:"ms",User:"Advanced"},Q_TRANS_DECEL:{Description:"This is deceleration rate that will be used in calculating the stopping distance when transitioning from fixed wing flight to multicopter flight.",DisplayName:"Transition deceleration",Increment:"0.1",Range:{high:"5",low:"0.2"},Units:"m/s/s",User:"Standard"},Q_TRANS_FAIL:{Description:"Maximum time allowed for forward transitions, exceeding this time will cancel the transition and the aircraft will immediately change to the mode set by Q_TRANS_FAIL_ACT or finish the transition depending on Q_OPTIONS bit 19. 0 for no limit.",DisplayName:"Quadplane transition failure time",Increment:"1",Range:{high:"20",low:"0"},Units:"s",User:"Advanced"},Q_TRANS_FAIL_ACT:{Description:"This sets the mode that is changed to when Q_TRANS_FAIL time elapses, if set. See also Q_OPTIONS bit 19: CompleteTransition if Q_TRANS_FAIL",DisplayName:"Quadplane transition failure action",Values:{0:"QLand",1:"QRTL","-1":"Warn only"}},Q_TRAN_PIT_MAX:{Description:"Maximum pitch during transition to auto fixed wing flight",DisplayName:"Transition max pitch",Increment:"1",Range:{high:"30",low:"0"},Units:"deg",User:"Standard"},Q_TRIM_PITCH:{Description:"This sets the compensation for the pitch angle trim difference between calibrated AHRS level and vertical flight pitch. NOTE! this is relative to calibrated AHRS trim, not forward flight trim which includes TRIM_PITCH_CD. For tailsitters, this is relative to a baseline of 90 degrees in AHRS.",DisplayName:"Quadplane AHRS trim pitch",Increment:"0.1",Range:{high:"+10",low:"-10"},RebootRequired:"True",Units:"deg",User:"Advanced"},Q_VELZ_MAX:{Description:"The maximum ascending vertical velocity the pilot may request in cm/s",DisplayName:"Pilot maximum vertical speed up",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s",User:"Standard"},Q_VELZ_MAX_DN:{Description:"The maximum vertical velocity the pilot may request in cm/s going down. If 0, uses Q_VELZ_MAX value.",DisplayName:"Pilot maximum vertical speed down",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s",User:"Standard"},Q_VFWD_ALT:{Description:"Controls altitude to disable forward velocity assist when below this relative altitude. This is useful to keep the forward velocity propeller from hitting the ground. Rangefinder height data is incorporated when available.",DisplayName:"Forward velocity alt cutoff",Increment:"0.25",Range:{high:"10",low:"0"},Units:"m",User:"Standard"},Q_VFWD_GAIN:{Description:"Controls use of forward motor in vtol modes. If this is zero then the forward motor will not be used for position control in VTOL modes. A value of 0.05 is a good place to start if you want to use the forward motor for position control. No forward motor will be used in QSTABILIZE or QHOVER modes. Use QLOITER for position hold with the forward motor.",DisplayName:"Forward velocity hold gain",Increment:"0.01",Range:{high:"0.5",low:"0"},User:"Standard"},Q_YAW_RATE_MAX:{Description:"This is the maximum yaw rate for pilot input on rudder stick in degrees/second",DisplayName:"Maximum yaw rate",Increment:"1",Range:{high:"500",low:"50"},Units:"deg/s",User:"Standard"}},hY={Q_AUTOTUNE_AGGR:{Description:"Autotune aggressiveness. Defines the bounce back used to detect size of the D term.",DisplayName:"Autotune aggressiveness",Range:{high:"0.10",low:"0.05"},User:"Standard"},Q_AUTOTUNE_AXES:{Bitmask:{0:"Roll",1:"Pitch",2:"Yaw"},Description:"1-byte bitmap of axes to autotune",DisplayName:"Autotune axis bitmask",User:"Standard"},Q_AUTOTUNE_MIN_D:{Description:"Defines the minimum D gain",DisplayName:"AutoTune minimum D",Range:{high:"0.006",low:"0.001"},User:"Standard"}},pY={Q_A_ACCEL_P_MAX:{Description:"Maximum acceleration in pitch axis",DisplayName:"Acceleration Max for Pitch",Increment:"1000",Range:{high:"180000",low:"0"},Units:"cdeg/s/s",User:"Advanced",Values:{0:"Disabled",3e4:"VerySlow",72e3:"Slow",108e3:"Medium",162e3:"Fast"}},Q_A_ACCEL_R_MAX:{Description:"Maximum acceleration in roll axis",DisplayName:"Acceleration Max for Roll",Increment:"1000",Range:{high:"180000",low:"0"},Units:"cdeg/s/s",User:"Advanced",Values:{0:"Disabled",3e4:"VerySlow",72e3:"Slow",108e3:"Medium",162e3:"Fast"}},Q_A_ACCEL_Y_MAX:{Description:"Maximum acceleration in yaw axis",DisplayName:"Acceleration Max for Yaw",Increment:"1000",Range:{high:"72000",low:"0"},Units:"cdeg/s/s",User:"Advanced",Values:{0:"Disabled",9e3:"VerySlow",18e3:"Slow",36e3:"Medium",54e3:"Fast"}},Q_A_ANGLE_BOOST:{Description:"Angle Boost increases output throttle as the vehicle leans to reduce loss of altitude",DisplayName:"Angle Boost",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},Q_A_ANG_LIM_TC:{Description:"Angle Limit (to maintain altitude) Time Constant",DisplayName:"Angle Limit (to maintain altitude) Time Constant",Range:{high:"10.0",low:"0.5"},User:"Advanced"},Q_A_ANG_PIT_P:{Description:"Pitch axis angle controller P gain. Converts the error between the desired pitch angle and actual angle to a desired pitch rate",DisplayName:"Pitch axis angle controller P gain",Range:{high:"12.000",low:"3.000"},User:"Standard"},Q_A_ANG_RLL_P:{Description:"Roll axis angle controller P gain. Converts the error between the desired roll angle and actual angle to a desired roll rate",DisplayName:"Roll axis angle controller P gain",Range:{high:"12.000",low:"3.000"},User:"Standard"},Q_A_ANG_YAW_P:{Description:"Yaw axis angle controller P gain. Converts the error between the desired yaw angle and actual angle to a desired yaw rate",DisplayName:"Yaw axis angle controller P gain",Range:{high:"12.000",low:"3.000"},User:"Standard"},Q_A_INPUT_TC:{Description:"Attitude control input time constant. Low numbers lead to sharper response, higher numbers to softer response",DisplayName:"Attitude control input time constant",Increment:"0.01",Range:{high:"1",low:"0"},Units:"s",User:"Standard",Values:{"0.05":"Very Crisp","0.1":"Crisp","0.15":"Medium","0.2":"Soft","0.5":"Very Soft"}},Q_A_RATE_FF_ENAB:{Description:"Controls whether body-frame rate feedfoward is enabled or disabled",DisplayName:"Rate Feedforward Enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},Q_A_RATE_P_MAX:{Description:"Maximum angular velocity in pitch axis",DisplayName:"Angular Velocity Max for Pitch",Increment:"1",Range:{high:"1080",low:"0"},Units:"deg/s",User:"Advanced",Values:{0:"Disabled",60:"Slow",180:"Medium",360:"Fast"}},Q_A_RATE_R_MAX:{Description:"Maximum angular velocity in roll axis",DisplayName:"Angular Velocity Max for Roll",Increment:"1",Range:{high:"1080",low:"0"},Units:"deg/s",User:"Advanced",Values:{0:"Disabled",60:"Slow",180:"Medium",360:"Fast"}},Q_A_RATE_Y_MAX:{Description:"Maximum angular velocity in yaw axis",DisplayName:"Angular Velocity Max for Yaw",Increment:"1",Range:{high:"1080",low:"0"},Units:"deg/s",User:"Advanced",Values:{0:"Disabled",60:"Slow",180:"Medium",360:"Fast"}},Q_A_RAT_PIT_D:{Description:"Pitch axis rate controller D gain. Compensates for short-term change in desired pitch rate vs actual pitch rate",DisplayName:"Pitch axis rate controller D gain",Increment:"0.001",Range:{high:"0.05",low:"0.0"},User:"Standard"},Q_A_RAT_PIT_FF:{Description:"Pitch axis rate controller feed forward",DisplayName:"Pitch axis rate controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0"},User:"Standard"},Q_A_RAT_PIT_FLTD:{Description:"Pitch axis rate controller derivative frequency in Hz",DisplayName:"Pitch axis rate controller derivative frequency in Hz",Increment:"1",Range:{high:"100",low:"5"},Units:"Hz",User:"Standard"},Q_A_RAT_PIT_FLTE:{Description:"Pitch axis rate controller error frequency in Hz",DisplayName:"Pitch axis rate controller error frequency in Hz",Increment:"1",Range:{high:"100",low:"0"},Units:"Hz",User:"Standard"},Q_A_RAT_PIT_FLTT:{Description:"Pitch axis rate controller target frequency in Hz",DisplayName:"Pitch axis rate controller target frequency in Hz",Increment:"1",Range:{high:"100",low:"5"},Units:"Hz",User:"Standard"},Q_A_RAT_PIT_I:{Description:"Pitch axis rate controller I gain. Corrects long-term difference in desired pitch rate vs actual pitch rate",DisplayName:"Pitch axis rate controller I gain",Increment:"0.01",Range:{high:"2.0",low:"0.01"},User:"Standard"},Q_A_RAT_PIT_IMAX:{Description:"Pitch axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Pitch axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},Q_A_RAT_PIT_P:{Description:"Pitch axis rate controller P gain. Converts the difference between desired pitch rate and actual pitch rate into a motor speed output",DisplayName:"Pitch axis rate controller P gain",Increment:"0.005",Range:{high:"0.50",low:"0.01"},User:"Standard"},Q_A_RAT_PIT_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Pitch slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},Q_A_RAT_RLL_D:{Description:"Roll axis rate controller D gain. Compensates for short-term change in desired roll rate vs actual roll rate",DisplayName:"Roll axis rate controller D gain",Increment:"0.001",Range:{high:"0.05",low:"0.0"},User:"Standard"},Q_A_RAT_RLL_FF:{Description:"Roll axis rate controller feed forward",DisplayName:"Roll axis rate controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0"},User:"Standard"},Q_A_RAT_RLL_FLTD:{Description:"Roll axis rate controller derivative frequency in Hz",DisplayName:"Roll axis rate controller derivative frequency in Hz",Increment:"1",Range:{high:"100",low:"5"},Units:"Hz",User:"Standard"},Q_A_RAT_RLL_FLTE:{Description:"Roll axis rate controller error frequency in Hz",DisplayName:"Roll axis rate controller error frequency in Hz",Increment:"1",Range:{high:"100",low:"0"},Units:"Hz",User:"Standard"},Q_A_RAT_RLL_FLTT:{Description:"Roll axis rate controller target frequency in Hz",DisplayName:"Roll axis rate controller target frequency in Hz",Increment:"1",Range:{high:"100",low:"5"},Units:"Hz",User:"Standard"},Q_A_RAT_RLL_I:{Description:"Roll axis rate controller I gain. Corrects long-term difference in desired roll rate vs actual roll rate",DisplayName:"Roll axis rate controller I gain",Increment:"0.01",Range:{high:"2.0",low:"0.01"},User:"Standard"},Q_A_RAT_RLL_IMAX:{Description:"Roll axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Roll axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},Q_A_RAT_RLL_P:{Description:"Roll axis rate controller P gain. Converts the difference between desired roll rate and actual roll rate into a motor speed output",DisplayName:"Roll axis rate controller P gain",Increment:"0.005",Range:{high:"0.5",low:"0.01"},User:"Standard"},Q_A_RAT_RLL_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Roll slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},Q_A_RAT_YAW_D:{Description:"Yaw axis rate controller D gain. Compensates for short-term change in desired yaw rate vs actual yaw rate",DisplayName:"Yaw axis rate controller D gain",Increment:"0.001",Range:{high:"0.02",low:"0.000"},User:"Standard"},Q_A_RAT_YAW_FF:{Description:"Yaw axis rate controller feed forward",DisplayName:"Yaw axis rate controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0"},User:"Standard"},Q_A_RAT_YAW_FLTD:{Description:"Yaw axis rate controller derivative frequency in Hz",DisplayName:"Yaw axis rate controller derivative frequency in Hz",Increment:"1",Range:{high:"50",low:"5"},Units:"Hz",User:"Standard"},Q_A_RAT_YAW_FLTE:{Description:"Yaw axis rate controller error frequency in Hz",DisplayName:"Yaw axis rate controller error frequency in Hz",Increment:"1",Range:{high:"20",low:"0"},Units:"Hz",User:"Standard"},Q_A_RAT_YAW_FLTT:{Description:"Yaw axis rate controller target frequency in Hz",DisplayName:"Yaw axis rate controller target frequency in Hz",Increment:"1",Range:{high:"50",low:"1"},Units:"Hz",User:"Standard"},Q_A_RAT_YAW_I:{Description:"Yaw axis rate controller I gain. Corrects long-term difference in desired yaw rate vs actual yaw rate",DisplayName:"Yaw axis rate controller I gain",Increment:"0.01",Range:{high:"1.0",low:"0.010"},User:"Standard"},Q_A_RAT_YAW_IMAX:{Description:"Yaw axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Yaw axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},Q_A_RAT_YAW_P:{Description:"Yaw axis rate controller P gain. Converts the difference between desired yaw rate and actual yaw rate into a motor speed output",DisplayName:"Yaw axis rate controller P gain",Increment:"0.005",Range:{high:"2.50",low:"0.10"},User:"Standard"},Q_A_RAT_YAW_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Yaw slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},Q_A_SLEW_YAW:{Description:"Maximum rate the yaw target can be updated in Loiter, RTL, Auto flight modes",DisplayName:"Yaw target slew rate",Increment:"100",Range:{high:"18000",low:"500"},Units:"cdeg/s",User:"Advanced"},Q_A_THR_MIX_MAN:{Description:"Throttle vs attitude control prioritisation used during manual flight (higher values mean we prioritise attitude control over throttle)",DisplayName:"Throttle Mix Manual",Range:{high:"0.9",low:"0.1"},User:"Advanced"},Q_A_THR_MIX_MAX:{Description:"Throttle vs attitude control prioritisation used during active flight (higher values mean we prioritise attitude control over throttle)",DisplayName:"Throttle Mix Maximum",Range:{high:"0.9",low:"0.5"},User:"Advanced"},Q_A_THR_MIX_MIN:{Description:"Throttle vs attitude control prioritisation used when landing (higher values mean we prioritise attitude control over throttle)",DisplayName:"Throttle Mix Minimum",Range:{high:"0.25",low:"0.1"},User:"Advanced"}},fY={Q_LOIT_ACC_MAX:{Description:"Loiter maximum correction acceleration in cm/s/s. Higher values cause the copter to correct position errors more aggressively.",DisplayName:"Loiter maximum correction acceleration",Increment:"1",Range:{high:"981",low:"100"},Units:"cm/s/s",User:"Advanced"},Q_LOIT_ANG_MAX:{Description:"Loiter maximum pilot requested lean angle. Set to zero for 2/3 of Q_P_ANGLE_MAX/Q_ANGLE_MAX. The maximum vehicle lean angle is still limited by Q_P_ANGLE_MAX/Q_ANGLE_MAX",DisplayName:"Loiter pilot angle max",Increment:"1",Range:{high:"45",low:"0"},Units:"deg",User:"Advanced"},Q_LOIT_BRK_ACCEL:{Description:"Loiter braking acceleration in cm/s/s. Higher values stop the copter more quickly when the stick is centered.",DisplayName:"Loiter braking acceleration",Increment:"1",Range:{high:"250",low:"25"},Units:"cm/s/s",User:"Advanced"},Q_LOIT_BRK_DELAY:{Description:"Loiter brake start delay (in seconds)",DisplayName:"Loiter brake start delay (in seconds)",Increment:"0.1",Range:{high:"2",low:"0"},Units:"s",User:"Advanced"},Q_LOIT_BRK_JERK:{Description:"Loiter braking jerk in cm/s/s/s. Higher values will remove braking faster if the pilot moves the sticks during a braking maneuver.",DisplayName:"Loiter braking jerk",Increment:"1",Range:{high:"5000",low:"500"},Units:"cm/s/s/s",User:"Advanced"},Q_LOIT_SPEED:{Description:"Defines the maximum speed in cm/s which the aircraft will travel horizontally while in loiter mode",DisplayName:"Loiter Horizontal Maximum Speed",Increment:"50",Range:{high:"3500",low:"20"},Units:"cm/s",User:"Standard"}},VY={Q_M_BAT_CURR_MAX:{Description:"Maximum current over which maximum throttle is limited (0 = Disabled)",DisplayName:"Motor Current Max",Range:{high:"200",low:"0"},Units:"A",User:"Advanced"},Q_M_BAT_CURR_TC:{Description:"Time constant used to limit the maximum current",DisplayName:"Motor Current Max Time Constant",Range:{high:"10",low:"0"},Units:"s",User:"Advanced"},Q_M_BAT_IDX:{Description:"Which battery monitor should be used for doing compensation",DisplayName:"Battery compensation index",User:"Advanced",Values:{0:"First battery",1:"Second battery"}},Q_M_BAT_VOLT_MAX:{Description:"Battery voltage compensation maximum voltage (voltage above this will have no additional scaling effect on thrust). Recommend 4.2 * cell count, 0 = Disabled",DisplayName:"Battery voltage compensation maximum voltage",Range:{high:"53",low:"6"},Units:"V",User:"Advanced"},Q_M_BAT_VOLT_MIN:{Description:"Battery voltage compensation minimum voltage (voltage below this will have no additional scaling effect on thrust). Recommend 3.3 * cell count, 0 = Disabled",DisplayName:"Battery voltage compensation minimum voltage",Range:{high:"42",low:"6"},Units:"V",User:"Advanced"},Q_M_BOOST_SCALE:{Description:"Booster motor output scaling factor vs main throttle. The output to the BoostThrottle servo will be the main throttle times this scaling factor. A higher scaling factor will put more of the load on the booster motor. A value of 1 will set the BoostThrottle equal to the main throttle.",DisplayName:"Motor boost scale",Increment:"0.1",Range:{high:"5",low:"0"},User:"Advanced"},Q_M_HOVER_LEARN:{Description:"Enable/Disable automatic learning of hover throttle",DisplayName:"Hover Value Learning",User:"Advanced",Values:{0:"Disabled",1:"Learn",2:"Learn and Save"}},Q_M_PWM_MAX:{Description:"This sets the max PWM value in microseconds that will ever be output to the motors",DisplayName:"PWM output maximum",Range:{high:"2000",low:"0"},Units:"PWM",User:"Advanced"},Q_M_PWM_MIN:{Description:"This sets the min PWM output value in microseconds that will ever be output to the motors",DisplayName:"PWM output minimum",Range:{high:"2000",low:"0"},Units:"PWM",User:"Advanced"},Q_M_PWM_TYPE:{Description:"This selects the output PWM type, allowing for normal PWM continuous output, OneShot, brushed or DShot motor output",DisplayName:"Output PWM type",RebootRequired:"True",User:"Advanced",Values:{0:"Normal",1:"OneShot",2:"OneShot125",3:"Brushed",4:"DShot150",5:"DShot300",6:"DShot600",7:"DShot1200",8:"PWMRange"}},Q_M_SAFE_DISARM:{Description:"Disables motor PWM output when disarmed",DisplayName:"Motor PWM output disabled when disarmed",User:"Advanced",Values:{0:"PWM enabled while disarmed",1:"PWM disabled while disarmed"}},Q_M_SAFE_TIME:{Description:"Time taken to disable and enable the motor PWM output when disarmed and armed.",DisplayName:"Time taken to disable and enable the motor PWM output when disarmed and armed.",Increment:"0.001",Range:{high:"5",low:"0"},Units:"s",User:"Advanced"},Q_M_SLEW_DN_TIME:{Description:"Time in seconds to slew output from full to zero. This is used to limit the rate at which output can change. Range is constrained between 0 and 0.5.",DisplayName:"Output slew time for decreasing throttle",Increment:"0.001",Range:{high:".5",low:"0"},Units:"s",User:"Advanced"},Q_M_SLEW_UP_TIME:{Description:"Time in seconds to slew output from zero to full. This is used to limit the rate at which output can change. Range is constrained between 0 and 0.5.",DisplayName:"Output slew time for increasing throttle",Increment:"0.001",Range:{high:".5",low:"0"},Units:"s",User:"Advanced"},Q_M_SPIN_ARM:{Description:"Point at which the motors start to spin expressed as a number from 0 to 1 in the entire output range. Should be lower than MOT_SPIN_MIN.",DisplayName:"Motor Spin armed",User:"Advanced",Values:{"0.0":"Low","0.1":"Default","0.2":"High"}},Q_M_SPIN_MAX:{Description:"Point at which the thrust saturates expressed as a number from 0 to 1 in the entire output range",DisplayName:"Motor Spin maximum",User:"Advanced",Values:{"0.9":"Low","0.95":"Default","1.0":"High"}},Q_M_SPIN_MIN:{Description:"Point at which the thrust starts expressed as a number from 0 to 1 in the entire output range. Should be higher than MOT_SPIN_ARM.",DisplayName:"Motor Spin minimum",User:"Advanced",Values:{"0.0":"Low","0.15":"Default","0.25":"High"}},Q_M_SPOOL_TIME:{Description:"Time in seconds to spool up the motors from zero to min throttle. ",DisplayName:"Spool up time",Increment:"0.1",Range:{high:"2",low:"0"},Units:"s",User:"Advanced"},Q_M_THST_EXPO:{Description:"Motor thrust curve exponent (0.0 for linear to 1.0 for second order curve)",DisplayName:"Thrust Curve Expo",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},Q_M_THST_HOVER:{Description:"Motor thrust needed to hover expressed as a number from 0 to 1",DisplayName:"Thrust Hover Value",Range:{high:"0.8",low:"0.2"},User:"Advanced"},Q_M_YAW_HEADROOM:{Description:"Yaw control is given at least this pwm in microseconds range",DisplayName:"Matrix Yaw Min",Range:{high:"500",low:"0"},Units:"PWM",User:"Advanced"},Q_M_YAW_SV_ANGLE:{Description:"Yaw servo's maximum lean angle (Tricopter only)",DisplayName:"Yaw Servo Max Lean Angle",Increment:"1",Range:{high:"80",low:"5"},Units:"deg",User:"Standard"}},LY={Q_P_ACCZ_D:{Description:"Acceleration (vertical) controller D gain. Compensates for short-term change in desired vertical acceleration vs actual acceleration",DisplayName:"Acceleration (vertical) controller D gain",Range:{high:"0.400",low:"0.000"},User:"Standard"},Q_P_ACCZ_FF:{Description:"Acceleration (vertical) controller feed forward",DisplayName:"Acceleration (vertical) controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0"},User:"Standard"},Q_P_ACCZ_FLTD:{Description:"Acceleration (vertical) controller derivative frequency in Hz",DisplayName:"Acceleration (vertical) controller derivative frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},Q_P_ACCZ_FLTE:{Description:"Acceleration (vertical) controller error frequency in Hz",DisplayName:"Acceleration (vertical) controller error frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},Q_P_ACCZ_FLTT:{Description:"Acceleration (vertical) controller target frequency in Hz",DisplayName:"Acceleration (vertical) controller target frequency in Hz",Increment:"1",Range:{high:"50",low:"1"},Units:"Hz",User:"Standard"},Q_P_ACCZ_I:{Description:"Acceleration (vertical) controller I gain. Corrects long-term difference in desired vertical acceleration and actual acceleration",DisplayName:"Acceleration (vertical) controller I gain",Range:{high:"3.000",low:"0.000"},User:"Standard"},Q_P_ACCZ_IMAX:{Description:"Acceleration (vertical) controller I gain maximum. Constrains the maximum pwm that the I term will generate",DisplayName:"Acceleration (vertical) controller I gain maximum",Range:{high:"1000",low:"0"},Units:"d%",User:"Standard"},Q_P_ACCZ_P:{Description:"Acceleration (vertical) controller P gain. Converts the difference between desired vertical acceleration and actual acceleration into a motor output",DisplayName:"Acceleration (vertical) controller P gain",Increment:"0.05",Range:{high:"1.500",low:"0.200"},User:"Standard"},Q_P_ACCZ_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Accel (vertical) slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},Q_P_ACC_XY_FILT:{Description:"Lower values will slow the response of the navigation controller and reduce twitchiness",DisplayName:"XY Acceleration filter cutoff frequency",Increment:"0.1",Range:{high:"5",low:"0.5"},Units:"Hz",User:"Advanced"},Q_P_ANGLE_MAX:{Description:"Maximum lean angle autopilot can request. Set to zero to use ANGLE_MAX parameter value",DisplayName:"Position Control Angle Max",Increment:"1",Range:{high:"45",low:"0"},Units:"deg",User:"Advanced"},Q_P_JERK_XY:{Description:"Jerk limit of the horizontal kinematic path generation used to determine how quickly the aircraft varies the acceleration target",DisplayName:"Jerk limit for the horizontal kinematic input shaping",Increment:"1",Range:{high:"20",low:"1"},Units:"m/s/s/s",User:"Advanced"},Q_P_JERK_Z:{Description:"Jerk limit of the vertical kinematic path generation used to determine how quickly the aircraft varies the acceleration target",DisplayName:"Jerk limit for the vertical kinematic input shaping",Increment:"1",Range:{high:"50",low:"5"},Units:"m/s/s/s",User:"Advanced"},Q_P_POSXY_P:{Description:"Position controller P gain. Converts the distance (in the latitude direction) to the target location into a desired speed which is then passed to the loiter latitude rate controller",DisplayName:"Position (horizontal) controller P gain",Range:{high:"2.000",low:"0.500"},User:"Standard"},Q_P_POSZ_P:{Description:"Position (vertical) controller P gain. Converts the difference between the desired altitude and actual altitude into a climb or descent rate which is passed to the throttle rate controller",DisplayName:"Position (vertical) controller P gain",Range:{high:"3.000",low:"1.000"},User:"Standard"},Q_P_VELXY_D:{Description:"Velocity (horizontal) D gain. Corrects short-term changes in velocity",DisplayName:"Velocity (horizontal) D gain",Increment:"0.001",Range:{high:"1.00",low:"0.00"},User:"Advanced"},Q_P_VELXY_FF:{Description:"Velocity (horizontal) feed forward gain. Converts the difference between desired velocity to a target acceleration",DisplayName:"Velocity (horizontal) feed forward gain",Increment:"0.01",Range:{high:"6",low:"0"},User:"Advanced"},Q_P_VELXY_FLTD:{Description:"Velocity (horizontal) input filter. This filter (in Hz) is applied to the input for D term",DisplayName:"Velocity (horizontal) input filter",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},Q_P_VELXY_FLTE:{Description:"Velocity (horizontal) input filter. This filter (in Hz) is applied to the input for P and I terms",DisplayName:"Velocity (horizontal) input filter",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},Q_P_VELXY_I:{Description:"Velocity (horizontal) I gain. Corrects long-term difference between desired and actual velocity to a target acceleration",DisplayName:"Velocity (horizontal) I gain",Increment:"0.01",Range:{high:"1.00",low:"0.02"},User:"Advanced"},Q_P_VELXY_IMAX:{Description:"Velocity (horizontal) integrator maximum. Constrains the target acceleration that the I gain will output",DisplayName:"Velocity (horizontal) integrator maximum",Increment:"10",Range:{high:"4500",low:"0"},Units:"cm/s/s",User:"Advanced"},Q_P_VELXY_P:{Description:"Velocity (horizontal) P gain. Converts the difference between desired and actual velocity to a target acceleration",DisplayName:"Velocity (horizontal) P gain",Increment:"0.1",Range:{high:"6.0",low:"0.1"},User:"Advanced"},Q_P_VELZ_D:{Description:"Velocity (vertical) controller D gain. Corrects short-term changes in velocity",DisplayName:"Velocity (vertical) controller D gain",Increment:"0.001",Range:{high:"1.00",low:"0.00"},User:"Advanced"},Q_P_VELZ_FF:{Description:"Velocity (vertical) controller Feed Forward gain. Produces an output that is proportional to the magnitude of the target",DisplayName:"Velocity (vertical) controller Feed Forward gain",Increment:"0.01",Range:{high:"1",low:"0"},User:"Advanced"},Q_P_VELZ_FLTD:{Description:"Velocity (vertical) input filter for D term. This filter (in Hz) is applied to the input for D terms",DisplayName:"Velocity (vertical) input filter for D term",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},Q_P_VELZ_FLTE:{Description:"Velocity (vertical) error filter. This filter (in Hz) is applied to the input for P and I terms",DisplayName:"Velocity (vertical) error filter",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},Q_P_VELZ_I:{Description:"Velocity (vertical) controller I gain. Corrects long-term difference in desired velocity to a target acceleration",DisplayName:"Velocity (vertical) controller I gain",Increment:"0.01",Range:{high:"1.00",low:"0.02"},User:"Advanced"},Q_P_VELZ_IMAX:{Description:"Velocity (vertical) controller I gain maximum. Constrains the target acceleration that the I gain will output",DisplayName:"Velocity (vertical) controller I gain maximum",Range:{high:"8.000",low:"1.000"},User:"Standard"},Q_P_VELZ_P:{Description:"Velocity (vertical) controller P gain. Converts the difference between desired vertical speed and actual speed into a desired acceleration that is passed to the throttle acceleration controller",DisplayName:"Velocity (vertical) controller P gain",Range:{high:"8.000",low:"1.000"},User:"Standard"}},HY={Q_TAILSIT_ANGLE:{Description:"This is the pitch angle at which tailsitter aircraft will change from VTOL control to fixed wing control.",DisplayName:"Tailsitter fixed wing transition angle",Range:{high:"80",low:"5"},Units:"deg"},Q_TAILSIT_ANG_VT:{Description:"This is the pitch angle at which tailsitter aircraft will change from fixed wing control to VTOL control, if zero Q_TAILSIT_ANGLE will be used",DisplayName:"Tailsitter VTOL transition angle",Range:{high:"80",low:"5"},Units:"deg"},Q_TAILSIT_DSKLD:{Description:"This is the vehicle weight in kg divided by the total disk area of all propellers in m^2. Only used with Q_TAILSIT_GSCMSK = 4",DisplayName:"Tailsitter disk loading",Range:{high:"50",low:"0"},Units:"kg/m/m",User:"Standard"},Q_TAILSIT_ENABLE:{Description:'This enables Tailsitter functionality. A value of 2 forces Qassist active and always stabilize in forward flight with airmode for stabalisation at 0 throttle, for use on vehicles with no control surfaces, vehicle will not arm in forward flight modes, see also Q_OPTIONS "Mtrs_Only_Qassist"',DisplayName:"Enable Tailsitter",RebootRequired:"True",User:"Standard",Values:{0:"Disable",1:"Enable",2:"Enable Always"}},Q_TAILSIT_GSCMAX:{Description:"Maximum gain scaling for tailsitter Q_TAILSIT_GSCMSK options",DisplayName:"Maximum tailsitter gain scaling",Range:{high:"5",low:"1"},User:"Standard"},Q_TAILSIT_GSCMIN:{Description:"Minimum gain scaling for tailsitter Q_TAILSIT_GSCMSK options",DisplayName:"Minimum tailsitter gain scaling",Range:{high:"1",low:"0.1"},User:"Standard"},Q_TAILSIT_GSCMSK:{Bitmask:{0:"Throttle",1:"ATT_THR",2:"Disk Theory",3:"Altitude correction"},Description:"Bitmask of gain scaling methods to be applied: Throttle: scale gains with throttle, ATT_THR: reduce gain at high throttle/tilt, 2:Disk theory velocity calculation, requires Q_TAILSIT_DSKLD to be set, ATT_THR must not be set, 3:Altitude correction, scale with air density",DisplayName:"Tailsitter gain scaling mask",User:"Standard"},Q_TAILSIT_INPUT:{Bitmask:{0:"PlaneMode",1:"BodyFrameRoll"},Description:"This controls whether stick input when hovering as a tailsitter follows the conventions for fixed wing hovering or multicopter hovering. When PlaneMode is not enabled (bit0 = 0) the roll stick will roll the aircraft in earth frame and yaw stick will yaw in earth frame. When PlaneMode input is enabled, the roll and yaw sticks are swapped so that the roll stick controls earth-frame yaw and rudder controls earth-frame roll. When body-frame roll is enabled (bit1 = 1), the yaw stick controls earth-frame yaw rate and the roll stick controls roll in the tailsitter's body frame when flying level.",DisplayName:"Tailsitter input type bitmask"},Q_TAILSIT_MIN_VO:{Description:"Use in conjunction with disk therory gain scaling and Q_TAILSIT_DSKLD to specify minumum airspeed over control surfaces, this will be used to boost throttle, when decending for example, 0 disables",DisplayName:"Tailsitter Disk loading minimum outflow speed",Range:{high:"15",low:"0"}},Q_TAILSIT_MOTMX:{Bitmask:{0:"Motor 1",1:"Motor 2",2:"Motor 3",3:"Motor 4",4:"Motor 5",5:"Motor 6",6:"Motor 7",7:"Motor 8"},Description:"Bitmask of motors to remain active in forward flight for a 'Copter' tailsitter. Non-zero indicates airframe is a Copter tailsitter and uses copter style motor layouts determined by Q_FRAME_CLASS and Q_FRAME_TYPE. This should be zero for non-Copter tailsitters.",DisplayName:"Tailsitter motor mask",User:"Standard"},Q_TAILSIT_RAT_FW:{Description:"The pitch rate at which tailsitter aircraft will pitch down in the transition from VTOL to forward flight",DisplayName:"Tailsitter VTOL to forward flight transition rate",Range:{high:"500",low:"10"},Units:"deg/s"},Q_TAILSIT_RAT_VT:{Description:"The pitch rate at which tailsitter aircraft will pitch up in the transition from forward flight to VTOL",DisplayName:"Tailsitter forward flight to VTOL transition rate",Range:{high:"500",low:"10"},Units:"deg/s"},Q_TAILSIT_RLL_MX:{Description:"Maximum Allowed roll angle for tailsitters. If this is zero then Q_ANGLE_MAX is used.",DisplayName:"Maximum Roll angle",Range:{high:"80",low:"0"},Units:"deg",User:"Standard"},Q_TAILSIT_THR_VT:{Description:"Throttle used during FW->VTOL transition, -1 uses hover throttle",DisplayName:"Tailsitter forward flight to VTOL transition throttle",Range:{high:"100",low:"-1"},Units:"%"},Q_TAILSIT_VFGAIN:{Description:"This controls the amount of vectored thrust control used in forward flight for a vectored tailsitter",DisplayName:"Tailsitter vector thrust gain in forward flight",Increment:"0.01",Range:{high:"1",low:"0"}},Q_TAILSIT_VHGAIN:{Description:"This controls the amount of vectored thrust control used in hover for a vectored tailsitter",DisplayName:"Tailsitter vector thrust gain in hover",Increment:"0.01",Range:{high:"1",low:"0"}},Q_TAILSIT_VHPOW:{Description:"This controls the amount of extra pitch given to the vectored control when at high pitch errors",DisplayName:"Tailsitter vector thrust gain power",Increment:"0.1",Range:{high:"4",low:"0"}},Q_TAILSIT_VT_P_P:{Description:"Scale from PID output to control surface, for use where a single axis is actuated by both motors and Tilt/control surface on a copter style tailsitter, increase to favor control surfaces and reduce motor output by reducing gains",DisplayName:"Tailsitter VTOL control surface pitch gain",Range:{high:"2",low:"0"}},Q_TAILSIT_VT_R_P:{Description:"Scale from PID output to control surface, for use where a single axis is actuated by both motors and Tilt/control surface on a copter style tailsitter, increase to favor control surfaces and reduce motor output by reducing gains",DisplayName:"Tailsitter VTOL control surface roll gain",Range:{high:"2",low:"0"}},Q_TAILSIT_VT_Y_P:{Description:"Scale from PID output to control surface, for use where a single axis is actuated by both motors and Tilt/control surface on a copter style tailsitter, increase to favor control surfaces and reduce motor output by reducing gains",DisplayName:"Tailsitter VTOL control surface yaw gain",Range:{high:"2",low:"0"}}},MY={Q_TILT_ENABLE:{Description:"This enables Tiltrotor functionality",DisplayName:"Enable Tiltrotor functionality",RebootRequired:"True",User:"Standard",Values:{0:"Disable",1:"Enable"}},Q_TILT_FIX_ANGLE:{Description:"This is the angle the motors tilt down when at maximum output for forward flight. Set this to a non-zero value to enable vectoring for roll/pitch in forward flight on tilt-vectored aircraft",DisplayName:"Fixed wing tiltrotor angle",Range:{high:"30",low:"0"},Units:"deg",User:"Standard"},Q_TILT_FIX_GAIN:{Description:"This is the gain for use of tilting motors in fixed wing flight for tilt vectored quadplanes",DisplayName:"Fixed wing tiltrotor gain",Range:{high:"1",low:"0"},User:"Standard"},Q_TILT_MASK:{Description:"This is a bitmask of motors that are tiltable in a tiltrotor (or tiltwing). The mask is in terms of the standard motor order for the frame type.",DisplayName:"Tiltrotor mask",User:"Standard"},Q_TILT_MAX:{Description:"This is the maximum angle of the tiltable motors at which multicopter control will be enabled. Beyond this angle the plane will fly solely as a fixed wing aircraft and the motors will tilt to their maximum angle at the TILT_RATE",DisplayName:"Tiltrotor maximum VTOL angle",Increment:"1",Range:{high:"80",low:"20"},Units:"deg",User:"Standard"},Q_TILT_RATE_DN:{Description:"This is the maximum speed at which the motor angle will change for a tiltrotor when moving from hover to forward flight. When this is zero the Q_TILT_RATE_UP value is used.",DisplayName:"Tiltrotor downwards tilt rate",Increment:"1",Range:{high:"300",low:"10"},Units:"deg/s",User:"Standard"},Q_TILT_RATE_UP:{Description:"This is the maximum speed at which the motor angle will change for a tiltrotor when moving from forward flight to hover",DisplayName:"Tiltrotor upwards tilt rate",Increment:"1",Range:{high:"300",low:"10"},Units:"deg/s",User:"Standard"},Q_TILT_TYPE:{Description:"This is the type of tiltrotor when TILT_MASK is non-zero. A continuous tiltrotor can tilt the rotors to any angle on demand. A binary tiltrotor assumes a retract style servo where the servo is either fully forward or fully up. In both cases the servo can't move faster than Q_TILT_RATE. A vectored yaw tiltrotor will use the tilt of the motors to control yaw in hover, Bicopter tiltrottor must use the tailsitter frame class (10)",DisplayName:"Tiltrotor type",Values:{0:"Continuous",1:"Binary",2:"VectoredYaw",3:"Bicopter"}},Q_TILT_WING_FLAP:{Description:"For use on tilt wings, the wing will tilt up to this angle for flap, transition will be complete when the wing reaches this angle from the forward fight position, 0 disables",DisplayName:"Tiltrotor tilt angle that will be used as flap",Increment:"1",Range:{high:"15",low:"0"},Units:"deg",User:"Standard"},Q_TILT_YAW_ANGLE:{Description:"This is the angle of the tilt servos when in VTOL mode and at minimum output. This needs to be set for Q_TILT_TYPE=3 to enable vectored control for yaw of tricopter tilt quadplanes. This is also used to limit the forwards travel of bicopter tilts when in VTOL modes",DisplayName:"Tilt minimum angle for vectored yaw",Range:{high:"30",low:"0"}}},gY={Q_WP_ACCEL:{Description:"Defines the horizontal acceleration in cm/s/s used during missions",DisplayName:"Waypoint Acceleration ",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s/s",User:"Standard"},Q_WP_ACCEL_Z:{Description:"Defines the vertical acceleration in cm/s/s used during missions",DisplayName:"Waypoint Vertical Acceleration",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s/s",User:"Standard"},Q_WP_JERK:{Description:"Defines the horizontal jerk in m/s/s used during missions",DisplayName:"Waypoint Jerk",Range:{high:"20",low:"1"},Units:"m/s/s/s",User:"Standard"},Q_WP_RADIUS:{Description:"Defines the distance from a waypoint, that when crossed indicates the wp has been hit.",DisplayName:"Waypoint Radius",Increment:"1",Range:{high:"1000",low:"5"},Units:"cm",User:"Standard"},Q_WP_RFND_USE:{Description:"This controls if waypoint missions use rangefinder for terrain following",DisplayName:"Waypoint missions use rangefinder for terrain following",User:"Advanced",Values:{0:"Disable",1:"Enable"}},Q_WP_SPEED:{Description:"Defines the speed in cm/s which the aircraft will attempt to maintain horizontally during a WP mission",DisplayName:"Waypoint Horizontal Speed Target",Increment:"50",Range:{high:"2000",low:"20"},Units:"cm/s",User:"Standard"},Q_WP_SPEED_DN:{Description:"Defines the speed in cm/s which the aircraft will attempt to maintain while descending during a WP mission",DisplayName:"Waypoint Descent Speed Target",Increment:"10",Range:{high:"500",low:"10"},Units:"cm/s",User:"Standard"},Q_WP_SPEED_UP:{Description:"Defines the speed in cm/s which the aircraft will attempt to maintain while climbing during a WP mission",DisplayName:"Waypoint Climb Speed Target",Increment:"50",Range:{high:"1000",low:"10"},Units:"cm/s",User:"Standard"},Q_WP_TER_MARGIN:{Description:"Waypoint Terrain following altitude margin. Vehicle will stop if distance from target altitude is larger than this margin (in meters)",DisplayName:"Waypoint Terrain following altitude margin",Range:{high:"100",low:"0.1"},Units:"m",User:"Advanced"}},AY={Q_WVANE_ANG_MIN:{Description:"The minimum target roll/pitch angle before active weathervaning will start. This provides a dead zone that is particularly useful for poorly trimmed quadplanes.",DisplayName:"Weathervaning min angle",Increment:"0.1",Range:{high:"10",low:"0"},Units:"deg",User:"Standard"},Q_WVANE_ENABLE:{Description:"Enable weather vaning. When active, the aircraft will automatically yaw into wind when in a VTOL position controlled mode. Pilot yaw commands overide the weathervaning action.",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Nose into wind",2:"Nose or tail into wind",3:"Side into wind",4:"tail into wind"}},Q_WVANE_GAIN:{Description:"This converts the target roll/pitch angle of the aircraft into the correcting (into wind) yaw rate. e.g. Gain = 2, roll = 30 deg, pitch = 0 deg, yaw rate = 60 deg/s.",DisplayName:"Weathervaning gain",Increment:"0.1",Range:{high:"4",low:"0.5"},User:"Standard"},Q_WVANE_HGT_MIN:{Description:"Above this height weathervaning is permitted. If RNGFND_LANDING is enabled or terrain is enabled then this parameter sets height AGL. Otherwise this parameter sets height above home. Set zero to ignore minimum height requirement to activate weathervaning",DisplayName:"Weathervaning min height",Increment:"1",Range:{high:"50",low:"0"},Units:"m",User:"Standard"},Q_WVANE_LAND:{Description:"Override the weather vaning behaviour when in landing",DisplayName:"Landing override",User:"Standard",Values:{0:"Disabled",1:"Nose into wind",2:"Nose or tail into wind",3:"Side into wind",4:"tail into wind","-1":"No override"}},Q_WVANE_OPTIONS:{Bitmask:{0:"Use pitch when nose or tail-in for faster weathervaning"},Description:"Options impacting weathervaning behaviour",DisplayName:"Weathervaning options",User:"Standard"},Q_WVANE_SPD_MAX:{Description:"Below this ground speed weathervaning is permitted. Set to 0 to ignore this condition when checking if vehicle should weathervane.",DisplayName:"Weathervaning max ground speed",Increment:"0.1",Range:{high:"50",low:"0"},Units:"m/s",User:"Standard"},Q_WVANE_TAKEOFF:{Description:"Override the weather vaning behaviour when in takeoffs",DisplayName:"Takeoff override",User:"Standard",Values:{0:"Disabled",1:"Nose into wind",2:"Nose or tail into wind",3:"Side into wind",4:"tail into wind","-1":"No override"}},Q_WVANE_VELZ_MAX:{Description:"The maximum climb or descent speed that the vehicle will still attempt to weathervane. Set to 0 to ignore this condition to get the aircraft to weathervane at any climb/descent rate. This is particularly useful for aircraft with low disc loading that struggle with yaw control in decent.",DisplayName:"Weathervaning max vertical speed",Increment:"0.1",Range:{high:"5",low:"0"},Units:"m/s",User:"Standard"}},vY={RALLY_INCL_HOME:{Description:"Controls if Home is included as a Rally point (i.e. as a safe landing place) for RTL",DisplayName:"Rally Include Home",User:"Standard",Values:{0:"DoNotIncludeHome",1:"IncludeHome"}},RALLY_LIMIT_KM:{Description:"Maximum distance to rally point. If the closest rally point is more than this number of kilometers from the current position and the home location is closer than any of the rally points from the current position then do RTL to home rather than to the closest rally point. This prevents a leftover rally point from a different airfield being used accidentally. If this is set to 0 then the closest rally point is always used.",DisplayName:"Rally Limit",Increment:"0.1",Units:"km",User:"Advanced"},RALLY_TOTAL:{Description:"Number of rally points currently loaded",DisplayName:"Rally Total",User:"Advanced"}},_Y={RC_OPTIONS:{Bitmask:{0:"Ignore RC Receiver",1:"Ignore MAVLink Overrides",2:"Ignore Receiver Failsafe bit but allow other RC failsafes if setup",3:"FPort Pad",4:"Log RC input bytes",5:"Arming check throttle for 0 input",6:"Skip the arming check for neutral Roll/Pitch/Yaw sticks",7:"Allow Switch reverse",8:"Use passthrough for CRSF telemetry",9:"Suppress CRSF mode/rate message for ELRS systems",10:"Enable multiple receiver support",11:"CRSF RSSI shows Link Quality"},Description:"RC input options",DisplayName:"RC options",User:"Advanced"},RC_OVERRIDE_TIME:{Description:"Timeout after which RC overrides will no longer be used, and RC input will resume, 0 will disable RC overrides, -1 will never timeout, and continue using overrides until they are disabled",DisplayName:"RC override timeout",Range:{high:"120.0",low:"0.0"},Units:"s",User:"Advanced"},RC_PROTOCOLS:{Bitmask:{0:"All",1:"PPM",2:"IBUS",3:"SBUS",4:"SBUS_NI",5:"DSM",6:"SUMD",7:"SRXL",8:"SRXL2",9:"CRSF",10:"ST24",11:"FPORT",12:"FPORT2",13:"FastSBUS"},Description:"Bitmask of enabled RC protocols. Allows narrowing the protocol detection to only specific types of RC receivers which can avoid issues with incorrect detection. Set to 1 to enable all protocols.",DisplayName:"RC protocols enabled",User:"Advanced"}},SY={RC10_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC10_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC10_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC10_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC10_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC10_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},DY={RC11_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC11_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC11_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC11_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC11_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC11_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},yY={RC12_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC12_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC12_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC12_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC12_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC12_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},RY={RC13_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC13_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC13_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC13_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC13_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC13_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},bY={RC14_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC14_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC14_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC14_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC14_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC14_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},NY={RC15_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC15_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC15_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC15_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC15_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC15_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},wY={RC16_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC16_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC16_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC16_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC16_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC16_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},TY={RC1_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC1_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC1_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC1_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC1_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC1_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},EY={RC2_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC2_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC2_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC2_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC2_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC2_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},PY={RC3_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC3_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC3_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC3_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC3_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC3_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},IY={RC4_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC4_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC4_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC4_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC4_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC4_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},OY={RC5_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC5_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC5_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC5_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC5_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC5_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},UY={RC6_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC6_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC6_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC6_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC6_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC6_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},xY={RC7_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC7_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC7_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC7_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC7_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC7_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},FY={RC8_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC8_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC8_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC8_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC8_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC8_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},kY={RC9_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC9_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC9_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC9_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC9_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC9_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},BY={RCMAP_PITCH:{Description:"Pitch channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Pitch is normally on channel 2, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Pitch channel",Increment:"1",Range:{high:"16",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_ROLL:{Description:"Roll channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Roll is normally on channel 1, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Roll channel",Increment:"1",Range:{high:"16",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_THROTTLE:{Description:"Throttle channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Throttle is normally on channel 3, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Throttle channel",Increment:"1",Range:{high:"16",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_YAW:{Description:"Yaw channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Yaw (also known as rudder) is normally on channel 4, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Yaw channel",Increment:"1",Range:{high:"16",low:"1"},RebootRequired:"True",User:"Advanced"}},zY={RELAY_DEFAULT:{Description:"The state of the relay on boot.",DisplayName:"Default relay state",User:"Standard",Values:{0:"Off",1:"On",2:"NoChange"}},RELAY_PIN:{Description:`Digital pin number for first relay control. This is the pin used for camera shutter control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"First Relay Pin",User:"Standard",Values:{27:"BBBMini Pin P8.17",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN2:{Description:`Digital pin number for 2nd relay control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Second Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",65:"BBBMini Pin P8.18",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN3:{Description:`Digital pin number for 3rd relay control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Third Relay Pin",User:"Standard",Values:{22:"BBBMini Pin P8.19",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN4:{Description:`Digital pin number for 4th relay control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Fourth Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",63:"BBBMini Pin P8.34",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN5:{Description:`Digital pin number for 5th relay control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Fifth Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",62:"BBBMini Pin P8.13",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN6:{Description:`Digital pin number for 6th relay control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Sixth Relay Pin",User:"Standard",Values:{37:"BBBMini Pin P8.14",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}}},ZY={RLL2SRV_RMAX:{Description:"This sets the maximum roll rate that the attitude controller will demand (degrees/sec) in angle stabilized modes. Setting it to zero disables this limit.",DisplayName:"Maximum Roll Rate",Increment:"1",Range:{high:"180",low:"0"},Units:"deg/s",User:"Advanced"},RLL2SRV_TCONST:{Description:"Time constant in seconds from demanded to achieved roll angle. Most models respond well to 0.5. May be reduced for faster responses, but setting lower than a model can achieve will not help.",DisplayName:"Roll Time Constant",Increment:"0.1",Range:{high:"1.0",low:"0.4"},Units:"s",User:"Advanced"},RLL_RATE_D:{Description:"Roll axis rate controller D gain. Compensates for short-term change in desired roll rate vs actual roll rate",DisplayName:"Roll axis rate controller D gain",Increment:"0.001",Range:{high:"0.03",low:"0.001"},User:"Standard"},RLL_RATE_FF:{Description:"Roll axis rate controller feed forward",DisplayName:"Roll axis rate controller feed forward",Increment:"0.001",Range:{high:"3.0",low:"0"},User:"Standard"},RLL_RATE_FLTD:{Description:"Roll axis rate controller derivative frequency in Hz",DisplayName:"Roll axis rate controller derivative frequency in Hz",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Standard"},RLL_RATE_FLTE:{Description:"Roll axis rate controller error frequency in Hz",DisplayName:"Roll axis rate controller error frequency in Hz",Increment:"1",Range:{high:"50",low:"2"},Units:"Hz",User:"Standard"},RLL_RATE_FLTT:{Description:"Roll axis rate controller target frequency in Hz",DisplayName:"Roll axis rate controller target frequency in Hz",Increment:"1",Range:{high:"50",low:"2"},Units:"Hz",User:"Standard"},RLL_RATE_I:{Description:"Roll axis rate controller I gain. Corrects long-term difference in desired roll rate vs actual roll rate",DisplayName:"Roll axis rate controller I gain",Increment:"0.01",Range:{high:"0.6",low:"0.01"},User:"Standard"},RLL_RATE_IMAX:{Description:"Roll axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Roll axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},RLL_RATE_P:{Description:"Roll axis rate controller P gain. Converts the difference between desired roll rate and actual roll rate into a motor speed output",DisplayName:"Roll axis rate controller P gain",Increment:"0.005",Range:{high:"0.35",low:"0.08"},User:"Standard"},RLL_RATE_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Roll slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"}},GY={RNGFND1_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND1_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND1_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND1_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND1_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND1_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND1_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND1_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND1_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND1_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND1_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND1_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND1_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND1_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND1_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND1_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND1_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND1_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},WY={RNGFND2_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND2_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND2_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND2_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND2_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND2_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND2_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND2_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND2_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND2_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND2_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND2_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND2_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND2_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND2_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND2_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND2_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND2_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},XY={RNGFND3_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND3_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND3_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND3_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND3_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND3_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND3_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND3_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND3_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND3_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND3_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND3_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND3_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND3_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND3_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND3_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND3_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND3_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},YY={RNGFND4_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND4_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND4_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND4_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND4_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND4_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND4_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND4_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND4_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND4_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND4_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND4_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND4_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND4_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND4_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND4_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND4_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND4_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},$Y={RNGFND5_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND5_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND5_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND5_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND5_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND5_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND5_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND5_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND5_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND5_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND5_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND5_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND5_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND5_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND5_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND5_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND5_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND5_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},qY={RNGFND6_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND6_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND6_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND6_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND6_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND6_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND6_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND6_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND6_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND6_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND6_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND6_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND6_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND6_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND6_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND6_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND6_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND6_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},KY={RNGFND7_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND7_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND7_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND7_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND7_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND7_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND7_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND7_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND7_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND7_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND7_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND7_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND7_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND7_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND7_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND7_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND7_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND7_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},jY={RNGFND8_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND8_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND8_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND8_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND8_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND8_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND8_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND8_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND8_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND8_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND8_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND8_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND8_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND8_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND8_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND8_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND8_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND8_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},QY={RNGFND9_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND9_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND9_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND9_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND9_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND9_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND9_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND9_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND9_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND9_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND9_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND9_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND9_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND9_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND9_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND9_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND9_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND9_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},JY={RNGFNDA_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFNDA_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFNDA_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFNDA_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFNDA_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFNDA_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFNDA_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFNDA_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFNDA_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFNDA_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFNDA_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFNDA_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFNDA_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFNDA_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFNDA_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFNDA_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFNDA_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFNDA_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},e$={RPM1_ESC_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which support ESC rpm telemetry. RPM telemetry of the selected channels will be averaged",DisplayName:"Bitmask of ESC telemetry channels to average",User:"Advanced"},RPM1_MAX:{Description:"Maximum RPM to report. Only used on type = GPIO.",DisplayName:"Maximum RPM",Increment:"1",User:"Standard"},RPM1_MIN:{Description:"Minimum RPM to report. Only used on type = GPIO.",DisplayName:"Minimum RPM",Increment:"1",User:"Standard"},RPM1_MIN_QUAL:{Description:"Minimum data quality to be used",DisplayName:"Minimum Quality",Increment:"0.1",User:"Advanced"},RPM1_PIN:{Description:`Which digital GPIO pin to use. Only used on type = GPIO. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Input pin number",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},RPM1_SCALING:{Description:"Scaling factor between sensor reading and RPM.",DisplayName:"RPM scaling",Increment:"0.001",User:"Standard"},RPM1_TYPE:{Description:"What type of RPM sensor is connected",DisplayName:"RPM type",User:"Standard",Values:{0:"None",1:"Not Used",2:"GPIO",3:"EFI",4:"Harmonic Notch",5:"ESC Telemetry Motors Bitmask",6:"Generator"}}},t$={RPM2_ESC_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which support ESC rpm telemetry. RPM telemetry of the selected channels will be averaged",DisplayName:"Bitmask of ESC telemetry channels to average",User:"Advanced"},RPM2_MAX:{Description:"Maximum RPM to report. Only used on type = GPIO.",DisplayName:"Maximum RPM",Increment:"1",User:"Standard"},RPM2_MIN:{Description:"Minimum RPM to report. Only used on type = GPIO.",DisplayName:"Minimum RPM",Increment:"1",User:"Standard"},RPM2_MIN_QUAL:{Description:"Minimum data quality to be used",DisplayName:"Minimum Quality",Increment:"0.1",User:"Advanced"},RPM2_PIN:{Description:`Which digital GPIO pin to use. Only used on type = GPIO. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Input pin number",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},RPM2_SCALING:{Description:"Scaling factor between sensor reading and RPM.",DisplayName:"RPM scaling",Increment:"0.001",User:"Standard"},RPM2_TYPE:{Description:"What type of RPM sensor is connected",DisplayName:"RPM type",User:"Standard",Values:{0:"None",1:"Not Used",2:"GPIO",3:"EFI",4:"Harmonic Notch",5:"ESC Telemetry Motors Bitmask",6:"Generator"}}},i$={RSSI_ANA_PIN:{Description:"Pin used to read the RSSI voltage or PWM value",DisplayName:"Receiver RSSI sensing pin",User:"Standard",Values:{8:"V5 Nano",11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS"}},RSSI_CHANNEL:{Description:"The channel number where RSSI will be output by the radio receiver (5 and above).",DisplayName:"Receiver RSSI channel number",Range:{high:"16",low:"0"},User:"Standard"},RSSI_CHAN_HIGH:{Description:"PWM value that the radio receiver will put on the RSSI_CHANNEL or RSSI_ANA_PIN when the signal strength is the strongest. Some radio receivers output inverted values so this value may be higher than RSSI_CHAN_LOW",DisplayName:"Receiver RSSI PWM high value",Range:{high:"2000",low:"0"},Units:"PWM",User:"Standard"},RSSI_CHAN_LOW:{Description:"PWM value that the radio receiver will put on the RSSI_CHANNEL or RSSI_ANA_PIN when the signal strength is the weakest. Some radio receivers output inverted values so this value may be lower than RSSI_CHAN_HIGH",DisplayName:"RSSI PWM low value",Range:{high:"2000",low:"0"},Units:"PWM",User:"Standard"},RSSI_PIN_HIGH:{Description:"RSSI pin's voltage received on the RSSI_ANA_PIN when the signal strength is the strongest. Some radio receivers put out inverted values so this value may be lower than RSSI_PIN_LOW. When using pin 103, the maximum value of the parameter is 3.3V.",DisplayName:"RSSI pin's highest voltage",Increment:"0.01",Range:{high:"5.0",low:"0"},Units:"V",User:"Standard"},RSSI_PIN_LOW:{Description:"RSSI pin's voltage received on the RSSI_ANA_PIN when the signal strength is the weakest. Some radio receivers put out inverted values so this value may be higher than RSSI_PIN_HIGH. When using pin 103, the maximum value of the parameter is 3.3V.",DisplayName:"RSSI pin's lowest voltage",Increment:"0.01",Range:{high:"5.0",low:"0"},Units:"V",User:"Standard"},RSSI_TYPE:{Description:"Radio Receiver RSSI type. If your radio receiver supports RSSI of some kind, set it here, then set its associated RSSI_XXXXX parameters, if any.",DisplayName:"RSSI Type",User:"Standard",Values:{0:"Disabled",1:"AnalogPin",2:"RCChannelPwmValue",3:"ReceiverProtocol",4:"PWMInputPin",5:"TelemetryRadioRSSI"}}},a$={SCHED_DEBUG:{Description:'Set to non-zero to enable scheduler debug messages. When set to show "Slips" the scheduler will display a message whenever a scheduled task is delayed due to too much CPU load. When set to ShowOverruns the scheduled will display a message whenever a task takes longer than the limit promised in the task table.',DisplayName:"Scheduler debug level",User:"Advanced",Values:{0:"Disabled",2:"ShowSlips",3:"ShowOverruns"}},SCHED_LOOP_RATE:{Description:"This controls the rate of the main control loop in Hz. This should only be changed by developers. This only takes effect on restart. Values over 400 are considered highly experimental.",DisplayName:"Scheduling main loop rate",RebootRequired:"True",User:"Advanced",Values:{50:"50Hz",100:"100Hz",200:"200Hz",250:"250Hz",300:"300Hz",400:"400Hz"}},SCHED_OPTIONS:{Bitmask:{0:"Enable per-task perf info"},Description:"This controls optional aspects of the scheduler.",DisplayName:"Scheduling options",User:"Advanced"}},r$={SCR_DEBUG_OPTS:{Bitmask:{0:"No Scripts to run message if all scripts have stopped",1:"Runtime messages for memory usage and execution time",2:"Suppress logging scripts to dataflash",3:"log runtime memory usage and execution time",4:"Disable pre-arm check"},Description:"Debugging options",DisplayName:"Scripting Debug Level",User:"Advanced"},SCR_DIR_DISABLE:{Bitmask:{0:"ROMFS",1:"APM/scripts"},Description:"This will stop scripts being loaded from the given locations",DisplayName:"Directory disable",RebootRequired:"True",User:"Advanced"},SCR_ENABLE:{Description:"Controls if scripting is enabled",DisplayName:"Enable Scripting",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Lua Scripts"}},SCR_HEAP_SIZE:{Description:"Amount of memory available for scripting",DisplayName:"Scripting Heap Size",Increment:"1024",Range:{high:"1048576",low:"1024"},RebootRequired:"True",User:"Advanced"},SCR_USER1:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter1",User:"Standard"},SCR_USER2:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter2",User:"Standard"},SCR_USER3:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter3",User:"Standard"},SCR_USER4:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter4",User:"Standard"},SCR_USER5:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter5",User:"Standard"},SCR_USER6:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter6",User:"Standard"},SCR_VM_I_COUNT:{Description:"The number virtual machine instructions that can be run before considering a script to have taken an excessive amount of time",DisplayName:"Scripting Virtual Machine Instruction Count",Increment:"10000",Range:{high:"1000000",low:"1000"},User:"Advanced"}},n$={SERIAL0_BAUD:{Description:"The baud rate used on the USB console. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial0 baud rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL0_PROTOCOL:{Description:"Control what protocol to use on the console. ",DisplayName:"Console protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVlink1",2:"MAVLink2"}},SERIAL1_BAUD:{Description:"The baud rate used on the Telem1 port. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Telem1 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL1_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire. The Swap option allows the RX and TX pins to be swapped on STM32F7 based boards.",DisplayName:"Telem1 options",RebootRequired:"True",User:"Advanced"},SERIAL1_PROTOCOL:{Description:"Control what protocol to use on the Telem1 port. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Telem1 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL2_BAUD:{Description:"The baud rate of the Telem2 port. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Telemetry 2 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL2_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Telem2 options",RebootRequired:"True",User:"Advanced"},SERIAL2_PROTOCOL:{Description:"Control what protocol to use on the Telem2 port. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Telemetry 2 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL3_BAUD:{Description:"The baud rate used for the Serial 3 (GPS). Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 3 (GPS) Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL3_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial3 options",RebootRequired:"True",User:"Advanced"},SERIAL3_PROTOCOL:{Description:"Control what protocol Serial 3 (GPS) should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial 3 (GPS) protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL4_BAUD:{Description:"The baud rate used for Serial4. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 4 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL4_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial4 options",RebootRequired:"True",User:"Advanced"},SERIAL4_PROTOCOL:{Description:"Control what protocol Serial4 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial4 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL5_BAUD:{Description:"The baud rate used for Serial5. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 5 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL5_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial5 options",RebootRequired:"True",User:"Advanced"},SERIAL5_PROTOCOL:{Description:"Control what protocol Serial5 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial5 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL6_BAUD:{Description:"The baud rate used for Serial6. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 6 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL6_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial6 options",RebootRequired:"True",User:"Advanced"},SERIAL6_PROTOCOL:{Description:"Control what protocol Serial6 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial6 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL7_BAUD:{Description:"The baud rate used for Serial7. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 7 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL7_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial7 options",RebootRequired:"True",User:"Advanced"},SERIAL7_PROTOCOL:{Description:"Control what protocol Serial7 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial7 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL8_BAUD:{Description:"The baud rate used for Serial8. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 8 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL8_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial8 options",RebootRequired:"True",User:"Advanced"},SERIAL8_PROTOCOL:{Description:"Control what protocol Serial8 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial8 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL9_BAUD:{Description:"The baud rate used for Serial8. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 9 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL9_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial9 options",RebootRequired:"True",User:"Advanced"},SERIAL9_PROTOCOL:{Description:"Control what protocol Serial9 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial9 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL_PASS1:{Description:"This sets one side of pass-through between two serial ports. Once both sides are set then all data received on either port will be passed to the other port",DisplayName:"Serial passthru first port",User:"Advanced",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},SERIAL_PASS2:{Description:"This sets one side of pass-through between two serial ports. Once both sides are set then all data received on either port will be passed to the other port",DisplayName:"Serial passthru second port",User:"Advanced",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},SERIAL_PASSTIMO:{Description:"This sets a timeout for serial pass-through in seconds. When the pass-through is enabled by setting the SERIAL_PASS1 and SERIAL_PASS2 parameters then it remains in effect until no data comes from the first port for SERIAL_PASSTIMO seconds. This allows the port to revent to its normal usage (such as MAVLink connection to a GCS) when it is no longer needed. A value of 0 means no timeout.",DisplayName:"Serial passthru timeout",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"}},o$={SERVO_32_ENABLE:{Description:"This allows for up to 32 outputs, enabling parameters for outputs above 16",DisplayName:"Enable outputs 17 to 31",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},SERVO_AUTO_TRIM:{Description:"This enables automatic servo trim in flight. Servos will be trimed in stabilized flight modes when the aircraft is close to level. Changes to servo trim will be saved every 10 seconds and will persist between flights. The automatic trim won't go more than 20% away from a centered trim.",DisplayName:"Automatic servo trim",User:"Advanced",Values:{0:"Disable",1:"Enable"}},SERVO_DSHOT_ESC:{Description:"This sets the DShot ESC type for all outputs. The ESC type affects the range of DShot commands available. None means that no dshot commands will be executed.",DisplayName:"Servo DShot ESC type",User:"Advanced",Values:{0:"None",1:"BLHeli32/Kiss",2:"BLHeli_S"}},SERVO_DSHOT_RATE:{Description:"This sets the DShot output rate for all outputs as a multiple of the loop rate. 0 sets the output rate to be fixed at 1Khz for low loop rates. This value should never be set below 500Hz.",DisplayName:"Servo DShot output rate",User:"Advanced",Values:{0:"1Khz",1:"loop-rate",2:"double loop-rate",3:"triple loop-rate",4:"quadruple loop rate"}},SERVO_GPIO_MASK:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16",16:"Servo 17",17:"Servo 18",18:"Servo 19",19:"Servo 20",20:"Servo 21",21:"Servo 22",22:"Servo 23",23:"Servo 24",24:"Servo 25",25:"Servo 26",26:"Servo 27",27:"Servo 28",28:"Servo 29",29:"Servo 30",30:"Servo 31",31:"Servo 32"},Description:"This sets a bitmask of outputs which will be available as GPIOs. Any auxiliary output with either the function set to -1 or with the corresponding bit set in this mask will be available for use as a GPIO pin",DisplayName:"Servo GPIO mask",RebootRequired:"True",User:"Advanced"},SERVO_RATE:{Description:"This sets the default output rate in Hz for all outputs.",DisplayName:"Servo default output rate",Range:{high:"400",low:"25"},Units:"Hz",User:"Advanced"}},s$={SERVO10_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO10_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO10_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO10_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO10_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},l$={SERVO11_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO11_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO11_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO11_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO11_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},c$={SERVO12_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO12_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO12_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO12_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO12_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},d$={SERVO13_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO13_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO13_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO13_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO13_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},C$={SERVO14_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO14_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO14_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO14_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO14_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},m$={SERVO15_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO15_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO15_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO15_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO15_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},u$={SERVO16_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO16_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO16_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO16_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO16_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},h$={SERVO17_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO17_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO17_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO17_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO17_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},p$={SERVO18_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO18_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO18_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO18_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO18_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},f$={SERVO19_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO19_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO19_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO19_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO19_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},V$={SERVO1_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO1_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO1_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO1_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO1_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},L$={SERVO20_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO20_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO20_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO20_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO20_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},H$={SERVO21_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO21_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO21_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO21_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO21_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},M$={SERVO22_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO22_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO22_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO22_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO22_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},g$={SERVO23_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO23_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO23_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO23_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO23_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},A$={SERVO24_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO24_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO24_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO24_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO24_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},v$={SERVO25_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO25_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO25_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO25_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO25_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},_$={SERVO26_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO26_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO26_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO26_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO26_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},S$={SERVO27_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO27_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO27_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO27_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO27_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},D$={SERVO28_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO28_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO28_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO28_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO28_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},y$={SERVO29_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO29_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO29_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO29_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO29_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},R$={SERVO2_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO2_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO2_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO2_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO2_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},b$={SERVO30_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO30_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO30_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO30_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO30_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},N$={SERVO31_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO31_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO31_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO31_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO31_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},w$={SERVO32_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO32_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO32_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO32_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO32_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},T$={SERVO3_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO3_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO3_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO3_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO3_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},E$={SERVO4_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO4_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO4_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO4_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO4_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},P$={SERVO5_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO5_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO5_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO5_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO5_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},I$={SERVO6_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO6_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO6_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO6_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO6_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},O$={SERVO7_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO7_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO7_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO7_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO7_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},U$={SERVO8_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO8_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO8_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO8_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO8_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},x$={SERVO9_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO9_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO9_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO9_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO9_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},F$={SERVO_BLH_3DMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16",16:"Channel 17",17:"Channel 18",18:"Channel 19",19:"Channel 20",20:"Channel 21",21:"Channel 22",22:"Channel 23",23:"Channel 24",24:"Channel 25",25:"Channel 26",26:"Channel 27",27:"Channel 28",28:"Channel 29",29:"Channel 30",30:"Channel 31",31:"Channel 32"},Description:"Mask of channels which are dynamically reversible. This is used to configure ESCs in '3D' mode, allowing for the motor to spin in either direction",DisplayName:"BLHeli bitmask of 3D channels",RebootRequired:"True",User:"Advanced"},SERVO_BLH_AUTO:{Description:"If set to 1 this auto-enables BLHeli pass-thru support for all multicopter motors",DisplayName:"BLHeli pass-thru auto-enable for multicopter motors",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},SERVO_BLH_BDMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16",16:"Channel 17",17:"Channel 18",18:"Channel 19",19:"Channel 20",20:"Channel 21",21:"Channel 22",22:"Channel 23",23:"Channel 24",24:"Channel 25",25:"Channel 26",26:"Channel 27",27:"Channel 28",28:"Channel 29",29:"Channel 30",30:"Channel 31",31:"Channel 32"},Description:"Mask of channels which support bi-directional dshot. This is used for ESCs which have firmware that supports bi-directional dshot allowing fast rpm telemetry values to be returned for the harmonic notch.",DisplayName:"BLHeli bitmask of bi-directional dshot channels",RebootRequired:"True",User:"Advanced"},SERVO_BLH_DEBUG:{Description:"When set to 1 this enabled verbose debugging output over MAVLink when the blheli protocol is active. This can be used to diagnose failures.",DisplayName:"BLHeli debug level",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},SERVO_BLH_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16",16:"Channel 17",17:"Channel 18",18:"Channel 19",19:"Channel 20",20:"Channel 21",21:"Channel 22",22:"Channel 23",23:"Channel 24",24:"Channel 25",25:"Channel 26",26:"Channel 27",27:"Channel 28",28:"Channel 29",29:"Channel 30",30:"Channel 31",31:"Channel 32"},Description:"Enable of BLHeli pass-thru servo protocol support to specific channels. This mask is in addition to motors enabled using SERVO_BLH_AUTO (if any)",DisplayName:"BLHeli Channel Bitmask",RebootRequired:"True",User:"Advanced"},SERVO_BLH_OTYPE:{Description:"When set to a non-zero value this overrides the output type for the output channels given by SERVO_BLH_MASK. This can be used to enable DShot on outputs that are not part of the multicopter motors group.",DisplayName:"BLHeli output type override",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"OneShot",2:"OneShot125",3:"Brushed",4:"DShot150",5:"DShot300",6:"DShot600",7:"DShot1200"}},SERVO_BLH_POLES:{Description:"This allows calculation of true RPM from ESC's eRPM. The default is 14.",DisplayName:"BLHeli Motor Poles",Range:{high:"127",low:"1"},RebootRequired:"True",User:"Advanced"},SERVO_BLH_PORT:{Description:"This sets the mavlink channel to use for blheli pass-thru. The channel number is determined by the number of serial ports configured to use mavlink. So 0 is always the console, 1 is the next serial port using mavlink, 2 the next after that and so on.",DisplayName:"Control port",User:"Advanced",Values:{0:"Console",1:"Mavlink Serial Channel1",2:"Mavlink Serial Channel2",3:"Mavlink Serial Channel3",4:"Mavlink Serial Channel4",5:"Mavlink Serial Channel5"}},SERVO_BLH_RVMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16",16:"Channel 17",17:"Channel 18",18:"Channel 19",19:"Channel 20",20:"Channel 21",21:"Channel 22",22:"Channel 23",23:"Channel 24",24:"Channel 25",25:"Channel 26",26:"Channel 27",27:"Channel 28",28:"Channel 29",29:"Channel 30",30:"Channel 31",31:"Channel 32"},Description:"Mask of channels which are reversed. This is used to configure ESCs in reversed mode",DisplayName:"BLHeli bitmask of reversed channels",RebootRequired:"True",User:"Advanced"},SERVO_BLH_TEST:{Description:"Setting SERVO_BLH_TEST to a motor number enables an internal test of the BLHeli ESC protocol to the corresponding ESC. The debug output is displayed on the USB console.",DisplayName:"BLHeli internal interface test",User:"Advanced",Values:{0:"Disabled",1:"TestMotor1",2:"TestMotor2",3:"TestMotor3",4:"TestMotor4",5:"TestMotor5",6:"TestMotor6",7:"TestMotor7",8:"TestMotor8"}},SERVO_BLH_TMOUT:{Description:"This sets the inactivity timeout for the BLHeli protocol in seconds. If no packets are received in this time normal MAVLink operations are resumed. A value of 0 means no timeout",DisplayName:"BLHeli protocol timeout",Range:{high:"300",low:"0"},Units:"s",User:"Standard"},SERVO_BLH_TRATE:{Description:"This sets the rate in Hz for requesting telemetry from ESCs. It is the rate per ESC. Setting to zero disables telemetry requests",DisplayName:"BLHeli telemetry rate",Range:{high:"500",low:"0"},Units:"Hz",User:"Standard"}},k$={SERVO_FTW_MASK:{Bitmask:{0:"SERVO1",1:"SERVO2",2:"SERVO3",3:"SERVO4",4:"SERVO5",5:"SERVO6",6:"SERVO7",7:"SERVO8",8:"SERVO9",9:"SERVO10",10:"SERVO11",11:"SERVO12"},Description:"Servo channel mask specifying FETtec ESC output.",DisplayName:"Servo channel output bitmask",RebootRequired:"True",User:"Standard"},SERVO_FTW_POLES:{Description:"Number of motor electrical poles",DisplayName:"Nr. electrical poles",Range:{high:"50",low:"2"},User:"Standard"},SERVO_FTW_RVMASK:{Bitmask:{0:"SERVO1",1:"SERVO2",2:"SERVO3",3:"SERVO4",4:"SERVO5",5:"SERVO6",6:"SERVO7",7:"SERVO8",8:"SERVO9",9:"SERVO10",10:"SERVO11",11:"SERVO12"},Description:"Servo channel mask to reverse rotation of FETtec ESC outputs.",DisplayName:"Servo channel reverse rotation bitmask",User:"Standard"}},B$={SERVO_ROB_POSMAX:{Description:"Position maximum at servo max value. This should be within the position control range of the servos, normally 0 to 4095",DisplayName:"Robotis servo position max",Range:{high:"4095",low:"0"},User:"Standard"},SERVO_ROB_POSMIN:{Description:"Position minimum at servo min value. This should be within the position control range of the servos, normally 0 to 4095",DisplayName:"Robotis servo position min",Range:{high:"4095",low:"0"},User:"Standard"}},z$={SERVO_SBUS_RATE:{Description:"This sets the SBUS output frame rate in Hz.",DisplayName:"SBUS default output rate",Range:{high:"250",low:"25"},Units:"Hz",User:"Advanced"}},Z$={SERVO_VOLZ_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16",16:"Channel17",17:"Channel18",18:"Channel19",19:"Channel20",20:"Channel21",21:"Channel22",22:"Channel23",23:"Channel24",24:"Channel25",25:"Channel26",26:"Channel27",28:"Channel29",29:"Channel30",30:"Channel31",31:"Channel32"},Description:"Enable of volz servo protocol to specific channels",DisplayName:"Channel Bitmask",User:"Standard"}},G$={SOAR_ALT_CUTOFF:{Description:"Cut off throttle at this alt.",DisplayName:"Maximum power altitude, relative to the home location",Range:{high:"5000.0",low:"0"},Units:"m",User:"Advanced"},SOAR_ALT_MAX:{Description:"Don't thermal any higher than this.",DisplayName:"Maximum soaring altitude, relative to the home location",Range:{high:"5000.0",low:"0"},Units:"m",User:"Advanced"},SOAR_ALT_MIN:{Description:"Don't get any lower than this.",DisplayName:"Minimum soaring altitude, relative to the home location",Range:{high:"1000.0",low:"0"},Units:"m",User:"Advanced"},SOAR_CRSE_ARSPD:{Description:"If non-zero this airspeed will be used when cruising. If set to -1, airspeed will be selected based on speed-to-fly theory.",DisplayName:"Specific setting for airspeed when cruising.",Range:{high:"50",low:"5"},User:"Advanced"},SOAR_DIST_AHEAD:{Description:"Initial guess of the distance to the thermal center",DisplayName:"Distance to thermal center",Range:{high:"100",low:"0"},Units:"m",User:"Advanced"},SOAR_ENABLE:{Description:"Toggles the soaring mode on and off",DisplayName:"Is the soaring mode enabled or not",User:"Advanced",Values:{0:"Disable",1:"Enable"}},SOAR_MAX_DRIFT:{Description:"The previous mode will be restored if the horizontal distance to the thermalling start location exceeds this value. -1 to disable.",DisplayName:"(Optional) Maximum drift distance to allow when thermalling.",Range:{high:"1000",low:"0"},User:"Advanced"},SOAR_MAX_RADIUS:{Description:"RTL will be entered when a thermal is exited and the plane is more than this distance from home. -1 to disable.",DisplayName:"(Optional) Maximum distance from home",Range:{high:"1000",low:"0"},User:"Advanced"},SOAR_MIN_CRSE_S:{Description:"Minimum number of seconds to spend cruising",DisplayName:"Minimum cruising time",Range:{high:"600",low:"0"},Units:"s",User:"Advanced"},SOAR_MIN_THML_S:{Description:"Minimum number of seconds to spend thermalling",DisplayName:"Minimum thermalling time",Range:{high:"600",low:"0"},Units:"s",User:"Advanced"},SOAR_POLAR_B:{Description:"Induced drag coeffient",DisplayName:"Induced drag coeffient",Range:{high:"0.05",low:"0.005"},User:"Advanced"},SOAR_POLAR_CD0:{Description:"Zero lift drag coefficient",DisplayName:"Zero lift drag coef.",Range:{high:"0.5",low:"0.005"},User:"Advanced"},SOAR_POLAR_K:{Description:"Cl factor 2*m*g/(rho*S)",DisplayName:"Cl factor",Range:{high:"400",low:"20"},Units:"m.m/s/s",User:"Advanced"},SOAR_Q1:{Description:"Standard deviation of noise in process for strength",DisplayName:"Process noise",Range:{high:"0.01",low:"0.0001"},User:"Advanced"},SOAR_Q2:{Description:"Standard deviation of noise in process for position and radius",DisplayName:"Process noise",Range:{high:"1",low:"0.01"},User:"Advanced"},SOAR_R:{Description:"Standard deviation of noise in measurement",DisplayName:"Measurement noise",Range:{high:"1",low:"0.01"},User:"Advanced"},SOAR_THML_ARSPD:{Description:"If non-zero this airspeed will be used when thermalling.",DisplayName:"Specific setting for airspeed when thermalling.",Range:{high:"50",low:"5"},User:"Advanced"},SOAR_THML_BANK:{Description:"This parameter sets the bank angle to use when thermalling. Typically 30 - 45 degrees works well.",DisplayName:"Thermalling bank angle",Range:{high:"50",low:"20"},Units:"deg",User:"Advanced"},SOAR_THML_FLAP:{Description:"This sets the flap when in LOITER with soaring active. Overrides the usual auto flap behaviour.",DisplayName:"Flap percent to be used during thermalling flight.",Range:{high:"100",low:"0"},User:"Advanced"},SOAR_VSPEED:{Description:"Rate of climb to trigger themalling speed",DisplayName:"Vertical v-speed",Range:{high:"10",low:"0"},Units:"m/s",User:"Advanced"}},W$={SR0_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},X$={SR1_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},Y$={SR2_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},$$={SR3_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},q$={SR4_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},K$={SR5_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},j$={SR6_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},Q$={STAT_BOOTCNT:{Description:"Number of times board has been booted",DisplayName:"Boot Count",ReadOnly:"True",User:"Standard"},STAT_FLTTIME:{Description:"Total FlightTime (seconds)",DisplayName:"Total FlightTime",ReadOnly:"True",Units:"s",User:"Standard"},STAT_RESET:{Description:"Seconds since January 1st 2016 (Unix epoch+1451606400) since statistics reset (set to 0 to reset statistics)",DisplayName:"Statistics Reset Time",ReadOnly:"True",Units:"s",User:"Standard"},STAT_RUNTIME:{Description:"Total time autopilot has run",DisplayName:"Total RunTime",ReadOnly:"True",Units:"s",User:"Standard"}},J$={STEER2SRV_D:{Description:"This adjusts the damping of the steering control loop. This gain helps to reduce steering jitter with vibration. It should be increased in 0.01 increments as too high a value can lead to a high frequency steering oscillation that could overstress the vehicle.",DisplayName:"Damping Gain",Increment:"0.01",Range:{high:"0.1",low:"0"},User:"Standard"},STEER2SRV_DRTFCT:{Description:'Degrees of steering wheel to derate at each additional m/s of speed above "Derating speed". Should be set so that at higher speeds the plane does not roll to the wing in turns.',DisplayName:"Derating factor",Increment:"0.1",Range:{high:"50.0",low:"0.0"},Units:"deg/m/s",User:"Advanced"},STEER2SRV_DRTMIN:{Description:"The angle that limits smallest angle of steering wheel at maximum speed. Even if it should derate below, it will stop derating at this angle.",DisplayName:"Minimum angle of wheel",Increment:"10",Range:{high:"4500",low:"0"},Units:"cdeg",User:"Advanced"},STEER2SRV_DRTSPD:{Description:"Speed after that the maximum degree of steering will start to derate. Set this speed to a maximum speed that a plane can do controlled turn at maximum angle of steering wheel without rolling to wing. If 0 then no derating is used.",DisplayName:"Derating speed",Increment:"0.1",Range:{high:"30.0",low:"0.0"},Units:"m/s",User:"Advanced"},STEER2SRV_FF:{Description:"The feed forward gain for steering this is the ratio of the achieved turn rate to applied steering. A value of 1 means that the vehicle would yaw at a rate of 45 degrees per second with full steering deflection at 1m/s ground speed.",DisplayName:"Steering feed forward",Increment:"0.1",Range:{high:"10.0",low:"0.0"},User:"Standard"},STEER2SRV_I:{Description:"This is the gain from the integral of steering angle. Increasing this gain causes the controller to trim out steady offsets due to an out of trim vehicle.",DisplayName:"Integrator Gain",Increment:"0.05",Range:{high:"1.0",low:"0"},User:"Standard"},STEER2SRV_IMAX:{Description:"This limits the number of degrees of steering in centi-degrees over which the integrator will operate. At the default setting of 1500 centi-degrees, the integrator will be limited to +- 15 degrees of servo travel. The maximum servo deflection is +- 45 centi-degrees, so the default value represents a 1/3rd of the total control throw which is adequate unless the vehicle is severely out of trim.",DisplayName:"Integrator limit",Increment:"10",Range:{high:"4500",low:"0"},Units:"cdeg",User:"Advanced"},STEER2SRV_MINSPD:{Description:"This is the minimum assumed ground speed in meters/second for steering. Having a minimum speed prevents oscillations when the vehicle first starts moving. The vehicle can still drive slower than this limit, but the steering calculations will be done based on this minimum speed.",DisplayName:"Minimum speed",Increment:"0.1",Range:{high:"5",low:"0"},Units:"m/s",User:"Standard"},STEER2SRV_P:{Description:"The proportional gain for steering. This should be approximately equal to the diameter of the turning circle of the vehicle at low speed and maximum steering angle",DisplayName:"Steering turning gain",Increment:"0.1",Range:{high:"10.0",low:"0.1"},User:"Standard"},STEER2SRV_TCONST:{Description:"This controls the time constant in seconds from demanded to achieved steering angle. A value of 0.75 is a good default and will work with nearly all rovers. Ground steering in aircraft needs a bit smaller time constant, and a value of 0.5 is recommended for best ground handling in fixed wing aircraft. A value of 0.75 means that the controller will try to correct any deviation between the desired and actual steering angle in 0.75 seconds. Advanced users may want to reduce this time to obtain a faster response but there is no point setting a time less than the vehicle can achieve.",DisplayName:"Steering Time Constant",Increment:"0.1",Range:{high:"1.0",low:"0.4"},Units:"s",User:"Advanced"}},eq={TECS_APPR_SMAX:{Description:"The sink rate max for the landing approach stage of landing. This will need to be large for steep landing approaches especially when using reverse thrust. If 0, then use TECS_SINK_MAX.",DisplayName:"Sink rate max for landing approach stage",Increment:"0.1",Range:{high:"20.0",low:"0.0"},Units:"m/s",User:"Advanced"},TECS_CLMB_MAX:{Description:"Maximum demanded climb rate. Do not set higher than the climb speed at THR_MAX at TRIM_ARSPD_CM when the battery is at low voltage. Reduce value if airspeed cannot be maintained on ascent. Increase value if throttle does not increase significantly to ascend.",DisplayName:"Maximum Climb Rate (metres/sec)",Increment:"0.1",Range:{high:"20.0",low:"0.1"},User:"Standard"},TECS_HGT_OMEGA:{Description:"This is the cross-over frequency of the complementary filter used to fuse vertical acceleration and baro alt to obtain an estimate of height rate and height.",DisplayName:"Height complementary filter frequency (radians/sec)",Increment:"0.05",Range:{high:"5.0",low:"1.0"},User:"Advanced"},TECS_INTEG_GAIN:{Description:"Integrator gain to trim out long-term speed and height errors.",DisplayName:"Controller integrator",Increment:"0.02",Range:{high:"0.5",low:"0.0"},User:"Advanced"},TECS_LAND_ARSPD:{Description:"When performing an autonomus landing, this value is used as the goal airspeed during approach. Note that this parameter is not useful if your platform does not have an airspeed sensor (use TECS_LAND_THR instead). If negative then this value is not used during landing.",DisplayName:"Airspeed during landing approach (m/s)",Increment:"1",Range:{high:"127",low:"-1"},User:"Standard"},TECS_LAND_DAMP:{Description:"This is the sink rate gain for the pitch demand loop when in final landing stage of flight. It should be larger than TECS_PTCH_DAMP to allow for better sink rate control during flare.",DisplayName:"Controller sink rate to pitch gain during flare",Increment:"0.1",Range:{high:"1.0",low:"0.1"},User:"Advanced"},TECS_LAND_IGAIN:{Description:"This is the integrator gain on the control loop during landing. When set to 0 then TECS_INTEG_GAIN is used. Increase to increase the rate at which speed and height offsets are trimmed out. Typically values lower than TECS_INTEG_GAIN work best",DisplayName:"Controller integrator during landing",Increment:"0.02",Range:{high:"0.5",low:"0.0"},User:"Advanced"},TECS_LAND_PDAMP:{Description:"This is the damping gain for the pitch demand loop during landing. Increase to add damping to correct for oscillations in speed and height. If set to 0 then TECS_PTCH_DAMP will be used instead.",DisplayName:"Pitch damping gain when landing",Increment:"0.1",Range:{high:"1.0",low:"0.1"},User:"Advanced"},TECS_LAND_PMAX:{Description:"This limits the pitch used during the final stage of automatic landing. During the final landing stage most planes need to keep their pitch small to avoid stalling. A maximum of 10 degrees is usually good. A value of zero means to use the normal pitch limits.",DisplayName:"Maximum pitch during final stage of landing",Increment:"1",Range:{high:"40",low:"-5"},User:"Advanced"},TECS_LAND_SINK:{Description:"The sink rate in meters/second for the final stage of landing.",DisplayName:"Sink rate for final landing stage",Increment:"0.1",Range:{high:"2.0",low:"0.0"},User:"Advanced"},TECS_LAND_SPDWGT:{Description:"Same as SPDWEIGHT parameter, with the exception that this parameter is applied during landing flight stages. A value closer to 2 will result in the plane ignoring height error during landing and our experience has been that the plane will therefore keep the nose up -- sometimes good for a glider landing (with the side effect that you will likely glide a ways past the landing point). A value closer to 0 results in the plane ignoring speed error -- use caution when lowering the value below 1 -- ignoring speed could result in a stall. Values between 0 and 2 are valid values for a fixed landing weight. When using -1 the weight will be scaled during the landing. At the start of the landing approach it starts with TECS_SPDWEIGHT and scales down to 0 by the time you reach the land point. Example: Halfway down the landing approach you'll effectively have a weight of TECS_SPDWEIGHT/2.",DisplayName:"Weighting applied to speed control during landing.",Increment:"0.1",Range:{high:"2.0",low:"-1.0"},User:"Advanced"},TECS_LAND_SRC:{Description:"When zero, the flare sink rate (TECS_LAND_SINK) is a fixed sink demand. With this enabled the flare sinkrate will increase/decrease the flare sink demand as you get further beyond the LAND waypoint. Has no effect before the waypoint. This value is added to TECS_LAND_SINK proportional to distance traveled after wp. With an increasing sink rate you can still land in a given distance if you're traveling too fast and cruise passed the land point. A positive value will force the plane to land sooner proportional to distance passed land point. A negative number will tell the plane to slowly climb allowing for a pitched-up stall landing. Recommend 0.2 as initial value.",DisplayName:"Land sink rate change",Increment:"0.1",Range:{high:"2.0",low:"-2.0"},Units:"m/s/m",User:"Advanced"},TECS_LAND_TCONST:{Description:"This is the time constant of the TECS control algorithm when in final landing stage of flight. It should be smaller than TECS_TIME_CONST to allow for faster flare",DisplayName:"Land controller time constant (sec)",Increment:"0.2",Range:{high:"5.0",low:"1.0"},User:"Advanced"},TECS_LAND_TDAMP:{Description:"Damping gain for the throttle demand loop during an auto-landing. Same as TECS_THR_DAMP but only in effect during an auto-land. Increase to add throttle activity to dampen oscillations in speed and height. When set to 0 landing throttle damping is controlled by TECS_THR_DAMP.",DisplayName:"Controller throttle damping when landing",Increment:"0.1",Range:{high:"1.0",low:"0.1"},User:"Advanced"},TECS_LAND_THR:{Description:"Use this parameter instead of LAND_ARSPD if your platform does not have an airspeed sensor. It is the cruise throttle during landing approach. If this value is negative then it is disabled and TECS_LAND_ARSPD is used instead.",DisplayName:"Cruise throttle during landing approach (percentage)",Increment:"0.1",Range:{high:"100",low:"-1"},User:"Standard"},TECS_OPTIONS:{Bitmask:{0:"GliderOnly"},Description:"This allows the enabling of special features in the speed/height controller",DisplayName:"Extra TECS options",User:"Advanced"},TECS_PITCH_MAX:{Description:"Overrides LIM_PITCH_MAX in automatic throttle modes to reduce climb rates. Uses LIM_PITCH_MAX if set to 0. For proper TECS tuning, set to the angle that the aircraft can climb at TRIM_ARSPD_CM and THR_MAX.",DisplayName:"Maximum pitch in auto flight",Increment:"1",Range:{high:"45",low:"0"},User:"Advanced"},TECS_PITCH_MIN:{Description:"Overrides LIM_PITCH_MIN in automatic throttle modes to reduce descent rates. Uses LIM_PITCH_MIN if set to 0. For proper TECS tuning, set to the angle that the aircraft can descend at without overspeeding.",DisplayName:"Minimum pitch in auto flight",Increment:"1",Range:{high:"0",low:"-45"},User:"Advanced"},TECS_PTCH_DAMP:{Description:"Damping gain for pitch control from TECS control. Increasing may correct for oscillations in speed and height, but too much may cause additional oscillation and degraded control.",DisplayName:"Controller pitch damping",Increment:"0.1",Range:{high:"1.0",low:"0.1"},User:"Advanced"},TECS_PTCH_FF_K:{Description:"This parameter sets the gain between demanded airspeed and pitch. It has units of radians per metre per second and should generally be negative. A good starting value is -0.04 for gliders and -0.08 for draggy airframes. The default (0.0) disables this feed-forward.",DisplayName:"Gain for pitch feed-forward.",Range:{high:"0.0",low:"-5.0"},User:"Advanced"},TECS_PTCH_FF_V0:{Description:"This parameter sets the airspeed at which no feed-forward is applied between demanded airspeed and pitch. It should correspond to the airspeed in metres per second at which the plane glides at neutral pitch including STAB_PITCH_DOWN.",DisplayName:"Baseline airspeed for pitch feed-forward.",Range:{high:"50.0",low:"5.0"},User:"Advanced"},TECS_RLL2THR:{Description:"Gain from bank angle to throttle to compensate for loss of airspeed from drag in turns. Set to approximately 10x the sink rate in m/s caused by a 45-degree turn. High efficiency models may need less while less efficient aircraft may need more. Should be tuned in an automatic mission with waypoints and turns greater than 90 degrees. Tune with PTCH2SRV_RLL and KFF_RDDRMIX to achieve constant airspeed, constant altitude turns.",DisplayName:"Bank angle compensation gain",Increment:"1.0",Range:{high:"30.0",low:"5.0"},User:"Advanced"},TECS_SINK_MAX:{Description:"Maximum demanded descent rate. Do not set higher than the vertical speed the aircraft can maintain at THR_MIN, TECS_PITCH_MIN, and ARSPD_FBW_MAX.",DisplayName:"Maximum Descent Rate (metres/sec)",Increment:"0.1",Range:{high:"20.0",low:"0.0"},User:"Standard"},TECS_SINK_MIN:{Description:"Minimum sink rate when at THR_MIN and TRIM_ARSPD_CM.",DisplayName:"Minimum Sink Rate (metres/sec)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},User:"Standard"},TECS_SPDWEIGHT:{Description:"Mixing of pitch and throttle correction for height and airspeed errors. Pitch controls altitude and throttle controls airspeed if set to 0. Pitch controls airspeed and throttle controls altitude if set to 2 (good for gliders). Blended if set to 1.",DisplayName:"Weighting applied to speed control",Increment:"0.1",Range:{high:"2.0",low:"0.0"},User:"Advanced"},TECS_SPD_OMEGA:{Description:"This is the cross-over frequency of the complementary filter used to fuse longitudinal acceleration and airspeed to obtain a lower noise and lag estimate of airspeed.",DisplayName:"Speed complementary filter frequency (radians/sec)",Increment:"0.05",Range:{high:"2.0",low:"0.5"},User:"Advanced"},TECS_SYNAIRSPEED:{Description:"This enable the use of synthetic airspeed for aircraft that don't have a real airspeed sensor. This is useful for development testing where the user is aware of the considerable limitations of the synthetic airspeed system, such as very poor estimates when a wind estimate is not accurate. Do not enable this option unless you fully understand the limitations of a synthetic airspeed estimate.",DisplayName:"Enable the use of synthetic airspeed",User:"Advanced",Values:{0:"Disable",1:"Enable"}},TECS_THR_DAMP:{Description:"Damping gain for throttle demand loop. Increase to add throttle activity to dampen oscillations in speed and height.",DisplayName:"Controller throttle damping",Increment:"0.1",Range:{high:"1.0",low:"0.1"},User:"Advanced"},TECS_TIME_CONST:{Description:"Time constant of the TECS control algorithm. Small values make faster altitude corrections but can cause overshoot and aggressive behavior.",DisplayName:"Controller time constant (sec)",Increment:"0.2",Range:{high:"10.0",low:"3.0"},User:"Advanced"},TECS_TKOFF_IGAIN:{Description:"This is the integrator gain on the control loop during takeoff. When set to 0 then TECS_INTEG_GAIN is used. Increase to increase the rate at which speed and height offsets are trimmed out. Typically values higher than TECS_INTEG_GAIN work best",DisplayName:"Controller integrator during takeoff",Increment:"0.02",Range:{high:"0.5",low:"0.0"},User:"Advanced"},TECS_VERT_ACC:{Description:"Maximum vertical acceleration used to correct speed or height errors.",DisplayName:"Vertical Acceleration Limit (metres/sec^2)",Increment:"0.5",Range:{high:"10.0",low:"1.0"},User:"Advanced"}},tq={TERRAIN_ENABLE:{Description:"enable terrain data. This enables the vehicle storing a database of terrain data on the SD card. The terrain data is requested from the ground station as needed, and stored for later use on the SD card. To be useful the ground station must support TERRAIN_REQUEST messages and have access to a terrain database, such as the SRTM database.",DisplayName:"Terrain data enable",User:"Advanced",Values:{0:"Disable",1:"Enable"}},TERRAIN_MARGIN:{Description:"Margin in centi-meters to accept terrain data from the GCS. This can be used to allow older terrain data generated with less accurate latitude/longitude scaling to be used",DisplayName:"Acceptance margin",Range:{high:"50000",low:"0.05"},Units:"m",User:"Advanced"},TERRAIN_OFS_MAX:{Description:"The maximum adjustment of terrain altitude based on the assumption that the vehicle is on the ground when it is armed. When the vehicle is armed the location of the vehicle is recorded, and when terrain data is available for that location a height adjustment for terrain data is calculated that aligns the terrain height at that location with the altitude recorded at arming. This height adjustment is applied to all terrain data. This parameter clamps the amount of adjustment. A value of zero disables the use of terrain height adjustment.",DisplayName:"Terrain reference offset maximum",Range:{high:"50",low:"0"},Units:"m",User:"Advanced"},TERRAIN_OPTIONS:{Bitmask:{0:"Disable Download"},Description:"Options to change behaviour of terrain system",DisplayName:"Terrain options",User:"Advanced"},TERRAIN_SPACING:{Description:"Distance between terrain grid points in meters. This controls the horizontal resolution of the terrain data that is stored on te SD card and requested from the ground station. If your GCS is using the ArduPilot SRTM database like Mission Planner or MAVProxy, then a resolution of 100 meters is appropriate. Grid spacings lower than 100 meters waste SD card space if the GCS cannot provide that resolution. The grid spacing also controls how much data is kept in memory during flight. A larger grid spacing will allow for a larger amount of data in memory. A grid spacing of 100 meters results in the vehicle keeping 12 grid squares in memory with each grid square having a size of 2.7 kilometers by 3.2 kilometers. Any additional grid squares are stored on the SD once they are fetched from the GCS and will be loaded as needed.",DisplayName:"Terrain grid spacing",Increment:"1",Units:"m",User:"Advanced"}},iq={TKOFF_ALT:{Description:"This is the target altitude for TAKEOFF mode",DisplayName:"Takeoff mode altitude",Increment:"1",Range:{high:"200",low:"0"},Units:"m",User:"Standard"},TKOFF_DIST:{Description:"This is the distance from the takeoff location where the plane will loiter. The loiter point will be in the direction of takeoff (the direction the plane is facing when the motor starts)",DisplayName:"Takeoff mode distance",Increment:"1",Range:{high:"500",low:"0"},Units:"m",User:"Standard"},TKOFF_LVL_ALT:{Description:"This is the altitude below which wings are held level for TAKEOFF mode",DisplayName:"Takeoff mode altitude level altitude",Increment:"1",Range:{high:"50",low:"0"},Units:"m",User:"Standard"},TKOFF_LVL_PITCH:{Description:"This is the target pitch for the initial climb to TKOFF_LVL_ALT",DisplayName:"Takeoff mode altitude initial pitch",Increment:"1",Range:{high:"30",low:"0"},Units:"deg",User:"Standard"}},aq={TUNE_CHAN:{Description:"This sets the channel for transmitter tuning. This should be connected to a knob or slider on your transmitter. It needs to be setup to use the PWM range given by TUNE_CHAN_MIN to TUNE_CHAN_MAX",DisplayName:"Transmitter tuning channel",User:"Standard",Values:{0:"Disable",5:"Chan5",6:"Chan6",7:"Chan7",8:"Chan8",9:"Chan9",10:"Chan10",11:"Chan11",12:"Chan12",13:"Chan13",14:"Chan14",15:"Chan15",16:"Chan16"}},TUNE_CHAN_MAX:{Description:"This sets the PWM upper limit for the tuning channel",DisplayName:"Transmitter tuning channel maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},TUNE_CHAN_MIN:{Description:"This sets the PWM lower limit for the tuning channel",DisplayName:"Transmitter tuning channel minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},TUNE_ERR_THRESH:{Description:"This sets the controller error threshold above which an alarm will sound and a message will be sent to the GCS to warn of controller instability while tuning. The error is the rms value of the P+D corrections in the loop. High values in hover indicate possible instability due to too high PID gains or excessively high D to P gain ratios.-1 will disable this message.",DisplayName:"Controller error threshold",Range:{high:"1",low:"0"},User:"Standard"},TUNE_MODE_REVERT:{Description:"This controls whether tuning values will revert on a flight mode change.",DisplayName:"Revert on mode change",User:"Standard",Values:{0:"Disable",1:"Enable"}},TUNE_PARAM:{Description:"This sets which parameter or set of parameters will be tuned. Values greater than 100 indicate a set of parameters rather than a single parameter. Parameters less than 50 are for QuadPlane vertical lift motors only.",DisplayName:"Transmitter tuning parameter or set of parameters",User:"Standard",Values:{0:"None",1:"RateRollPI",2:"RateRollP",3:"RateRollI",4:"RateRollD",5:"RatePitchPI",6:"RatePitchP",7:"RatePitchI",8:"RatePitchD",9:"RateYawPI",10:"RateYawP",11:"RateYawI",12:"RateYawD",13:"AngleRollP",14:"AnglePitchP",15:"AngleYawP",16:"PosXYP",17:"PosZP",18:"VelXYP",19:"VelXYI",20:"VelZP",21:"AccelZP",22:"AccelZI",23:"AccelZD",24:"RatePitchFF",25:"RateRollFF",26:"RateYawFF",50:"FixedWingRollP",51:"FixedWingRollI",52:"FixedWingRollD",53:"FixedWingRollFF",54:"FixedWingPitchP",55:"FixedWingPitchI",56:"FixedWingPitchD",57:"FixedWingPitchFF",101:"Set_RateRollPitch",102:"Set_RateRoll",103:"Set_RatePitch",104:"Set_RateYaw",105:"Set_AngleRollPitch",106:"Set_VelXY",107:"Set_AccelZ",108:"Set_RatePitchDP",109:"Set_RateRollDP",110:"Set_RateYawDP"}},TUNE_RANGE:{Description:"This sets the range over which tuning will change a parameter. A value of 2 means the tuning parameter will go from 0.5 times the start value to 2x the start value over the range of the tuning channel",DisplayName:"Transmitter tuning range",User:"Standard"},TUNE_SELECTOR:{Description:"This sets the channel for the transmitter tuning selector switch. This should be a 2 position switch, preferably spring loaded. A PWM above 1700 means high, below 1300 means low. If no selector is set then you won't be able to switch between parameters during flight or re-center the tuning knob",DisplayName:"Transmitter tuning selector channel",User:"Standard",Values:{0:"Disable",1:"Chan1",2:"Chan3",3:"Chan3",4:"Chan4",5:"Chan5",6:"Chan6",7:"Chan7",8:"Chan8",9:"Chan9",10:"Chan10",11:"Chan11",12:"Chan12",13:"Chan13",14:"Chan14",15:"Chan15",16:"Chan16"}}},rq={VISO_DELAY_MS:{Description:"Visual odometry sensor delay relative to inertial measurements",DisplayName:"Visual odometry sensor delay",Range:{high:"250",low:"0"},Units:"ms",User:"Advanced"},VISO_ORIENT:{Description:"Visual odometery camera orientation",DisplayName:"Visual odometery camera orientation",User:"Advanced",Values:{0:"Forward",2:"Right",4:"Back",6:"Left",24:"Up",25:"Down"}},VISO_POS_M_NSE:{Description:"Visual odometry position measurement noise minimum (meters). This value will be used if the sensor provides a lower noise value (or no noise value)",DisplayName:"Visual odometry position measurement noise ",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},VISO_POS_X:{Description:"X position of the camera in body frame. Positive X is forward of the origin.",DisplayName:"Visual odometry camera X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_POS_Y:{Description:"Y position of the camera in body frame. Positive Y is to the right of the origin.",DisplayName:"Visual odometry camera Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_POS_Z:{Description:"Z position of the camera in body frame. Positive Z is down from the origin.",DisplayName:"Visual odometry camera Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_SCALE:{Description:"Visual odometry scaling factor applied to position estimates from sensor",DisplayName:"Visual odometry scaling factor",User:"Advanced"},VISO_TYPE:{Description:"Visual odometry camera connection type",DisplayName:"Visual odometry camera connection type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"MAVLink",2:"IntelT265",3:"VOXL(ModalAI)"}},VISO_VEL_M_NSE:{Description:"Visual odometry velocity measurement noise in m/s",DisplayName:"Visual odometry velocity measurement noise",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},VISO_YAW_M_NSE:{Description:"Visual odometry yaw measurement noise minimum (radians), This value will be used if the sensor provides a lower noise value (or no noise value)",DisplayName:"Visual odometry yaw measurement noise",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},nq={VTX_BAND:{Description:"Video Transmitter Band",DisplayName:"Video Transmitter Band",User:"Standard",Values:{0:"Band A",1:"Band B",2:"Band E",3:"Airwave",4:"RaceBand",5:"Low RaceBand"}},VTX_CHANNEL:{Description:"Video Transmitter Channel",DisplayName:"Video Transmitter Channel",Range:{high:"7",low:"0"},User:"Standard"},VTX_ENABLE:{Description:"Toggles the Video Transmitter on and off",DisplayName:"Is the Video Transmitter enabled or not",Values:{0:"Disable",1:"Enable"}},VTX_FREQ:{Description:"Video Transmitter Frequency. The frequency is derived from the setting of BAND and CHANNEL",DisplayName:"Video Transmitter Frequency",Range:{high:"6000",low:"5000"},ReadOnly:"True",User:"Standard"},VTX_MAX_POWER:{Description:"Video Transmitter Maximum Power Level. Different VTXs support different power levels, this prevents the power aux switch from requesting too high a power level. The switch supports 6 power levels and the selected power will be a subdivision between 0 and this setting.",DisplayName:"Video Transmitter Max Power Level",Range:{high:"1000",low:"25"}},VTX_OPTIONS:{Bitmask:{0:"Pitmode",1:"Pitmode until armed",2:"Pitmode when disarmed",3:"Unlocked",4:"Add leading zero byte to requests",5:"Use 1 stop-bit in SmartAudio",6:"Ignore CRC in SmartAudio",7:"Ignore status updates in CRSF and blindly set VTX options"},Description:"Video Transmitter Options. Pitmode puts the VTX in a low power state. Unlocked enables certain restricted frequencies and power levels. Do not enable the Unlocked option unless you have appropriate permissions in your jurisdiction to transmit at high power levels. One stop-bit may be required for VTXs that erroneously mimic iNav behaviour.",DisplayName:"Video Transmitter Options",User:"Advanced"},VTX_POWER:{Description:"Video Transmitter Power Level. Different VTXs support different power levels, the power level chosen will be rounded down to the nearest supported power level",DisplayName:"Video Transmitter Power Level",Range:{high:"1000",low:"1"}}},oq={YAW2SRV_DAMP:{Description:"Gain from yaw rate to rudder. Most effective at yaw damping and should be tuned after KFF_RDDRMIX. Also disables YAW2SRV_INT if set to 0.",DisplayName:"Yaw damping",Increment:"0.25",Range:{high:"2",low:"0"},User:"Advanced"},YAW2SRV_IMAX:{Description:"Limit of yaw integrator gain in centi-degrees of servo travel. Servos are assumed to have +/- 4500 centi-degrees of travel, so a value of 1500 allows trim of up to 1/3 of servo travel range.",DisplayName:"Integrator limit",Increment:"1",Range:{high:"4500",low:"0"},User:"Advanced"},YAW2SRV_INT:{Description:"Integral gain from lateral acceleration error. Effectively trims rudder to eliminate long-term sideslip.",DisplayName:"Sideslip control integrator",Increment:"0.25",Range:{high:"2",low:"0"},User:"Advanced"},YAW2SRV_RLL:{Description:"Gain to the yaw rate required to keep it consistent with the turn rate in a coordinated turn. Corrects for yaw tendencies after the turn is established. Increase yaw into the turn by raising. Increase yaw out of the turn by decreasing. Values outside of 0.9-1.1 range indicate airspeed calibration problems.",DisplayName:"Yaw coordination gain",Increment:"0.05",Range:{high:"1.2",low:"0.8"},User:"Advanced"},YAW2SRV_SLIP:{Description:"Gain from lateral acceleration to demanded yaw rate for aircraft with enough fuselage area to detect lateral acceleration and sideslips. Do not enable for flying wings and gliders. Actively coordinates flight more than just yaw damping. Set after YAW2SRV_DAMP and YAW2SRV_INT are tuned.",DisplayName:"Sideslip control gain",Increment:"0.25",Range:{high:"4",low:"0"},User:"Advanced"},YAW_RATE_D:{Description:"Yaw axis rate controller D gain. Compensates for short-term change in desired yaw rate vs actual yaw rate",DisplayName:"Yaw axis rate controller D gain",Increment:"0.001",Range:{high:"0.03",low:"0.001"},User:"Standard"},YAW_RATE_ENABLE:{Description:"Enable yaw rate controller for aerobatic flight",DisplayName:"Yaw rate enable",User:"Advanced",Values:{0:"Disable",1:"Enable"}},YAW_RATE_FF:{Description:"Yaw axis rate controller feed forward",DisplayName:"Yaw axis rate controller feed forward",Increment:"0.001",Range:{high:"3.0",low:"0"},User:"Standard"},YAW_RATE_FLTD:{Description:"Yaw axis rate controller derivative frequency in Hz",DisplayName:"Yaw axis rate controller derivative frequency in Hz",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Standard"},YAW_RATE_FLTE:{Description:"Yaw axis rate controller error frequency in Hz",DisplayName:"Yaw axis rate controller error frequency in Hz",Increment:"1",Range:{high:"50",low:"2"},Units:"Hz",User:"Standard"},YAW_RATE_FLTT:{Description:"Yaw axis rate controller target frequency in Hz",DisplayName:"Yaw axis rate controller target frequency in Hz",Increment:"1",Range:{high:"50",low:"2"},Units:"Hz",User:"Standard"},YAW_RATE_I:{Description:"Yaw axis rate controller I gain. Corrects long-term difference in desired yaw rate vs actual yaw rate",DisplayName:"Yaw axis rate controller I gain",Increment:"0.01",Range:{high:"0.6",low:"0.01"},User:"Standard"},YAW_RATE_IMAX:{Description:"Yaw axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Yaw axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},YAW_RATE_P:{Description:"Yaw axis rate controller P gain. Converts the difference between desired yaw rate and actual yaw rate into a motor speed output",DisplayName:"Yaw axis rate controller P gain",Increment:"0.005",Range:{high:"0.35",low:"0.08"},User:"Standard"},YAW_RATE_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Yaw slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"}},sq={version:0},mB1={ADSB_:oW,AFS_:sW,AHRS_:lW,AIS_:cW,ARMING_:dW,ARSPD:CW,AVD_:mW,BARO:uW,BARO1_WCF_:hW,BARO2_WCF_:pW,BARO3_WCF_:fW,BATT2_:VW,BATT3_:LW,BATT4_:HW,BATT5_:MW,BATT6_:gW,BATT7_:AW,BATT8_:vW,BATT9_:_W,BATT_:SW,BRD_:DW,BRD_RADIO:yW,BRD_RTC:RW,BTN_:bW,CAM_:NW,CAM_RC_:wW,CAN_:TW,CAN_D1_:EW,CAN_D1_KDE_:PW,CAN_D1_PC_:IW,CAN_D1_TST_:OW,CAN_D1_UC_:UW,CAN_D2_:xW,CAN_D2_KDE_:FW,CAN_D2_PC_:kW,CAN_D2_TST_:BW,CAN_D2_UC_:zW,CAN_D3_:ZW,CAN_D3_KDE_:GW,CAN_D3_PC_:WW,CAN_D3_TST_:XW,CAN_D3_UC_:YW,CAN_P1_:$W,CAN_P2_:qW,CAN_P3_:KW,CAN_SLCAN_:jW,CHUTE_:QW,COMPASS_:JW,COMPASS_PMOT:eX,CUST_ROT:tX,CUST_ROT1_:iX,CUST_ROT2_:aX,DID_:rX,EAHRS:nX,EFI:oX,EK2_:sX,EK3_:lX,EK3_SRC:cX,ESC_TLM:dX,FENCE_:CX,FFT_:mX,FLOW:uX,FOLL:hX,FRSKY_:pX,GEN_:fX,GPS:VX,GPS_MB1_:LX,GPS_MB2_:HX,GRIP_:MX,GUIDED_:gX,ICE_:AX,INS_:vX,INS_HNTC2_:_X,INS_HNTCH_:SX,INS_LOG_:DX,INS_TCAL1_:yX,INS_TCAL2_:RX,INS_TCAL3_:bX,LAND_:NX,LAND_DS_:wX,LGR_:TX,LOG:EX,MIS_:PX,MNT1:IX,MNT2:OX,MSP:UX,NAVL1_:xX,NTF_:FX,OSD:kX,OSD1_:BX,OSD2_:zX,OSD3_:ZX,OSD4_:GX,OSD5_:WX,OSD5_PARAM1:XX,OSD5_PARAM2:YX,OSD5_PARAM3:$X,OSD5_PARAM4:qX,OSD5_PARAM5:KX,OSD5_PARAM6:jX,OSD5_PARAM7:QX,OSD5_PARAM8:JX,OSD5_PARAM9:eY,OSD6_:tY,OSD6_PARAM1:iY,OSD6_PARAM2:aY,OSD6_PARAM3:rY,OSD6_PARAM4:nY,OSD6_PARAM5:oY,OSD6_PARAM6:sY,OSD6_PARAM7:lY,OSD6_PARAM8:cY,OSD6_PARAM9:dY,PTCH:CY,Plane:mY,Q_:uY,Q_AUTOTUNE_:hY,Q_A_:pY,Q_LOIT_:fY,Q_M_:VY,Q_P:LY,Q_TAILSIT_:HY,Q_TILT_:MY,Q_WP_:gY,Q_WVANE_:AY,RALLY_:vY,RC:_Y,RC10_:SY,RC11_:DY,RC12_:yY,RC13_:RY,RC14_:bY,RC15_:NY,RC16_:wY,RC1_:TY,RC2_:EY,RC3_:PY,RC4_:IY,RC5_:OY,RC6_:UY,RC7_:xY,RC8_:FY,RC9_:kY,RCMAP_:BY,RELAY_:zY,RLL:ZY,RNGFND1_:GY,RNGFND2_:WY,RNGFND3_:XY,RNGFND4_:YY,RNGFND5_:$Y,RNGFND6_:qY,RNGFND7_:KY,RNGFND8_:jY,RNGFND9_:QY,RNGFNDA_:JY,RPM1_:e$,RPM2_:t$,RSSI_:i$,SCHED_:a$,SCR_:r$,SERIAL:n$,SERVO:o$,SERVO10_:s$,SERVO11_:l$,SERVO12_:c$,SERVO13_:d$,SERVO14_:C$,SERVO15_:m$,SERVO16_:u$,SERVO17_:h$,SERVO18_:p$,SERVO19_:f$,SERVO1_:V$,SERVO20_:L$,SERVO21_:H$,SERVO22_:M$,SERVO23_:g$,SERVO24_:A$,SERVO25_:v$,SERVO26_:_$,SERVO27_:S$,SERVO28_:D$,SERVO29_:y$,SERVO2_:R$,SERVO30_:b$,SERVO31_:N$,SERVO32_:w$,SERVO3_:T$,SERVO4_:E$,SERVO5_:P$,SERVO6_:I$,SERVO7_:O$,SERVO8_:U$,SERVO9_:x$,SERVO_BLH_:F$,SERVO_FTW_:k$,SERVO_ROB_:B$,SERVO_SBUS_:z$,SERVO_VOLZ_:Z$,SOAR_:G$,SR0_:W$,SR1_:X$,SR2_:Y$,SR3_:$$,SR4_:q$,SR5_:K$,SR6_:j$,STAT:Q$,STEER2SRV_:J$,TECS_:eq,TERRAIN_:tq,TKOFF_:iq,TUNE_:aq,VISO:rq,VTX_:nq,YAW:oq,json:sq},uB1=Object.freeze(Object.defineProperty({__proto__:null,ADSB_:oW,AFS_:sW,AHRS_:lW,AIS_:cW,ARMING_:dW,ARSPD:CW,AVD_:mW,BARO:uW,BARO1_WCF_:hW,BARO2_WCF_:pW,BARO3_WCF_:fW,BATT2_:VW,BATT3_:LW,BATT4_:HW,BATT5_:MW,BATT6_:gW,BATT7_:AW,BATT8_:vW,BATT9_:_W,BATT_:SW,BRD_:DW,BRD_RADIO:yW,BRD_RTC:RW,BTN_:bW,CAM_:NW,CAM_RC_:wW,CAN_:TW,CAN_D1_:EW,CAN_D1_KDE_:PW,CAN_D1_PC_:IW,CAN_D1_TST_:OW,CAN_D1_UC_:UW,CAN_D2_:xW,CAN_D2_KDE_:FW,CAN_D2_PC_:kW,CAN_D2_TST_:BW,CAN_D2_UC_:zW,CAN_D3_:ZW,CAN_D3_KDE_:GW,CAN_D3_PC_:WW,CAN_D3_TST_:XW,CAN_D3_UC_:YW,CAN_P1_:$W,CAN_P2_:qW,CAN_P3_:KW,CAN_SLCAN_:jW,CHUTE_:QW,COMPASS_:JW,COMPASS_PMOT:eX,CUST_ROT:tX,CUST_ROT1_:iX,CUST_ROT2_:aX,DID_:rX,EAHRS:nX,EFI:oX,EK2_:sX,EK3_:lX,EK3_SRC:cX,ESC_TLM:dX,FENCE_:CX,FFT_:mX,FLOW:uX,FOLL:hX,FRSKY_:pX,GEN_:fX,GPS:VX,GPS_MB1_:LX,GPS_MB2_:HX,GRIP_:MX,GUIDED_:gX,ICE_:AX,INS_:vX,INS_HNTC2_:_X,INS_HNTCH_:SX,INS_LOG_:DX,INS_TCAL1_:yX,INS_TCAL2_:RX,INS_TCAL3_:bX,LAND_:NX,LAND_DS_:wX,LGR_:TX,LOG:EX,MIS_:PX,MNT1:IX,MNT2:OX,MSP:UX,NAVL1_:xX,NTF_:FX,OSD:kX,OSD1_:BX,OSD2_:zX,OSD3_:ZX,OSD4_:GX,OSD5_:WX,OSD5_PARAM1:XX,OSD5_PARAM2:YX,OSD5_PARAM3:$X,OSD5_PARAM4:qX,OSD5_PARAM5:KX,OSD5_PARAM6:jX,OSD5_PARAM7:QX,OSD5_PARAM8:JX,OSD5_PARAM9:eY,OSD6_:tY,OSD6_PARAM1:iY,OSD6_PARAM2:aY,OSD6_PARAM3:rY,OSD6_PARAM4:nY,OSD6_PARAM5:oY,OSD6_PARAM6:sY,OSD6_PARAM7:lY,OSD6_PARAM8:cY,OSD6_PARAM9:dY,PTCH:CY,Plane:mY,Q_:uY,Q_AUTOTUNE_:hY,Q_A_:pY,Q_LOIT_:fY,Q_M_:VY,Q_P:LY,Q_TAILSIT_:HY,Q_TILT_:MY,Q_WP_:gY,Q_WVANE_:AY,RALLY_:vY,RC:_Y,RC10_:SY,RC11_:DY,RC12_:yY,RC13_:RY,RC14_:bY,RC15_:NY,RC16_:wY,RC1_:TY,RC2_:EY,RC3_:PY,RC4_:IY,RC5_:OY,RC6_:UY,RC7_:xY,RC8_:FY,RC9_:kY,RCMAP_:BY,RELAY_:zY,RLL:ZY,RNGFND1_:GY,RNGFND2_:WY,RNGFND3_:XY,RNGFND4_:YY,RNGFND5_:$Y,RNGFND6_:qY,RNGFND7_:KY,RNGFND8_:jY,RNGFND9_:QY,RNGFNDA_:JY,RPM1_:e$,RPM2_:t$,RSSI_:i$,SCHED_:a$,SCR_:r$,SERIAL:n$,SERVO:o$,SERVO10_:s$,SERVO11_:l$,SERVO12_:c$,SERVO13_:d$,SERVO14_:C$,SERVO15_:m$,SERVO16_:u$,SERVO17_:h$,SERVO18_:p$,SERVO19_:f$,SERVO1_:V$,SERVO20_:L$,SERVO21_:H$,SERVO22_:M$,SERVO23_:g$,SERVO24_:A$,SERVO25_:v$,SERVO26_:_$,SERVO27_:S$,SERVO28_:D$,SERVO29_:y$,SERVO2_:R$,SERVO30_:b$,SERVO31_:N$,SERVO32_:w$,SERVO3_:T$,SERVO4_:E$,SERVO5_:P$,SERVO6_:I$,SERVO7_:O$,SERVO8_:U$,SERVO9_:x$,SERVO_BLH_:F$,SERVO_FTW_:k$,SERVO_ROB_:B$,SERVO_SBUS_:z$,SERVO_VOLZ_:Z$,SOAR_:G$,SR0_:W$,SR1_:X$,SR2_:Y$,SR3_:$$,SR4_:q$,SR5_:K$,SR6_:j$,STAT:Q$,STEER2SRV_:J$,TECS_:eq,TERRAIN_:tq,TKOFF_:iq,TUNE_:aq,VISO:rq,VTX_:nq,YAW:oq,json:sq,default:mB1},Symbol.toStringTag,{value:"Module"}));var lq=(e=>(e[e.PRE_FLIGHT=-1]="PRE_FLIGHT",e[e.MANUAL=0]="MANUAL",e[e.CIRCLE=1]="CIRCLE",e[e.STABILIZE=2]="STABILIZE",e[e.TRAINING=3]="TRAINING",e[e.ACRO=4]="ACRO",e[e.FLY_BY_WIRE_A=5]="FLY_BY_WIRE_A",e[e.FLY_BY_WIRE_B=6]="FLY_BY_WIRE_B",e[e.CRUISE=7]="CRUISE",e[e.AUTOTUNE=8]="AUTOTUNE",e[e.AUTO=10]="AUTO",e[e.RTL=11]="RTL",e[e.LOITER=12]="LOITER",e[e.TAKEOFF=13]="TAKEOFF",e[e.AVOID_ADSB=14]="AVOID_ADSB",e[e.GUIDED=15]="GUIDED",e[e.INITIALISING=16]="INITIALISING",e[e.QSTABILIZE=17]="QSTABILIZE",e[e.QHOVER=18]="QHOVER",e[e.QLOITER=19]="QLOITER",e[e.QLAND=20]="QLAND",e[e.QRTL=21]="QRTL",e[e.QAUTOTUNE=22]="QAUTOTUNE",e[e.QACRO=23]="QACRO",e[e.THERMAL=24]="THERMAL",e[e.LOITER_ALT_QLAND=25]="LOITER_ALT_QLAND",e))(lq||{});class hB1 extends jC{constructor(i){super(a0.Plane,i);S1(this,"_mode",-1);S1(this,"_metadata",uB1)}mode(){return this._mode}modesAvailable(){const i=new Map;return Object.entries(lq).filter(([a])=>isNaN(Number(a))).forEach(([a,r])=>{i.set(a,r)}),i}onMAVLinkPackage(i){switch(i.message.type){case se.HEARTBEAT:{const a=i.message;if(a.base_mode.bits===0){this._mode=-1,this.onMode.emit();return}if(!(a.base_mode.bits&_n.MAV_MODE_FLAG_CUSTOM_MODE_ENABLED)){console.log(`no custom: ${JSON.stringify(a.base_mode)}`);return}this._mode=a.custom_mode,this.onMode.emit()}}}}const cq={AFS_AMSL_ERR_GPS:{Description:"This sets margin for error in GPS derived altitude limit. This error margin is only used if the barometer has failed. If the barometer fails then the GPS will be used to enforce the AMSL_LIMIT, but this margin will be subtracted from the AMSL_LIMIT first, to ensure that even with the given amount of GPS altitude error the pressure altitude is not breached. OBC users should set this to comply with their D2 safety case. A value of -1 will mean that barometer failure will lead to immediate termination.",DisplayName:"Error margin for GPS based AMSL limit",Units:"m",User:"Advanced"},AFS_AMSL_LIMIT:{Description:"This sets the AMSL (above mean sea level) altitude limit. If the pressure altitude determined by QNH exceeds this limit then flight termination will be forced. Note that this limit is in meters, whereas pressure altitude limits are often quoted in feet. A value of zero disables the pressure altitude limit.",DisplayName:"AMSL limit",Units:"m",User:"Advanced"},AFS_DUAL_LOSS:{Description:'This enables the dual loss termination part of the AFS system. If this parameter is 1 and both GPS and the ground control station fail simultaneously, this will be considered a "dual loss" and cause termination.',DisplayName:"Enable dual loss terminate due to failure of both GCS and GPS simultaneously",User:"Advanced"},AFS_ENABLE:{Description:"This enables the advanced failsafe system. If this is set to zero (disable) then all the other AFS options have no effect",DisplayName:"Enable Advanced Failsafe",User:"Advanced"},AFS_GEOFENCE:{Description:"This enables the geofence part of the AFS. Will only be in effect if AFS_ENABLE is also 1",DisplayName:"Enable geofence Advanced Failsafe",User:"Advanced"},AFS_HB_PIN:{Description:"This sets a digital output pin which is cycled at 10Hz when termination is not activated. Note that if a FS_TERM_PIN is set then the heartbeat pin will continue to cycle at 10Hz when termination is activated, to allow the termination board to distinguish between autopilot crash and termination.",DisplayName:"Heartbeat Pin",User:"Advanced",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},AFS_MAN_PIN:{Description:"This sets a digital output pin to set high when in manual mode",DisplayName:"Manual Pin",User:"Advanced"},AFS_MAX_COM_LOSS:{Description:"Maximum number of comms loss events before the aircraft stops returning to mission on comms recovery. Use zero to allow for any number of comms loss events.",DisplayName:"Maximum number of comms loss events",User:"Advanced"},AFS_MAX_GPS_LOSS:{Description:"Maximum number of GPS loss events before the aircraft stops returning to mission on GPS recovery. Use zero to allow for any number of GPS loss events.",DisplayName:"Maximum number of GPS loss events",User:"Advanced"},AFS_MAX_RANGE:{Description:"This is the maximum range of the vehicle in kilometers from first arming. If the vehicle goes beyond this range then the TERM_ACTION is performed. A value of zero disables this feature.",DisplayName:"Max allowed range",Units:"km",User:"Advanced"},AFS_QNH_PRESSURE:{Description:"This sets the QNH pressure in millibars to be used for pressure altitude in the altitude limit. A value of zero disables the altitude limit.",DisplayName:"QNH pressure",Units:"hPa",User:"Advanced"},AFS_RC:{Description:"This enables the RC part of the AFS. Will only be in effect if AFS_ENABLE is also 1",DisplayName:"Enable RC Advanced Failsafe",User:"Advanced"},AFS_RC_FAIL_TIME:{Description:"This is the time in seconds in manual mode that failsafe termination will activate if RC input is lost. For the OBC rules this should be (1.5). Use 0 to disable.",DisplayName:"RC failure time",Units:"s",User:"Advanced"},AFS_RC_MAN_ONLY:{Description:"If this parameter is set to 1, then an RC loss will only cause the plane to terminate in manual control modes. If it is 0, then the plane will terminate in any flight mode.",DisplayName:"Enable RC Termination only in manual control modes",User:"Advanced"},AFS_TERMINATE:{Description:"Can be set in flight to force termination of the heartbeat signal",DisplayName:"Force Terminate",User:"Advanced"},AFS_TERM_ACTION:{Description:"This can be used to force an action on flight termination. Normally this is handled by an external failsafe board, but you can setup ArduPilot to handle it here. Please consult the wiki for more information on the possible values of the parameter",DisplayName:"Terminate action",User:"Advanced"},AFS_TERM_PIN:{Description:"This sets a digital output pin to set high on flight termination",DisplayName:"Terminate Pin",User:"Advanced",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},AFS_WP_COMMS:{Description:"Waypoint number to navigate to on comms loss",DisplayName:"Comms Waypoint",User:"Advanced"},AFS_WP_GPS_LOSS:{Description:"Waypoint number to navigate to on GPS lock loss",DisplayName:"GPS Loss Waypoint",User:"Advanced"}},dq={AHRS_COMP_BETA:{Description:"This controls the time constant for the cross-over frequency used to fuse AHRS (airspeed and heading) and GPS data to estimate ground velocity. Time constant is 0.1/beta. A larger time constant will use GPS data less and a small time constant will use air data less.",DisplayName:"AHRS Velocity Complementary Filter Beta Coefficient",Increment:".01",Range:{high:"0.5",low:"0.001"},User:"Advanced"},AHRS_CUSTOM_PIT:{Description:"Autopilot mounting position pitch offset. Positive values = pitch up, negative values = pitch down. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation pitch offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_CUSTOM_ROLL:{Description:"Autopilot mounting position roll offset. Positive values = roll right, negative values = roll left. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation roll offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_CUSTOM_YAW:{Description:"Autopilot mounting position yaw offset. Positive values = yaw right, negative values = yaw left. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation yaw offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_EKF_TYPE:{Description:"This controls which NavEKF Kalman filter version is used for attitude and position estimation",DisplayName:"Use NavEKF Kalman filter for attitude and position estimation",User:"Advanced",Values:{0:"Disabled",2:"Enable EKF2",3:"Enable EKF3",11:"ExternalAHRS"}},AHRS_GPS_GAIN:{Description:"This controls how much to use the GPS to correct the attitude. This should never be set to zero for a plane as it would result in the plane losing control in turns. For a plane please use the default value of 1.0.",DisplayName:"AHRS GPS gain",Increment:".01",Range:{high:"1.0",low:"0.0"},User:"Advanced"},AHRS_GPS_MINSATS:{Description:"Minimum number of satellites visible to use GPS for velocity based corrections attitude correction. This defaults to 6, which is about the point at which the velocity numbers from a GPS become too unreliable for accurate correction of the accelerometers.",DisplayName:"AHRS GPS Minimum satellites",Increment:"1",Range:{high:"10",low:"0"},User:"Advanced"},AHRS_GPS_USE:{Description:"This controls whether to use dead-reckoning or GPS based navigation. If set to 0 then the GPS won't be used for navigation, and only dead reckoning will be used. A value of zero should never be used for normal flight. Currently this affects only the DCM-based AHRS: the EKF uses GPS according to its own parameters. A value of 2 means to use GPS for height as well as position - both in DCM estimation and when determining altitude-above-home.",DisplayName:"AHRS use GPS for DCM navigation and position-down",User:"Advanced",Values:{0:"Disabled",1:"Use GPS for DCM position",2:"Use GPS for DCM position and height"}},AHRS_ORIENTATION:{Description:"Overall board orientation relative to the standard orientation for the board type. This rotates the IMU and compass readings to allow the board to be oriented in your vehicle at any 90 or 45 degree angle. The label for each option is specified in the order of rotations for that orientation. This option takes affect on next boot. After changing you will need to re-level your vehicle.",DisplayName:"Board Orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Yaw45Roll180",10:"Yaw90Roll180",11:"Yaw135Roll180",12:"Pitch180",13:"Yaw225Roll180",14:"Yaw270Roll180",15:"Yaw315Roll180",16:"Roll90",17:"Yaw45Roll90",18:"Yaw90Roll90",19:"Yaw135Roll90",20:"Roll270",21:"Yaw45Roll270",22:"Yaw90Roll270",23:"Yaw135Roll270",24:"Pitch90",25:"Pitch270",26:"Yaw90Pitch180",27:"Yaw270Pitch180",28:"Pitch90Roll90",29:"Pitch90Roll180",30:"Pitch90Roll270",31:"Pitch180Roll90",32:"Pitch180Roll270",33:"Pitch270Roll90",34:"Pitch270Roll180",35:"Pitch270Roll270",36:"Yaw90Pitch180Roll90",37:"Yaw270Roll90",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Pitch315Roll90",42:"Roll45",43:"Roll315",100:"Custom"}},AHRS_RP_P:{Description:"This controls how fast the accelerometers correct the attitude",DisplayName:"AHRS RP_P",Increment:".01",Range:{high:"0.4",low:"0.1"},User:"Advanced"},AHRS_TRIM_X:{Description:"Compensates for the roll angle difference between the control board and the frame. Positive values make the vehicle roll right.",DisplayName:"AHRS Trim Roll",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Standard"},AHRS_TRIM_Y:{Description:"Compensates for the pitch angle difference between the control board and the frame. Positive values make the vehicle pitch up/back.",DisplayName:"AHRS Trim Pitch",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Standard"},AHRS_TRIM_Z:{Description:"Not Used",DisplayName:"AHRS Trim Yaw",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Advanced"},AHRS_WIND_MAX:{Description:"This sets the maximum allowable difference between ground speed and airspeed. This allows the plane to cope with a failing airspeed sensor. A value of zero means to use the airspeed as is. See ARSPD_OPTIONS and ARSPD_MAX_WIND to disable airspeed sensors.",DisplayName:"Maximum wind",Increment:"1",Range:{high:"127",low:"0"},Units:"m/s",User:"Advanced"},AHRS_YAW_P:{Description:"This controls the weight the compass or GPS has on the heading. A higher value means the heading will track the yaw source (GPS or compass) more rapidly.",DisplayName:"Yaw P",Increment:".01",Range:{high:"0.4",low:"0.1"},User:"Advanced"}},Cq={AIS_LIST_MAX:{Description:"AIS list size of nearest vessels. Longer lists take longer to refresh with lower SRx_ADSB values.",DisplayName:"AIS vessel list size",Range:{high:"100",low:"1"},User:"Advanced"},AIS_LOGGING:{Bitmask:{0:"Log all AIVDM messages",1:"Log only unsupported AIVDM messages",2:"Log decoded messages"},Description:"Bitmask of AIS logging options",DisplayName:"AIS logging options",User:"Advanced"},AIS_TIME_OUT:{Description:"if no updates are received in this time a vessel will be removed from the list",DisplayName:"AIS vessel time out",Range:{high:"2000",low:"1"},Units:"s",User:"Advanced"},AIS_TYPE:{Description:"AIS receiver type",DisplayName:"AIS receiver type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"NMEA AIVDM message"}}},mq={ARMING_ACCTHRESH:{Description:"Accelerometer error threshold used to determine inconsistent accelerometers. Compares this error range to other accelerometers to detect a hardware or calibration error. Lower value means tighter check and harder to pass arming check. Not all accelerometers are created equal.",DisplayName:"Accelerometer error threshold",Range:{high:"3.0",low:"0.25"},Units:"m/s/s",User:"Advanced"},ARMING_CHECK:{Bitmask:{0:"All",1:"Barometer",2:"Compass",3:"GPS lock",4:"INS",5:"Parameters",6:"RC Channels",7:"Board voltage",8:"Battery Level",10:"Logging Available",11:"Hardware safety switch",12:"GPS Configuration",13:"System",14:"Mission",15:"Rangefinder",16:"Camera",17:"AuxAuth",18:"VisualOdometry",19:"FFT"},Description:"Checks prior to arming motor. This is a bitmask of checks that will be performed before allowing arming. For most users it is recommended to leave this at the default of 1 (all checks enabled). You can select whatever checks you prefer by adding together the values of each check type to set this parameter. For example, to only allow arming when you have GPS lock and no RC failsafe you would set ARMING_CHECK to 72.",DisplayName:"Arm Checks to Perform (bitmask)",User:"Standard"},ARMING_MIS_ITEMS:{Bitmask:{0:"Land",1:"VTOL Land",2:"DO_LAND_START",3:"Takeoff",4:"VTOL Takeoff",5:"Rallypoint"},Description:"Bitmask of mission items that are required to be planned in order to arm the aircraft",DisplayName:"Required mission items",User:"Advanced"},ARMING_REQUIRE:{Description:"Arming disabled until some requirements are met. If 0, there are no requirements (arm immediately). If 1, require rudder stick or GCS arming before arming motors and sends the minimum throttle PWM value to the throttle channel when disarmed. If 2, require rudder stick or GCS arming and send 0 PWM to throttle channel when disarmed. See the ARMING_CHECK_* parameters to see what checks are done before arming. Note, if setting this parameter to 0 a reboot is required to arm the plane. Also note, even with this parameter at 0, if ARMING_CHECK parameter is not also zero the plane may fail to arm throttle at boot due to a pre-arm check failure.",DisplayName:"Require Arming Motors ",User:"Advanced",Values:{0:"Disabled",1:"THR_MIN PWM when disarmed",2:"0 PWM when disarmed"}},ARMING_RUDDER:{Description:"Allow arm/disarm by rudder input. When enabled arming can be done with right rudder, disarming with left rudder. Rudder arming only works in manual throttle modes with throttle at zero +- deadzone (RCx_DZ)",DisplayName:"Arming with Rudder enable/disable",User:"Advanced",Values:{0:"Disabled",1:"ArmingOnly",2:"ArmOrDisarm"}}},uq={ARSPD2_AUTOCAL:{Description:"If this is enabled then the autopilot will automatically adjust the ARSPD_RATIO during flight, based upon an estimation filter using ground speed and true airspeed. The automatic calibration will save the new ratio to EEPROM every 2 minutes if it changes by more than 5%. This option should be enabled for a calibration flight then disabled again when calibration is complete. Leaving it enabled all the time is not recommended.",DisplayName:"Automatic airspeed ratio calibration for 2nd airspeed sensor",User:"Advanced"},ARSPD2_BUS:{Description:"The bus number of the I2C bus to look for the sensor on",DisplayName:"Airspeed I2C bus for 2nd sensor",User:"Advanced",Values:{0:"Bus0(internal)",1:"Bus1(external)",2:"Bus2(auxillary)"}},ARSPD2_DEVID:{Description:"Airspeed2 sensor ID, taking into account its type, bus and instance",DisplayName:"Airspeed2 ID",ReadOnly:"True",User:"Advanced"},ARSPD2_OFFSET:{Description:"Airspeed calibration offset",DisplayName:"Airspeed offset for 2nd airspeed sensor",Increment:"0.1",User:"Advanced"},ARSPD2_PIN:{Description:"Pin number indicating location of analog airspeed sensors. Pixhawk/Cube if set to 15. ",DisplayName:"Airspeed pin for 2nd airspeed sensor",User:"Advanced"},ARSPD2_PSI_RANGE:{Description:"This parameter allows you to to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",DisplayName:"The PSI range of the device for 2nd sensor",User:"Advanced"},ARSPD2_RATIO:{Description:"Airspeed calibration ratio",DisplayName:"Airspeed ratio for 2nd airspeed sensor",Increment:"0.1",User:"Advanced"},ARSPD2_SKIP_CAL:{Description:"This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",DisplayName:"Skip airspeed calibration on startup for 2nd sensor",User:"Advanced",Values:{0:"Disable",1:"Enable"}},ARSPD2_TUBE_ORDR:{Description:"This parameter allows you to control whether the order in which the tubes are attached to your pitot tube matters. If you set this to 0 then the first (often the top) connector on the sensor needs to be the stagnation pressure (the pressure at the tip of the pitot tube). If set to 1 then the second (often the bottom) connector needs to be the stagnation pressure. If set to 2 (the default) then the airspeed driver will accept either order. The reason you may wish to specify the order is it will allow your airspeed sensor to detect if the aircraft is receiving excessive pressure on the static port compared to the stagnation port such as during a stall, which would otherwise be seen as a positive airspeed.",DisplayName:"Control pitot tube order of 2nd airspeed sensor",User:"Advanced",Values:{0:"Normal",1:"Swapped",2:"Auto Detect"}},ARSPD2_TYPE:{Description:"Type of 2nd airspeed sensor",DisplayName:"Second Airspeed type",User:"Standard",Values:{0:"None",1:"I2C-MS4525D0",2:"Analog",3:"I2C-MS5525",4:"I2C-MS5525 (0x76)",5:"I2C-MS5525 (0x77)",6:"I2C-SDP3X",7:"I2C-DLVR-5in",8:"DroneCAN",9:"I2C-DLVR-10in",10:"I2C-DLVR-20in",11:"I2C-DLVR-30in",12:"I2C-DLVR-60in",13:"NMEA water speed",14:"MSP",15:"ASP5033"}},ARSPD2_USE:{Description:"use airspeed for flight control. When set to 0 airspeed sensor can be logged and displayed on a GCS but won't be used for flight. When set to 1 it will be logged and used. When set to 2 it will be only used when the throttle is zero, which can be useful in gliders with airspeed sensors behind a propeller",DisplayName:"Enable use of 2nd airspeed sensor",User:"Standard",Values:{0:"Don't Use",1:"use",2:"UseWhenZeroThrottle"}},ARSPD_AUTOCAL:{Description:"Enables automatic adjustment of ARSPD_RATIO during a calibration flight based on estimation of ground speed and true airspeed. New ratio saved every 2 minutes if change is > 5%. Should not be left enabled.",DisplayName:"Automatic airspeed ratio calibration",User:"Advanced"},ARSPD_BUS:{Description:"Bus number of the I2C bus where the airspeed sensor is connected",DisplayName:"Airspeed I2C bus",User:"Advanced",Values:{0:"Bus0(internal)",1:"Bus1(external)",2:"Bus2(auxillary)"}},ARSPD_DEVID:{Description:"Airspeed sensor ID, taking into account its type, bus and instance",DisplayName:"Airspeed ID",ReadOnly:"True",User:"Advanced"},ARSPD_OFFSET:{Description:"Airspeed calibration offset",DisplayName:"Airspeed offset",Increment:"0.1",User:"Advanced"},ARSPD_OPTIONS:{Bitmask:{0:"SpeedMismatchDisable",1:"AllowSpeedMismatchRecovery",2:"DisableVoltageCorrection"},Description:"Bitmask of options to use with airspeed. 0:Disable use based on airspeed/groundspeed mismatch (see ARSPD_WIND_MAX), 1:Automatically reenable use based on airspeed/groundspeed mismatch recovery (see ARSPD_WIND_MAX) 2:Disable voltage correction",DisplayName:"Airspeed options bitmask",User:"Advanced"},ARSPD_PIN:{Description:"The pin number that the airspeed sensor is connected to for analog sensors. Set to 15 on the Pixhawk for the analog airspeed port. ",DisplayName:"Airspeed pin",User:"Advanced"},ARSPD_PRIMARY:{Description:"This selects which airspeed sensor will be the primary if multiple sensors are found",DisplayName:"Primary airspeed sensor",User:"Advanced",Values:{0:"FirstSensor",1:"2ndSensor"}},ARSPD_PSI_RANGE:{Description:"This parameter allows you to to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",DisplayName:"The PSI range of the device",User:"Advanced"},ARSPD_RATIO:{Description:"Calibrates pitot tube pressure to velocity. Increasing this value will indicate a higher airspeed at any given dynamic pressure.",DisplayName:"Airspeed ratio",Increment:"0.1",User:"Advanced"},ARSPD_SKIP_CAL:{Description:"This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",DisplayName:"Skip airspeed calibration on startup",User:"Advanced",Values:{0:"Disable",1:"Enable"}},ARSPD_TUBE_ORDER:{Description:"This parameter allows you to control whether the order in which the tubes are attached to your pitot tube matters. If you set this to 0 then the first (often the top) connector on the sensor needs to be the stagnation pressure (the pressure at the tip of the pitot tube). If set to 1 then the second (often the bottom) connector needs to be the stagnation pressure. If set to 2 (the default) then the airspeed driver will accept either order. The reason you may wish to specify the order is it will allow your airspeed sensor to detect if the aircraft is receiving excessive pressure on the static port compared to the stagnation port such as during a stall, which would otherwise be seen as a positive airspeed.",DisplayName:"Control pitot tube order",User:"Advanced",Values:{0:"Normal",1:"Swapped",2:"Auto Detect"}},ARSPD_TYPE:{Description:"Type of airspeed sensor",DisplayName:"Airspeed type",User:"Standard",Values:{0:"None",1:"I2C-MS4525D0",2:"Analog",3:"I2C-MS5525",4:"I2C-MS5525 (0x76)",5:"I2C-MS5525 (0x77)",6:"I2C-SDP3X",7:"I2C-DLVR-5in",8:"DroneCAN",9:"I2C-DLVR-10in",10:"I2C-DLVR-20in",11:"I2C-DLVR-30in",12:"I2C-DLVR-60in",13:"NMEA water speed",14:"MSP",15:"ASP5033"}},ARSPD_USE:{Description:"Enables airspeed use for automatic throttle modes and replaces control from THR_TRIM. Continues to display and log airspeed if set to 0. Uses airspeed for control if set to 1. Only uses airspeed when throttle = 0 if set to 2 (useful for gliders with airspeed sensors behind propellers).",DisplayName:"Airspeed use",User:"Standard",Values:{0:"DoNotUse",1:"Use",2:"UseWhenZeroThrottle"}},ARSPD_WIND_MAX:{Description:"If the difference between airspeed and ground speed is greater than this value the sensor will be marked unhealthy. Using ARSPD_OPTION this health value can be used to disable the sensor.",DisplayName:"Maximum airspeed and ground speed difference",Units:"m/s",User:"Advanced"},ARSPD_WIND_WARN:{Description:"If the difference between airspeed and ground speed is greater than this value the sensor will issue a warning. If 0 ARSPD_WIND_MAX is used.",DisplayName:"Airspeed and ground speed difference that gives a warning",Units:"m/s",User:"Advanced"}},hq={ATC_ACCEL_MAX:{Description:"Speed control acceleration (and deceleration) maximum in m/s/s. 0 to disable acceleration limiting",DisplayName:"Speed control acceleration (and deceleration) maximum in m/s/s",Increment:"0.1",Range:{high:"10.0",low:"0.0"},Units:"m/s/s",User:"Standard"},ATC_BAL_D:{Description:"Pitch control D gain. Compensates for short-term change in desired pitch vs actual",DisplayName:"Pitch control D gain",Increment:"0.001",Range:{high:"0.100",low:"0.000"},User:"Standard"},ATC_BAL_FF:{Description:"Pitch control feed forward",DisplayName:"Pitch control feed forward",Increment:"0.001",Range:{high:"0.500",low:"0.000"},User:"Standard"},ATC_BAL_FILT:{Description:"Pitch control input filter. Lower values reduce noise but add delay.",DisplayName:"Pitch control filter frequency",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_BAL_FLTD:{Description:"Derivative filter frequency in Hz",DisplayName:"Pitch control Derivative term filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_BAL_FLTE:{Description:"Error filter frequency in Hz",DisplayName:"Pitch control Error filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_BAL_FLTT:{Description:"Target filter frequency in Hz",DisplayName:"Pitch control Target filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_BAL_I:{Description:"Pitch control I gain for BalanceBots. Corrects long term error between the desired pitch (in radians) and actual pitch",DisplayName:"Pitch control I gain",Increment:"0.01",Range:{high:"2.000",low:"0.000"},User:"Standard"},ATC_BAL_IMAX:{Description:"Pitch control I gain maximum. Constrains the maximum motor output (range -1 to +1) that the I term will generate",DisplayName:"Pitch control I gain maximum",Increment:"0.01",Range:{high:"1.000",low:"0.000"},User:"Standard"},ATC_BAL_P:{Description:"Pitch control P gain for BalanceBots. Converts the error between the desired pitch (in radians) and actual pitch to a motor output (in the range -1 to +1)",DisplayName:"Pitch control P gain",Increment:"0.01",Range:{high:"2.000",low:"0.000"},User:"Standard"},ATC_BAL_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Pitch control slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},ATC_BAL_SPD_FF:{Description:"Pitch control feed forward from speed",DisplayName:"Pitch control feed forward from speed",Increment:"0.01",Range:{high:"10.0",low:"0.0"},User:"Standard"},ATC_BRAKE:{Description:"Speed control brake enable/disable. Allows sending a reversed output to the motors to slow the vehicle.",DisplayName:"Speed control brake enable/disable",User:"Standard",Values:{0:"Disable",1:"Enable"}},ATC_DECEL_MAX:{Description:"Speed control and deceleration maximum in m/s/s. 0 to use ATC_ACCEL_MAX for deceleration",DisplayName:"Speed control deceleration maximum in m/s/s",Increment:"0.1",Range:{high:"10.0",low:"0.0"},Units:"m/s/s",User:"Standard"},ATC_SAIL_D:{Description:"Sail Heel control D gain. Compensates for short-term change in desired heel angle vs actual",DisplayName:"Sail Heel control D gain",Increment:"0.001",Range:{high:"0.100",low:"0.000"},User:"Standard"},ATC_SAIL_FF:{Description:"Sail Heel control feed forward",DisplayName:"Sail Heel control feed forward",Increment:"0.001",Range:{high:"0.500",low:"0.000"},User:"Standard"},ATC_SAIL_FILT:{Description:"Sail Heel control input filter. Lower values reduce noise but add delay.",DisplayName:"Sail Heel control filter frequency",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_SAIL_FLTD:{Description:"Derivative filter frequency in Hz",DisplayName:"Sail Heel Derivative term filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_SAIL_FLTE:{Description:"Error filter frequency in Hz",DisplayName:"Sail Heel Error filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_SAIL_FLTT:{Description:"Target filter frequency in Hz",DisplayName:"Sail Heel Target filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_SAIL_I:{Description:"Sail Heel control I gain for sailboats. Corrects long term error between the desired heel angle (in radians) and actual",DisplayName:"Sail Heel control I gain",Increment:"0.01",Range:{high:"2.000",low:"0.000"},User:"Standard"},ATC_SAIL_IMAX:{Description:"Sail Heel control I gain maximum. Constrains the maximum I term contribution to the main sail output (range -1 to +1)",DisplayName:"Sail Heel control I gain maximum",Increment:"0.01",Range:{high:"1.000",low:"0.000"},User:"Standard"},ATC_SAIL_P:{Description:"Sail Heel control P gain for sailboats. Converts the error between the desired heel angle (in radians) and actual heel to a main sail output (in the range -1 to +1)",DisplayName:"Sail Heel control P gain",Increment:"0.01",Range:{high:"2.000",low:"0.000"},User:"Standard"},ATC_SAIL_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Sail heel slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},ATC_SPEED_D:{Description:"Speed control D gain. Compensates for short-term change in desired speed vs actual",DisplayName:"Speed control D gain",Increment:"0.001",Range:{high:"0.400",low:"0.000"},User:"Standard"},ATC_SPEED_FF:{Description:"Speed control feed forward",DisplayName:"Speed control feed forward",Increment:"0.001",Range:{high:"0.500",low:"0.000"},User:"Standard"},ATC_SPEED_FILT:{Description:"Speed control input filter. Lower values reduce noise but add delay.",DisplayName:"Speed control filter frequency",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_SPEED_FLTD:{Description:"Derivative filter frequency in Hz",DisplayName:"Speed control Derivative term filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_SPEED_FLTE:{Description:"Error filter frequency in Hz",DisplayName:"Speed control Error filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_SPEED_FLTT:{Description:"Target filter frequency in Hz",DisplayName:"Speed control Target filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_SPEED_I:{Description:"Speed control I gain. Corrects long term error between the desired speed (in m/s) and actual speed",DisplayName:"Speed control I gain",Increment:"0.01",Range:{high:"2.000",low:"0.000"},User:"Standard"},ATC_SPEED_IMAX:{Description:"Speed control I gain maximum. Constrains the maximum motor output (range -1 to +1) that the I term will generate",DisplayName:"Speed control I gain maximum",Increment:"0.01",Range:{high:"1.000",low:"0.000"},User:"Standard"},ATC_SPEED_P:{Description:"Speed control P gain. Converts the error between the desired speed (in m/s) and actual speed to a motor output (in the range -1 to +1)",DisplayName:"Speed control P gain",Increment:"0.01",Range:{high:"2.000",low:"0.010"},User:"Standard"},ATC_SPEED_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Speed control slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},ATC_STOP_SPEED:{Description:"Speed control stop speed. Motor outputs to zero once vehicle speed falls below this value",DisplayName:"Speed control stop speed",Increment:"0.01",Range:{high:"0.50",low:"0.00"},Units:"m/s",User:"Standard"},ATC_STR_ACC_MAX:{Description:"Steering control angular acceleration maximum (in deg/s/s). 0 to disable acceleration limiting",DisplayName:"Steering control angular acceleration maximum",Increment:"0.1",Range:{high:"1000",low:"0"},Units:"deg/s/s",User:"Standard"},ATC_STR_ANG_P:{Description:"Steering control angle P gain. Converts the error between the desired heading/yaw (in radians) and actual heading/yaw to a desired turn rate (in rad/sec)",DisplayName:"Steering control angle P gain",Increment:"0.1",Range:{high:"10.000",low:"1.000"},User:"Standard"},ATC_STR_RAT_D:{Description:"Steering control D gain. Compensates for short-term change in desired turn rate vs actual",DisplayName:"Steering control D gain",Increment:"0.001",Range:{high:"0.400",low:"0.000"},User:"Standard"},ATC_STR_RAT_FF:{Description:"Steering control feed forward",DisplayName:"Steering control feed forward",Increment:"0.001",Range:{high:"3.000",low:"0.000"},User:"Standard"},ATC_STR_RAT_FILT:{Description:"Steering control input filter. Lower values reduce noise but add delay.",DisplayName:"Steering control filter frequency",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_STR_RAT_FLTD:{Description:"Derivative filter frequency in Hz",DisplayName:"Steering control Derivative term filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_STR_RAT_FLTE:{Description:"Error filter frequency in Hz",DisplayName:"Steering control Error filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_STR_RAT_FLTT:{Description:"Target filter frequency in Hz",DisplayName:"Steering control Target filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_STR_RAT_I:{Description:"Steering control I gain. Corrects long term error between the desired turn rate (in rad/s) and actual",DisplayName:"Steering control I gain",Increment:"0.001",Range:{high:"2.000",low:"0.000"},User:"Standard"},ATC_STR_RAT_IMAX:{Description:"Steering control I gain maximum. Constrains the steering output (range -1 to +1) that the I term will generate",DisplayName:"Steering control I gain maximum",Increment:"0.01",Range:{high:"1.000",low:"0.000"},User:"Standard"},ATC_STR_RAT_MAX:{Description:"Steering control rotation rate maximum in deg/s. 0 to remove rate limiting",DisplayName:"Steering control rotation rate maximum",Increment:"0.1",Range:{high:"1000",low:"0"},Units:"deg/s",User:"Standard"},ATC_STR_RAT_P:{Description:"Steering control rate P gain. Converts the turn rate error (in radians/sec) to a steering control output (in the range -1 to +1)",DisplayName:"Steering control rate P gain",Increment:"0.001",Range:{high:"2.000",low:"0.000"},User:"Standard"},ATC_STR_RAT_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Steering slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},ATC_TURN_MAX_G:{Description:"The maximum turning acceleration (in units of gravities) that the rover can handle while remaining stable. The navigation code will keep the lateral acceleration below this level to avoid rolling over or slipping the wheels in turns",DisplayName:"Turning maximum G force",Increment:"0.01",Range:{high:"10",low:"0.1"},Units:"gravities",User:"Standard"}},pq={AVOID_ACCEL_MAX:{Description:"Maximum acceleration with which obstacles will be avoided with. Set zero to disable acceleration limits",DisplayName:"Avoidance maximum acceleration",Range:{high:"9",low:"0"},Units:"m/s/s",User:"Standard"},AVOID_BACKUP_DZ:{Description:"Distance beyond AVOID_MARGIN parameter, after which vehicle will backaway from obstacles. Increase this parameter if you see vehicle going back and forth in front of obstacle.",DisplayName:"Avoidance deadzone between stopping and backing away from obstacle",Range:{high:"2",low:"0"},Units:"m",User:"Standard"},AVOID_BACKUP_SPD:{Description:"Maximum speed that will be used to back away from obstacles in GPS modes (m/s). Set zero to disable",DisplayName:"Avoidance maximum backup speed",Range:{high:"2",low:"0"},Units:"m/s",User:"Standard"},AVOID_ENABLE:{Bitmask:{0:"UseFence",1:"UseProximitySensor",2:"UseBeaconFence"},Description:"Enabled/disable avoidance input sources",DisplayName:"Avoidance control enable/disable",User:"Standard"},AVOID_MARGIN:{Description:"Vehicle will attempt to stay at least this distance (in meters) from objects while in GPS modes",DisplayName:"Avoidance distance margin in GPS modes",Range:{high:"10",low:"1"},Units:"m",User:"Standard"}},fq={BARO1_DEVID:{Description:"Barometer sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID",ReadOnly:"True",User:"Advanced"},BARO1_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Ground Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO2_DEVID:{Description:"Barometer2 sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID2",ReadOnly:"True",User:"Advanced"},BARO2_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Ground Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO3_DEVID:{Description:"Barometer3 sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID3",ReadOnly:"True",User:"Advanced"},BARO3_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Absolute Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO_ALT_OFFSET:{Description:"altitude offset in meters added to barometric altitude. This is used to allow for automatic adjustment of the base barometric altitude by a ground station equipped with a barometer. The value is added to the barometric altitude read by the aircraft. It is automatically reset to 0 when the barometer is calibrated on each reboot or when a preflight calibration is performed.",DisplayName:"altitude offset",Increment:"0.1",Units:"m",User:"Advanced"},BARO_EXT_BUS:{Description:"This selects the bus number for looking for an I2C barometer. When set to -1 it will probe all external i2c buses based on the GND_PROBE_EXT parameter.",DisplayName:"External baro bus",User:"Advanced",Values:{0:"Bus0",1:"Bus1","-1":"Disabled"}},BARO_FLTR_RNG:{Description:"This sets the range around the average value that new samples must be within to be accepted. This can help reduce the impact of noise on sensors that are on long I2C cables. The value is a percentage from the average value. A value of zero disables this filter.",DisplayName:"Range in which sample is accepted",Increment:"1",Range:{high:"100",low:"0"},Units:"%"},BARO_GND_TEMP:{Description:"User provided ambient ground temperature in degrees Celsius. This is used to improve the calculation of the altitude the vehicle is at. This parameter is not persistent and will be reset to 0 every time the vehicle is rebooted. A value of 0 means use the internal measurement ambient temperature.",DisplayName:"ground temperature",Increment:"1",Units:"degC",User:"Advanced",Volatile:"True"},BARO_PRIMARY:{Description:"This selects which barometer will be the primary if multiple barometers are found",DisplayName:"Primary barometer",User:"Advanced",Values:{0:"FirstBaro",1:"2ndBaro",2:"3rdBaro"}},BARO_PROBE_EXT:{Bitmask:{0:"BMP085",1:"BMP280",2:"MS5611",3:"MS5607",4:"MS5637",5:"FBM320",6:"DPS280",7:"LPS25H",8:"Keller",9:"MS5837",10:"BMP388",11:"SPL06",12:"MSP"},Description:"This sets which types of external i2c barometer to look for. It is a bitmask of barometer types. The I2C buses to probe is based on GND_EXT_BUS. If BARO_EXT_BUS is -1 then it will probe all external buses, otherwise it will probe just the bus number given in GND_EXT_BUS.",DisplayName:"External barometers to probe",User:"Advanced"},BARO_SPEC_GRAV:{Description:"This sets the specific gravity of the fluid when flying an underwater ROV.",DisplayName:"Specific Gravity (For water depth measurement)",Values:{"1.0":"Freshwater","1.024":"Saltwater"}}},Vq={BARO1_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO1_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},Lq={BARO2_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO2_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},Hq={BARO3_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO3_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},Mq={BATT2_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT2_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT2_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT2__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT2_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT2_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT2__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT2_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT2_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT2_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT2_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT2_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT2_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT2_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT2_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT2_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT2_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT2_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT2_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT2_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT2_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT2_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo"}},BATT2_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT2_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT2_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT2_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT2_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT2_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT2_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},gq={BATT3_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT3_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT3_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT3__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT3_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT3_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT3__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT3_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT3_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT3_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT3_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT3_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT3_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT3_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT3_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT3_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT3_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT3_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT3_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT3_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT3_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT3_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo"}},BATT3_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT3_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT3_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT3_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT3_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT3_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT3_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},Aq={BATT4_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT4_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT4_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT4__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT4_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT4_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT4__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT4_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT4_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT4_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT4_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT4_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT4_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT4_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT4_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT4_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT4_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT4_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT4_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT4_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT4_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT4_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo"}},BATT4_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT4_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT4_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT4_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT4_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT4_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT4_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},vq={BATT5_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT5_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT5_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT5__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT5_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT5_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT5__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT5_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT5_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT5_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT5_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT5_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT5_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT5_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT5_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT5_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT5_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT5_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT5_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT5_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT5_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT5_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo"}},BATT5_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT5_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT5_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT5_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT5_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT5_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT5_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},_q={BATT6_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT6_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT6_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT6__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT6_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT6_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT6__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT6_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT6_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT6_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT6_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT6_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT6_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT6_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT6_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT6_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT6_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT6_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT6_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT6_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT6_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT6_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo"}},BATT6_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT6_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT6_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT6_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT6_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT6_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT6_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},Sq={BATT7_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT7_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT7_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT7__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT7_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT7_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT7__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT7_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT7_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT7_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT7_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT7_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT7_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT7_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT7_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT7_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT7_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT7_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT7_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT7_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT7_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT7_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo"}},BATT7_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT7_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT7_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT7_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT7_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT7_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT7_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},Dq={BATT8_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT8_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT8_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT8__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT8_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT8_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT8__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT8_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT8_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT8_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT8_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT8_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT8_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT8_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT8_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT8_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT8_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT8_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT8_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT8_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT8_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT8_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo"}},BATT8_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT8_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT8_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT8_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT8_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT8_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT8_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},yq={BATT9_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT9_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT9_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT9__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT9_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT9_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT9__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT9_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT9_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT9_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT9_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT9_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT9_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT9_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT9_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT9_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT9_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT9_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT9_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT9_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT9_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT9_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo"}},BATT9_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT9_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT9_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT9_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT9_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT9_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT9_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},Rq={BATT_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo"}},BATT_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},bq={BCN_ALT:{Description:"Beacon origin's altitude above sealevel in meters",DisplayName:"Beacon origin's altitude above sealevel in meters",Increment:"1",Range:{high:"10000",low:"0"},Units:"m",User:"Advanced"},BCN_LATITUDE:{Description:"Beacon origin's latitude",DisplayName:"Beacon origin's latitude",Increment:"0.000001",Range:{high:"90",low:"-90"},Units:"deg",User:"Advanced"},BCN_LONGITUDE:{Description:"Beacon origin's longitude",DisplayName:"Beacon origin's longitude",Increment:"0.000001",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},BCN_ORIENT_YAW:{Description:"Beacon systems rotation from north in degrees",DisplayName:"Beacon systems rotation from north in degrees",Increment:"1",Range:{high:"+180",low:"-180"},Units:"deg",User:"Advanced"},BCN_TYPE:{Description:"What type of beacon based position estimation device is connected",DisplayName:"Beacon based position estimation device type",User:"Advanced",Values:{0:"None",1:"Pozyx",2:"Marvelmind",3:"Nooploop",10:"SITL"}}},Nq={BRD_ALT_CONFIG:{Description:"Select an alternative hardware configuration. A value of zero selects the default configuration for this board. Other values are board specific. Please see the documentation for your board for details on any alternative configuration values that may be available.",DisplayName:"Alternative HW config",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},BRD_BOOT_DELAY:{Description:"This adds a delay in milliseconds to boot to ensure peripherals initialise fully",DisplayName:"Boot delay",Range:{high:"10000",low:"0"},Units:"ms",User:"Advanced"},BRD_HEAT_I:{Description:"Board Heater integrator gain",DisplayName:"Board Heater I gain",Increment:"0.1",Range:{high:"1",low:"0"},User:"Advanced"},BRD_HEAT_IMAX:{Description:"Board Heater integrator maximum",DisplayName:"Board Heater IMAX",Increment:"1",Range:{high:"100",low:"0"},User:"Advanced"},BRD_HEAT_LOWMGN:{Description:"Arming check will fail if temp is lower than this margin below BRD_HEAT_TARG. 0 disables the low temperature check",DisplayName:"Board heater temp lower margin",Range:{high:"20",low:"0"},Units:"degC",User:"Advanced"},BRD_HEAT_P:{Description:"Board Heater P gain",DisplayName:"Board Heater P gain",Increment:"1",Range:{high:"500",low:"1"},User:"Advanced"},BRD_HEAT_TARG:{Description:"Board heater target temperature for boards with controllable heating units. DO NOT SET to -1 on the Cube. Set to -1 to disable the heater, please reboot after setting to -1.",DisplayName:"Board heater temperature target",Range:{high:"80",low:"-1"},Units:"degC",User:"Advanced"},BRD_IO_ENABLE:{Description:"This allows for the IO co-processor on FMUv1 and FMUv2 to be disabled",DisplayName:"Enable IO co-processor",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BRD_OPTIONS:{Bitmask:{0:"Enable hardware watchdog",1:"Disable MAVftp",2:"Enable set of internal parameters",3:"Enable Debug Pins",4:"Unlock flash on reboot",5:"Write protect firmware flash on reboot",6:"Write protect bootloader flash on reboot"},Description:"Board specific option flags",DisplayName:"Board options",User:"Advanced"},BRD_PWM_VOLT_SEL:{Description:"This sets the voltage max for PWM output pulses. 0 for 3.3V and 1 for 5V output.",DisplayName:"Set PWM Out Voltage",User:"Advanced",Values:{0:"3.3V",1:"5V"}},BRD_SAFETYENABLE:{Description:"This controls the default state of the safety switch at startup. When set to 1 the safety switch will start in the safe state (flashing) at boot. When set to zero the safety switch will start in the unsafe state (solid) at startup. Note that if a safety switch is fitted the user can still control the safety state after startup using the switch. The safety state can also be controlled in software using a MAVLink message.",DisplayName:"Enable use of safety arming switch",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},BRD_SAFETYOPTION:{Bitmask:{0:"ActiveForSafetyEnable",1:"ActiveForSafetyDisable",2:"ActiveWhenArmed",3:"Force safety on when the aircraft disarms"},Description:"This controls the activation of the safety button. It allows you to control if the safety button can be used for safety enable and/or disable, and whether the button is only active when disarmed",DisplayName:"Options for safety button behavior",User:"Standard"},BRD_SAFETY_MASK:{Bitmask:{0:"Output1",1:"Output2",2:"Output3",3:"Output4",4:"Output5",5:"Output6",6:"Output7",7:"Output8",8:"Output9",9:"Output10",10:"Output11",11:"Output12",12:"Output13",13:"Output14"},Description:"A bitmask which controls what outputs can move while the safety switch has not been pressed",DisplayName:"Outputs which ignore the safety switch state",RebootRequired:"True",User:"Advanced"},BRD_SBUS_OUT:{Description:"This sets the SBUS output frame rate in Hz",DisplayName:" SBUS output rate",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"50Hz",2:"75Hz",3:"100Hz",4:"150Hz",5:"200Hz",6:"250Hz",7:"300Hz"}},BRD_SD_SLOWDOWN:{Description:"This is a scaling factor to slow down microSD operation. It can be used on flight board and microSD card combinations where full speed is not reliable. For normal full speed operation a value of 0 should be used.",DisplayName:"microSD slowdown",Increment:"1",Range:{high:"32",low:"0"},User:"Advanced"},BRD_SER1_RTSCTS:{Description:"Enable flow control on serial 1 (telemetry 1). You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup. Note that the PX4v1 does not have hardware flow control pins on this port, so you should leave this disabled.",DisplayName:"Serial 1 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER2_RTSCTS:{Description:"Enable flow control on serial 2 (telemetry 2). You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 2 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER3_RTSCTS:{Description:"Enable flow control on serial 3. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 3 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER4_RTSCTS:{Description:"Enable flow control on serial 4. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 4 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER5_RTSCTS:{Description:"Enable flow control on serial 5. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 5 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SERIAL_NUM:{Description:"User-defined serial number of this vehicle, it can be any arbitrary number you want and has no effect on the autopilot",DisplayName:"User-defined serial number",Range:{high:"32767",low:"-32768"},User:"Standard"},BRD_TYPE:{Description:"This allows selection of a PX4 or VRBRAIN board type. If set to zero then the board type is auto-detected (PX4)",DisplayName:"Board type",RebootRequired:"True",User:"Advanced",Values:{0:"AUTO",1:"PX4V1",2:"Pixhawk",3:"Cube/Pixhawk2",4:"Pixracer",5:"PixhawkMini",6:"Pixhawk2Slim",13:"Intel Aero FC",14:"Pixhawk Pro",20:"AUAV2.1",21:"PCNC1",22:"MINDPXV2",23:"SP01",24:"CUAVv5/FMUV5",30:"VRX BRAIN51",32:"VRX BRAIN52",33:"VRX BRAIN52E",34:"VRX UBRAIN51",35:"VRX UBRAIN52",36:"VRX CORE10",38:"VRX BRAIN54",39:"PX4 FMUV6",100:"PX4 OLDDRIVERS"}},BRD_VBUS_MIN:{Description:"Minimum voltage on the autopilot power rail to allow the aircraft to arm. 0 to disable the check.",DisplayName:"Autopilot board voltage requirement",Increment:"0.1",Range:{high:"5.5",low:"4.0"},Units:"V",User:"Advanced"},BRD_VSERVO_MIN:{Description:"Minimum voltage on the servo rail to allow the aircraft to arm. 0 to disable the check.",DisplayName:"Servo voltage requirement",Increment:"0.1",Range:{high:"12.0",low:"3.3"},Units:"V",User:"Advanced"}},wq={BRD_RADIO_ABLVL:{Description:"This sets the minimum RSSI of an auto-bind packet for it to be accepted. This should be set so that auto-bind will only happen at short range to minimise the change of an auto-bind happening accidentially",DisplayName:"Auto-bind level",Range:{high:"31",low:"0"},User:"Advanced"},BRD_RADIO_ABTIME:{Description:"When non-zero this sets the time with no transmitter packets before we start looking for auto-bind packets.",DisplayName:"Auto-bind time",Range:{high:"120",low:"0"},User:"Advanced"},BRD_RADIO_BZOFS:{Description:"Set transmitter buzzer note adjustment (adjust frequency up)",DisplayName:"Transmitter buzzer adjustment",Range:{high:"40",low:"0"},User:"Advanced"},BRD_RADIO_DEBUG:{Description:"radio debug level",DisplayName:"debug level",Range:{high:"4",low:"0"},User:"Advanced"},BRD_RADIO_DISCRC:{Description:"disable receive CRC (for debug)",DisplayName:"disable receive CRC",User:"Advanced",Values:{0:"NotDisabled",1:"Disabled"}},BRD_RADIO_FCCTST:{Description:"If this is enabled then the radio will continuously transmit as required for FCC testing. The transmit channel is set by the value of the parameter. The radio will not work for RC input while this is enabled",DisplayName:"Put radio into FCC test mode",User:"Advanced",Values:{0:"Disabled",1:"MinChannel",2:"MidChannel",3:"MaxChannel",4:"MinChannelCW",5:"MidChannelCW",6:"MaxChannelCW"}},BRD_RADIO_PPSCH:{Description:"Channel to show received packet-per-second rate, or zero for disabled",DisplayName:"Packet rate channel",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_PROT:{Description:"Select air protocol",DisplayName:"protocol",User:"Advanced",Values:{0:"Auto",1:"DSM2",2:"DSMX"}},BRD_RADIO_SIGCH:{Description:"Channel to show receive RSSI signal strength, or zero for disabled",DisplayName:"RSSI signal strength",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_STKMD:{Description:"This selects between different stick input modes. The default is mode2, which has throttle on the left stick and pitch on the right stick. You can instead set mode1, which has throttle on the right stick and pitch on the left stick.",DisplayName:"Stick input mode",User:"Advanced",Values:{1:"Mode1",2:"Mode2"}},BRD_RADIO_TELEM:{Description:"If this is non-zero then telemetry packets will be sent over DSM",DisplayName:"Enable telemetry",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BRD_RADIO_TESTCH:{Description:"This sets the radio to a fixed test channel for factory testing. Using a fixed channel avoids the need for binding in factory testing.",DisplayName:"Set radio to factory test channel",User:"Advanced",Values:{0:"Disabled",1:"TestChan1",2:"TestChan2",3:"TestChan3",4:"TestChan4",5:"TestChan5",6:"TestChan6",7:"TestChan7",8:"TestChan8"}},BRD_RADIO_TPPSCH:{Description:"Channel to show telemetry packets-per-second value, as received at TX",DisplayName:"Telemetry PPS channel",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_TSIGCH:{Description:"Channel to show telemetry RSSI value as received by TX",DisplayName:"RSSI value channel for telemetry data on transmitter",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_TXMAX:{Description:"Set transmitter maximum transmit power (from 1 to 8)",DisplayName:"Transmitter transmit power",Range:{high:"8",low:"1"},User:"Advanced"},BRD_RADIO_TXPOW:{Description:"Set telemetry transmit power. This is the power level (from 1 to 8) for telemetry packets sent from the RX to the TX",DisplayName:"Telemetry Transmit power",Range:{high:"8",low:"1"},User:"Advanced"},BRD_RADIO_TYPE:{Description:"This enables support for direct attached radio receivers",DisplayName:"Set type of direct attached radio",Values:{0:"None",1:"CYRF6936",2:"CC2500",3:"BK2425"}}},Tq={BRD_RTC_TYPES:{Bitmask:{0:"GPS",1:"MAVLINK_SYSTEM_TIME",2:"HW"},Description:"Specifies which sources of UTC time will be accepted",DisplayName:"Allowed sources of RTC time",User:"Advanced"},BRD_RTC_TZ_MIN:{Description:"Adds offset in +- minutes from UTC to calculate local time",DisplayName:"Timezone offset from UTC",Range:{high:"+840",low:"-720"},User:"Advanced"}},Eq={BTN_ENABLE:{Description:"This enables the button checking module. When this is disabled the parameters for setting button inputs are not visible",DisplayName:"Enable button reporting",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BTN_FUNC1:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 1 RC Channel function",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_FUNC2:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 2 RC Channel function",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_FUNC3:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 3 RC Channel function",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_FUNC4:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 4 RC Channel function",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_OPTIONS1:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 1. PWM input detects PWM above or below 1800/1200us instead of logic level. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 1 Options",User:"Standard"},BTN_OPTIONS2:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 2. PWM input detects PWM above or below 1800/1200us instead of logic level. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 2 Options",User:"Standard"},BTN_OPTIONS3:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 3. PWM input detects PWM above or below 1800/1200us instead of logic level. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 3 Options"},BTN_OPTIONS4:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 4. PWM input detects PWM above or below 1800/1200us instead of logic level. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 4 Options",User:"Standard"},BTN_PIN1:{Description:"Digital pin number for first button input. ",DisplayName:"First button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_PIN2:{Description:"Digital pin number for second button input. ",DisplayName:"Second button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_PIN3:{Description:"Digital pin number for third button input. ",DisplayName:"Third button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_PIN4:{Description:"Digital pin number for fourth button input. ",DisplayName:"Fourth button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_REPORT_SEND:{Description:"The duration in seconds that a BUTTON_CHANGE report is repeatedly sent to the GCS regarding a button changing state. Note that the BUTTON_CHANGE message is MAVLink2 only.",DisplayName:"Report send time",Range:{high:"3600",low:"0"},User:"Standard"}},Pq={CAM_AUTO_ONLY:{Description:"When enabled, trigging by distance is done in AUTO mode only.",DisplayName:"Distance-trigging in AUTO mode only",User:"Standard",Values:{0:"Always",1:"Only when in AUTO"}},CAM_DURATION:{Description:"How long the shutter will be held open in 10ths of a second (i.e. enter 10 for 1second, 50 for 5seconds)",DisplayName:"Duration that shutter is held open",Range:{high:"50",low:"0"},Units:"ds",User:"Standard"},CAM_FEEDBACK_PIN:{Description:"pin number to use for save accurate camera feedback messages. If set to -1 then don't use a pin flag for this, otherwise this is a pin number which if held high after a picture trigger order, will save camera messages when camera really takes a picture. A universal camera hot shoe is needed. The pin should be held high for at least 2 milliseconds for reliable trigger detection. See also the CAM_FEEDBACK_POL option.",DisplayName:"Camera feedback pin",RebootRequired:"True",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},CAM_FEEDBACK_POL:{Description:"Polarity for feedback pin. If this is 1 then the feedback pin should go high on trigger. If set to 0 then it should go low",DisplayName:"Camera feedback pin polarity",User:"Standard",Values:{0:"TriggerLow",1:"TriggerHigh"}},CAM_MAX_ROLL:{Description:"Postpone shooting if roll is greater than limit. (0=Disable, will shoot regardless of roll).",DisplayName:"Maximum photo roll angle.",Range:{high:"180",low:"0"},Units:"deg",User:"Standard"},CAM_MIN_INTERVAL:{Description:"Postpone shooting if previous picture was taken less than preset time(ms) ago.",DisplayName:"Minimum time between photos",Range:{high:"10000",low:"0"},Units:"ms",User:"Standard"},CAM_RELAY_ON:{Description:"This sets whether the relay goes high or low when it triggers. Note that you should also set RELAY_DEFAULT appropriately for your camera",DisplayName:"Relay ON value",User:"Standard",Values:{0:"Low",1:"High"}},CAM_SERVO_OFF:{Description:"PWM value in microseconds to move servo to when shutter is deactivated",DisplayName:"Servo OFF PWM value",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CAM_SERVO_ON:{Description:"PWM value in microseconds to move servo to when shutter is activated",DisplayName:"Servo ON PWM value",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CAM_TRIGG_DIST:{Description:"Distance in meters between camera triggers. If this value is non-zero then the camera will trigger whenever the position changes by this number of meters regardless of what mode the APM is in. Note that this parameter can also be set in an auto mission using the DO_SET_CAM_TRIGG_DIST command, allowing you to enable/disable the triggering of the camera during the flight.",DisplayName:"Camera trigger distance",Range:{high:"1000",low:"0"},Units:"m",User:"Standard"},CAM_TRIGG_TYPE:{Description:"how to trigger the camera to take a picture",DisplayName:"Camera shutter (trigger) type",User:"Standard",Values:{0:"Servo",1:"Relay",2:"GoPro in Solo Gimbal"}},CAM_TYPE:{Description:"Set the camera type that is being used, certain cameras have custom functions that need further configuration, this enables that.",DisplayName:"Type of camera (0: None, 1: BMMCC)",User:"Standard",Values:{0:"Default",1:"BMMCC"}}},Iq={CAM_RC_BTN_DELAY:{Description:"Time it takes for the a RunCam button press to be actived in ms. If this is too short then commands can get out of sync.",DisplayName:"RunCam button delay before allowing further button presses",User:"Advanced"},CAM_RC_BT_DELAY:{Description:"Time it takes for the RunCam to become fully ready in ms. If this is too short then commands can get out of sync.",DisplayName:"RunCam boot delay before allowing updates",User:"Advanced"},CAM_RC_CONTROL:{Bitmask:{0:"Stick yaw right",1:"Stick roll right",2:"3-position switch",3:"2-position switch",4:"Autorecording enabled"},Description:"Specifies the allowed actions required to enter the OSD menu",DisplayName:"RunCam control option",User:"Advanced"},CAM_RC_FEATURES:{Bitmask:{0:"Power Button",1:"WiFi Button",2:"Change Mode",3:"5-Key OSD",4:"Settings Access",5:"DisplayPort",6:"Start Recording",7:"Stop Recording"},Description:"The available features of the attached RunCam device. If 0 then the RunCam device will be queried for the features it supports, otherwise this setting is used.",DisplayName:"RunCam features available",User:"Advanced"},CAM_RC_MDE_DELAY:{Description:"Time it takes for the a RunCam mode button press to be actived in ms. If a mode change first requires a video recording change then double this value is used. If this is too short then commands can get out of sync.",DisplayName:"RunCam mode delay before allowing further button presses",User:"Advanced"},CAM_RC_TYPE:{Description:"RunCam deviee type used to determine OSD menu structure and shutter options.",DisplayName:"RunCam device type",Values:{0:"Disabled",1:"RunCam Split Micro/RunCam with UART",2:"RunCam Split",3:"RunCam Split4 4k",4:"RunCam Hybrid"}}},Oq={CAN_LOGLEVEL:{Description:"Loglevel for recording initialisation and debug information from CAN Interface",DisplayName:"Loglevel",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Log None",1:"Log Error",2:"Log Warning and below",3:"Log Info and below",4:"Log Everything"}}},Uq={CAN_D1_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"DroneCAN",3:"ToshibaCAN",4:"PiccoloCAN",5:"CANTester",6:"EFI_NWPMU",7:"USD1",8:"KDECAN",10:"Scripting",11:"Benewake"}}},xq={CAN_D1_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},Fq={CAN_D1_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D1_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D1_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D1_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},kq={CAN_D1_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",4:"TEST_TOSHIBA_CAN",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC"}},CAN_D1_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},Bq={CAN_D1_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"Output channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D1_UC_ESC_OF:{Description:"Offset for ESC numbering in DroneCAN ESC RawCommand messages. This allows for more efficient packing of ESC command messages. If your ESCs are on servo functions 5 to 8 and you set this parameter to 4 then the ESC RawCommand will be sent with the first 4 slots filled. This can be used for more efficint usage of CAN bandwidth",DisplayName:"ESC Output channels offset",Range:{high:"18",low:"0"},User:"Advanced"},CAN_D1_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D1_UC_NTF_RT:{Description:"Maximum transmit rate for Notify State Message",DisplayName:"Notify State rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"},CAN_D1_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D1_UC_POOL:{Description:"Amount of memory in bytes to allocate for the DroneCAN memory pool. More memory is needed for higher CAN bus loads",DisplayName:"CAN pool size",Range:{high:"16384",low:"1024"},User:"Advanced"},CAN_D1_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"Output channels to be transmitted as servo over UAVCAN",User:"Advanced"},CAN_D1_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},zq={CAN_D2_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"DroneCAN",3:"ToshibaCAN",4:"PiccoloCAN",5:"CANTester",6:"EFI_NWPMU",7:"USD1",8:"KDECAN",10:"Scripting",11:"Benewake"}}},Zq={CAN_D2_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},Gq={CAN_D2_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D2_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D2_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D2_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},Wq={CAN_D2_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",4:"TEST_TOSHIBA_CAN",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC"}},CAN_D2_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},Xq={CAN_D2_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"Output channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D2_UC_ESC_OF:{Description:"Offset for ESC numbering in DroneCAN ESC RawCommand messages. This allows for more efficient packing of ESC command messages. If your ESCs are on servo functions 5 to 8 and you set this parameter to 4 then the ESC RawCommand will be sent with the first 4 slots filled. This can be used for more efficint usage of CAN bandwidth",DisplayName:"ESC Output channels offset",Range:{high:"18",low:"0"},User:"Advanced"},CAN_D2_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D2_UC_NTF_RT:{Description:"Maximum transmit rate for Notify State Message",DisplayName:"Notify State rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"},CAN_D2_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D2_UC_POOL:{Description:"Amount of memory in bytes to allocate for the DroneCAN memory pool. More memory is needed for higher CAN bus loads",DisplayName:"CAN pool size",Range:{high:"16384",low:"1024"},User:"Advanced"},CAN_D2_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"Output channels to be transmitted as servo over UAVCAN",User:"Advanced"},CAN_D2_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},Yq={CAN_D3_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"DroneCAN",3:"ToshibaCAN",4:"PiccoloCAN",5:"CANTester",6:"EFI_NWPMU",7:"USD1",8:"KDECAN",10:"Scripting",11:"Benewake"}}},$q={CAN_D3_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},qq={CAN_D3_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D3_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D3_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D3_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},Kq={CAN_D3_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",4:"TEST_TOSHIBA_CAN",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC"}},CAN_D3_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},jq={CAN_D3_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"Output channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D3_UC_ESC_OF:{Description:"Offset for ESC numbering in DroneCAN ESC RawCommand messages. This allows for more efficient packing of ESC command messages. If your ESCs are on servo functions 5 to 8 and you set this parameter to 4 then the ESC RawCommand will be sent with the first 4 slots filled. This can be used for more efficint usage of CAN bandwidth",DisplayName:"ESC Output channels offset",Range:{high:"18",low:"0"},User:"Advanced"},CAN_D3_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D3_UC_NTF_RT:{Description:"Maximum transmit rate for Notify State Message",DisplayName:"Notify State rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"},CAN_D3_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D3_UC_POOL:{Description:"Amount of memory in bytes to allocate for the DroneCAN memory pool. More memory is needed for higher CAN bus loads",DisplayName:"CAN pool size",Range:{high:"16384",low:"1024"},User:"Advanced"},CAN_D3_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"Output channels to be transmitted as servo over UAVCAN",User:"Advanced"},CAN_D3_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},Qq={CAN_P1_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P1_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver",3:"Third driver"}}},Jq={CAN_P2_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P2_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver",3:"Third driver"}}},eK={CAN_P3_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P3_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver",3:"Third driver"}}},tK={CAN_SLCAN_CPORT:{Description:"CAN Interface ID to be routed to SLCAN, 0 means no routing",DisplayName:"SLCAN Route",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First interface",2:"Second interface"}},CAN_SLCAN_SDELAY:{Description:"Duration after which slcan starts after setting SERNUM in seconds.",DisplayName:"SLCAN Start Delay",Range:{high:"127",low:"0"},User:"Standard"},CAN_SLCAN_SERNUM:{Description:"Serial Port ID to be used for temporary SLCAN iface, -1 means no temporary serial. This parameter is automatically reset on reboot or on timeout. See CAN_SLCAN_TIMOUT for timeout details",DisplayName:"SLCAN Serial Port",User:"Standard",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},CAN_SLCAN_TIMOUT:{Description:"Duration of inactivity after which SLCAN is switched back to original driver in seconds.",DisplayName:"SLCAN Timeout",Range:{high:"127",low:"0"},User:"Standard"}},iK={COMPASS_AUTODEC:{Description:"Enable or disable the automatic calculation of the declination based on gps location",DisplayName:"Auto Declination",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_AUTO_ROT:{Description:"When enabled this will automatically check the orientation of compasses on successful completion of compass calibration. If set to 2 then external compasses will have their orientation automatically corrected.",DisplayName:"Automatically check orientation",Values:{0:"Disabled",1:"CheckOnly",2:"CheckAndFix",3:"use same tolerance to auto rotate 45 deg rotations"}},COMPASS_CAL_FIT:{Description:"This controls the fitness level required for a successful compass calibration. A lower value makes for a stricter fit (less likely to pass). This is the value used for the primary magnetometer. Other magnetometers get double the value.",DisplayName:"Compass calibration fitness",Increment:"0.1",Range:{high:"32",low:"4"},User:"Advanced",Values:{4:"Very Strict",8:"Strict",16:"Default",32:"Relaxed"}},COMPASS_CUS_PIT:{Description:"Compass mounting position pitch offset. Positive values = pitch up, negative values = pitch down. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation pitch offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_CUS_ROLL:{Description:"Compass mounting position roll offset. Positive values = roll right, negative values = roll left. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation roll offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_CUS_YAW:{Description:"Compass mounting position yaw offset. Positive values = yaw right, negative values = yaw left. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation yaw offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_DEC:{Description:"An angle to compensate between the true north and magnetic north",DisplayName:"Compass declination",Increment:"0.01",Range:{high:"3.142",low:"-3.142"},Units:"rad",User:"Standard"},COMPASS_DEV_ID:{Description:"Compass device id. Automatically detected, do not set manually",DisplayName:"Compass device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID2:{Description:"Second compass's device id. Automatically detected, do not set manually",DisplayName:"Compass2 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID3:{Description:"Third compass's device id. Automatically detected, do not set manually",DisplayName:"Compass3 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID4:{Description:"Extra 4th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass4 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID5:{Description:"Extra 5th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass5 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID6:{Description:"Extra 6th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass6 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID7:{Description:"Extra 7th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass7 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID8:{Description:"Extra 8th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass8 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DIA2_X:{Calibration:"1",Description:"DIA_X in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA2_Y:{Calibration:"1",Description:"DIA_Y in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA2_Z:{Description:"DIA_Z in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal Z component",User:"Advanced"},COMPASS_DIA3_X:{Calibration:"1",Description:"DIA_X in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA3_Y:{Calibration:"1",Description:"DIA_Y in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA3_Z:{Description:"DIA_Z in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal Z component",User:"Advanced"},COMPASS_DIA_X:{Calibration:"1",Description:"DIA_X in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA_Y:{Calibration:"1",Description:"DIA_Y in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA_Z:{Description:"DIA_Z in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal Z component",User:"Advanced"},COMPASS_ENABLE:{Description:"Setting this to Enabled(1) will enable the compass. Setting this to Disabled(0) will disable the compass. Note that this is separate from COMPASS_USE. This will enable the low level senor, and will enable logging of magnetometer data. To use the compass for navigation you must also set COMPASS_USE to 1.",DisplayName:"Enable Compass",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},COMPASS_EXTERN2:{Description:"Configure second compass so it is attached externally. This is auto-detected on most boards. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass2 is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_EXTERN3:{Description:"Configure third compass so it is attached externally. This is auto-detected on most boards. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass3 is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_EXTERNAL:{Description:"Configure compass so it is attached externally. This is auto-detected on most boards. Set to 1 if the compass is externally connected. When externally connected the COMPASS_ORIENT option operates independently of the AHRS_ORIENTATION board orientation option. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_FLTR_RNG:{Description:"This sets the range around the average value that new samples must be within to be accepted. This can help reduce the impact of noise on sensors that are on long I2C cables. The value is a percentage from the average value. A value of zero disables this filter.",DisplayName:"Range in which sample is accepted",Increment:"1",Range:{high:"100",low:"0"},Units:"%"},COMPASS_LEARN:{Description:"Enable or disable the automatic learning of compass offsets. You can enable learning either using a compass-only method that is suitable only for fixed wing aircraft or using the offsets learnt by the active EKF state estimator. If this option is enabled then the learnt offsets are saved when you disarm the vehicle. If InFlight learning is enabled then the compass with automatically start learning once a flight starts (must be armed). While InFlight learning is running you cannot use position control modes.",DisplayName:"Learn compass offsets automatically",User:"Advanced",Values:{0:"Disabled",1:"Internal-Learning",2:"EKF-Learning",3:"InFlight-Learning"}},COMPASS_MOT2_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass2's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT2_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass2's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT2_Z:{Description:"Multiplied by the current throttle and added to compass2's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass3's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass3's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_Z:{Description:"Multiplied by the current throttle and added to compass3's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOTCT:{Calibration:"1",Description:"Set motor interference compensation type to disabled, throttle or current. Do not change manually.",DisplayName:"Motor interference compensation type",User:"Advanced",Values:{0:"Disabled",1:"Use Throttle",2:"Use Current"}},COMPASS_MOT_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to the compass's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to the compass's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT_Z:{Description:"Multiplied by the current throttle and added to the compass's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_ODI2_X:{Calibration:"1",Description:"ODI_X in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI2_Y:{Calibration:"1",Description:"ODI_Y in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI2_Z:{Description:"ODI_Z in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_ODI3_X:{Calibration:"1",Description:"ODI_X in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI3_Y:{Calibration:"1",Description:"ODI_Y in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI3_Z:{Description:"ODI_Z in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_ODI_X:{Calibration:"1",Description:"ODI_X in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI_Y:{Calibration:"1",Description:"ODI_Y in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI_Z:{Description:"ODI_Z in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_OFFS_MAX:{Description:"This sets the maximum allowed compass offset in calibration and arming checks",DisplayName:"Compass maximum offset",Increment:"1",Range:{high:"3000",low:"500"},User:"Advanced"},COMPASS_OFS2_X:{Calibration:"1",Description:"Offset to be added to compass2's x-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS2_Y:{Calibration:"1",Description:"Offset to be added to compass2's y-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS2_Z:{Description:"Offset to be added to compass2's z-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_X:{Calibration:"1",Description:"Offset to be added to compass3's x-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_Y:{Calibration:"1",Description:"Offset to be added to compass3's y-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_Z:{Description:"Offset to be added to compass3's z-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_X:{Calibration:"1",Description:"Offset to be added to the compass x-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_Y:{Calibration:"1",Description:"Offset to be added to the compass y-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_Z:{Description:"Offset to be added to the compass z-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OPTIONS:{Bitmask:{0:"CalRequireGPS"},Description:"This sets options to change the behaviour of the compass",DisplayName:"Compass options",User:"Advanced"},COMPASS_ORIENT:{Description:"The orientation of the first external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used. The label for each option is specified in the order of rotations for that orientation.",DisplayName:"Compass orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Yaw45Roll180",10:"Yaw90Roll180",11:"Yaw135Roll180",12:"Pitch180",13:"Yaw225Roll180",14:"Yaw270Roll180",15:"Yaw315Roll180",16:"Roll90",17:"Yaw45Roll90",18:"Yaw90Roll90",19:"Yaw135Roll90",20:"Roll270",21:"Yaw45Roll270",22:"Yaw90Roll270",23:"Yaw135Roll270",24:"Pitch90",25:"Pitch270",26:"Yaw90Pitch180",27:"Yaw270Pitch180",28:"Pitch90Roll90",29:"Pitch90Roll180",30:"Pitch90Roll270",31:"Pitch180Roll90",32:"Pitch180Roll270",33:"Pitch270Roll90",34:"Pitch270Roll180",35:"Pitch270Roll270",36:"Yaw90Pitch180Roll90",37:"Yaw270Roll90",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Pitch315Roll90",42:"Roll45",43:"Roll315",100:"Custom"}},COMPASS_ORIENT2:{Description:"The orientation of a second external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used.",DisplayName:"Compass2 orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Roll180Yaw45",10:"Roll180Yaw90",11:"Roll180Yaw135",12:"Pitch180",13:"Roll180Yaw225",14:"Roll180Yaw270",15:"Roll180Yaw315",16:"Roll90",17:"Roll90Yaw45",18:"Roll90Yaw90",19:"Roll90Yaw135",20:"Roll270",21:"Roll270Yaw45",22:"Roll270Yaw90",23:"Roll270Yaw135",24:"Pitch90",25:"Pitch270",26:"Pitch180Yaw90",27:"Pitch180Yaw270",28:"Roll90Pitch90",29:"Roll180Pitch90",30:"Roll270Pitch90",31:"Roll90Pitch180",32:"Roll270Pitch180",33:"Roll90Pitch270",34:"Roll180Pitch270",35:"Roll270Pitch270",36:"Roll90Pitch180Yaw90",37:"Roll90Yaw270",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Roll90Pitch315",42:"Roll45",43:"Roll315",100:"Custom"}},COMPASS_ORIENT3:{Description:"The orientation of a third external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used.",DisplayName:"Compass3 orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Roll180Yaw45",10:"Roll180Yaw90",11:"Roll180Yaw135",12:"Pitch180",13:"Roll180Yaw225",14:"Roll180Yaw270",15:"Roll180Yaw315",16:"Roll90",17:"Roll90Yaw45",18:"Roll90Yaw90",19:"Roll90Yaw135",20:"Roll270",21:"Roll270Yaw45",22:"Roll270Yaw90",23:"Roll270Yaw135",24:"Pitch90",25:"Pitch270",26:"Pitch180Yaw90",27:"Pitch180Yaw270",28:"Roll90Pitch90",29:"Roll180Pitch90",30:"Roll270Pitch90",31:"Roll90Pitch180",32:"Roll270Pitch180",33:"Roll90Pitch270",34:"Roll180Pitch270",35:"Roll270Pitch270",36:"Roll90Pitch180Yaw90",37:"Roll90Yaw270",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Roll90Pitch315",42:"Roll45",43:"Roll315",100:"Custom"}},COMPASS_PRIO1_ID:{Description:"Compass device id with 1st order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 1st order priority",RebootRequired:"True",User:"Advanced"},COMPASS_PRIO2_ID:{Description:"Compass device id with 2nd order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 2nd order priority",RebootRequired:"True",User:"Advanced"},COMPASS_PRIO3_ID:{Description:"Compass device id with 3rd order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 3rd order priority",RebootRequired:"True",User:"Advanced"},COMPASS_SCALE:{Description:"Scaling factor for first compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass1 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_SCALE2:{Description:"Scaling factor for 2nd compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass2 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_SCALE3:{Description:"Scaling factor for 3rd compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass3 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_TYPEMASK:{Bitmask:{0:"HMC5883",1:"LSM303D",2:"AK8963",3:"BMM150",4:"LSM9DS1",5:"LIS3MDL",6:"AK09916",7:"IST8310",8:"ICM20948",9:"MMC3416",11:"DroneCAN",12:"QMC5883",14:"MAG3110",15:"IST8308",16:"RM3100",17:"MSP",18:"ExternalAHRS"},Description:"This is a bitmask of driver types to disable. If a driver type is set in this mask then that driver will not try to find a sensor at startup",DisplayName:"Compass disable driver type mask",User:"Advanced"},COMPASS_USE:{Description:"Enable or disable the use of the compass (instead of the GPS) for determining heading",DisplayName:"Use compass for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_USE2:{Description:"Enable or disable the secondary compass for determining heading.",DisplayName:"Compass2 used for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_USE3:{Description:"Enable or disable the tertiary compass for determining heading.",DisplayName:"Compass3 used for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}}},aK={COMPASS_PMOT1_X:{Description:"Compensation for X axis of motor1",DisplayName:"Compass per-motor1 X",User:"Advanced"},COMPASS_PMOT1_Y:{Description:"Compensation for Y axis of motor1",DisplayName:"Compass per-motor1 Y",User:"Advanced"},COMPASS_PMOT1_Z:{Description:"Compensation for Z axis of motor1",DisplayName:"Compass per-motor1 Z",User:"Advanced"},COMPASS_PMOT2_X:{Description:"Compensation for X axis of motor2",DisplayName:"Compass per-motor2 X",User:"Advanced"},COMPASS_PMOT2_Y:{Description:"Compensation for Y axis of motor2",DisplayName:"Compass per-motor2 Y",User:"Advanced"},COMPASS_PMOT2_Z:{Description:"Compensation for Z axis of motor2",DisplayName:"Compass per-motor2 Z",User:"Advanced"},COMPASS_PMOT3_X:{Description:"Compensation for X axis of motor3",DisplayName:"Compass per-motor3 X",User:"Advanced"},COMPASS_PMOT3_Y:{Description:"Compensation for Y axis of motor3",DisplayName:"Compass per-motor3 Y",User:"Advanced"},COMPASS_PMOT3_Z:{Description:"Compensation for Z axis of motor3",DisplayName:"Compass per-motor3 Z",User:"Advanced"},COMPASS_PMOT4_X:{Description:"Compensation for X axis of motor4",DisplayName:"Compass per-motor4 X",User:"Advanced"},COMPASS_PMOT4_Y:{Description:"Compensation for Y axis of motor4",DisplayName:"Compass per-motor4 Y",User:"Advanced"},COMPASS_PMOT4_Z:{Description:"Compensation for Z axis of motor4",DisplayName:"Compass per-motor4 Z",User:"Advanced"},COMPASS_PMOT_EN:{Description:"This enables per-motor compass corrections",DisplayName:"per-motor compass correction enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_PMOT_EXP:{Description:"This is the exponential correction for the power output of the motor for per-motor compass correction",DisplayName:"per-motor exponential correction",Increment:"0.01",Range:{high:"2",low:"0"},User:"Advanced"}},rK={DID_BARO_ACC:{Description:"Barometer Vertical Accuracy when installed in the vehicle. Note this is dependent upon installation conditions and thus disabled by default",DisplayName:"Barometer vertical accuraacy",Units:"m",User:"Advanced"},DID_CANDRIVER:{Description:"DroneCAN driver index, 0 to disable DroneCAN",DisplayName:"DroneCAN driver number",Values:{0:"Disabled",1:"Driver1",2:"Driver2"}},DID_ENABLE:{Description:"Enable ODID subsystem",DisplayName:"Enable ODID subsystem",Values:{0:"Disabled",1:"Enabled"}},DID_MAVPORT:{Description:"Serial port number to send OpenDroneID MAVLink messages to. Can be -1 if using DroneCAN.",DisplayName:"MAVLink serial port",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},DID_OPTIONS:{Bitmask:{0:"EnforceArming"},Description:"Options for OpenDroneID subsystem. Bit 0 means to enforce arming checks",DisplayName:"OpenDroneID options"}},nK={EAHRS_RATE:{Description:"Requested rate for AHRS device",DisplayName:"AHRS data rate",Units:"Hz",User:"Standard"},EAHRS_TYPE:{Description:"Type of AHRS device",DisplayName:"AHRS type",User:"Standard",Values:{0:"None",1:"VectorNav",2:"LORD"}}},oK={EFI_COEF1:{Description:"Used to calibrate fuel flow for MS protocol (Slope)",DisplayName:"EFI Calibration Coefficient 1",Range:{high:"1",low:"0"},User:"Advanced"},EFI_COEF2:{Description:"Used to calibrate fuel flow for MS protocol (Offset)",DisplayName:"EFI Calibration Coefficient 2",Range:{high:"10",low:"0"},User:"Advanced"},EFI_TYPE:{Description:"What method of communication is used for EFI #1",DisplayName:"EFI communication type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Serial-MS",2:"NWPMU",3:"Serial-Lutan"}}},sK={EK2_ABIAS_P_NSE:{Description:"This noise controls the growth of the vertical accelerometer delta velocity bias state error estimate. Increasing it makes accelerometer bias estimation faster and noisier.",DisplayName:"Accelerometer bias stability (m/s^3)",Range:{high:"0.005",low:"0.00001"},Units:"m/s/s/s",User:"Advanced"},EK2_ACC_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to accelerometer measurement errors excluding bias. Increasing it makes the flter trust the accelerometer measurements less and other measurements more.",DisplayName:"Accelerometer noise (m/s^2)",Increment:"0.01",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK2_ALT_M_NSE:{Description:"This is the RMS value of noise in the altitude measurement. Increasing it reduces the weighting of the baro measurement and will make the filter respond more slowly to baro measurement errors, but will make it more sensitive to GPS and accelerometer errors.",DisplayName:"Altitude measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_ALT_SOURCE:{Description:"Primary height sensor used by the EKF. If a sensor other than Baro is selected and becomes unavailable, then the Baro sensor will be used as a fallback. NOTE: The EK2_RNG_USE_HGT parameter can be used to switch to range-finder when close to the ground in conjunction with EK2_ALT_SOURCE = 0 or 2 (Baro or GPS).",DisplayName:"Primary altitude sensor source",RebootRequired:"True",User:"Advanced",Values:{0:"Use Baro",1:"Use Range Finder",2:"Use GPS",3:"Use Range Beacon"}},EK2_BCN_DELAY:{Description:"This is the number of msec that the range beacon measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Range beacon measurement delay (msec)",Increment:"10",Range:{high:"127",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_BCN_I_GTE:{Description:"This sets the percentage number of standard deviations applied to the range beacon measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range beacon measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_BCN_M_NSE:{Description:"This is the RMS value of noise in the range beacon measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range beacon measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_CHECK_SCALE:{Description:"This scales the thresholds that are used to check GPS accuracy before it is used by the EKF. A value of 100 is the default. Values greater than 100 increase and values less than 100 reduce the maximum GPS error the EKF will accept. A value of 200 will double the allowable GPS error.",DisplayName:"GPS accuracy check scaler (%)",Range:{high:"200",low:"50"},Units:"%",User:"Advanced"},EK2_EAS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the airspeed measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Airspeed measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_EAS_M_NSE:{Description:"This is the RMS value of noise in equivalent airspeed measurements used by planes. Increasing it reduces the weighting of airspeed measurements and will make wind speed estimates less noisy and slower to converge. Increasing also increases navigation errors when dead-reckoning without GPS measurements.",DisplayName:"Equivalent airspeed measurement noise (m/s)",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK2_ENABLE:{Description:"This enables EKF2. Enabling EKF2 only makes the maths run, it does not mean it will be used for flight control. To use it for flight control set AHRS_EKF_TYPE=2. A reboot or restart will need to be performed after changing the value of EK2_ENABLE for it to take effect.",DisplayName:"Enable EKF2",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},EK2_FLOW_DELAY:{Description:"This is the number of msec that the optical flow measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Optical Flow measurement delay (msec)",Increment:"10",Range:{high:"127",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_FLOW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the optical flow innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Optical Flow measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_FLOW_M_NSE:{Description:"This is the RMS value of noise and errors in optical flow measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Optical flow measurement noise (rad/s)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad/s",User:"Advanced"},EK2_FLOW_USE:{Description:"Controls if the optical flow data is fused into the 24-state navigation estimator OR the 1-state terrain height estimator.",DisplayName:"Optical flow use bitmask",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Navigation",2:"Terrain"}},EK2_GBIAS_P_NSE:{Description:"This state process noise controls growth of the gyro delta angle bias state error estimate. Increasing it makes rate gyro bias estimation faster and noisier.",DisplayName:"Rate gyro bias stability (rad/s/s)",Range:{high:"0.001",low:"0.00001"},Units:"rad/s/s",User:"Advanced"},EK2_GLITCH_RAD:{Description:"This controls the maximum radial uncertainty in position between the value predicted by the filter and the value measured by the GPS before the filter position and velocity states are reset to the GPS. Making this value larger allows the filter to ignore larger GPS glitches but also means that non-GPS errors such as IMU and compass can create a larger error in position before the filter is forced back to the GPS position.",DisplayName:"GPS glitch radius gate size (m)",Increment:"5",Range:{high:"100",low:"10"},Units:"m",User:"Advanced"},EK2_GPS_CHECK:{Bitmask:{0:"NSats",1:"HDoP",2:"speed error",3:"position error",4:"yaw error",5:"pos drift",6:"vert speed",7:"horiz speed"},Description:"This is a 1 byte bitmap controlling which GPS preflight checks are performed. Set to 0 to bypass all checks. Set to 255 perform all checks. Set to 3 to check just the number of satellites and HDoP. Set to 31 for the most rigorous checks that will still allow checks to pass when the copter is moving, eg launch from a boat.",DisplayName:"GPS preflight check",User:"Advanced"},EK2_GPS_TYPE:{Description:"This controls use of GPS measurements : 0 = use 3D velocity & 2D position, 1 = use 2D velocity and 2D position, 2 = use 2D position, 3 = Inhibit GPS use - this can be useful when flying with an optical flow sensor in an environment where GPS quality is poor and subject to large multipath errors.",DisplayName:"GPS mode control",User:"Advanced",Values:{0:"GPS 3D Vel and 2D Pos",1:"GPS 2D vel and 2D pos",2:"GPS 2D pos",3:"No GPS"}},EK2_GSCL_P_NSE:{Description:"This noise controls the rate of gyro scale factor learning. Increasing it makes rate gyro scale factor estimation faster and noisier.",DisplayName:"Rate gyro scale factor stability (1/s)",Range:{high:"0.001",low:"0.000001"},Units:"Hz",User:"Advanced"},EK2_GSF_RST_MAX:{Description:"Sets the maximum number of times the EKF2 will be allowed to reset its yaw to the estimate from the EKF-GSF yaw estimator. No resets will be allowed unless the use of the EKF-GSF yaw estimate is enabled via the EK2_GSF_USE_MASK parameter.",DisplayName:"Maximum number of resets to the EKF-GSF yaw estimate allowed",Increment:"1",Range:{high:"10",low:"1"},RebootRequired:"True",User:"Advanced"},EK2_GSF_RUN_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"A bitmask of which EKF2 instances run an independant EKF-GSF yaw estimator to provide a backup yaw estimate that doesn't rely on magnetometer data. This estimator uses IMU, GPS and, if available, airspeed data. EKF-GSF yaw estimator data for the primary EKF2 instance will be logged as GSF0 and GSF1 messages. Use of the yaw estimate generated by this algorithm is controlled by the EK2_GSF_USE_MASK and EK2_GSF_RST_MAX parameters. To run the EKF-GSF yaw estimator in ride-along and logging only, set EK2_GSF_USE_MASK to 0. ",DisplayName:"Bitmask of which EKF-GSF yaw estimators run",RebootRequired:"True",User:"Advanced"},EK2_GSF_USE_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of which EKF2 instances will use the output from the EKF-GSF yaw estimator that has been turned on by the EK2_GSF_RUN_MASK parameter. If the inertial navigation calculation stops following the GPS, then the vehicle code can request EKF2 to attempt to resolve the issue, either by performing a yaw reset if enabled by this parameter by switching to another EKF2 instance.",DisplayName:"Bitmask of which EKF-GSF yaw estimators are used",RebootRequired:"True",User:"Advanced"},EK2_GYRO_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to gyro measurement errors excluding bias. Increasing it makes the flter trust the gyro measurements less and other measurements more.",DisplayName:"Rate gyro noise (rad/s)",Increment:"0.0001",Range:{high:"0.1",low:"0.0001"},Units:"rad/s",User:"Advanced"},EK2_HGT_DELAY:{Description:"This is the number of msec that the Height measurements lag behind the inertial measurements.",DisplayName:"Height measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_HGT_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the height measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Height measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_HRT_FILT:{Description:"Specifies the crossover frequency of the complementary filter used to calculate the output predictor height rate derivative.",DisplayName:"Height rate filter crossover frequency",Range:{high:"30.0",low:"0.1"},Units:"Hz"},EK2_IMU_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU"},Description:"1 byte bitmap of IMUs to use in EKF2. A separate instance of EKF2 will be started for each IMU selected. Set to 1 to use the first IMU only (default), set to 2 to use the second IMU only, set to 3 to use the first and second IMU. Additional IMU's can be used up to a maximum of 6 if memory and processing resources permit. There may be insufficient memory and processing resources to run multiple instances. If this occurs EKF2 will fail to start.",DisplayName:"Bitmask of active IMUs",RebootRequired:"True",User:"Advanced"},EK2_MAGB_P_NSE:{Description:"This state process noise controls the growth of body magnetic field state error estimates. Increasing it makes magnetometer bias error estimation faster and noisier.",DisplayName:"Body magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK2_MAGE_P_NSE:{Description:"This state process noise controls the growth of earth magnetic field state error estimates. Increasing it makes earth magnetic field estimation faster and noisier.",DisplayName:"Earth magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK2_MAG_CAL:{Description:"This determines when the filter will use the 3-axis magnetometer fusion model that estimates both earth and body fixed magnetic field states, when it will use a simpler magnetic heading fusion model that does not use magnetic field states and when it will use an alternative method of yaw determination to the magnetometer. The 3-axis magnetometer fusion is only suitable for use when the external magnetic field environment is stable. EK2_MAG_CAL = 0 uses heading fusion on ground, 3-axis fusion in-flight, and is the default setting for Plane users. EK2_MAG_CAL = 1 uses 3-axis fusion only when manoeuvring. EK2_MAG_CAL = 2 uses heading fusion at all times, is recommended if the external magnetic field is varying and is the default for rovers. EK2_MAG_CAL = 3 uses heading fusion on the ground and 3-axis fusion after the first in-air field and yaw reset has completed, and is the default for copters. EK2_MAG_CAL = 4 uses 3-axis fusion at all times. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK2_MAG_MASK parameter. NOTE: limited operation without a magnetometer or any other yaw sensor is possible by setting all COMPASS_USE, COMPASS_USE2, COMPASS_USE3, etc parameters to 0 with COMPASS_ENABLE set to 1. If this is done, the EK2_GSF_RUN and EK2_GSF_USE masks must be set to the same as EK2_IMU_MASK.",DisplayName:"Magnetometer default fusion mode",User:"Advanced",Values:{0:"When flying",1:"When manoeuvring",2:"Never",3:"After first climb yaw reset",4:"Always"}},EK2_MAG_EF_LIM:{Description:"This limits the difference between the learned earth magnetic field and the earth field from the world magnetic model tables. A value of zero means to disable the use of the WMM tables.",DisplayName:"EarthField error limit",Range:{high:"500",low:"0"},Units:"mGauss",User:"Advanced"},EK2_MAG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Magnetometer measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_MAG_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of EKF cores that will disable magnetic field states and use simple magnetic heading fusion at all times. This parameter enables specified cores to be used as a backup for flight into an environment with high levels of external magnetic interference which may degrade the EKF attitude estimate when using 3-axis magnetometer fusion. NOTE : Use of a different magnetometer fusion algorithm on different cores makes unwanted EKF core switches due to magnetometer errors more likely.",DisplayName:"Bitmask of active EKF cores that will always use heading fusion",RebootRequired:"True",User:"Advanced"},EK2_MAG_M_NSE:{Description:"This is the RMS value of noise in magnetometer measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Magnetometer measurement noise (Gauss)",Increment:"0.01",Range:{high:"0.5",low:"0.01"},Units:"Gauss",User:"Advanced"},EK2_MAX_FLOW:{Description:"This sets the magnitude maximum optical flow rate in rad/sec that will be accepted by the filter",DisplayName:"Maximum valid optical flow rate",Increment:"0.1",Range:{high:"4.0",low:"1.0"},Units:"rad/s",User:"Advanced"},EK2_NOAID_M_NSE:{Description:"This sets the amount of position variation that the EKF allows for when operating without external measurements (eg GPS or optical flow). Increasing this parameter makes the EKF attitude estimate less sensitive to vehicle manoeuvres but more sensitive to IMU errors.",DisplayName:"Non-GPS operation position uncertainty (m)",Range:{high:"50.0",low:"0.5"},Units:"m",User:"Advanced"},EK2_OGN_HGT_MASK:{Bitmask:{0:"Correct when using Baro height",1:"Correct when using range finder height",2:"Apply corrections to local position"},Description:"When a height sensor other than GPS is used as the primary height source by the EKF, the position of the zero height datum is defined by that sensor and its frame of reference. If a GPS height measurement is also available, then the height of the WGS-84 height datum used by the EKF can be corrected so that the height returned by the getLLH() function is compensated for primary height sensor drift and change in datum over time. The first two bit positions control when the height datum will be corrected. Correction is performed using a Bayes filter and only operates when GPS quality permits. The third bit position controls where the corrections to the GPS reference datum are applied. Corrections can be applied to the local vertical position or to the reported EKF origin height (default).",DisplayName:"Bitmask control of EKF reference height correction",RebootRequired:"True",User:"Advanced"},EK2_POSNE_M_NSE:{Description:"This sets the GPS horizontal position observation noise. Increasing it reduces the weighting of GPS horizontal position measurements.",DisplayName:"GPS horizontal position measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_POS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS position measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS position measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_RNG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the range finder innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range finder measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_RNG_M_NSE:{Description:"This is the RMS value of noise in the range finder measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range finder measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_RNG_USE_HGT:{Description:"Range finder can be used as the primary height source when below this percentage of its maximum range (see RNGFND_MAX_CM). This will not work unless Baro or GPS height is selected as the primary height source vis EK2_ALT_SOURCE = 0 or 2 respectively. This feature should not be used for terrain following as it is designed for vertical takeoff and landing with climb above the range finder use height before commencing the mission, and with horizontal position changes below that height being limited to a flat region around the takeoff and landing point.",DisplayName:"Range finder switch height percentage",Increment:"1",Range:{high:"70",low:"-1"},Units:"%",User:"Advanced"},EK2_RNG_USE_SPD:{Description:"The range finder will not be used as the primary height source when the horizontal ground speed is greater than this value.",DisplayName:"Range finder max ground speed",Increment:"0.5",Range:{high:"6.0",low:"2.0"},Units:"m/s",User:"Advanced"},EK2_TAU_OUTPUT:{Description:"Sets the time constant of the output complementary filter/predictor in centi-seconds.",DisplayName:"Output complementary filter time constant (centi-sec)",Increment:"5",Range:{high:"50",low:"10"},Units:"cs",User:"Advanced"},EK2_TERR_GRAD:{Description:"Specifies the maximum gradient of the terrain below the vehicle assumed when it is fusing range finder or optical flow to estimate terrain height.",DisplayName:"Maximum terrain gradient",Increment:"0.01",Range:{high:"0.2",low:"0"},User:"Advanced"},EK2_VELD_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set vertical velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS vertical velocity measurements.",DisplayName:"GPS vertical velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK2_VELNE_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set horizontal velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS horizontal velocity measurements.",DisplayName:"GPS horizontal velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK2_VEL_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS velocity measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS velocity innovation gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_WIND_PSCALE:{Description:"This controls how much the process noise on the wind states is increased when gaining or losing altitude to take into account changes in wind speed and direction with altitude. Increasing this parameter increases how rapidly the wind states adapt when changing altitude, but does make wind velocity estimation noiser.",DisplayName:"Height rate to wind process noise scaler",Increment:"0.1",Range:{high:"1.0",low:"0.0"},User:"Advanced"},EK2_WIND_P_NSE:{Description:"This state process noise controls the growth of wind state error estimates. Increasing it makes wind estimation faster and noisier.",DisplayName:"Wind velocity process noise (m/s^2)",Increment:"0.1",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK2_YAW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer yaw measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Yaw measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_YAW_M_NSE:{Description:"This is the RMS value of noise in yaw measurements from the magnetometer. Increasing it reduces the weighting on these measurements.",DisplayName:"Yaw measurement noise (rad)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},lK={EK3_ABIAS_P_NSE:{Description:"This noise controls the growth of the vertical accelerometer delta velocity bias state error estimate. Increasing it makes accelerometer bias estimation faster and noisier.",DisplayName:"Accelerometer bias stability (m/s^3)",Range:{high:"0.005",low:"0.00001"},Units:"m/s/s/s",User:"Advanced"},EK3_ACC_BIAS_LIM:{Description:"The accelerometer bias state will be limited to +- this value",DisplayName:"Accelerometer bias limit",Increment:"0.1",Range:{high:"2.5",low:"0.5"},Units:"m/s/s",User:"Advanced"},EK3_ACC_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to accelerometer measurement errors excluding bias. Increasing it makes the flter trust the accelerometer measurements less and other measurements more.",DisplayName:"Accelerometer noise (m/s^2)",Increment:"0.01",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK3_AFFINITY:{Bitmask:{0:"EnableGPSAffinity",1:"EnableBaroAffinity",2:"EnableCompassAffinity",3:"EnableAirspeedAffinity"},Description:"These options control the affinity between sensor instances and EKF cores",DisplayName:"EKF3 Sensor Affinity Options",RebootRequired:"True",User:"Advanced"},EK3_ALT_M_NSE:{Description:"This is the RMS value of noise in the altitude measurement. Increasing it reduces the weighting of the baro measurement and will make the filter respond more slowly to baro measurement errors, but will make it more sensitive to GPS and accelerometer errors.",DisplayName:"Altitude measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_BCN_DELAY:{Description:"This is the number of msec that the range beacon measurements lag behind the inertial measurements.",DisplayName:"Range beacon measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_BCN_I_GTE:{Description:"This sets the percentage number of standard deviations applied to the range beacon measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range beacon measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_BCN_M_NSE:{Description:"This is the RMS value of noise in the range beacon measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range beacon measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_BETA_MASK:{Bitmask:{0:"Always",1:"WhenNoYawSensor"},Description:"1 byte bitmap controlling use of sideslip angle fusion for estimation of non wind states during operation of 'fly forward' vehicle types such as fixed wing planes. By assuming that the angle of sideslip is small, the wind velocity state estimates are corrected whenever the EKF is not dead reckoning (e.g. has an independent velocity or position sensor such as GPS). This behaviour is on by default and cannot be disabled. When the EKF is dead reckoning, the wind states are used as a reference, enabling use of the small angle of sideslip assumption to correct non wind velocity states (eg attitude, velocity, position, etc) and improve navigation accuracy. This behaviour is on by default and cannot be disabled. The behaviour controlled by this parameter is the use of the small angle of sideslip assumption to correct non wind velocity states when the EKF is NOT dead reckoning. This is primarily of benefit to reduce the buildup of yaw angle errors during straight and level flight without a yaw sensor (e.g. magnetometer or dual antenna GPS yaw) provided aerobatic flight maneuvers with large sideslip angles are not performed. The 'always' option might be used where the yaw sensor is intentionally not fitted or disabled. The 'WhenNoYawSensor' option might be used if a yaw sensor is fitted, but protection against in-flight failure and continual rejection by the EKF is desired. For vehicles operated within visual range of the operator performing frequent turning maneuvers, setting this parameter is unnecessary.",DisplayName:"Bitmask controlling sidelip angle fusion",RebootRequired:"True",User:"Advanced"},EK3_CHECK_SCALE:{Description:"This scales the thresholds that are used to check GPS accuracy before it is used by the EKF. A value of 100 is the default. Values greater than 100 increase and values less than 100 reduce the maximum GPS error the EKF will accept. A value of 200 will double the allowable GPS error.",DisplayName:"GPS accuracy check scaler (%)",Range:{high:"200",low:"50"},Units:"%",User:"Advanced"},EK3_DRAG_BCOEF_X:{Description:"Ratio of mass to drag coefficient measured along the X body axis. This parameter enables estimation of wind drift for vehicles with bluff bodies and without propulsion forces in the X and Y direction (eg multicopters). The drag produced by this effect scales with speed squared. Set to a postive value > 1.0 to enable. A starting value is the mass in Kg divided by the frontal area. The predicted drag from the rotors is specified separately by the EK3_MCOEF parameter.",DisplayName:"Ballistic coefficient for X axis drag",Range:{high:"1000.0",low:"0.0"},Units:"kg/m/m",User:"Advanced"},EK3_DRAG_BCOEF_Y:{Description:"Ratio of mass to drag coefficient measured along the Y body axis. This parameter enables estimation of wind drift for vehicles with bluff bodies and without propulsion forces in the X and Y direction (eg multicopters). The drag produced by this effect scales with speed squared. Set to a postive value > 1.0 to enable. A starting value is the mass in Kg divided by the side area. The predicted drag from the rotors is specified separately by the EK3_MCOEF parameter.",DisplayName:"Ballistic coefficient for Y axis drag",Range:{high:"1000.0",low:"50.0"},Units:"kg/m/m",User:"Advanced"},EK3_DRAG_MCOEF:{Description:"This parameter is used to predict the drag produced by the rotors when flying a multi-copter, enabling estimation of wind drift. The drag produced by this effect scales with speed not speed squared and is produced because some of the air velocity normal to the rotors axis of rotation is lost when passing through the rotor disc which changes the momentum of the airflow causing drag. For unducted rotors the effect is roughly proportional to the area of the propeller blades when viewed side on and changes with different propellers. It is higher for ducted rotors. For example if flying at 15 m/s at sea level conditions produces a rotor induced drag acceleration of 1.5 m/s/s, then EK3_MCOEF would be set to 0.1 = (1.5/15.0). Set EK3_MCOEF to a postive value to enable wind estimation using this drag effect. To account for the drag produced by the body which scales with speed squared, see documentation for the EK3_BCOEF_X and EK3_BCOEF_Y parameters.",DisplayName:"Momentum coefficient for propeller drag",Increment:"0.01",Range:{high:"1.0",low:"0.0"},Units:"1/s",User:"Advanced"},EK3_DRAG_M_NSE:{Description:"This sets the amount of noise used when fusing X and Y acceleration as an observation that enables esitmation of wind velocity for multi-rotor vehicles. This feature is enabled by the EK3_BCOEF_X and EK3_BCOEF_Y parameters",DisplayName:"Observation noise for drag acceleration",Increment:"0.1",Range:{high:"2.0",low:"0.1"},Units:"m/s/s",User:"Advanced"},EK3_EAS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the airspeed measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Airspeed measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_EAS_M_NSE:{Description:"This is the RMS value of noise in equivalent airspeed measurements used by planes. Increasing it reduces the weighting of airspeed measurements and will make wind speed estimates less noisy and slower to converge. Increasing also increases navigation errors when dead-reckoning without GPS measurements.",DisplayName:"Equivalent airspeed measurement noise (m/s)",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK3_ENABLE:{Description:"This enables EKF3. Enabling EKF3 only makes the maths run, it does not mean it will be used for flight control. To use it for flight control set AHRS_EKF_TYPE=3. A reboot or restart will need to be performed after changing the value of EK3_ENABLE for it to take effect.",DisplayName:"Enable EKF3",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},EK3_ERR_THRESH:{Description:"lanes have to be consistently better than the primary by at least this threshold to reduce their overall relativeCoreError, lowering this makes lane switching more sensitive to smaller error differences",DisplayName:"EKF3 Lane Relative Error Sensitivity Threshold",Increment:"0.05",Range:{high:"1",low:"0.05"},User:"Advanced"},EK3_FLOW_DELAY:{Description:"This is the number of msec that the optical flow measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Optical Flow measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_FLOW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the optical flow innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Optical Flow measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_FLOW_M_NSE:{Description:"This is the RMS value of noise and errors in optical flow measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Optical flow measurement noise (rad/s)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad/s",User:"Advanced"},EK3_FLOW_USE:{Description:"Controls if the optical flow data is fused into the 24-state navigation estimator OR the 1-state terrain height estimator.",DisplayName:"Optical flow use bitmask",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Navigation",2:"Terrain"}},EK3_GBIAS_P_NSE:{Description:"This state process noise controls growth of the gyro delta angle bias state error estimate. Increasing it makes rate gyro bias estimation faster and noisier.",DisplayName:"Rate gyro bias stability (rad/s/s)",Range:{high:"0.001",low:"0.00001"},Units:"rad/s/s",User:"Advanced"},EK3_GLITCH_RAD:{Description:"This controls the maximum radial uncertainty in position between the value predicted by the filter and the value measured by the GPS before the filter position and velocity states are reset to the GPS. Making this value larger allows the filter to ignore larger GPS glitches but also means that non-GPS errors such as IMU and compass can create a larger error in position before the filter is forced back to the GPS position.",DisplayName:"GPS glitch radius gate size (m)",Increment:"5",Range:{high:"100",low:"10"},Units:"m",User:"Advanced"},EK3_GND_EFF_DZ:{Description:"This parameter sets the size of the dead zone that is applied to negative baro height spikes that can occur when takeing off or landing when a vehicle with lift rotors is operating in ground effect ground effect. Set to about 0.5m less than the amount of negative offset in baro height that occurs just prior to takeoff when lift motors are spooling up. Set to 0 if no ground effect is present. ",DisplayName:"Baro height ground effect dead zone",Increment:"0.5",Range:{high:"10.0",low:"0.0"},User:"Advanced"},EK3_GPS_CHECK:{Bitmask:{0:"NSats",1:"HDoP",2:"speed error",3:"position error",4:"yaw error",5:"pos drift",6:"vert speed",7:"horiz speed"},Description:"This is a 1 byte bitmap controlling which GPS preflight checks are performed. Set to 0 to bypass all checks. Set to 255 perform all checks. Set to 3 to check just the number of satellites and HDoP. Set to 31 for the most rigorous checks that will still allow checks to pass when the copter is moving, eg launch from a boat.",DisplayName:"GPS preflight check",User:"Advanced"},EK3_GSF_RST_MAX:{Description:"Sets the maximum number of times the EKF3 will be allowed to reset its yaw to the estimate from the EKF-GSF yaw estimator. No resets will be allowed unless the use of the EKF-GSF yaw estimate is enabled via the EK3_GSF_USE_MASK parameter.",DisplayName:"Maximum number of resets to the EKF-GSF yaw estimate allowed",Increment:"1",Range:{high:"10",low:"1"},RebootRequired:"True",User:"Advanced"},EK3_GSF_RUN_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of which EKF3 instances run an independant EKF-GSF yaw estimator to provide a backup yaw estimate that doesn't rely on magnetometer data. This estimator uses IMU, GPS and, if available, airspeed data. EKF-GSF yaw estimator data for the primary EKF3 instance will be logged as GSF0 and GSF1 messages. Use of the yaw estimate generated by this algorithm is controlled by the EK3_GSF_USE_MASK and EK3_GSF_RST_MAX parameters. To run the EKF-GSF yaw estimator in ride-along and logging only, set EK3_GSF_USE to 0. ",DisplayName:"Bitmask of which EKF-GSF yaw estimators run",RebootRequired:"True",User:"Advanced"},EK3_GSF_USE_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"A bitmask of which EKF3 instances will use the output from the EKF-GSF yaw estimator that has been turned on by the EK3_GSF_RUN_MASK parameter. If the inertial navigation calculation stops following the GPS, then the vehicle code can request EKF3 to attempt to resolve the issue, either by performing a yaw reset if enabled by this parameter by switching to another EKF3 instance.",DisplayName:"Bitmask of which EKF-GSF yaw estimators are used",RebootRequired:"True",User:"Advanced"},EK3_GYRO_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to gyro measurement errors excluding bias. Increasing it makes the flter trust the gyro measurements less and other measurements more.",DisplayName:"Rate gyro noise (rad/s)",Increment:"0.0001",Range:{high:"0.1",low:"0.0001"},Units:"rad/s",User:"Advanced"},EK3_HGT_DELAY:{Description:"This is the number of msec that the Height measurements lag behind the inertial measurements.",DisplayName:"Height measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_HGT_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the height measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Height measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_HRT_FILT:{Description:"Specifies the crossover frequency of the complementary filter used to calculate the output predictor height rate derivative.",DisplayName:"Height rate filter crossover frequency",Range:{high:"30.0",low:"0.1"},Units:"Hz"},EK3_IMU_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU"},Description:"1 byte bitmap of IMUs to use in EKF3. A separate instance of EKF3 will be started for each IMU selected. Set to 1 to use the first IMU only (default), set to 2 to use the second IMU only, set to 3 to use the first and second IMU. Additional IMU's can be used up to a maximum of 6 if memory and processing resources permit. There may be insufficient memory and processing resources to run multiple instances. If this occurs EKF3 will fail to start.",DisplayName:"Bitmask of active IMUs",RebootRequired:"True",User:"Advanced"},EK3_MAGB_P_NSE:{Description:"This state process noise controls the growth of body magnetic field state error estimates. Increasing it makes magnetometer bias error estimation faster and noisier.",DisplayName:"Body magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK3_MAGE_P_NSE:{Description:"This state process noise controls the growth of earth magnetic field state error estimates. Increasing it makes earth magnetic field estimation faster and noisier.",DisplayName:"Earth magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK3_MAG_CAL:{Description:"This determines when the filter will use the 3-axis magnetometer fusion model that estimates both earth and body fixed magnetic field states and when it will use a simpler magnetic heading fusion model that does not use magnetic field states. The 3-axis magnetometer fusion is only suitable for use when the external magnetic field environment is stable. EK3_MAG_CAL = 0 uses heading fusion on ground, 3-axis fusion in-flight, and is the default setting for Plane users. EK3_MAG_CAL = 1 uses 3-axis fusion only when manoeuvring. EK3_MAG_CAL = 2 uses heading fusion at all times, is recommended if the external magnetic field is varying and is the default for rovers. EK3_MAG_CAL = 3 uses heading fusion on the ground and 3-axis fusion after the first in-air field and yaw reset has completed, and is the default for copters. EK3_MAG_CAL = 4 uses 3-axis fusion at all times. EK3_MAG_CAL = 5 uses an external yaw sensor with simple heading fusion. NOTE : Use of simple heading magnetometer fusion makes vehicle compass calibration and alignment errors harder for the EKF to detect which reduces the sensitivity of the Copter EKF failsafe algorithm. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK3_MAG_MASK parameter. EK3_MAG_CAL = 6 uses an external yaw sensor with fallback to compass when the external sensor is not available if we are flying. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK3_MAG_MASK parameter. NOTE: limited operation without a magnetometer or any other yaw sensor is possible by setting all COMPASS_USE, COMPASS_USE2, COMPASS_USE3, etc parameters to 0 and setting COMPASS_ENABLE to 0. If this is done, the EK3_GSF_RUN and EK3_GSF_USE masks must be set to the same as EK3_IMU_MASK. A yaw angle derived from IMU and GPS velocity data using a Gaussian Sum Filter (GSF) will then be used to align the yaw when flight commences and there is sufficient movement.",DisplayName:"Magnetometer default fusion mode",RebootRequired:"True",User:"Advanced",Values:{0:"When flying",1:"When manoeuvring",2:"Never",3:"After first climb yaw reset",4:"Always",5:"Use external yaw sensor (Deprecated in 4.1+ see EK3_SRCn_YAW)",6:"External yaw sensor with compass fallback (Deprecated in 4.1+ see EK3_SRCn_YAW)"}},EK3_MAG_EF_LIM:{Description:"This limits the difference between the learned earth magnetic field and the earth field from the world magnetic model tables. A value of zero means to disable the use of the WMM tables.",DisplayName:"EarthField error limit",Range:{high:"500",low:"0"},Units:"mGauss",User:"Advanced"},EK3_MAG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Magnetometer measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_MAG_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of EKF cores that will disable magnetic field states and use simple magnetic heading fusion at all times. This parameter enables specified cores to be used as a backup for flight into an environment with high levels of external magnetic interference which may degrade the EKF attitude estimate when using 3-axis magnetometer fusion. NOTE : Use of a different magnetometer fusion algorithm on different cores makes unwanted EKF core switches due to magnetometer errors more likely.",DisplayName:"Bitmask of active EKF cores that will always use heading fusion",RebootRequired:"True",User:"Advanced"},EK3_MAG_M_NSE:{Description:"This is the RMS value of noise in magnetometer measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Magnetometer measurement noise (Gauss)",Increment:"0.01",Range:{high:"0.5",low:"0.01"},Units:"Gauss",User:"Advanced"},EK3_MAX_FLOW:{Description:"This sets the magnitude maximum optical flow rate in rad/sec that will be accepted by the filter",DisplayName:"Maximum valid optical flow rate",Increment:"0.1",Range:{high:"4.0",low:"1.0"},Units:"rad/s",User:"Advanced"},EK3_NOAID_M_NSE:{Description:"This sets the amount of position variation that the EKF allows for when operating without external measurements (eg GPS or optical flow). Increasing this parameter makes the EKF attitude estimate less sensitive to vehicle manoeuvres but more sensitive to IMU errors.",DisplayName:"Non-GPS operation position uncertainty (m)",Range:{high:"50.0",low:"0.5"},Units:"m",User:"Advanced"},EK3_OGNM_TEST_SF:{Description:"This parameter is adjust the sensitivity of the on ground not moving test which is used to assist with learning the yaw gyro bias and stopping yaw drift before flight when operating without a yaw sensor. Bigger values allow the detection of a not moving condition with noiser IMU data. Check the XKFM data logged when the vehicle is on ground not moving and adjust the value of OGNM_TEST_SF to be slightly higher than the maximum value of the XKFM.ADR, XKFM.ALR, XKFM.GDR and XKFM.GLR test levels.",DisplayName:"On ground not moving test scale factor",Increment:"0.5",Range:{high:"10.0",low:"1.0"},User:"Advanced"},EK3_OGN_HGT_MASK:{Bitmask:{0:"Correct when using Baro height",1:"Correct when using range finder height",2:"Apply corrections to local position"},Description:"When a height sensor other than GPS is used as the primary height source by the EKF, the position of the zero height datum is defined by that sensor and its frame of reference. If a GPS height measurement is also available, then the height of the WGS-84 height datum used by the EKF can be corrected so that the height returned by the getLLH() function is compensated for primary height sensor drift and change in datum over time. The first two bit positions control when the height datum will be corrected. Correction is performed using a Bayes filter and only operates when GPS quality permits. The third bit position controls where the corrections to the GPS reference datum are applied. Corrections can be applied to the local vertical position or to the reported EKF origin height (default).",DisplayName:"Bitmask control of EKF reference height correction",RebootRequired:"True",User:"Advanced"},EK3_POSNE_M_NSE:{Description:"This sets the GPS horizontal position observation noise. Increasing it reduces the weighting of GPS horizontal position measurements.",DisplayName:"GPS horizontal position measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_POS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS position measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS position measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_PRIMARY:{Description:"The core number (index in IMU mask) that will be used as the primary EKF core on startup. While disarmed the EKF will force the use of this core. A value of 0 corresponds to the first IMU in EK3_IMU_MASK.",DisplayName:"Primary core number",Increment:"1",Range:{high:"2",low:"0"},User:"Advanced"},EK3_RNG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the range finder innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range finder measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_RNG_M_NSE:{Description:"This is the RMS value of noise in the range finder measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range finder measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_RNG_USE_HGT:{Description:"Range finder can be used as the primary height source when below this percentage of its maximum range (see RNGFNDx_MAX_CM) and the primary height source is Baro or GPS (see EK3_SRCx_POSZ). This feature should not be used for terrain following as it is designed for vertical takeoff and landing with climb above the range finder use height before commencing the mission, and with horizontal position changes below that height being limited to a flat region around the takeoff and landing point.",DisplayName:"Range finder switch height percentage",Increment:"1",Range:{high:"70",low:"-1"},Units:"%",User:"Advanced"},EK3_RNG_USE_SPD:{Description:"The range finder will not be used as the primary height source when the horizontal ground speed is greater than this value.",DisplayName:"Range finder max ground speed",Increment:"0.5",Range:{high:"6.0",low:"2.0"},Units:"m/s",User:"Advanced"},EK3_TAU_OUTPUT:{Description:"Sets the time constant of the output complementary filter/predictor in centi-seconds.",DisplayName:"Output complementary filter time constant (centi-sec)",Increment:"5",Range:{high:"50",low:"10"},Units:"cs",User:"Advanced"},EK3_TERR_GRAD:{Description:"Specifies the maximum gradient of the terrain below the vehicle when it is using range finder as a height reference",DisplayName:"Maximum terrain gradient",Increment:"0.01",Range:{high:"0.2",low:"0"},User:"Advanced"},EK3_VELD_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set vertical velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS vertical velocity measurements.",DisplayName:"GPS vertical velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_VELNE_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set horizontal velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS horizontal velocity measurements.",DisplayName:"GPS horizontal velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_VEL_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS velocity measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS velocity innovation gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_VIS_VERR_MAX:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when minimum quality is reported by the sensor. When quality is between max and min, the error will be calculated using linear interpolation between VIS_VERR_MIN and VIS_VERR_MAX.",DisplayName:"Visual odometry maximum velocity error",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK3_VIS_VERR_MIN:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when maximum quality is reported by the sensor. When quality is between max and min, the error will be calculated using linear interpolation between VIS_VERR_MIN and VIS_VERR_MAX.",DisplayName:"Visual odometry minimum velocity error",Increment:"0.05",Range:{high:"0.5",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_WENC_VERR:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when wheel encoder data is being fused.",DisplayName:"Wheel odometry velocity error",Increment:"0.1",Range:{high:"1.0",low:"0.01"},Units:"m/s",User:"Advanced"},EK3_WIND_PSCALE:{Description:"This controls how much the process noise on the wind states is increased when gaining or losing altitude to take into account changes in wind speed and direction with altitude. Increasing this parameter increases how rapidly the wind states adapt when changing altitude, but does make wind velocity estimation noiser.",DisplayName:"Height rate to wind process noise scaler",Increment:"0.1",Range:{high:"2.0",low:"0.0"},User:"Advanced"},EK3_WIND_P_NSE:{Description:"This state process noise controls the growth of wind state error estimates. Increasing it makes wind estimation faster and noisier.",DisplayName:"Wind velocity process noise (m/s^2)",Increment:"0.1",Range:{high:"2.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK3_YAW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer yaw measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Yaw measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_YAW_M_NSE:{Description:"This is the RMS value of noise in yaw measurements from the magnetometer. Increasing it reduces the weighting on these measurements.",DisplayName:"Yaw measurement noise (rad)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},cK={EK3_SRC1_POSXY:{Description:"Position Horizontal Source (Primary)",DisplayName:"Position Horizontal Source (Primary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_POSZ:{Description:"Position Vertical Source",DisplayName:"Position Vertical Source",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_VELXY:{Description:"Velocity Horizontal Source",DisplayName:"Velocity Horizontal Source",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC1_VELZ:{Description:"Velocity Vertical Source",DisplayName:"Velocity Vertical Source",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_YAW:{Description:"Yaw Source",DisplayName:"Yaw Source",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC2_POSXY:{Description:"Position Horizontal Source (Secondary)",DisplayName:"Position Horizontal Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_POSZ:{Description:"Position Vertical Source (Secondary)",DisplayName:"Position Vertical Source (Secondary)",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_VELXY:{Description:"Velocity Horizontal Source (Secondary)",DisplayName:"Velocity Horizontal Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC2_VELZ:{Description:"Velocity Vertical Source (Secondary)",DisplayName:"Velocity Vertical Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_YAW:{Description:"Yaw Source (Secondary)",DisplayName:"Yaw Source (Secondary)",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC3_POSXY:{Description:"Position Horizontal Source (Tertiary)",DisplayName:"Position Horizontal Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_POSZ:{Description:"Position Vertical Source (Tertiary)",DisplayName:"Position Vertical Source (Tertiary)",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_VELXY:{Description:"Velocity Horizontal Source (Tertiary)",DisplayName:"Velocity Horizontal Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC3_VELZ:{Description:"Velocity Vertical Source (Tertiary)",DisplayName:"Velocity Vertical Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_YAW:{Description:"Yaw Source (Tertiary)",DisplayName:"Yaw Source (Tertiary)",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC_OPTIONS:{Bitmask:{0:"FuseAllVelocities"},Description:"EKF Source Options",DisplayName:"EKF Source Options",User:"Advanced"}},dK={FENCE_ACTION:{Description:"What action should be taken when fence is breached",DisplayName:"Fence Action",User:"Standard",Values:{0:"Report Only",1:"RTL or Hold",2:"Hold",3:"SmartRTL or RTL or Hold",4:"SmartRTL or Hold"}},FENCE_ENABLE:{Description:"Allows you to enable (1) or disable (0) the fence functionality",DisplayName:"Fence enable/disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},FENCE_MARGIN:{Description:"Distance that autopilot's should maintain from the fence to avoid a breach",DisplayName:"Fence Margin",Range:{high:"10",low:"1"},Units:"m",User:"Standard"},FENCE_RADIUS:{Description:"Circle fence radius which when breached will cause an RTL",DisplayName:"Circular Fence Radius",Range:{high:"10000",low:"30"},Units:"m",User:"Standard"},FENCE_TOTAL:{Description:"Number of polygon points saved in eeprom (do not update manually)",DisplayName:"Fence polygon point total",Range:{high:"20",low:"1"},User:"Standard"},FENCE_TYPE:{Bitmask:{1:"Circle",2:"Polygon"},Description:"Enabled fence types held as bitmask",DisplayName:"Fence Type",User:"Standard"}},CK={FFT_ATT_REF:{Description:"FFT attenuation level in dB for bandwidth calculation and peak detection. The bandwidth is calculated by comparing peak power output with the attenuated version. The default of 15 has shown to be a good compromise in both simulations and real flight.",DisplayName:"FFT attenuation for bandwidth calculation",Range:{high:"100",low:"0"},User:"Advanced"},FFT_BW_HOVER:{Description:"FFT learned bandwidth at hover for the attenuation frequencies.",DisplayName:"FFT learned bandwidth at hover",Range:{high:"200",low:"0"},User:"Advanced"},FFT_ENABLE:{Description:"Enable Gyro FFT analyser",DisplayName:"Enable",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},FFT_FREQ_HOVER:{Description:"The learned hover noise frequency",DisplayName:"FFT learned hover frequency",Range:{high:"250",low:"0"},User:"Advanced"},FFT_HMNC_FIT:{Description:"FFT harmonic fit frequency threshold percentage at which a signal of the appropriate frequency is determined to be the harmonic of another. Signals that have a harmonic relationship that varies at most by this percentage are considered harmonics of each other for the purpose of selecting the harmonic notch frequency. If a match is found then the lower frequency harmonic is always used as the basis for the dynamic harmonic notch. A value of zero completely disables harmonic matching.",DisplayName:"FFT harmonic fit frequency threshold",Range:{high:"100",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_HMNC_PEAK:{Description:"The FFT harmonic peak target that should be returned by FTN1.PkAvg. The resulting value will be used by the harmonic notch if configured to track the FFT frequency. By default the appropriate peak is auto-detected based on the harmonic fit between peaks and the energy-weighted average frequency on roll on pitch is used. Setting this to 1 will always target the highest energy peak. Setting this to 2 will target the highest energy peak that is lower in frequency than the highest energy peak. Setting this to 3 will target the highest energy peak that is higher in frequency than the highest energy peak. Setting this to 4 will target the highest energy peak on the roll axis only and only the roll frequency will be used (some vehicles have a much more pronounced peak on roll). Setting this to 5 will target the highest energy peak on the pitch axis only and only the pitch frequency will be used (some vehicles have a much more pronounced peak on roll).",DisplayName:"FFT harmonic peak target",User:"Advanced",Values:{0:"Auto",1:"Center Frequency",2:"Lower-Shoulder Frequency",3:"Upper-Shoulder Frequency",4:"Roll-Axis",5:"Pitch-Axis"}},FFT_MAXHZ:{Description:"Upper bound of FFT frequency detection in Hz. On smaller vehicles the maximum motor frequency is likely to be significantly higher than for larger vehicles.",DisplayName:"Maximum Frequency",Range:{high:"495",low:"20"},Units:"Hz",User:"Advanced"},FFT_MINHZ:{Description:"Lower bound of FFT frequency detection in Hz. On larger vehicles the minimum motor frequency is likely to be significantly lower than for smaller vehicles.",DisplayName:"Minimum Frequency",Range:{high:"400",low:"20"},Units:"Hz",User:"Advanced"},FFT_SAMPLE_MODE:{Description:"Sampling mode (and therefore rate). 0: Gyro rate sampling, 1: Fast loop rate sampling, 2: Fast loop rate / 2 sampling, 3: Fast loop rate / 3 sampling. Takes effect on reboot.",DisplayName:"Sample Mode",Range:{high:"4",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_SNR_REF:{Description:"FFT SNR reference threshold in dB at which a signal is determined to be present.",DisplayName:"FFT SNR reference threshold",Range:{high:"100.0",low:"0.0"},User:"Advanced"},FFT_THR_REF:{Description:"FFT learned thrust reference for the hover frequency and FFT minimum frequency.",DisplayName:"FFT learned thrust reference",Range:{high:"0.9",low:"0.01"},User:"Advanced"},FFT_WINDOW_OLAP:{Description:"Percentage of window to be overlapped before another frame is process. Takes effect on reboot. A good default is 50% overlap. Higher overlap results in more processed frames but not necessarily more temporal resolution. Lower overlap results in lost information at the frame edges.",DisplayName:"FFT window overlap",Range:{high:"0.9",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_WINDOW_SIZE:{Description:"Size of window to be used in FFT calculations. Takes effect on reboot. Must be a power of 2 and between 32 and 512. Larger windows give greater frequency resolution but poorer time resolution, consume more CPU time and may not be appropriate for all vehicles. Time and frequency resolution are given by the sample-rate / window-size. Windows of 256 are only really recommended for F7 class boards, windows of 512 or more H7 class.",DisplayName:"FFT window size",Range:{high:"1024",low:"32"},RebootRequired:"True",User:"Advanced"}},mK={FOLL_ALT_TYPE:{Description:"Follow altitude type",DisplayName:"Follow altitude type",User:"Standard",Values:{0:"absolute",1:"relative"}},FOLL_DIST_MAX:{Description:"Follow distance maximum. targets further than this will be ignored",DisplayName:"Follow distance maximum",Range:{high:"1000",low:"1"},Units:"m",User:"Standard"},FOLL_ENABLE:{Description:"Enabled/disable following a target",DisplayName:"Follow enable/disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},FOLL_OFS_TYPE:{Description:"Follow offset type",DisplayName:"Follow offset type",User:"Standard",Values:{0:"North-East-Down",1:"Relative to lead vehicle heading"}},FOLL_OFS_X:{Description:"Follow offsets in meters north/forward. If positive, this vehicle fly ahead or north of lead vehicle. Depends on FOLL_OFS_TYPE",DisplayName:"Follow offsets in meters north/forward",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FOLL_OFS_Y:{Description:"Follow offsets in meters east/right. If positive, this vehicle will fly to the right or east of lead vehicle. Depends on FOLL_OFS_TYPE",DisplayName:"Follow offsets in meters east/right",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FOLL_OFS_Z:{Description:"Follow offsets in meters down. If positive, this vehicle will fly below the lead vehicle",DisplayName:"Follow offsets in meters down",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FOLL_POS_P:{Description:"Follow position error P gain. Converts the difference between desired vertical speed and actual speed into a desired acceleration that is passed to the throttle acceleration controller",DisplayName:"Follow position error P gain",Increment:"0.01",Range:{high:"1.00",low:"0.01"},User:"Standard"},FOLL_SYSID:{Description:"Follow target's mavlink system id",DisplayName:"Follow target's mavlink system id",Range:{high:"255",low:"0"},User:"Standard"},FOLL_YAW_BEHAVE:{Description:"Follow yaw behaviour",DisplayName:"Follow yaw behaviour",User:"Standard",Values:{0:"None",1:"Face Lead Vehicle",2:"Same as Lead vehicle",3:"Direction of Flight"}}},uK={FRSKY_DNLINK1_ID:{Description:"Change the first extra downlink sensor id (SPort only)",DisplayName:"First downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}},FRSKY_DNLINK2_ID:{Description:"Change the second extra downlink sensor id (SPort only)",DisplayName:"Second downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}},FRSKY_DNLINK_ID:{Description:"Change the default downlink sensor id (SPort only)",DisplayName:"Default downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26",27:"27","-1":"Disable"}},FRSKY_OPTIONS:{Bitmask:{0:"EnableAirspeedAndGroundspeed"},Description:"A bitmask to set some FRSky Telemetry specific options",DisplayName:"FRSky Telemetry Options",User:"Standard"},FRSKY_UPLINK_ID:{Description:"Change the uplink sensor id (SPort only)",DisplayName:"Uplink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}}},hK={GEN_TYPE:{Description:"Generator type",DisplayName:"Generator type",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"IE 650w 800w Fuel Cell",2:"IE 2.4kW Fuel Cell",3:"Richenpower"}}},pK={GPS1_CAN_OVRIDE:{Description:"GPS Node id for first GPS. If 0 the gps will be automatically selected on first come basis.",DisplayName:"First DroneCAN GPS NODE ID",User:"Advanced"},GPS2_CAN_OVRIDE:{Description:"GPS Node id for second GPS. If 0 the gps will be automatically selected on first come basis.",DisplayName:"Second DroneCAN GPS NODE ID",User:"Advanced"},GPS_AUTO_CONFIG:{Description:"Controls if the autopilot should automatically configure the GPS based on the parameters and default settings",DisplayName:"Automatic GPS configuration",User:"Advanced",Values:{0:"Disables automatic configuration",1:"Enable automatic configuration for Serial GPSes only",2:"Enable automatic configuration for DroneCAN as well"}},GPS_AUTO_SWITCH:{Description:"Automatic switchover to GPS reporting best lock, 1:UseBest selects the GPS with highest status, if both are equal the GPS with highest satellite count is used 4:Use primary if 3D fix or better, will revert to 'UseBest' behaviour if 3D fix is lost on primary",DisplayName:"Automatic Switchover Setting",User:"Advanced",Values:{0:"Use primary",1:"UseBest",2:"Blend",4:"Use primary if 3D fix or better"}},GPS_BLEND_MASK:{Bitmask:{0:"Horiz Pos",1:"Vert Pos",2:"Speed"},Description:"Determines which of the accuracy measures Horizontal position, Vertical Position and Speed are used to calculate the weighting on each GPS receiver when soft switching has been selected by setting GPS_AUTO_SWITCH to 2(Blend)",DisplayName:"Multi GPS Blending Mask",User:"Advanced"},GPS_BLEND_TC:{Description:"Controls the slowest time constant applied to the calculation of GPS position and height offsets used to adjust different GPS receivers for steady state position differences.",DisplayName:"Blending time constant",Range:{high:"30.0",low:"5.0"},Units:"s",User:"Advanced"},GPS_CAN_NODEID1:{Description:"GPS Node id for discovered first.",DisplayName:"GPS Node ID 1",ReadOnly:"True",User:"Advanced"},GPS_CAN_NODEID2:{Description:"GPS Node id for discovered second.",DisplayName:"GPS Node ID 2",ReadOnly:"True",User:"Advanced"},GPS_COM_PORT:{Description:"The physical COM port on the connected device, currently only applies to SBF GPS",DisplayName:"GPS physical COM port",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},GPS_COM_PORT2:{Description:"The physical COM port on the connected device, currently only applies to SBF GPS",DisplayName:"GPS physical COM port",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},GPS_DELAY_MS:{Description:"Controls the amount of GPS measurement delay that the autopilot compensates for. Set to zero to use the default delay for the detected GPS type.",DisplayName:"GPS delay in milliseconds",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},GPS_DELAY_MS2:{Description:"Controls the amount of GPS measurement delay that the autopilot compensates for. Set to zero to use the default delay for the detected GPS type.",DisplayName:"GPS 2 delay in milliseconds",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},GPS_DRV_OPTIONS:{Bitmask:{0:"Use UART2 for moving baseline on ublox",1:"Use base station for GPS yaw on SBF",2:"Use baudrate 115200",3:"Use dedicated CAN port b/w GPSes for moving baseline"},Description:"Additional backend specific options",DisplayName:"driver options",User:"Advanced"},GPS_GNSS_MODE:{Bitmask:{0:"GPS",1:"SBAS",2:"Galileo",3:"Beidou",4:"IMES",5:"QZSS",6:"GLONASS"},Description:"Bitmask for what GNSS system to use on the first GPS (all unchecked or zero to leave GPS as configured)",DisplayName:"GNSS system configuration",User:"Advanced"},GPS_GNSS_MODE2:{Bitmask:{0:"GPS",1:"SBAS",2:"Galileo",3:"Beidou",4:"IMES",5:"QZSS",6:"GLONASS"},Description:"Bitmask for what GNSS system to use on the second GPS (all unchecked or zero to leave GPS as configured)",DisplayName:"GNSS system configuration",User:"Advanced"},GPS_INJECT_TO:{Description:"The GGS can send raw serial packets to inject data to multiple GPSes.",DisplayName:"Destination for GPS_INJECT_DATA MAVLink packets",User:"Advanced",Values:{0:"send to first GPS",1:"send to 2nd GPS",127:"send to all"}},GPS_MIN_DGPS:{Description:"Sets the minimum type of differential GPS corrections required before allowing to switch into DGPS mode.",DisplayName:"Minimum Lock Type Accepted for DGPS",RebootRequired:"True",User:"Advanced",Values:{0:"Any",50:"FloatRTK",100:"IntegerRTK"}},GPS_MIN_ELEV:{Description:"This sets the minimum elevation of satellites above the horizon for them to be used for navigation. Setting this to -100 leaves the minimum elevation set to the GPS modules default.",DisplayName:"Minimum elevation",Range:{high:"90",low:"-100"},Units:"deg",User:"Advanced"},GPS_NAVFILTER:{Description:"Navigation filter engine setting",DisplayName:"Navigation filter setting",User:"Advanced",Values:{0:"Portable",2:"Stationary",3:"Pedestrian",4:"Automotive",5:"Sea",6:"Airborne1G",7:"Airborne2G",8:"Airborne4G"}},GPS_POS1_X:{Description:"X position of the first GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS1_Y:{Description:"Y position of the first GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS1_Z:{Description:"Z position of the first GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_X:{Description:"X position of the second GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_Y:{Description:"Y position of the second GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_Z:{Description:"Z position of the second GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_PRIMARY:{Description:"This GPS will be used when GPS_AUTO_SWITCH is 0 and used preferentially with GPS_AUTO_SWITCH = 4.",DisplayName:"Primary GPS",Increment:"1",User:"Advanced",Values:{0:"FirstGPS",1:"SecondGPS"}},GPS_RATE_MS:{Description:"Controls how often the GPS should provide a position update. Lowering below 5Hz(default) is not allowed. Raising the rate above 5Hz usually provides little benefit and for some GPS (eg Ublox M9N) can severely impact performance.",DisplayName:"GPS update rate in milliseconds",Range:{high:"200",low:"50"},Units:"ms",User:"Advanced",Values:{100:"10Hz",125:"8Hz",200:"5Hz"}},GPS_RATE_MS2:{Description:"Controls how often the GPS should provide a position update. Lowering below 5Hz(default) is not allowed. Raising the rate above 5Hz usually provides little benefit and for some GPS (eg Ublox M9N) can severely impact performance.",DisplayName:"GPS 2 update rate in milliseconds",Range:{high:"200",low:"50"},Units:"ms",User:"Advanced",Values:{100:"10Hz",125:"8Hz",200:"5Hz"}},GPS_RAW_DATA:{Description:"Handles logging raw data; on uBlox chips that support raw data this will log RXM messages into logger; on Septentrio this will log on the equipment's SD card and when set to 2, the autopilot will try to stop logging after disarming and restart after arming",DisplayName:"Raw data logging",RebootRequired:"True",User:"Advanced",Values:{0:"Ignore",1:"Always log",2:"Stop logging when disarmed (SBF only)",5:"Only log every five samples (uBlox only)"}},GPS_SAVE_CFG:{Description:"Determines whether the configuration for this GPS should be written to non-volatile memory on the GPS. Currently working for UBlox 6 series and above.",DisplayName:"Save GPS configuration",User:"Advanced",Values:{0:"Do not save config",1:"Save config",2:"Save only when needed"}},GPS_SBAS_MODE:{Description:"This sets the SBAS (satellite based augmentation system) mode if available on this GPS. If set to 2 then the SBAS mode is not changed in the GPS. Otherwise the GPS will be reconfigured to enable/disable SBAS. Disabling SBAS may be worthwhile in some parts of the world where an SBAS signal is available but the baseline is too long to be useful.",DisplayName:"SBAS Mode",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"NoChange"}},GPS_SBP_LOGMASK:{Description:"Masked with the SBP msg_type field to determine whether SBR1/SBR2 data is logged",DisplayName:"Swift Binary Protocol Logging Mask",User:"Advanced",Values:{0:"None (0x0000)","-1":"All (0xFFFF)","-256":"External only (0xFF00)"}},GPS_TYPE:{Description:"GPS type of 1st GPS",DisplayName:"1st GPS type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"AUTO",2:"uBlox",5:"NMEA",6:"SiRF",7:"HIL",8:"SwiftNav",9:"DroneCAN",10:"SBF",11:"GSOF",13:"ERB",14:"MAV",15:"NOVA",16:"HemisphereNMEA",17:"uBlox-MovingBaseline-Base",18:"uBlox-MovingBaseline-Rover",19:"MSP",20:"AllyStar",21:"ExternalAHRS",22:"DroneCAN-MovingBaseline-Base",23:"DroneCAN-MovingBaseline-Rover"}},GPS_TYPE2:{Description:"GPS type of 2nd GPS",DisplayName:"2nd GPS type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"AUTO",2:"uBlox",5:"NMEA",6:"SiRF",7:"HIL",8:"SwiftNav",9:"DroneCAN",10:"SBF",11:"GSOF",13:"ERB",14:"MAV",15:"NOVA",16:"HemisphereNMEA",17:"uBlox-MovingBaseline-Base",18:"uBlox-MovingBaseline-Rover",19:"MSP",20:"AllyStar",21:"ExternalAHRS",22:"DroneCAN-MovingBaseline-Base",23:"DroneCAN-MovingBaseline-Rover"}}},fK={GPS_MB1_OFS_X:{Description:"X position of the base GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_OFS_Y:{Description:"Y position of the base GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Y position offset ",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_OFS_Z:{Description:"Z position of the base GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_TYPE:{Description:"Controls the type of moving base used if using moving base.",DisplayName:"Moving base type",RebootRequired:"True",User:"Advanced",Values:{0:"Relative to alternate GPS instance",1:"RelativeToCustomBase"}}},VK={GPS_MB2_OFS_X:{Description:"X position of the base GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_OFS_Y:{Description:"Y position of the base GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Y position offset ",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_OFS_Z:{Description:"Z position of the base GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_TYPE:{Description:"Controls the type of moving base used if using moving base.",DisplayName:"Moving base type",RebootRequired:"True",User:"Advanced",Values:{0:"Relative to alternate GPS instance",1:"RelativeToCustomBase"}}},LK={GRIP_CAN_ID:{Description:"Refer to https://docs.zubax.com/opengrab_epm_v3#UAVCAN_interface",DisplayName:"EPM UAVCAN Hardpoint ID",Range:{high:"255",low:"0"},User:"Standard"},GRIP_ENABLE:{Description:"Gripper enable/disable",DisplayName:"Gripper Enable/Disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},GRIP_GRAB:{Description:"PWM value in microseconds sent to Gripper to initiate grabbing the cargo",DisplayName:"Gripper Grab PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_NEUTRAL:{Description:"PWM value in microseconds sent to grabber when not grabbing or releasing",DisplayName:"Neutral PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_REGRAB:{Description:"Time in seconds that gripper will regrab the cargo to ensure grip has not weakened; 0 to disable",DisplayName:"Gripper Regrab interval",Range:{high:"255",low:"0"},Units:"s",User:"Advanced"},GRIP_RELEASE:{Description:"PWM value in microseconds sent to Gripper to release the cargo",DisplayName:"Gripper Release PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_TYPE:{Description:"Gripper enable/disable",DisplayName:"Gripper Type",User:"Standard",Values:{0:"None",1:"Servo",2:"EPM"}}},HK={INS_ACC1_CALTEMP:{Calibration:"1",Description:"Temperature that the 1st accelerometer was calibrated at",DisplayName:"Calibration temperature for 1st accelerometer",Units:"degC",User:"Advanced"},INS_ACC2OFFS_X:{Calibration:"1",Description:"Accelerometer2 offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2OFFS_Y:{Calibration:"1",Description:"Accelerometer2 offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2OFFS_Z:{Calibration:"1",Description:"Accelerometer2 offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2SCAL_X:{Calibration:"1",Description:"Accelerometer2 scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2SCAL_Y:{Calibration:"1",Description:"Accelerometer2 scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2SCAL_Z:{Calibration:"1",Description:"Accelerometer2 scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2_CALTEMP:{Calibration:"1",Description:"Temperature that the 2nd accelerometer was calibrated at",DisplayName:"Calibration temperature for 2nd accelerometer",Units:"degC",User:"Advanced"},INS_ACC2_ID:{Description:"Accelerometer2 sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer2 ID",ReadOnly:"True",User:"Advanced"},INS_ACC3OFFS_X:{Calibration:"1",Description:"Accelerometer3 offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3OFFS_Y:{Calibration:"1",Description:"Accelerometer3 offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3OFFS_Z:{Calibration:"1",Description:"Accelerometer3 offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3SCAL_X:{Calibration:"1",Description:"Accelerometer3 scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3SCAL_Y:{Calibration:"1",Description:"Accelerometer3 scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3SCAL_Z:{Calibration:"1",Description:"Accelerometer3 scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3_CALTEMP:{Calibration:"1",Description:"Temperature that the 3rd accelerometer was calibrated at",DisplayName:"Calibration temperature for 3rd accelerometer",Units:"degC",User:"Advanced"},INS_ACC3_ID:{Description:"Accelerometer3 sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer3 ID",ReadOnly:"True",User:"Advanced"},INS_ACCEL_FILTER:{Description:"Filter cutoff frequency for accelerometers. This can be set to a lower value to try to cope with very high vibration levels in aircraft. A value of zero means no filtering (not recommended!)",DisplayName:"Accel filter cutoff frequency",Range:{high:"256",low:"0"},Units:"Hz",User:"Advanced"},INS_ACCOFFS_X:{Calibration:"1",Description:"Accelerometer offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCOFFS_Y:{Calibration:"1",Description:"Accelerometer offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCOFFS_Z:{Calibration:"1",Description:"Accelerometer offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCSCAL_X:{Calibration:"1",Description:"Accelerometer scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACCSCAL_Y:{Calibration:"1",Description:"Accelerometer scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACCSCAL_Z:{Calibration:"1",Description:"Accelerometer scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC_BODYFIX:{Description:"The body-fixed accelerometer to be used for trim calculation",DisplayName:"Body-fixed accelerometer",User:"Advanced",Values:{1:"IMU 1",2:"IMU 2",3:"IMU 3"}},INS_ACC_ID:{Description:"Accelerometer sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer ID",ReadOnly:"True",User:"Advanced"},INS_ENABLE_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU",6:"SeventhIMU"},Description:"Bitmask of IMUs to enable. It can be used to prevent startup of specific detected IMUs",DisplayName:"IMU enable mask",User:"Advanced"},INS_FAST_SAMPLE:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU"},Description:"Mask of IMUs to enable fast sampling on, if available",DisplayName:"Fast sampling mask",User:"Advanced"},INS_GYR1_CALTEMP:{Calibration:"1",Description:"Temperature that the 1st gyroscope was calibrated at",DisplayName:"Calibration temperature for 1st gyroscope",Units:"degC",User:"Advanced"},INS_GYR2OFFS_X:{Calibration:"1",Description:"Gyro2 sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYR2OFFS_Y:{Calibration:"1",Description:"Gyro2 sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYR2OFFS_Z:{Calibration:"1",Description:"Gyro2 sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYR2_CALTEMP:{Calibration:"1",Description:"Temperature that the 2nd gyroscope was calibrated at",DisplayName:"Calibration temperature for 2nd gyroscope",Units:"degC",User:"Advanced"},INS_GYR2_ID:{Description:"Gyro2 sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro2 ID",ReadOnly:"True",User:"Advanced"},INS_GYR3OFFS_X:{Calibration:"1",Description:"Gyro3 sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYR3OFFS_Y:{Calibration:"1",Description:"Gyro3 sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYR3OFFS_Z:{Calibration:"1",Description:"Gyro3 sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYR3_CALTEMP:{Calibration:"1",Description:"Temperature that the 3rd gyroscope was calibrated at",DisplayName:"Calibration temperature for 3rd gyroscope",Units:"degC",User:"Advanced"},INS_GYR3_ID:{Description:"Gyro3 sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro3 ID",ReadOnly:"True",User:"Advanced"},INS_GYROFFS_X:{Calibration:"1",Description:"Gyro sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYROFFS_Y:{Calibration:"1",Description:"Gyro sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYROFFS_Z:{Calibration:"1",Description:"Gyro sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYRO_FILTER:{Description:"Filter cutoff frequency for gyroscopes. This can be set to a lower value to try to cope with very high vibration levels in aircraft. A value of zero means no filtering (not recommended!)",DisplayName:"Gyro filter cutoff frequency",Range:{high:"256",low:"0"},Units:"Hz",User:"Advanced"},INS_GYRO_RATE:{Description:"Gyro rate for IMUs with fast sampling enabled. The gyro rate is the sample rate at which the IMU filters operate and needs to be at least double the maximum filter frequency. If the sensor does not support the selected rate the next highest supported rate will be used. For IMUs which do not support fast sampling this setting is ignored and the default gyro rate of 1Khz is used.",DisplayName:"Gyro rate for IMUs with Fast Sampling enabled",RebootRequired:"True",User:"Advanced",Values:{0:"1kHz",1:"2kHz",2:"4kHz",3:"8kHz"}},INS_GYR_CAL:{Description:"Conrols when automatic gyro calibration is performed",DisplayName:"Gyro Calibration scheme",User:"Advanced",Values:{0:"Never",1:"Start-up only"}},INS_GYR_ID:{Description:"Gyro sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro ID",ReadOnly:"True",User:"Advanced"},INS_POS1_X:{Description:"X position of the first IMU Accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS1_Y:{Description:"Y position of the first IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS1_Z:{Description:"Z position of the first IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_X:{Description:"X position of the second IMU accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_Y:{Description:"Y position of the second IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_Z:{Description:"Z position of the second IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS3_X:{Description:"X position of the third IMU accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Range:{high:"10",low:"-10"},Units:"m",User:"Advanced"},INS_POS3_Y:{Description:"Y position of the third IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS3_Z:{Description:"Z position of the third IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_STILL_THRESH:{Description:"Threshold to tolerate vibration to determine if vehicle is motionless. This depends on the frame type and if there is a constant vibration due to motors before launch or after landing. Total motionless is about 0.05. Suggested values: Planes/rover use 0.1, multirotors use 1, tradHeli uses 5",DisplayName:"Stillness threshold for detecting if we are moving",Range:{high:"50",low:"0.05"},User:"Advanced"},INS_TCAL_OPTIONS:{Bitmask:{0:"PersistParams"},Description:"This enables optional temperature calibration features. Setting PersistParams will save the accelerometer and temperature calibration parameters in the bootloader sector on the next update of the bootloader.",DisplayName:"Options for temperature calibration",User:"Advanced"},INS_TRIM_OPTION:{Description:"Specifies how the accel cal routine determines the trims",DisplayName:"Accel cal trim option",User:"Advanced",Values:{0:"Don't adjust the trims",1:"Assume first orientation was level",2:"Assume ACC_BODYFIX is perfectly aligned to the vehicle"}},INS_USE:{Description:"Use first IMU for attitude, velocity and position estimates",DisplayName:"Use first IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_USE2:{Description:"Use second IMU for attitude, velocity and position estimates",DisplayName:"Use second IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_USE3:{Description:"Use third IMU for attitude, velocity and position estimates",DisplayName:"Use third IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}}},MK={INS_HNTC2_ATT:{Description:"Harmonic Notch Filter attenuation in dB. Values greater than 40dB will typically produce a hard notch rather than a modest attenuation of motor noise.",DisplayName:"Harmonic Notch Filter attenuation",Range:{high:"50",low:"5"},Units:"dB",User:"Advanced"},INS_HNTC2_BW:{Description:"Harmonic Notch Filter bandwidth in Hz. This is typically set to half the base frequency. The ratio of base frequency to bandwidth determines the notch quality factor and is fixed across harmonics.",DisplayName:"Harmonic Notch Filter bandwidth",Range:{high:"250",low:"5"},Units:"Hz",User:"Advanced"},INS_HNTC2_ENABLE:{Description:"Harmonic Notch Filter enable",DisplayName:"Harmonic Notch Filter enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_HNTC2_FREQ:{Description:"Harmonic Notch Filter base center frequency in Hz. This should be set at most half the backend gyro rate (which is typically 1Khz). For helicopters using RPM sensor to dynamically set the notch frequency, use this parameter to provide a lower limit to the dynamic notch filter. Recommend setting it to half the operating rotor speed in Hz.",DisplayName:"Harmonic Notch Filter base frequency",Range:{high:"495",low:"10"},Units:"Hz",User:"Advanced"},INS_HNTC2_HMNCS:{Bitmask:{0:"1st harmonic",1:"2nd harmonic",2:"3rd harmonic",3:"4th hamronic",4:"5th harmonic",5:"6th harmonic",6:"7th harmonic",7:"8th harmonic"},Description:"Bitmask of harmonic frequencies to apply Harmonic Notch Filter to. This option takes effect on the next reboot. A value of 0 disables this filter. The first harmonic refers to the base frequency.",DisplayName:"Harmonic Notch Filter harmonics",RebootRequired:"True",User:"Advanced"},INS_HNTC2_MODE:{Description:"Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based updates should only be used with multicopters.",DisplayName:"Harmonic Notch Filter dynamic frequency tracking mode",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Disabled",1:"Throttle",2:"RPM Sensor",3:"ESC Telemetry",4:"Dynamic FFT",5:"Second RPM Sensor"}},INS_HNTC2_OPTS:{Bitmask:{0:"Double notch",1:"Dynamic harmonic",2:"Update at loop rate"},Description:"Harmonic Notch Filter options. Double-notches can provide deeper attenuation across a wider bandwidth than single notches and are suitable for larger aircraft. Dynamic harmonics attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz.",DisplayName:"Harmonic Notch Filter options",RebootRequired:"True",User:"Advanced"},INS_HNTC2_REF:{Description:"A reference value of zero disables dynamic updates on the Harmonic Notch Filter and a positive value enables dynamic updates on the Harmonic Notch Filter. For throttle-based scaling, this parameter is the reference value associated with the specified frequency to facilitate frequency scaling of the Harmonic Notch Filter. For RPM and ESC telemetry based tracking, this parameter is set to 1 to enable the Harmonic Notch Filter using the RPM sensor or ESC telemetry set to measure rotor speed. The sensor data is converted to Hz automatically for use in the Harmonic Notch Filter. This reference value may also be used to scale the sensor data, if required. For example, rpm sensor data is required to measure heli motor RPM. Therefore the reference value can be used to scale the RPM sensor to the rotor RPM.",DisplayName:"Harmonic Notch Filter reference value",Range:{high:"1.0",low:"0.0"},RebootRequired:"True",User:"Advanced"}},gK={INS_HNTCH_ATT:{Description:"Harmonic Notch Filter attenuation in dB. Values greater than 40dB will typically produce a hard notch rather than a modest attenuation of motor noise.",DisplayName:"Harmonic Notch Filter attenuation",Range:{high:"50",low:"5"},Units:"dB",User:"Advanced"},INS_HNTCH_BW:{Description:"Harmonic Notch Filter bandwidth in Hz. This is typically set to half the base frequency. The ratio of base frequency to bandwidth determines the notch quality factor and is fixed across harmonics.",DisplayName:"Harmonic Notch Filter bandwidth",Range:{high:"250",low:"5"},Units:"Hz",User:"Advanced"},INS_HNTCH_ENABLE:{Description:"Harmonic Notch Filter enable",DisplayName:"Harmonic Notch Filter enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_HNTCH_FREQ:{Description:"Harmonic Notch Filter base center frequency in Hz. This should be set at most half the backend gyro rate (which is typically 1Khz). For helicopters using RPM sensor to dynamically set the notch frequency, use this parameter to provide a lower limit to the dynamic notch filter. Recommend setting it to half the operating rotor speed in Hz.",DisplayName:"Harmonic Notch Filter base frequency",Range:{high:"495",low:"10"},Units:"Hz",User:"Advanced"},INS_HNTCH_HMNCS:{Bitmask:{0:"1st harmonic",1:"2nd harmonic",2:"3rd harmonic",3:"4th hamronic",4:"5th harmonic",5:"6th harmonic",6:"7th harmonic",7:"8th harmonic"},Description:"Bitmask of harmonic frequencies to apply Harmonic Notch Filter to. This option takes effect on the next reboot. A value of 0 disables this filter. The first harmonic refers to the base frequency.",DisplayName:"Harmonic Notch Filter harmonics",RebootRequired:"True",User:"Advanced"},INS_HNTCH_MODE:{Description:"Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based updates should only be used with multicopters.",DisplayName:"Harmonic Notch Filter dynamic frequency tracking mode",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Disabled",1:"Throttle",2:"RPM Sensor",3:"ESC Telemetry",4:"Dynamic FFT",5:"Second RPM Sensor"}},INS_HNTCH_OPTS:{Bitmask:{0:"Double notch",1:"Dynamic harmonic",2:"Update at loop rate"},Description:"Harmonic Notch Filter options. Double-notches can provide deeper attenuation across a wider bandwidth than single notches and are suitable for larger aircraft. Dynamic harmonics attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz.",DisplayName:"Harmonic Notch Filter options",RebootRequired:"True",User:"Advanced"},INS_HNTCH_REF:{Description:"A reference value of zero disables dynamic updates on the Harmonic Notch Filter and a positive value enables dynamic updates on the Harmonic Notch Filter. For throttle-based scaling, this parameter is the reference value associated with the specified frequency to facilitate frequency scaling of the Harmonic Notch Filter. For RPM and ESC telemetry based tracking, this parameter is set to 1 to enable the Harmonic Notch Filter using the RPM sensor or ESC telemetry set to measure rotor speed. The sensor data is converted to Hz automatically for use in the Harmonic Notch Filter. This reference value may also be used to scale the sensor data, if required. For example, rpm sensor data is required to measure heli motor RPM. Therefore the reference value can be used to scale the RPM sensor to the rotor RPM.",DisplayName:"Harmonic Notch Filter reference value",Range:{high:"1.0",low:"0.0"},RebootRequired:"True",User:"Advanced"}},AK={INS_LOG_BAT_CNT:{Description:"Number of samples to take when logging streams of IMU sensor readings. Will be rounded down to a multiple of 32. This option takes effect on the next reboot.",DisplayName:"sample count per batch",Increment:"32",RebootRequired:"True",User:"Advanced"},INS_LOG_BAT_LGCT:{Description:"Number of samples to push to count every INS_LOG_BAT_LGIN",DisplayName:"logging count",Increment:"1"},INS_LOG_BAT_LGIN:{Description:"Interval between pushing samples to the AP_Logger log",DisplayName:"logging interval",Increment:"10",Units:"ms"},INS_LOG_BAT_MASK:{Bitmask:{0:"IMU1",1:"IMU2",2:"IMU3"},Description:"Bitmap of which IMUs to log batch data for. This option takes effect on the next reboot.",DisplayName:"Sensor Bitmask",RebootRequired:"True",User:"Advanced"},INS_LOG_BAT_OPT:{Bitmask:{0:"Sensor-Rate Logging (sample at full sensor rate seen by AP)",1:"Sample post-filtering"},Description:"Options for the BatchSampler. Post-filter and sensor-rate logging cannot be used at the same time.",DisplayName:"Batch Logging Options Mask",User:"Advanced"}},vK={INS_TCAL1_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL1_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL1_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},_K={INS_TCAL2_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL2_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL2_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},SK={INS_TCAL3_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL3_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL3_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},DK={LOG_BACKEND_TYPE:{Bitmask:{0:"File",1:"MAVLink",2:"Block"},Description:"Bitmap of what Logger backend types to enable. Block-based logging is available on SITL and boards with dataflash chips. Multiple backends can be selected.",DisplayName:"AP_Logger Backend Storage type",User:"Standard"},LOG_BLK_RATEMAX:{Description:"This sets the maximum rate that streaming log messages will be logged to the mavlink backend. A value of zero means that rate limiting is disabled.",DisplayName:"Maximum logging rate for block backend",Range:{high:"1000",low:"0"},Units:"Hz",User:"Standard"},LOG_DISARMED:{Description:"If LOG_DISARMED is set to 1 then logging will be enabled while disarmed. This can make for very large logfiles but can help a lot when tracking down startup issues",DisplayName:"Enable logging while disarmed",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},LOG_FILE_BUFSIZE:{Description:'The File and Block backends use a buffer to store data before writing to the block device. Raising this value may reduce "gaps" in your SD card logging. This buffer size may be reduced depending on available memory. PixHawk requires at least 4 kilobytes. Maximum value available here is 64 kilobytes.',DisplayName:"Maximum AP_Logger File and Block Backend buffer size (in kilobytes)",User:"Standard"},LOG_FILE_DSRMROT:{Description:"When set, the current log file is closed when the vehicle is disarmed. If LOG_DISARMED is set then a fresh log will be opened. Applies to the File and Block logging backends.",DisplayName:"Stop logging to current file on disarm",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},LOG_FILE_MB_FREE:{Description:"Set this such that the free space is larger than your largest typical flight log",DisplayName:"Old logs on the SD card will be deleted to maintain this amount of free space",Range:{high:"1000",low:"10"},Units:"MB",User:"Standard"},LOG_FILE_RATEMAX:{Description:"This sets the maximum rate that streaming log messages will be logged to the file backend. A value of zero means that rate limiting is disabled.",DisplayName:"Maximum logging rate for file backend",Range:{high:"1000",low:"0"},Units:"Hz",User:"Standard"},LOG_FILE_TIMEOUT:{Description:"This controls the amount of time before failing writes to a log file cause the file to be closed and logging stopped.",DisplayName:"Timeout before giving up on file writes",Units:"s",User:"Standard"},LOG_MAV_BUFSIZE:{Description:"Maximum amount of memory to allocate to AP_Logger-over-mavlink",DisplayName:"Maximum AP_Logger MAVLink Backend buffer size",Units:"kB",User:"Advanced"},LOG_MAV_RATEMAX:{Description:"This sets the maximum rate that streaming log messages will be logged to the mavlink backend. A value of zero means that rate limiting is disabled.",DisplayName:"Maximum logging rate for mavlink backend",Range:{high:"1000",low:"0"},Units:"Hz",User:"Standard"},LOG_REPLAY:{Description:"If LOG_REPLAY is set to 1 then the EKF2 state estimator will log detailed information needed for diagnosing problems with the Kalman filter. It is suggested that you also raise LOG_FILE_BUFSIZE to give more buffer space for logging and use a high quality microSD card to ensure no sensor data is lost",DisplayName:"Enable logging of information needed for Replay",User:"Standard",Values:{0:"Disabled",1:"Enabled"}}},yK={MIS_OPTIONS:{Bitmask:{0:"Clear Mission on reboot"},Description:"Bitmask of what options to use in missions.",DisplayName:"Mission options bitmask",User:"Advanced"},MIS_RESTART:{Description:"Controls mission starting point when entering Auto mode (either restart from beginning of mission or resume from last command run)",DisplayName:"Mission Restart when entering Auto mode",User:"Advanced",Values:{0:"Resume Mission",1:"Restart Mission"}},MIS_TOTAL:{Description:"The number of mission mission items that has been loaded by the ground station. Do not change this manually.",DisplayName:"Total mission commands",Increment:"1",Range:{high:"32766",low:"0"},ReadOnly:"True",User:"Advanced"}},RK={MNT2_ANGMAX_PAN:{Description:"MOunt2's maximum physical pan (yaw) angular position",DisplayName:"Mount2's maximum pan angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_ANGMAX_ROL:{Description:"Mount2's maximum physical roll angular position",DisplayName:"Mount2's maximum roll angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_ANGMAX_TIL:{Description:"Mount2's maximum physical tilt (pitch) angular position",DisplayName:"Mount2's maximum tilt angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_ANGMIN_PAN:{Description:"Mount2's minimum physical pan (yaw) angular position",DisplayName:"Mount2's minimum pan angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_ANGMIN_ROL:{Description:"Mount2's minimum physical roll angular position",DisplayName:"Mount2's minimum roll angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_ANGMIN_TIL:{Description:"Mount2's minimum physical tilt (pitch) angular position",DisplayName:"Mount2's minimum tilt angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_DEFLT_MODE:{Description:"Mount default operating mode on startup and after control is returned from autopilot",DisplayName:"Mount default operating mode",User:"Standard",Values:{0:"Retracted",1:"Neutral",2:"MavLink Targeting",3:"RC Targeting",4:"GPS Point"}},MNT2_LEAD_PTCH:{Description:"Causes the servo angle output to lead the current angle of the vehicle by some amount of time based on current angular rate. Increase until the servo is responsive but doesn't overshoot. Does nothing with pan stabilization enabled.",DisplayName:"Mount2's Pitch stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT2_LEAD_RLL:{Description:"Causes the servo angle output to lead the current angle of the vehicle by some amount of time based on current angular rate, compensating for servo delay. Increase until the servo is responsive but doesn't overshoot. Does nothing with pan stabilization enabled.",DisplayName:"Mount2's Roll stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT2_NEUTRAL_X:{Description:"Mount2 roll angle when in neutral position",DisplayName:"Mount2 roll angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_NEUTRAL_Y:{Description:"Mount2 tilt/pitch angle when in neutral position",DisplayName:"Mount2 tilt/pitch angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_NEUTRAL_Z:{Description:"Mount2 pan/yaw angle when in neutral position",DisplayName:"Mount2 pan/yaw angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_RC_IN_PAN:{Description:"0 for none, any other for the RC channel to be used to control pan (yaw) movements",DisplayName:"Mount2's pan (yaw) RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT2_RC_IN_ROLL:{Description:"0 for none, any other for the RC channel to be used to control roll movements",DisplayName:"Mount2's roll RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT2_RC_IN_TILT:{Description:"0 for none, any other for the RC channel to be used to control tilt (pitch) movements",DisplayName:"Mount2's tilt (pitch) RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT2_RETRACT_X:{Description:"Mount2 roll angle when in retracted position",DisplayName:"Mount2 roll angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_RETRACT_Y:{Description:"Mount2 tilt/pitch angle when in retracted position",DisplayName:"Mount2 tilt/pitch angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_RETRACT_Z:{Description:"Mount2 yaw/pan angle when in retracted position",DisplayName:"Mount2 yaw/pan angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_STAB_PAN:{Description:"enable pan/yaw stabilisation relative to Earth",DisplayName:"Stabilize mount2 pan/yaw angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT2_STAB_ROLL:{Description:"enable roll stabilisation relative to Earth",DisplayName:"Stabilize Mount2's roll angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT2_STAB_TILT:{Description:"enable tilt/pitch stabilisation relative to Earth",DisplayName:"Stabilize Mount2's pitch/tilt angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT2_TYPE:{Description:"Mount Type (None, Servo or MAVLink)",DisplayName:"Mount2 Type",User:"Standard",Values:{0:"None",1:"Servo",2:"3DR Solo",3:"Alexmos Serial",4:"SToRM32 MAVLink",5:"SToRM32 Serial"}},MNT_ANGMAX_PAN:{Description:"Maximum physical pan (yaw) angular position of the mount",DisplayName:"Maximum pan angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_ANGMAX_ROL:{Description:"Maximum physical roll angular position of the mount",DisplayName:"Maximum roll angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_ANGMAX_TIL:{Description:"Maximum physical tilt (pitch) angular position of the mount",DisplayName:"Maximum tilt angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_ANGMIN_PAN:{Description:"Minimum physical pan (yaw) angular position of mount.",DisplayName:"Minimum pan angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_ANGMIN_ROL:{Description:"Minimum physical roll angular position of mount.",DisplayName:"Minimum roll angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_ANGMIN_TIL:{Description:"Minimum physical tilt (pitch) angular position of mount.",DisplayName:"Minimum tilt angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_DEFLT_MODE:{Description:"Mount default operating mode on startup and after control is returned from autopilot",DisplayName:"Mount default operating mode",User:"Standard",Values:{0:"Retracted",1:"Neutral",2:"MavLink Targeting",3:"RC Targeting",4:"GPS Point"}},MNT_JSTICK_SPD:{Description:"0 for position control, small for low speeds, 100 for max speed. A good general value is 10 which gives a movement speed of 3 degrees per second.",DisplayName:"mount joystick speed",Increment:"1",Range:{high:"100",low:"0"},User:"Standard"},MNT_LEAD_PTCH:{Description:"Causes the servo angle output to lead the current angle of the vehicle by some amount of time based on current angular rate. Increase until the servo is responsive but doesn't overshoot. Does nothing with pan stabilization enabled.",DisplayName:"Pitch stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT_LEAD_RLL:{Description:"Causes the servo angle output to lead the current angle of the vehicle by some amount of time based on current angular rate, compensating for servo delay. Increase until the servo is responsive but doesn't overshoot. Does nothing with pan stabilization enabled.",DisplayName:"Roll stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT_NEUTRAL_X:{Description:"Mount roll angle when in neutral position",DisplayName:"Mount roll angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_NEUTRAL_Y:{Description:"Mount tilt/pitch angle when in neutral position",DisplayName:"Mount tilt/pitch angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_NEUTRAL_Z:{Description:"Mount pan/yaw angle when in neutral position",DisplayName:"Mount pan/yaw angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_RC_IN_PAN:{Description:"0 for none, any other for the RC channel to be used to control pan (yaw) movements",DisplayName:"pan (yaw) RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT_RC_IN_ROLL:{Description:"0 for none, any other for the RC channel to be used to control roll movements",DisplayName:"roll RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT_RC_IN_TILT:{Description:"0 for none, any other for the RC channel to be used to control tilt (pitch) movements",DisplayName:"tilt (pitch) RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT_RETRACT_X:{Description:"Mount roll angle when in retracted position",DisplayName:"Mount roll angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_RETRACT_Y:{Description:"Mount tilt/pitch angle when in retracted position",DisplayName:"Mount tilt/pitch angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_RETRACT_Z:{Description:"Mount yaw/pan angle when in retracted position",DisplayName:"Mount yaw/pan angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_STAB_PAN:{Description:"enable pan/yaw stabilisation relative to Earth",DisplayName:"Stabilize mount pan/yaw angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT_STAB_ROLL:{Description:"enable roll stabilisation relative to Earth",DisplayName:"Stabilize mount's roll angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT_STAB_TILT:{Description:"enable tilt/pitch stabilisation relative to Earth",DisplayName:"Stabilize mount's pitch/tilt angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT_TYPE:{Description:"Mount Type (None, Servo or MAVLink)",DisplayName:"Mount Type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"Servo",2:"3DR Solo",3:"Alexmos Serial",4:"SToRM32 MAVLink",5:"SToRM32 Serial"}}},bK={MOT_PWM_FREQ:{Description:"Motor Output PWM freq for brushed motors",DisplayName:"Motor Output PWM freq for brushed motors",Increment:"1",Range:{high:"20",low:"1"},RebootRequired:"True",Units:"kHz",User:"Advanced"},MOT_PWM_TYPE:{Description:"This selects the output PWM type as regular PWM, OneShot, Brushed motor support using PWM (duty cycle) with separated direction signal, Brushed motor support with separate throttle and direction PWM (duty cyle)",DisplayName:"Motor Output PWM type",RebootRequired:"True",User:"Advanced",Values:{0:"Normal",1:"OneShot",2:"OneShot125",3:"BrushedWithRelay",4:"BrushedBiPolar",5:"DShot150",6:"DShot300",7:"DShot600",8:"DShot1200"}},MOT_SAFE_DISARM:{Description:"Disables motor PWM output when disarmed",DisplayName:"Motor PWM output disabled when disarmed",User:"Advanced",Values:{0:"PWM enabled while disarmed",1:"PWM disabled while disarmed"}},MOT_SLEWRATE:{Description:"Throttle slew rate as a percentage of total range per second. A value of 100 allows the motor to change over its full range in one second. A value of zero disables the limit. Note some NiMH powered rovers require a lower setting of 40 to reduce current demand to avoid brownouts.",DisplayName:"Throttle slew rate",Increment:"1",Range:{high:"1000",low:"0"},Units:"%/s",User:"Standard"},MOT_SPD_SCA_BASE:{Description:"Speed above which steering is scaled down when using regular steering/throttle vehicles. zero to disable speed scaling",DisplayName:"Motor speed scaling base speed",Range:{high:"10",low:"0"},Units:"m/s",User:"Advanced"},MOT_STR_THR_MIX:{Description:"Steering vs Throttle priorisation. Higher numbers prioritise steering, lower numbers prioritise throttle. Only valid for Skid Steering vehicles",DisplayName:"Motor steering vs throttle prioritisation",Range:{high:"1.0",low:"0.2"},User:"Advanced"},MOT_THR_MAX:{Description:"Throttle maximum percentage the autopilot will apply. This can be used to prevent overheating an ESC or motor on an electric rover",DisplayName:"Throttle maximum",Increment:"1",Range:{high:"100",low:"30"},Units:"%",User:"Standard"},MOT_THR_MIN:{Description:"Throttle minimum percentage the autopilot will apply. This is useful for handling a deadzone around low throttle and for preventing internal combustion motors cutting out during missions.",DisplayName:"Throttle minimum",Increment:"1",Range:{high:"20",low:"0"},Units:"%",User:"Standard"},MOT_THST_EXPO:{Description:"Thrust curve exponent (-1 to +1 with 0 being linear)",DisplayName:"Thrust Curve Expo",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},MOT_VEC_ANGLEMAX:{Description:"The angle between steering's middle position and maximum position when using vectored thrust (boats only)",DisplayName:"Vector thrust angle max",Range:{high:"90",low:"0"},Units:"deg",User:"Standard"}},NK={MSP_OPTIONS:{Bitmask:{0:"EnableTelemetryMode",1:"DisableDJIWorkarounds",2:"EnableBTFLFonts"},Description:"A bitmask to set some MSP specific options",DisplayName:"MSP OSD Options",User:"Standard"},MSP_OSD_NCELLS:{Description:"Used for average cell voltage calculation",DisplayName:"Cell count override",User:"Standard",Values:{0:"Auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14"}}},wK={NAVL1_DAMPING:{Description:"Damping ratio for L1 control. Increase this in increments of 0.05 if you are getting overshoot in path tracking. You should not need a value below 0.7 or above 0.85.",DisplayName:"L1 control damping ratio",Increment:"0.05",Range:{high:"1.0",low:"0.6"},User:"Advanced"},NAVL1_LIM_BANK:{Description:"The sealevel bank angle limit for a continous loiter. (Used to calculate airframe loading limits at higher altitudes). Setting to 0, will instead just scale the loiter radius directly",DisplayName:"Loiter Radius Bank Angle Limit",Range:{high:"89",low:"0"},Units:"deg",User:"Advanced"},NAVL1_PERIOD:{Description:"Period in seconds of L1 tracking loop. This parameter is the primary control for agressiveness of turns in auto mode. This needs to be larger for less responsive airframes. The default of 20 is quite conservative, but for most RC aircraft will lead to reasonable flight. For smaller more agile aircraft a value closer to 15 is appropriate, or even as low as 10 for some very agile aircraft. When tuning, change this value in small increments, as a value that is much too small (say 5 or 10 below the right value) can lead to very radical turns, and a risk of stalling.",DisplayName:"L1 control period",Increment:"1",Range:{high:"60",low:"1"},Units:"s",User:"Standard"},NAVL1_XTRACK_I:{Description:"Crosstrack error integrator gain. This gain is applied to the crosstrack error to ensure it converges to zero. Set to zero to disable. Smaller values converge slower, higher values will cause crosstrack error oscillation.",DisplayName:"L1 control crosstrack integrator gain",Increment:"0.01",Range:{high:"0.1",low:"0"},User:"Advanced"}},TK={NTF_BUZZ_ON_LVL:{Description:"Specifies pin level that indicates buzzer should play",DisplayName:"Buzzer-on pin logic level",User:"Advanced",Values:{0:"LowIsOn",1:"HighIsOn"}},NTF_BUZZ_PIN:{Description:"Enables to connect active buzzer to arbitrary pin. Requires 3-pin buzzer or additional MOSFET!",DisplayName:"Buzzer pin",User:"Advanced",Values:{0:"Disabled"}},NTF_BUZZ_TYPES:{Bitmask:{0:"Built-in buzzer",1:"DShot",2:"DroneCAN"},Description:"Controls what types of Buzzer will be enabled",DisplayName:"Buzzer Driver Types",User:"Advanced"},NTF_BUZZ_VOLUME:{Description:"Control the volume of the buzzer",DisplayName:"Buzzer volume",Range:{high:"100",low:"0"},Units:"%"},NTF_DISPLAY_TYPE:{Description:"This sets up the type of on-board I2C display. Disabled by default.",DisplayName:"Type of on-board I2C display",User:"Advanced",Values:{0:"Disable",1:"ssd1306",2:"sh1106",10:"SITL"}},NTF_LED_BRIGHT:{Description:"Select the RGB LED brightness level. When USB is connected brightness will never be higher than low regardless of the setting.",DisplayName:"LED Brightness",User:"Advanced",Values:{0:"Off",1:"Low",2:"Medium",3:"High"}},NTF_LED_LEN:{Description:"The number of Serial LED's to use for notifications (NeoPixel's and ProfiLED)",DisplayName:"Serial LED String Length",Range:{high:"32",low:"1"},RebootRequired:"True",User:"Advanced"},NTF_LED_OVERRIDE:{Description:'Specifies the source for the colours and brightness for the LED. OutbackChallenge conforms to the MedicalExpress (https://uavchallenge.org/medical-express/) rules, essentially "Green" is disarmed (safe-to-approach), "Red" is armed (not safe-to-approach). Traffic light is a simplified color set, red when armed, yellow when the safety switch is not surpressing outputs (but disarmed), and green when outputs are surpressed and disarmed, the LED will blink faster if disarmed and failing arming checks.',DisplayName:"Specifies colour source for the RGBLed",User:"Advanced",Values:{0:"Standard",1:"MAVLink/Scripting/AP_Periph",2:"OutbackChallenge",3:"TrafficLight"}},NTF_LED_TYPES:{Bitmask:{0:"Built-in LED",1:"Internal ToshibaLED",2:"External ToshibaLED",3:"External PCA9685",4:"Oreo LED",5:"DroneCAN",6:"NCP5623 External",7:"NCP5623 Internal",8:"NeoPixel",9:"ProfiLED",10:"Scripting",11:"DShot",12:"ProfiLED_SPI"},Description:"Controls what types of LEDs will be enabled",DisplayName:"LED Driver Types",User:"Advanced"},NTF_OREO_THEME:{Description:"Enable/Disable Solo Oreo LED driver, 0 to disable, 1 for Aircraft theme, 2 for Rover theme",DisplayName:"OreoLED Theme",User:"Advanced",Values:{0:"Disabled",1:"Aircraft",2:"Rover"}}},EK={OA_MARGIN_MAX:{Description:"Object Avoidance will ignore objects more than this many meters from vehicle",DisplayName:"Object Avoidance wide margin distance",Increment:"1",Range:{high:"100",low:"0.1"},Units:"m",User:"Standard"},OA_OPTIONS:{Bitmask:{0:"Reset the origin of the waypoint to the present location",1:"log Dijkstra points"},Description:"Bitmask which will govern vehicles behaviour while recovering from Obstacle Avoidance (i.e Avoidance is turned off after the path ahead is clear). ",DisplayName:"Options while recovering from Object Avoidance",User:"Standard"},OA_TYPE:{Description:"Enabled/disable path planning around obstacles",DisplayName:"Object Avoidance Path Planning algorithm to use",User:"Standard",Values:{0:"Disabled",1:"BendyRuler",2:"Dijkstra",3:"Dijkstra with BendyRuler"}}},PK={OA_BR_CONT_ANGLE:{Description:" BendyRuler will resist changing current bearing if the change in bearing is over this angle",DisplayName:"BendyRuler's bearing change resistance threshold angle ",Increment:"5",Range:{high:"180",low:"20"},User:"Standard"},OA_BR_CONT_RATIO:{Description:" BendyRuler will avoid changing bearing unless ratio of previous margin from obstacle (or fence) to present calculated margin is atleast this much.",DisplayName:"Obstacle Avoidance margin ratio for BendyRuler to change bearing significantly ",Increment:"0.1",Range:{high:"2",low:"1.1"},User:"Standard"},OA_BR_LOOKAHEAD:{Description:"Object Avoidance will look this many meters ahead of vehicle",DisplayName:"Object Avoidance look ahead distance maximum",Increment:"1",Range:{high:"100",low:"1"},Units:"m",User:"Standard"}},IK={OA_DB_BEAM_WIDTH:{Description:"Beam width of incoming lidar data",DisplayName:"OADatabase beam width",Range:{high:"10",low:"1"},RebootRequired:"True",Units:"deg",User:"Advanced"},OA_DB_DIST_MAX:{Description:"Maximum distance of objects held in database. Set to zero to disable the limits",DisplayName:"OADatabase Distance Maximum",Range:{high:"10",low:"0"},Units:"m",User:"Advanced"},OA_DB_EXPIRE:{Description:"OADatabase item timeout. The time an item will linger without any updates before it expires. Zero means never expires which is useful for a sent-once static environment but terrible for dynamic ones.",DisplayName:"OADatabase item timeout",Increment:"1",Range:{high:"127",low:"0"},Units:"s",User:"Advanced"},OA_DB_OUTPUT:{Description:"OADatabase output level to configure which database objects are sent to the ground station. All data is always available internally for avoidance algorithms.",DisplayName:"OADatabase output level",User:"Advanced",Values:{0:"Disabled",1:"Send only HIGH importance items",2:"Send HIGH and NORMAL importance items",3:"Send all items"}},OA_DB_QUEUE_SIZE:{Description:"OADatabase queue maximum number of points. This in an input buffer size. Larger means it can handle larger bursts of incoming data points to filter into the database. No impact on cpu, only RAM. Recommend larger for faster datalinks or for sensors that generate a lot of data.",DisplayName:"OADatabase queue maximum number of points",Range:{high:"200",low:"1"},RebootRequired:"True",User:"Advanced"},OA_DB_RADIUS_MIN:{Description:"Minimum radius of objects held in database",DisplayName:"OADatabase Minimum radius",Range:{high:"10",low:"0"},Units:"m",User:"Advanced"},OA_DB_SIZE:{Description:"OADatabase maximum number of points. Set to 0 to disable the OA Database. Larger means more points but is more cpu intensive to process",DisplayName:"OADatabase maximum number of points",Range:{high:"10000",low:"0"},RebootRequired:"True",User:"Advanced"}},OK={OSD_ARM_SCR:{Description:"Screen to be shown on Arm event. Zero to disable the feature.",DisplayName:"Arm screen",Range:{high:"4",low:"0"},User:"Standard"},OSD_BTN_DELAY:{Description:"Debounce time in ms for stick commanded parameter navigation.",DisplayName:"Button delay",Range:{high:"3000",low:"0"},User:"Advanced"},OSD_CELL_COUNT:{Description:"Used for average cell voltage display. -1 disables, 0 uses cell count autodetection for well charged LIPO/LIION batteries at connection, other values manually select cell count used.",DisplayName:"Battery cell count",Increment:"1",User:"Advanced"},OSD_CHAN:{Description:"This sets the channel used to switch different OSD screens.",DisplayName:"Screen switch transmitter channel",User:"Standard",Values:{0:"Disable",5:"Chan5",6:"Chan6",7:"Chan7",8:"Chan8",9:"Chan9",10:"Chan10",11:"Chan11",12:"Chan12",13:"Chan13",14:"Chan14",15:"Chan15",16:"Chan16"}},OSD_DSARM_SCR:{Description:"Screen to be shown on disarm event. Zero to disable the feature.",DisplayName:"Disarm screen",Range:{high:"4",low:"0"},User:"Standard"},OSD_FONT:{Description:"This sets which OSD font to use. It is an integer from 0 to the number of fonts available",DisplayName:"OSD Font",RebootRequired:"True",User:"Standard"},OSD_FS_SCR:{Description:"Screen to be shown on failsafe event. Zero to disable the feature.",DisplayName:"Failsafe screen",Range:{high:"4",low:"0"},User:"Standard"},OSD_H_OFFSET:{Description:"Sets horizontal offset of the osd inside image",DisplayName:"OSD horizontal offset",Range:{high:"63",low:"0"},RebootRequired:"True",User:"Standard"},OSD_MSG_TIME:{Description:"Sets message duration seconds",DisplayName:"Message display duration in seconds",Range:{high:"20",low:"1"},User:"Standard"},OSD_OPTIONS:{Bitmask:{0:"UseDecimalPack",1:"InvertedWindPointer",2:"InvertedAHRoll",3:"Convert feet to miles at 5280ft instead of 10000ft",4:"DisableCrosshair"},Description:"This sets options that change the display",DisplayName:"OSD Options",User:"Standard"},OSD_SW_METHOD:{Description:"This sets the method used to switch different OSD screens.",DisplayName:"Screen switch method",User:"Standard",Values:{0:"switch to next screen if channel value was changed",1:"select screen based on pwm ranges specified for each screen",2:"switch to next screen after low to high transition and every 1s while channel value is high"}},OSD_TYPE:{Description:"OSD type. TXONLY makes the OSD parameter selection available to other modules even if there is no native OSD support on the board, for instance CRSF.",DisplayName:"OSD type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"MAX7456",2:"SITL",3:"MSP",4:"TXONLY"}},OSD_UNITS:{Description:"Sets the units to use in displaying items",DisplayName:"Display Units",User:"Standard",Values:{0:"Metric",1:"Imperial",2:"SI",3:"Aviation"}},OSD_V_OFFSET:{Description:"Sets vertical offset of the osd inside image",DisplayName:"OSD vertical offset",Range:{high:"31",low:"0"},RebootRequired:"True",User:"Standard"},OSD_W_AVGCELLV:{Description:"Set level at which AVGCELLV item will flash",DisplayName:"AVGCELLV warn level",Range:{high:"100",low:"0"},User:"Standard"},OSD_W_BATVOLT:{Description:"Set level at which BAT_VOLT item will flash",DisplayName:"BAT_VOLT warn level",Range:{high:"100",low:"0"},User:"Standard"},OSD_W_NSAT:{Description:"Set level at which NSAT item will flash",DisplayName:"NSAT warn level",Range:{high:"30",low:"1"},User:"Standard"},OSD_W_RESTVOLT:{Description:"Set level at which RESTVOLT item will flash",DisplayName:"RESTVOLT warn level",Range:{high:"100",low:"0"},User:"Standard"},OSD_W_RSSI:{Description:"Set level at which RSSI item will flash",DisplayName:"RSSI warn level (in %)",Range:{high:"99",low:"0"},User:"Standard"},OSD_W_TERR:{Description:"Set level below which TER_HGT item will flash. -1 disables.",DisplayName:"Terrain warn level",Range:{high:"3000",low:"-1"},Units:"m",User:"Standard"}},UK={OSD1_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD1_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD1_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD1_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD1_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD1_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD1_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD1_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD1_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD1_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD1_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD1_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD1_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD1_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD1_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD1_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD1_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD1_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD1_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD1_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD1_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD1_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD1_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD1_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD1_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD1_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD1_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD1_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD1_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD1_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD1_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD1_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD1_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD1_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD1_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD1_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD1_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD1_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD1_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD1_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD1_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD1_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD1_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD1_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD1_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD1_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD1_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD1_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD1_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD1_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD1_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD1_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD1_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD1_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD1_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD1_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD1_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD1_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD1_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD1_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD1_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD1_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD1_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD1_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD1_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD1_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD1_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD1_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD1_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD1_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD1_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD1_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD1_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD1_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD1_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD1_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD1_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD1_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD1_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD1_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD1_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD1_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD1_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD1_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD1_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD1_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD1_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD1_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD1_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD1_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD1_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD1_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD1_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD1_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD1_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD1_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD1_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD1_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD1_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD1_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD1_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD1_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD1_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD1_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD1_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD1_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD1_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD1_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD1_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD1_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD1_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD1_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD1_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD1_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD1_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD1_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD1_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD1_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},xK={OSD2_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD2_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD2_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD2_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD2_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD2_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD2_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD2_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD2_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD2_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD2_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD2_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD2_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD2_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD2_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD2_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD2_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD2_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD2_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD2_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD2_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD2_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD2_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD2_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD2_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD2_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD2_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD2_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD2_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD2_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD2_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD2_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD2_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD2_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD2_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD2_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD2_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD2_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD2_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD2_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD2_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD2_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD2_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD2_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD2_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD2_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD2_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD2_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD2_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD2_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD2_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD2_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD2_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD2_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD2_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD2_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD2_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD2_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD2_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD2_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD2_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD2_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD2_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD2_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD2_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD2_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD2_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD2_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD2_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD2_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD2_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD2_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD2_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD2_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD2_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD2_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD2_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD2_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD2_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD2_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD2_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD2_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD2_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD2_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD2_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD2_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD2_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD2_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD2_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD2_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD2_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD2_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD2_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD2_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD2_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD2_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD2_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD2_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD2_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD2_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD2_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD2_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD2_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD2_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD2_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD2_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD2_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD2_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD2_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD2_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD2_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD2_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD2_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD2_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD2_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD2_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD2_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD2_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},FK={OSD3_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD3_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD3_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD3_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD3_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD3_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD3_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD3_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD3_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD3_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD3_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD3_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD3_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD3_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD3_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD3_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD3_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD3_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD3_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD3_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD3_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD3_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD3_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD3_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD3_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD3_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD3_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD3_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD3_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD3_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD3_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD3_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD3_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD3_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD3_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD3_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD3_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD3_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD3_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD3_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD3_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD3_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD3_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD3_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD3_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD3_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD3_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD3_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD3_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD3_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD3_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD3_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD3_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD3_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD3_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD3_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD3_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD3_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD3_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD3_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD3_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD3_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD3_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD3_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD3_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD3_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD3_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD3_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD3_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD3_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD3_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD3_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD3_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD3_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD3_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD3_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD3_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD3_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD3_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD3_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD3_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD3_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD3_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD3_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD3_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD3_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD3_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD3_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD3_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD3_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD3_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD3_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD3_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD3_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD3_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD3_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD3_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD3_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD3_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD3_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD3_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD3_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD3_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD3_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD3_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD3_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD3_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD3_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD3_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD3_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD3_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD3_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD3_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD3_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD3_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD3_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD3_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD3_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},kK={OSD4_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD4_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD4_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD4_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD4_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD4_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD4_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD4_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD4_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD4_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD4_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD4_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD4_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD4_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD4_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD4_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD4_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD4_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD4_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD4_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD4_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD4_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD4_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD4_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD4_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD4_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD4_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD4_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD4_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD4_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD4_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD4_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD4_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD4_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD4_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD4_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD4_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD4_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD4_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD4_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD4_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD4_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD4_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD4_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD4_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD4_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD4_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD4_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD4_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD4_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD4_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD4_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD4_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD4_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD4_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD4_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD4_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD4_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD4_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD4_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD4_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD4_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD4_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD4_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD4_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD4_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD4_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD4_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD4_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD4_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD4_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD4_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD4_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD4_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD4_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD4_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD4_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD4_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD4_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD4_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD4_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD4_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD4_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD4_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD4_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD4_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD4_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD4_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD4_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD4_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD4_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD4_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD4_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD4_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD4_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD4_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD4_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD4_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD4_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD4_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD4_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD4_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD4_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD4_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD4_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD4_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD4_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD4_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD4_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD4_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD4_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD4_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD4_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD4_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD4_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD4_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD4_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD4_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},BK={OSD5_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD5_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD5_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_SAVE_X:{Description:"Horizontal position of Save button on screen",DisplayName:"SAVE_X",Range:{high:"25",low:"0"},User:"Advanced"},OSD5_SAVE_Y:{Description:"Vertical position of Save button on screen",DisplayName:"SAVE_Y",Range:{high:"15",low:"0"},User:"Advanced"}},zK={OSD5_PARAM1_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM1_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM1_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM1_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM1_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM1_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM1_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM1_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM1_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM1_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},ZK={OSD5_PARAM2_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM2_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM2_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM2_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM2_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM2_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM2_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM2_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM2_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM2_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},GK={OSD5_PARAM3_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM3_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM3_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM3_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM3_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM3_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM3_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM3_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM3_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM3_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},WK={OSD5_PARAM4_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM4_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM4_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM4_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM4_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM4_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM4_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM4_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM4_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM4_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},XK={OSD5_PARAM5_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM5_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM5_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM5_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM5_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM5_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM5_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM5_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM5_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM5_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},YK={OSD5_PARAM6_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM6_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM6_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM6_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM6_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM6_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM6_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM6_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM6_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM6_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},$K={OSD5_PARAM7_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM7_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM7_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM7_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM7_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM7_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM7_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM7_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM7_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM7_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},qK={OSD5_PARAM8_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM8_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM8_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM8_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM8_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM8_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM8_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM8_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM8_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM8_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},KK={OSD5_PARAM9_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM9_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM9_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM9_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM9_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM9_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM9_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM9_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM9_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM9_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},jK={OSD6_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD6_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD6_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_SAVE_X:{Description:"Horizontal position of Save button on screen",DisplayName:"SAVE_X",Range:{high:"25",low:"0"},User:"Advanced"},OSD6_SAVE_Y:{Description:"Vertical position of Save button on screen",DisplayName:"SAVE_Y",Range:{high:"15",low:"0"},User:"Advanced"}},QK={OSD6_PARAM1_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM1_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM1_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM1_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM1_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM1_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM1_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM1_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM1_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM1_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},JK={OSD6_PARAM2_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM2_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM2_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM2_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM2_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM2_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM2_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM2_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM2_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM2_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},ej={OSD6_PARAM3_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM3_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM3_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM3_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM3_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM3_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM3_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM3_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM3_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM3_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},tj={OSD6_PARAM4_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM4_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM4_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM4_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM4_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM4_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM4_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM4_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM4_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM4_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},ij={OSD6_PARAM5_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM5_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM5_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM5_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM5_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM5_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM5_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM5_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM5_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM5_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},aj={OSD6_PARAM6_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM6_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM6_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM6_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM6_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM6_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM6_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM6_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM6_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM6_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},rj={OSD6_PARAM7_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM7_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM7_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM7_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM7_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM7_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM7_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM7_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM7_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM7_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},nj={OSD6_PARAM8_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM8_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM8_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM8_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM8_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM8_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM8_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM8_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM8_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM8_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},oj={OSD6_PARAM9_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM9_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM9_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM9_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM9_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM9_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM9_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM9_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM9_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM9_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},sj={PRX_FILT:{Description:"Cutoff frequency for low pass filter applied to each face in the proximity boundary",DisplayName:"Proximity filter cutoff frequency",Range:{high:"20",low:"0"},Units:"Hz",User:"Advanced"},PRX_IGN_ANG1:{Description:"Proximity sensor ignore angle 1",DisplayName:"Proximity sensor ignore angle 1",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_ANG2:{Description:"Proximity sensor ignore angle 2",DisplayName:"Proximity sensor ignore angle 2",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_ANG3:{Description:"Proximity sensor ignore angle 3",DisplayName:"Proximity sensor ignore angle 3",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_ANG4:{Description:"Proximity sensor ignore angle 4",DisplayName:"Proximity sensor ignore angle 4",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_ANG5:{Description:"Proximity sensor ignore angle 5",DisplayName:"Proximity sensor ignore angle 5",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_ANG6:{Description:"Proximity sensor ignore angle 6",DisplayName:"Proximity sensor ignore angle 6",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID1:{Description:"Proximity sensor ignore width 1",DisplayName:"Proximity sensor ignore width 1",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID2:{Description:"Proximity sensor ignore width 2",DisplayName:"Proximity sensor ignore width 2",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID3:{Description:"Proximity sensor ignore width 3",DisplayName:"Proximity sensor ignore width 3",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID4:{Description:"Proximity sensor ignore width 4",DisplayName:"Proximity sensor ignore width 4",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID5:{Description:"Proximity sensor ignore width 5",DisplayName:"Proximity sensor ignore width 5",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID6:{Description:"Proximity sensor ignore width 6",DisplayName:"Proximity sensor ignore width 6",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_LOG_RAW:{Description:"Set this parameter to one if logging unfiltered(raw) distances from sensor should be enabled",DisplayName:"Proximity raw distances log",User:"Advanced",Values:{0:"Off",1:"On"}},PRX_MAX:{Description:"Maximum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",DisplayName:"Proximity maximum range",Range:{high:"500",low:"0"},Units:"m",User:"Advanced"},PRX_MIN:{Description:"Minimum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",DisplayName:"Proximity minimum range",Range:{high:"500",low:"0"},Units:"m",User:"Advanced"},PRX_ORIENT:{Description:"Proximity sensor orientation",DisplayName:"Proximity sensor orientation",User:"Standard",Values:{0:"Default",1:"Upside Down"}},PRX_TYPE:{Description:"What type of proximity sensor is connected",DisplayName:"Proximity type",RebootRequired:"True",User:"Standard",Values:{0:"None",2:"MAVLink",3:"TeraRangerTower",4:"RangeFinder",5:"RPLidarA2",6:"TeraRangerTowerEvo",7:"LightwareSF40c",8:"LightwareSF45B",10:"SITL",12:"AirSimSITL",13:"CygbotD1"}},PRX_YAW_CORR:{Description:"Proximity sensor yaw correction",DisplayName:"Proximity sensor yaw correction",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"}},lj={RALLY_INCL_HOME:{Description:"Controls if Home is included as a Rally point (i.e. as a safe landing place) for RTL",DisplayName:"Rally Include Home",User:"Standard",Values:{0:"DoNotIncludeHome",1:"IncludeHome"}},RALLY_LIMIT_KM:{Description:"Maximum distance to rally point. If the closest rally point is more than this number of kilometers from the current position and the home location is closer than any of the rally points from the current position then do RTL to home rather than to the closest rally point. This prevents a leftover rally point from a different airfield being used accidentally. If this is set to 0 then the closest rally point is always used.",DisplayName:"Rally Limit",Increment:"0.1",Units:"km",User:"Advanced"},RALLY_TOTAL:{Description:"Number of rally points currently loaded",DisplayName:"Rally Total",User:"Advanced"}},cj={RC_OPTIONS:{Bitmask:{0:"Ignore RC Receiver",1:"Ignore MAVLink Overrides",2:"Ignore Receiver Failsafe bit but allow other RC failsafes if setup",3:"FPort Pad",4:"Log RC input bytes",5:"Arming check throttle for 0 input",6:"Skip the arming check for neutral Roll/Pitch/Yaw sticks",7:"Allow Switch reverse",8:"Use passthrough for CRSF telemetry",9:"Suppress CRSF mode/rate message for ELRS systems",10:"Enable multiple receiver support",11:"CRSF RSSI shows Link Quality"},Description:"RC input options",DisplayName:"RC options",User:"Advanced"},RC_OVERRIDE_TIME:{Description:"Timeout after which RC overrides will no longer be used, and RC input will resume, 0 will disable RC overrides, -1 will never timeout, and continue using overrides until they are disabled",DisplayName:"RC override timeout",Range:{high:"120.0",low:"0.0"},Units:"s",User:"Advanced"},RC_PROTOCOLS:{Bitmask:{0:"All",1:"PPM",2:"IBUS",3:"SBUS",4:"SBUS_NI",5:"DSM",6:"SUMD",7:"SRXL",8:"SRXL2",9:"CRSF",10:"ST24",11:"FPORT",12:"FPORT2",13:"FastSBUS"},Description:"Bitmask of enabled RC protocols. Allows narrowing the protocol detection to only specific types of RC receivers which can avoid issues with incorrect detection. Set to 1 to enable all protocols.",DisplayName:"RC protocols enabled",User:"Advanced"}},dj={RC10_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC10_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC10_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC10_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC10_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC10_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},Cj={RC11_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC11_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC11_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC11_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC11_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC11_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},mj={RC12_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC12_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC12_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC12_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC12_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC12_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},uj={RC13_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC13_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC13_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC13_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC13_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC13_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},hj={RC14_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC14_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC14_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC14_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC14_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC14_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},pj={RC15_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC15_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC15_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC15_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC15_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC15_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},fj={RC16_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC16_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC16_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC16_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC16_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC16_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},Vj={RC1_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC1_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC1_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC1_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC1_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC1_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},Lj={RC2_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC2_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC2_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC2_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC2_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC2_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},Hj={RC3_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC3_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC3_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC3_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC3_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC3_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},Mj={RC4_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC4_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC4_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC4_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC4_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC4_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},gj={RC5_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC5_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC5_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC5_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC5_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC5_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},Aj={RC6_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC6_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC6_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC6_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC6_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC6_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},vj={RC7_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC7_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC7_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC7_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC7_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC7_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},_j={RC8_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC8_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC8_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC8_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC8_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC8_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},Sj={RC9_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC9_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC9_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC9_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC9_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC9_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},Dj={RCMAP_FORWARD:{Description:"Forward channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Forward is normally on channel 5, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Forward channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_LATERAL:{Description:"Lateral channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Lateral is normally on channel 6, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Lateral channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_PITCH:{Description:"Pitch channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Pitch is normally on channel 2, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Pitch channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_ROLL:{Description:"Roll channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Roll is normally on channel 1, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Roll channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_THROTTLE:{Description:"Throttle channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Throttle is normally on channel 3, but you can move it to any channel with this parameter. Warning APM 2.X: Changing the throttle channel could produce unexpected fail-safe results if connection between receiver and on-board PPM Encoder is lost. Disabling on-board PPM Encoder is recommended. Reboot is required for changes to take effect.",DisplayName:"Throttle channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_YAW:{Description:"Yaw channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Yaw (also known as rudder) is normally on channel 4, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Yaw channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"}},yj={RELAY_DEFAULT:{Description:"The state of the relay on boot.",DisplayName:"Default relay state",User:"Standard",Values:{0:"Off",1:"On",2:"NoChange"}},RELAY_PIN:{Description:"Digital pin number for first relay control. This is the pin used for camera control.",DisplayName:"First Relay Pin",User:"Standard",Values:{27:"BBBMini Pin P8.17",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN2:{Description:"Digital pin number for 2nd relay control.",DisplayName:"Second Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",65:"BBBMini Pin P8.18",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN3:{Description:"Digital pin number for 3rd relay control.",DisplayName:"Third Relay Pin",User:"Standard",Values:{22:"BBBMini Pin P8.19",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN4:{Description:"Digital pin number for 4th relay control.",DisplayName:"Fourth Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",63:"BBBMini Pin P8.34",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN5:{Description:"Digital pin number for 5th relay control.",DisplayName:"Fifth Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",62:"BBBMini Pin P8.13",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN6:{Description:"Digital pin number for 6th relay control.",DisplayName:"Sixth Relay Pin",User:"Standard",Values:{37:"BBBMini Pin P8.14",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}}},Rj={RNGFND1_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND1_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND1_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND1_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND1_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND1_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND1_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND1_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND1_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND1_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND1_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND1_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND1_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND1_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND1_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",100:"SITL"}},RNGFND1_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND1_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND1_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},bj={RNGFND2_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND2_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND2_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND2_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND2_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND2_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND2_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND2_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND2_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND2_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND2_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND2_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND2_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND2_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND2_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",100:"SITL"}},RNGFND2_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND2_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND2_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},Nj={RNGFND3_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND3_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND3_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND3_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND3_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND3_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND3_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND3_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND3_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND3_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND3_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND3_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND3_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND3_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND3_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",100:"SITL"}},RNGFND3_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND3_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND3_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},wj={RNGFND4_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND4_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND4_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND4_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND4_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND4_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND4_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND4_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND4_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND4_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND4_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND4_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND4_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND4_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND4_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",100:"SITL"}},RNGFND4_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND4_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND4_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},Tj={RNGFND5_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND5_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND5_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND5_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND5_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND5_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND5_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND5_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND5_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND5_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND5_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND5_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND5_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND5_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND5_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",100:"SITL"}},RNGFND5_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND5_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND5_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},Ej={RNGFND6_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND6_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND6_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND6_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND6_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND6_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND6_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND6_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND6_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND6_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND6_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND6_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND6_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND6_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND6_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",100:"SITL"}},RNGFND6_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND6_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND6_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},Pj={RNGFND7_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND7_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND7_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND7_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND7_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND7_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND7_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND7_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND7_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND7_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND7_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND7_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND7_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND7_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND7_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",100:"SITL"}},RNGFND7_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND7_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND7_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},Ij={RNGFND8_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND8_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND8_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND8_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND8_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND8_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND8_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND8_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND8_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND8_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND8_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND8_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND8_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND8_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND8_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",100:"SITL"}},RNGFND8_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND8_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND8_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},Oj={RNGFND9_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND9_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND9_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND9_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND9_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND9_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND9_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND9_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND9_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND9_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND9_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND9_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND9_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND9_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND9_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",100:"SITL"}},RNGFND9_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND9_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND9_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},Uj={RNGFNDA_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFNDA_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFNDA_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFNDA_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFNDA_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFNDA_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFNDA_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFNDA_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFNDA_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFNDA_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFNDA_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFNDA_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFNDA_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFNDA_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFNDA_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",100:"SITL"}},RNGFNDA_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFNDA_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFNDA_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},xj={RPM1_ESC_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which support ESC rpm telemetry. RPM telemetry of the selected channels will be averaged",DisplayName:"Bitmask of ESC telemetry channels to average",User:"Advanced"},RPM1_MAX:{Description:"Maximum RPM to report. Only used on type = PWM.",DisplayName:"Maximum RPM",Increment:"1",User:"Standard"},RPM1_MIN:{Description:"Minimum RPM to report. Only used on type = PWM.",DisplayName:"Minimum RPM",Increment:"1",User:"Standard"},RPM1_MIN_QUAL:{Description:"Minimum data quality to be used",DisplayName:"Minimum Quality",Increment:"0.1",User:"Advanced"},RPM1_PIN:{Description:"Which pin to use. Only used on type = PWM.",DisplayName:"Input pin number",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},RPM1_SCALING:{Description:"Scaling factor between sensor reading and RPM.",DisplayName:"RPM scaling",Increment:"0.001",User:"Standard"},RPM1_TYPE:{Description:"What type of RPM sensor is connected",DisplayName:"RPM type",User:"Standard",Values:{0:"None",1:"Not Used",2:"AUXPIN",3:"EFI",4:"Harmonic Notch",5:"ESC Telemetry Motors Bitmask"}}},Fj={RPM2_ESC_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which support ESC rpm telemetry. RPM telemetry of the selected channels will be averaged",DisplayName:"Bitmask of ESC telemetry channels to average",User:"Advanced"},RPM2_MAX:{Description:"Maximum RPM to report. Only used on type = PWM.",DisplayName:"Maximum RPM",Increment:"1",User:"Standard"},RPM2_MIN:{Description:"Minimum RPM to report. Only used on type = PWM.",DisplayName:"Minimum RPM",Increment:"1",User:"Standard"},RPM2_MIN_QUAL:{Description:"Minimum data quality to be used",DisplayName:"Minimum Quality",Increment:"0.1",User:"Advanced"},RPM2_PIN:{Description:"Which pin to use. Only used on type = PWM.",DisplayName:"Input pin number",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},RPM2_SCALING:{Description:"Scaling factor between sensor reading and RPM.",DisplayName:"RPM scaling",Increment:"0.001",User:"Standard"},RPM2_TYPE:{Description:"What type of RPM sensor is connected",DisplayName:"RPM type",User:"Standard",Values:{0:"None",1:"Not Used",2:"AUXPIN",3:"EFI",4:"Harmonic Notch",5:"ESC Telemetry Motors Bitmask"}}},kj={RSSI_ANA_PIN:{Description:"Pin used to read the RSSI voltage or PWM value",DisplayName:"Receiver RSSI sensing pin",User:"Standard",Values:{8:"V5 Nano",11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS"}},RSSI_CHANNEL:{Description:"The channel number where RSSI will be output by the radio receiver (5 and above).",DisplayName:"Receiver RSSI channel number",Range:{high:"16",low:"0"},User:"Standard"},RSSI_CHAN_HIGH:{Description:"PWM value that the radio receiver will put on the RSSI_CHANNEL or RSSI_ANA_PIN when the signal strength is the strongest. Some radio receivers output inverted values so this value may be higher than RSSI_CHAN_LOW",DisplayName:"Receiver RSSI PWM high value",Range:{high:"2000",low:"0"},Units:"PWM",User:"Standard"},RSSI_CHAN_LOW:{Description:"PWM value that the radio receiver will put on the RSSI_CHANNEL or RSSI_ANA_PIN when the signal strength is the weakest. Some radio receivers output inverted values so this value may be lower than RSSI_CHAN_HIGH",DisplayName:"RSSI PWM low value",Range:{high:"2000",low:"0"},Units:"PWM",User:"Standard"},RSSI_PIN_HIGH:{Description:"RSSI pin's voltage received on the RSSI_ANA_PIN when the signal strength is the strongest. Some radio receivers put out inverted values so this value may be lower than RSSI_PIN_LOW. When using pin 103, the maximum value of the parameter is 3.3V.",DisplayName:"RSSI pin's highest voltage",Increment:"0.01",Range:{high:"5.0",low:"0"},Units:"V",User:"Standard"},RSSI_PIN_LOW:{Description:"RSSI pin's voltage received on the RSSI_ANA_PIN when the signal strength is the weakest. Some radio receivers put out inverted values so this value may be higher than RSSI_PIN_HIGH. When using pin 103, the maximum value of the parameter is 3.3V.",DisplayName:"RSSI pin's lowest voltage",Increment:"0.01",Range:{high:"5.0",low:"0"},Units:"V",User:"Standard"},RSSI_TYPE:{Description:"Radio Receiver RSSI type. If your radio receiver supports RSSI of some kind, set it here, then set its associated RSSI_XXXXX parameters, if any.",DisplayName:"RSSI Type",User:"Standard",Values:{0:"Disabled",1:"AnalogPin",2:"RCChannelPwmValue",3:"ReceiverProtocol",4:"PWMInputPin",5:"TelemetryRadioRSSI"}}},Bj={ACRO_TURN_RATE:{Description:"Acro mode turn rate maximum",DisplayName:"Acro mode turn rate maximum",Increment:"1",Range:{high:"360",low:"0"},Units:"deg/s",User:"Standard"},AUTO_KICKSTART:{Description:"X acceleration in meters/second/second to use to trigger the motor start in auto mode. If set to zero then auto throttle starts immediately when the mode switch happens, otherwise the rover waits for the X acceleration to go above this value before it will start the motor",DisplayName:"Auto mode trigger kickstart acceleration",Increment:"0.1",Range:{high:"20",low:"0"},Units:"m/s/s",User:"Standard"},AUTO_TRIGGER_PIN:{Description:"pin number to use to enable the throttle in auto mode. If set to -1 then don't use a trigger, otherwise this is a pin number which if held low in auto mode will enable the motor to run. If the switch is released while in AUTO then the motor will stop again. This can be used in combination with INITIAL_MODE to give a 'press button to start' rover with no receiver.",DisplayName:"Auto mode trigger pin",User:"Standard",Values:{0:"APM TriggerPin0",1:"APM TriggerPin1",2:"APM TriggerPin2",3:"APM TriggerPin3",4:"APM TriggerPin4",5:"APM TriggerPin5",6:"APM TriggerPin6",7:"APM TriggerPin7",8:"APM TriggerPin8",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},AUX_CH:{Description:"RC Channel to use for auxiliary functions including saving waypoints",DisplayName:"Auxiliary switch channel",User:"Advanced"},BAL_PITCH_MAX:{Description:"Pitch angle in degrees at 100% throttle",DisplayName:"BalanceBot Maximum Pitch",Increment:"0.1",Range:{high:"5",low:"0"},Units:"deg",User:"Standard"},BAL_PITCH_TRIM:{Description:"Balance Bot pitch trim for balancing. This offsets the tilt of the center of mass.",DisplayName:"Balance Bot pitch trim angle",Increment:"0.1",Range:{high:"2",low:"-2"},Units:"deg",User:"Standard"},CH7_OPTION:{Description:"What to do use channel 7 for",DisplayName:"Channel 7 option",User:"Standard",Values:{0:"Nothing",1:"SaveWaypoint",2:"LearnCruiseSpeed",3:"ArmDisarm",4:"Manual",5:"Acro",6:"Steering",7:"Hold",8:"Auto",9:"RTL",10:"SmartRTL",11:"Guided",12:"Loiter"}},CRASH_ANGLE:{Description:"Pitch/Roll angle limit in degrees for crash check. Zero disables check",DisplayName:"Crash Angle",Increment:"1",Range:{high:"60",low:"0"},Units:"deg",User:"Standard"},CRUISE_SPEED:{Description:"The target speed in auto missions.",DisplayName:"Target cruise speed in auto modes",Increment:"0.1",Range:{high:"100",low:"0"},Units:"m/s",User:"Standard"},CRUISE_THROTTLE:{Description:"The base throttle percentage to use in auto mode. The CRUISE_SPEED parameter controls the target speed, but the rover starts with the CRUISE_THROTTLE setting as the initial estimate for how much throttle is needed to achieve that speed. It then adjusts the throttle based on how fast the rover is actually going.",DisplayName:"Base throttle percentage in auto",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},FORMAT_VERSION:{Description:"This value is incremented when changes are made to the eeprom format",DisplayName:"Eeprom format version number",User:"Advanced"},FRAME_CLASS:{Description:"Frame Class",DisplayName:"Frame Class",User:"Standard",Values:{0:"Undefined",1:"Rover",2:"Boat",3:"BalanceBot"}},FRAME_TYPE:{Description:"Frame Type",DisplayName:"Frame Type",RebootRequired:"True",User:"Standard",Values:{0:"Undefined",1:"Omni3",2:"OmniX",3:"OmniPlus"}},FS_ACTION:{Description:"What to do on a failsafe event",DisplayName:"Failsafe Action",User:"Standard",Values:{0:"Nothing",1:"RTL",2:"Hold",3:"SmartRTL or RTL",4:"SmartRTL or Hold"}},FS_CRASH_CHECK:{Description:"What to do on a crash event. When enabled the rover will go to hold if a crash is detected.",DisplayName:"Crash check action",User:"Standard",Values:{0:"Disabled",1:"Hold",2:"HoldAndDisarm"}},FS_EKF_ACTION:{Description:"Controls the action that will be taken when an EKF failsafe is invoked",DisplayName:"EKF Failsafe Action",User:"Advanced",Values:{0:"Disabled",1:"Hold",2:"ReportOnly"}},FS_EKF_THRESH:{Description:"Allows setting the maximum acceptable compass and velocity variance",DisplayName:"EKF failsafe variance threshold",User:"Advanced",Values:{"0.6":"Strict","0.8":"Default","1.0":"Relaxed"}},FS_GCS_ENABLE:{Description:"Enable ground control station telemetry failsafe. When enabled the Rover will execute the FS_ACTION when it fails to receive MAVLink heartbeat packets for FS_TIMEOUT seconds.",DisplayName:"GCS failsafe enable",User:"Standard",Values:{0:"Disabled",1:"Enabled",2:"Enabled Continue with Mission in Auto"}},FS_OPTIONS:{Bitmask:{0:"Failsafe enabled in Hold mode"},Description:"Bitmask to enable Rover failsafe options",DisplayName:"Rover Failsafe Options",User:"Advanced",Values:{0:"None",1:"Failsafe enabled in Hold mode"}},FS_THR_ENABLE:{Description:"The throttle failsafe allows you to configure a software failsafe activated by a setting on the throttle input channel to a low value. This can be used to detect the RC transmitter going out of range. Failsafe will be triggered when the throttle channel goes below the FS_THR_VALUE for FS_TIMEOUT seconds.",DisplayName:"Throttle Failsafe Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled",2:"Enabled Continue with Mission in Auto"}},FS_THR_VALUE:{Description:"The PWM level on the throttle channel below which throttle failsafe triggers.",DisplayName:"Throttle Failsafe Value",Increment:"1",Range:{high:"1100",low:"910"},User:"Standard"},FS_TIMEOUT:{Description:"The time in seconds that a failsafe condition must persist before the failsafe action is triggered",DisplayName:"Failsafe timeout",Increment:"0.5",Range:{high:"100",low:"1"},Units:"s",User:"Standard"},GCS_PID_MASK:{Bitmask:{0:"Steering",1:"Throttle",2:"Pitch",3:"Left Wheel",4:"Right Wheel",5:"Sailboat Heel"},Description:"bitmask of PIDs to send MAVLink PID_TUNING messages for",DisplayName:"GCS PID tuning mask",User:"Advanced",Values:{0:"None",1:"Steering",2:"Throttle",4:"Pitch",8:"Left Wheel",16:"Right Wheel",32:"Sailboat Heel"}},INITIAL_MODE:{Description:"This selects the mode to start in on boot. This is useful for when you want to start in AUTO mode on boot without a receiver. Usually used in combination with when AUTO_TRIGGER_PIN or AUTO_KICKSTART.",DisplayName:"Initial driving mode",User:"Advanced",Values:{0:"Manual",1:"Acro",3:"Steering",4:"Hold",5:"Loiter",6:"Follow",7:"Simple",10:"Auto",11:"RTL",12:"SmartRTL",15:"Guided"}},LOG_BITMASK:{Bitmask:{0:"ATTITUDE_FAST",1:"ATTITUDE_MED",2:"GPS",3:"PM",4:"THR",5:"NTUN",7:"IMU",8:"CMD",9:"CURRENT",10:"RANGEFINDER",11:"COMPASS",12:"CAMERA",13:"STEERING",14:"RC",15:"ARM/DISARM",19:"IMU_RAW",20:"VideoStabilization"},Description:"Bitmap of what log types to enable in on-board logger. This value is made up of the sum of each of the log types you want to be saved. On boards supporting microSD cards or other large block-storage devices it is usually best just to enable all log types by setting this to 65535. The individual bits are ATTITUDE_FAST=1, ATTITUDE_MEDIUM=2, GPS=4, PerformanceMonitoring=8, ControlTuning=16, NavigationTuning=32, Mode=64, IMU=128, Commands=256, Battery=512, Compass=1024, TECS=2048, Camera=4096, RCandServo=8192, Rangefinder=16384, Arming=32768, FullLogs=65535",DisplayName:"Log bitmask",User:"Advanced"},LOIT_RADIUS:{Description:"Vehicle will drift when within this distance of the target position",DisplayName:"Loiter radius",Increment:"1",Range:{high:"20",low:"0"},Units:"m",User:"Standard"},LOIT_SPEED_GAIN:{Description:"Determines how agressively LOITER tries to correct for drift from loiter point. Higher is faster but default should be acceptable.",DisplayName:"Loiter speed gain",Increment:"0.01",Range:{high:"5",low:"0"},User:"Advanced"},LOIT_TYPE:{Description:"Loiter behaviour when moving to the target point",DisplayName:"Loiter type",User:"Standard",Values:{0:"Forward or reverse to target point",1:"Always face bow towards target point",2:"Always face stern towards target point"}},MIS_DONE_BEHAVE:{Description:"Behaviour after mission completes",DisplayName:"Mission done behave",User:"Standard",Values:{0:"Hold",1:"Loiter",2:"Acro",3:"Manual"}},MODE1:{Description:"Driving mode for switch position 1 (910 to 1230 and above 2049)",DisplayName:"Mode1",User:"Standard",Values:{0:"Manual",1:"Acro",3:"Steering",4:"Hold",5:"Loiter",6:"Follow",7:"Simple",10:"Auto",11:"RTL",12:"SmartRTL",15:"Guided"}},MODE2:{Description:"Driving mode for switch position 2 (1231 to 1360)",DisplayName:"Mode2",User:"Standard",Values:{0:"Manual",1:"Acro",3:"Steering",4:"Hold",5:"Loiter",6:"Follow",7:"Simple",10:"Auto",11:"RTL",12:"SmartRTL",15:"Guided"}},MODE3:{Description:"Driving mode for switch position 3 (1361 to 1490)",DisplayName:"Mode3",User:"Standard",Values:{0:"Manual",1:"Acro",3:"Steering",4:"Hold",5:"Loiter",6:"Follow",7:"Simple",10:"Auto",11:"RTL",12:"SmartRTL",15:"Guided"}},MODE4:{Description:"Driving mode for switch position 4 (1491 to 1620)",DisplayName:"Mode4",User:"Standard",Values:{0:"Manual",1:"Acro",3:"Steering",4:"Hold",5:"Loiter",6:"Follow",7:"Simple",10:"Auto",11:"RTL",12:"SmartRTL",15:"Guided"}},MODE5:{Description:"Driving mode for switch position 5 (1621 to 1749)",DisplayName:"Mode5",User:"Standard",Values:{0:"Manual",1:"Acro",3:"Steering",4:"Hold",5:"Loiter",6:"Follow",7:"Simple",10:"Auto",11:"RTL",12:"SmartRTL",15:"Guided"}},MODE6:{Description:"Driving mode for switch position 6 (1750 to 2049)",DisplayName:"Mode6",User:"Standard",Values:{0:"Manual",1:"Acro",3:"Steering",4:"Hold",5:"Loiter",6:"Follow",7:"Simple",10:"Auto",11:"RTL",12:"SmartRTL",15:"Guided"}},MODE_CH:{Description:"RC Channel to use for driving mode control",DisplayName:"Mode channel",User:"Advanced"},PILOT_STEER_TYPE:{Description:"Pilot RC input interpretation",DisplayName:"Pilot input steering type",User:"Standard",Values:{0:"Default",1:"Two Paddles Input",2:"Direction reversed when backing up",3:"Direction unchanged when backing up"}},PIVOT_TURN_ANGLE:{Description:"Navigation angle threshold in degrees to switch to pivot steering. This allows you to setup a skid steering rover to turn on the spot in auto mode when the angle it needs to turn it greater than this angle. An angle of zero means to disable pivot turning. Note that you will probably also want to set a low value for WP_RADIUS to get neat turns.",DisplayName:"Pivot turn angle",Increment:"1",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PIVOT_TURN_RATE:{Description:"Desired pivot turn rate in deg/s.",DisplayName:"Pivot turn rate",Increment:"1",Range:{high:"360",low:"0"},Units:"deg/s",User:"Standard"},RST_SWITCH_CH:{Description:"RC channel to use to reset to last flight mode after geofence takeover.",DisplayName:"Reset Switch Channel",User:"Advanced"},RTL_SPEED:{Description:"Return-to-Launch speed default. If zero use WP_SPEED or CRUISE_SPEED.",DisplayName:"Return-to-Launch speed default",Increment:"0.1",Range:{high:"100",low:"0"},Units:"m/s",User:"Standard"},SIMPLE_TYPE:{Description:"Simple mode types",DisplayName:"Simple_Type",RebootRequired:"True",User:"Standard",Values:{0:"InitialHeading",1:"CardinalDirections"}},SPEED_MAX:{Description:"Maximum speed vehicle can obtain at full throttle. If 0, it will be estimated based on CRUISE_SPEED and CRUISE_THROTTLE.",DisplayName:"Speed maximum",Increment:"0.1",Range:{high:"30",low:"0"},Units:"m/s",User:"Advanced"},STICK_MIXING:{Description:"When enabled, this adds steering user stick input in auto modes, allowing the user to have some degree of control without changing modes.",DisplayName:"Stick Mixing",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},SYSID_ENFORCE:{Description:"This controls whether packets from other than the expected GCS system ID will be accepted",DisplayName:"GCS sysid enforcement",User:"Advanced",Values:{0:"NotEnforced",1:"Enforced"}},SYSID_MYGCS:{Description:"The identifier of the ground station in the MAVLink protocol. Don't change this unless you also modify the ground station to match.",DisplayName:"MAVLink ground station ID",Range:{high:"255",low:"1"},User:"Advanced"},SYSID_THISMAV:{Description:"Allows setting an individual MAVLink system id for this vehicle to distinguish it from others on the same network",DisplayName:"MAVLink system ID of this vehicle",Range:{high:"255",low:"1"},User:"Advanced"},TELEM_DELAY:{Description:"The amount of time (in seconds) to delay radio telemetry to prevent an Xbee bricking on power up",DisplayName:"Telemetry startup delay",Increment:"1",Range:{high:"30",low:"0"},Units:"s",User:"Standard"},TURN_RADIUS:{Description:"Turn radius of vehicle in meters while at low speeds. Lower values produce tighter turns in steering mode",DisplayName:"Turn radius of vehicle",Increment:"0.1",Range:{high:"10",low:"0"},Units:"m",User:"Standard"}},zj={SAIL_ANGLE_IDEAL:{Description:"Ideal angle between sail and apparent wind",DisplayName:"Sail ideal angle",Increment:"1",Range:{high:"90",low:"0"},Units:"deg",User:"Standard"},SAIL_ANGLE_MAX:{Description:"Mainsheet loose, angle between centerline and boom. For direct-control rotating masts, the rotation angle at SERVOx_MAX/_MIN; for rotating masts, this value can exceed 90 degrees if the linkages can physically rotate the mast past that angle.",DisplayName:"Sail max angle",Increment:"1",Range:{high:"90",low:"0"},Units:"deg",User:"Standard"},SAIL_ANGLE_MIN:{Description:"Mainsheet tight, angle between centerline and boom",DisplayName:"Sail min angle",Increment:"1",Range:{high:"90",low:"0"},Units:"deg",User:"Standard"},SAIL_ENABLE:{Description:"This enables Sailboat functionality",DisplayName:"Enable Sailboat",RebootRequired:"True",User:"Standard",Values:{0:"Disable",1:"Enable"}},SAIL_HEEL_MAX:{Description:"When in auto sail trim modes the heel will be limited to this value using PID control",DisplayName:"Sailing maximum heel angle",Increment:"1",Range:{high:"90",low:"0"},Units:"deg",User:"Standard"},SAIL_LOIT_RADIUS:{Description:"When in sailing modes the vehicle will keep moving within this loiter radius",DisplayName:"Loiter radius",Increment:"1",Range:{high:"20",low:"0"},Units:"m",User:"Standard"},SAIL_NO_GO_ANGLE:{Description:"The typical closest angle to the wind the vehicle will sail at. the vehicle will sail at this angle when going upwind",DisplayName:"Sailing no go zone angle",Increment:"1",Range:{high:"90",low:"0"},Units:"deg",User:"Standard"},SAIL_WNDSPD_MIN:{Description:"Sailboat minimum wind speed to continue sail in, at lower wind speeds the sailboat will motor if one is fitted",DisplayName:"Sailboat minimum wind speed to sail in",Increment:"0.1",Range:{high:"5",low:"0"},Units:"m/s",User:"Standard"},SAIL_XTRACK_MAX:{Description:"The sail boat will tack when it reaches this cross track error, defines a corridor of 2 times this value wide, 0 disables",DisplayName:"Sailing vehicle max cross track error",Increment:"1",Range:{high:"25",low:"5"},Units:"m",User:"Standard"}},Zj={SCHED_DEBUG:{Description:'Set to non-zero to enable scheduler debug messages. When set to show "Slips" the scheduler will display a message whenever a scheduled task is delayed due to too much CPU load. When set to ShowOverruns the scheduled will display a message whenever a task takes longer than the limit promised in the task table.',DisplayName:"Scheduler debug level",User:"Advanced",Values:{0:"Disabled",2:"ShowSlips",3:"ShowOverruns"}},SCHED_LOOP_RATE:{Description:"This controls the rate of the main control loop in Hz. This should only be changed by developers. This only takes effect on restart. Values over 400 are considered highly experimental.",DisplayName:"Scheduling main loop rate",RebootRequired:"True",User:"Advanced",Values:{50:"50Hz",100:"100Hz",200:"200Hz",250:"250Hz",300:"300Hz",400:"400Hz"}},SCHED_OPTIONS:{Bitmask:{0:"Enable per-task perf info"},Description:"This controls optional aspects of the scheduler.",DisplayName:"Scheduling options",User:"Advanced"}},Gj={SCR_DEBUG_OPTS:{Bitmask:{0:"No Scripts to run message if all scripts have stopped",1:"Runtime messages for memory usage and execution time",2:"Suppress logging scripts to dataflash",3:"log runtime memory usage and execution time"},Description:"Debugging options",DisplayName:"Scripting Debug Level",User:"Advanced"},SCR_DIR_DISABLE:{Bitmask:{0:"ROMFS",1:"APM/scripts"},Description:"This will stop scripts being loaded from the given locations",DisplayName:"Directory disable",RebootRequired:"True",User:"Advanced"},SCR_ENABLE:{Description:"Controls if scripting is enabled",DisplayName:"Enable Scripting",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Lua Scripts"}},SCR_HEAP_SIZE:{Description:"Amount of memory available for scripting",DisplayName:"Scripting Heap Size",Increment:"1024",Range:{high:"1048576",low:"1024"},RebootRequired:"True",User:"Advanced"},SCR_USER1:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter1",User:"Standard"},SCR_USER2:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter2",User:"Standard"},SCR_USER3:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter3",User:"Standard"},SCR_USER4:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter4",User:"Standard"},SCR_USER5:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter5",User:"Standard"},SCR_USER6:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter6",User:"Standard"},SCR_VM_I_COUNT:{Description:"The number virtual machine instructions that can be run before considering a script to have taken an excessive amount of time",DisplayName:"Scripting Virtual Machine Instruction Count",Increment:"10000",Range:{high:"1000000",low:"1000"},User:"Advanced"}},Wj={SERIAL0_BAUD:{Description:"The baud rate used on the USB console. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial0 baud rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL0_PROTOCOL:{Description:"Control what protocol to use on the console. ",DisplayName:"Console protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVlink1",2:"MAVLink2"}},SERIAL1_BAUD:{Description:"The baud rate used on the Telem1 port. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Telem1 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL1_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire. The Swap option allows the RX and TX pins to be swapped on STM32F7 based boards.",DisplayName:"Telem1 options",RebootRequired:"True",User:"Advanced"},SERIAL1_PROTOCOL:{Description:"Control what protocol to use on the Telem1 port. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Telem1 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort","-1":"None"}},SERIAL2_BAUD:{Description:"The baud rate of the Telem2 port. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Telemetry 2 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL2_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Telem2 options",RebootRequired:"True",User:"Advanced"},SERIAL2_PROTOCOL:{Description:"Control what protocol to use on the Telem2 port. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Telemetry 2 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort","-1":"None"}},SERIAL3_BAUD:{Description:"The baud rate used for the Serial 3 (GPS). Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 3 (GPS) Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL3_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial3 options",RebootRequired:"True",User:"Advanced"},SERIAL3_PROTOCOL:{Description:"Control what protocol Serial 3 (GPS) should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial 3 (GPS) protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort","-1":"None"}},SERIAL4_BAUD:{Description:"The baud rate used for Serial4. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 4 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL4_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial4 options",RebootRequired:"True",User:"Advanced"},SERIAL4_PROTOCOL:{Description:"Control what protocol Serial4 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial4 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort","-1":"None"}},SERIAL5_BAUD:{Description:"The baud rate used for Serial5. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 5 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL5_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial5 options",RebootRequired:"True",User:"Advanced"},SERIAL5_PROTOCOL:{Description:"Control what protocol Serial5 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial5 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort","-1":"None"}},SERIAL6_BAUD:{Description:"The baud rate used for Serial6. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 6 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL6_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial6 options",RebootRequired:"True",User:"Advanced"},SERIAL6_PROTOCOL:{Description:"Control what protocol Serial6 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial6 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort","-1":"None"}},SERIAL7_BAUD:{Description:"The baud rate used for Serial7. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 7 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL7_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial7 options",RebootRequired:"True",User:"Advanced"},SERIAL7_PROTOCOL:{Description:"Control what protocol Serial7 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial7 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort","-1":"None"}},SERIAL8_BAUD:{Description:"The baud rate used for Serial8. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 8 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL8_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial8 options",RebootRequired:"True",User:"Advanced"},SERIAL8_PROTOCOL:{Description:"Control what protocol Serial8 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial8 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort","-1":"None"}},SERIAL9_BAUD:{Description:"The baud rate used for Serial8. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 9 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL9_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial9 options",RebootRequired:"True",User:"Advanced"},SERIAL9_PROTOCOL:{Description:"Control what protocol Serial9 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial9 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort","-1":"None"}},SERIAL_PASS1:{Description:"This sets one side of pass-through between two serial ports. Once both sides are set then all data received on either port will be passed to the other port",DisplayName:"Serial passthru first port",User:"Advanced",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},SERIAL_PASS2:{Description:"This sets one side of pass-through between two serial ports. Once both sides are set then all data received on either port will be passed to the other port",DisplayName:"Serial passthru second port",User:"Advanced",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},SERIAL_PASSTIMO:{Description:"This sets a timeout for serial pass-through in seconds. When the pass-through is enabled by setting the SERIAL_PASS1 and SERIAL_PASS2 parameters then it remains in effect until no data comes from the first port for SERIAL_PASSTIMO seconds. This allows the port to revent to its normal usage (such as MAVLink connection to a GCS) when it is no longer needed. A value of 0 means no timeout.",DisplayName:"Serial passthru timeout",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"}},Xj={SERVO_DSHOT_ESC:{Description:"This sets the DShot ESC type for all outputs. The ESC type affects the range of DShot commands available. None means that no dshot commands will be executed.",DisplayName:"Servo DShot ESC type",User:"Advanced",Values:{0:"None",1:"BLHeli32/Kiss",2:"BLHeli_S"}},SERVO_DSHOT_RATE:{Description:"This sets the DShot output rate for all outputs as a multiple of the loop rate. 0 sets the output rate to be fixed at 1Khz for low loop rates. This value should never be set below 500Hz.",DisplayName:"Servo DShot output rate",User:"Advanced",Values:{0:"1Khz",1:"loop-rate",2:"double loop-rate",3:"triple loop-rate",4:"quadruple loop rate"}},SERVO_GPIO_MASK:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"This sets a bitmask of outputs which will be available as GPIOs. Any auxillary output with either the function set to -1 or with the corresponding bit set in this mask will be available for use as a GPIO pin",DisplayName:"Servo GPIO mask",RebootRequired:"True",User:"Advanced"},SERVO_RATE:{Description:"This sets the default output rate in Hz for all outputs.",DisplayName:"Servo default output rate",Range:{high:"400",low:"25"},Units:"Hz",User:"Advanced"}},Yj={SERVO10_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO10_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO10_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO10_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO10_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},$j={SERVO11_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO11_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO11_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO11_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO11_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},qj={SERVO12_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO12_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO12_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO12_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO12_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},Kj={SERVO13_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO13_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO13_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO13_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO13_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},jj={SERVO14_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO14_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO14_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO14_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO14_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},Qj={SERVO15_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO15_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO15_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO15_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO15_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},Jj={SERVO16_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO16_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO16_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO16_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO16_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},eQ={SERVO1_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO1_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO1_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO1_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO1_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},tQ={SERVO2_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO2_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO2_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO2_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO2_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},iQ={SERVO3_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO3_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO3_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO3_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO3_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},aQ={SERVO4_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO4_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO4_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO4_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO4_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},rQ={SERVO5_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO5_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO5_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO5_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO5_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},nQ={SERVO6_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO6_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO6_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO6_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO6_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},oQ={SERVO7_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO7_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO7_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO7_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO7_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},sQ={SERVO8_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO8_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO8_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO8_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO8_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},lQ={SERVO9_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO9_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO9_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO9_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO9_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},cQ={SERVO_BLH_3DMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which are dynamically reversible. This is used to configure ESCs in '3D' mode, allowing for the motor to spin in either direction",DisplayName:"BLHeli bitmask of 3D channels",RebootRequired:"True",User:"Advanced"},SERVO_BLH_AUTO:{Description:"If set to 1 this auto-enables BLHeli pass-thru support for all multicopter motors",DisplayName:"BLHeli pass-thru auto-enable for multicopter motors",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},SERVO_BLH_BDMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which support bi-directional dshot. This is used for ESCs which have firmware that supports bi-directional dshot allowing fast rpm telemetry values to be returned for the harmonic notch.",DisplayName:"BLHeli bitmask of bi-directional dshot channels",RebootRequired:"True",User:"Advanced"},SERVO_BLH_DEBUG:{Description:"When set to 1 this enabled verbose debugging output over MAVLink when the blheli protocol is active. This can be used to diagnose failures.",DisplayName:"BLHeli debug level",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},SERVO_BLH_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Enable of BLHeli pass-thru servo protocol support to specific channels. This mask is in addition to motors enabled using SERVO_BLH_AUTO (if any)",DisplayName:"BLHeli Channel Bitmask",RebootRequired:"True",User:"Advanced"},SERVO_BLH_OTYPE:{Description:"When set to a non-zero value this overrides the output type for the output channels given by SERVO_BLH_MASK. This can be used to enable DShot on outputs that are not part of the multicopter motors group.",DisplayName:"BLHeli output type override",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"OneShot",2:"OneShot125",3:"Brushed",4:"DShot150",5:"DShot300",6:"DShot600",7:"DShot1200"}},SERVO_BLH_POLES:{Description:"This allows calculation of true RPM from ESC's eRPM. The default is 14.",DisplayName:"BLHeli Motor Poles",Range:{high:"127",low:"1"},RebootRequired:"True",User:"Advanced"},SERVO_BLH_PORT:{Description:"This sets the mavlink channel to use for blheli pass-thru. The channel number is determined by the number of serial ports configured to use mavlink. So 0 is always the console, 1 is the next serial port using mavlink, 2 the next after that and so on.",DisplayName:"Control port",User:"Advanced",Values:{0:"Console",1:"Mavlink Serial Channel1",2:"Mavlink Serial Channel2",3:"Mavlink Serial Channel3",4:"Mavlink Serial Channel4",5:"Mavlink Serial Channel5"}},SERVO_BLH_RVMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which are reversed. This is used to configure ESCs in reversed mode",DisplayName:"BLHeli bitmask of reversed channels",RebootRequired:"True",User:"Advanced"},SERVO_BLH_TEST:{Description:"Setting SERVO_BLH_TEST to a motor number enables an internal test of the BLHeli ESC protocol to the corresponding ESC. The debug output is displayed on the USB console.",DisplayName:"BLHeli internal interface test",User:"Advanced",Values:{0:"Disabled",1:"TestMotor1",2:"TestMotor2",3:"TestMotor3",4:"TestMotor4",5:"TestMotor5",6:"TestMotor6",7:"TestMotor7",8:"TestMotor8"}},SERVO_BLH_TMOUT:{Description:"This sets the inactivity timeout for the BLHeli protocol in seconds. If no packets are received in this time normal MAVLink operations are resumed. A value of 0 means no timeout",DisplayName:"BLHeli protocol timeout",Range:{high:"300",low:"0"},Units:"s",User:"Standard"},SERVO_BLH_TRATE:{Description:"This sets the rate in Hz for requesting telemetry from ESCs. It is the rate per ESC. Setting to zero disables telemetry requests",DisplayName:"BLHeli telemetry rate",Range:{high:"500",low:"0"},Units:"Hz",User:"Standard"}},dQ={SERVO_FTW_MASK:{Bitmask:{0:"SERVO1",1:"SERVO2",2:"SERVO3",3:"SERVO4",4:"SERVO5",5:"SERVO6",6:"SERVO7",7:"SERVO8",8:"SERVO9",9:"SERVO10",10:"SERVO11",11:"SERVO12"},Description:"Servo channel mask specifying FETtec ESC output.",DisplayName:"Servo channel output bitmask",RebootRequired:"True",User:"Standard"},SERVO_FTW_POLES:{Description:"Number of motor electrical poles",DisplayName:"Nr. electrical poles",Range:{high:"50",low:"2"},User:"Standard"},SERVO_FTW_RVMASK:{Bitmask:{0:"SERVO1",1:"SERVO2",2:"SERVO3",3:"SERVO4",4:"SERVO5",5:"SERVO6",6:"SERVO7",7:"SERVO8",8:"SERVO9",9:"SERVO10",10:"SERVO11",11:"SERVO12"},Description:"Servo channel mask to reverse rotation of FETtec ESC outputs.",DisplayName:"Servo channel reverse rotation bitmask",User:"Standard"}},CQ={SERVO_ROB_POSMAX:{Description:"Position maximum at servo max value. This should be within the position control range of the servos, normally 0 to 4095",DisplayName:"Robotis servo position max",Range:{high:"4095",low:"0"},User:"Standard"},SERVO_ROB_POSMIN:{Description:"Position minimum at servo min value. This should be within the position control range of the servos, normally 0 to 4095",DisplayName:"Robotis servo position min",Range:{high:"4095",low:"0"},User:"Standard"}},mQ={SERVO_SBUS_RATE:{Description:"This sets the SBUS output frame rate in Hz.",DisplayName:"SBUS default output rate",Range:{high:"250",low:"25"},Units:"Hz",User:"Advanced"}},uQ={SERVO_VOLZ_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Enable of volz servo protocol to specific channels",DisplayName:"Channel Bitmask",User:"Standard"}},hQ={SPRAY_ENABLE:{Description:"Allows you to enable (1) or disable (0) the sprayer",DisplayName:"Sprayer enable/disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},SPRAY_PUMP_MIN:{Description:"Minimum pump speed expressed as a percentage",DisplayName:"Pump speed minimum",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},SPRAY_PUMP_RATE:{Description:"Desired pump speed when traveling 1m/s expressed as a percentage",DisplayName:"Pump speed",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},SPRAY_SPEED_MIN:{Description:"Speed minimum at which we will begin spraying",DisplayName:"Speed minimum",Range:{high:"1000",low:"0"},Units:"cm/s",User:"Standard"},SPRAY_SPINNER:{Description:"Spinner's rotation speed in PWM (a higher rate will disperse the spray over a wider area horizontally)",DisplayName:"Spinner rotation speed",Range:{high:"2000",low:"1000"},Units:"ms",User:"Standard"}},pQ={SR0_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},fQ={SR1_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},VQ={SR2_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},LQ={SR3_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},HQ={SR4_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},MQ={SR5_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},gQ={SR6_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},AQ={SRTL_ACCURACY:{Description:"SmartRTL accuracy. The minimum distance between points.",DisplayName:"SmartRTL accuracy",Range:{high:"10",low:"0"},Units:"m",User:"Advanced"},SRTL_OPTIONS:{Bitmask:{2:"Ignore pilot yaw"},Description:"Bitmask of SmartRTL options.",DisplayName:"SmartRTL options",User:"Standard"},SRTL_POINTS:{Description:"SmartRTL maximum number of points on path. Set to 0 to disable SmartRTL. 100 points consumes about 3k of memory.",DisplayName:"SmartRTL maximum number of points on path",Range:{high:"500",low:"0"},RebootRequired:"True",User:"Advanced"}},vQ={STAT_BOOTCNT:{Description:"Number of times board has been booted",DisplayName:"Boot Count",ReadOnly:"True",User:"Standard"},STAT_FLTTIME:{Description:"Total FlightTime (seconds)",DisplayName:"Total FlightTime",ReadOnly:"True",Units:"s",User:"Standard"},STAT_RESET:{Description:"Seconds since January 1st 2016 (Unix epoch+1451606400) since statistics reset (set to 0 to reset statistics)",DisplayName:"Statistics Reset Time",ReadOnly:"True",Units:"s",User:"Standard"},STAT_RUNTIME:{Description:"Total time autopilot has run",DisplayName:"Total RunTime",ReadOnly:"True",Units:"s",User:"Standard"}},_Q={TRQD_DE_PIN:{Description:"Pin number connected to RS485 to Serial converter's DE pin. -1 to use serial port's CTS pin if available",DisplayName:"Torqeedo DE pin",RebootRequired:"True",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},TRQD_DIR_DELAY:{Description:"Torqeedo direction change delay. Output will remain at zero for this many seconds when transitioning between forward and backwards rotation",DisplayName:"Torqeedo Direction Change Delay",Increment:"0.1",Range:{high:"5",low:"0"},Units:"s",User:"Advanced"},TRQD_ONOFF_PIN:{Description:"Pin number connected to Torqeedo's on/off pin. -1 to use serial port's RTS pin if available",DisplayName:"Torqeedo ON/Off pin",RebootRequired:"True",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},TRQD_OPTIONS:{Bitmask:{0:"Log",1:"Send debug to GCS"},Description:"Torqeedo Options Bitmask",DisplayName:"Torqeedo Options",User:"Advanced"},TRQD_POWER:{Description:"Torqeedo motor power. Only applied when using motor connection type (e.g. TRQD_TYPE=2)",DisplayName:"Torqeedo Motor Power",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Advanced"},TRQD_SLEW_TIME:{Description:"Torqeedo slew rate specified as the minimum number of seconds required to increase the throttle from 0 to 100%. Higher values cause a slower response, lower values cause a faster response. A value of zero disables the limit",DisplayName:"Torqeedo Throttle Slew Time",Increment:"0.1",Range:{high:"5",low:"0"},Units:"s",User:"Advanced"},TRQD_TYPE:{Description:"Torqeedo connection type",DisplayName:"Torqeedo connection type",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Tiller",2:"Motor"}}},SQ={VISO_DELAY_MS:{Description:"Visual odometry sensor delay relative to inertial measurements",DisplayName:"Visual odometry sensor delay",Range:{high:"250",low:"0"},Units:"ms",User:"Advanced"},VISO_ORIENT:{Description:"Visual odometery camera orientation",DisplayName:"Visual odometery camera orientation",User:"Advanced",Values:{0:"Forward",2:"Right",4:"Back",6:"Left",24:"Up",25:"Down"}},VISO_POS_M_NSE:{Description:"Visual odometry position measurement noise minimum (meters). This value will be used if the sensor provides a lower noise value (or no noise value)",DisplayName:"Visual odometry position measurement noise ",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},VISO_POS_X:{Description:"X position of the camera in body frame. Positive X is forward of the origin.",DisplayName:"Visual odometry camera X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_POS_Y:{Description:"Y position of the camera in body frame. Positive Y is to the right of the origin.",DisplayName:"Visual odometry camera Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_POS_Z:{Description:"Z position of the camera in body frame. Positive Z is down from the origin.",DisplayName:"Visual odometry camera Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_SCALE:{Description:"Visual odometry scaling factor applied to position estimates from sensor",DisplayName:"Visual odometry scaling factor",User:"Advanced"},VISO_TYPE:{Description:"Visual odometry camera connection type",DisplayName:"Visual odometry camera connection type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"MAVLink",2:"IntelT265",3:"VOXL(ModalAI)"}},VISO_VEL_M_NSE:{Description:"Visual odometry velocity measurement noise in m/s",DisplayName:"Visual odometry velocity measurement noise",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},VISO_YAW_M_NSE:{Description:"Visual odometry yaw measurement noise minimum (radians), This value will be used if the sensor provides a lower noise value (or no noise value)",DisplayName:"Visual odometry yaw measurement noise",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},DQ={VTX_BAND:{Description:"Video Transmitter Band",DisplayName:"Video Transmitter Band",User:"Standard",Values:{0:"Band A",1:"Band B",2:"Band E",3:"Airwave",4:"RaceBand",5:"Low RaceBand"}},VTX_CHANNEL:{Description:"Video Transmitter Channel",DisplayName:"Video Transmitter Channel",Range:{high:"7",low:"0"},User:"Standard"},VTX_ENABLE:{Description:"Toggles the Video Transmitter on and off",DisplayName:"Is the Video Transmitter enabled or not",Values:{0:"Disable",1:"Enable"}},VTX_FREQ:{Description:"Video Transmitter Frequency. The frequency is derived from the setting of BAND and CHANNEL",DisplayName:"Video Transmitter Frequency",Range:{high:"6000",low:"5000"},ReadOnly:"True",User:"Standard"},VTX_MAX_POWER:{Description:"Video Transmitter Maximum Power Level. Different VTXs support different power levels, this prevents the power aux switch from requesting too high a power level. The switch supports 6 power levels and the selected power will be a subdivision between 0 and this setting.",DisplayName:"Video Transmitter Max Power Level",Range:{high:"1000",low:"25"}},VTX_OPTIONS:{Bitmask:{0:"Pitmode",1:"Pitmode until armed",2:"Pitmode when disarmed",3:"Unlocked",4:"Add leading zero byte to requests"},Description:"Video Transmitter Options. Pitmode puts the VTX in a low power state. Unlocked enables certain restricted frequencies and power levels. Do not enable the Unlocked option unless you have appropriate permissions in your jurisdiction to transmit at high power levels.",DisplayName:"Video Transmitter Options",User:"Advanced"},VTX_POWER:{Description:"Video Transmitter Power Level. Different VTXs support different power levels, the power level chosen will be rounded down to the nearest supported power level",DisplayName:"Video Transmitter Power Level",Range:{high:"1000",low:"1"}}},yQ={WENC2_CPR:{Description:"WheelEncoder 2 counts per full revolution of the wheel",DisplayName:"WheelEncoder 2 counts per revolution",Increment:"1",User:"Standard"},WENC2_PINA:{Description:"Second Encoder Input Pin A",DisplayName:"Second Encoder Input Pin A",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},WENC2_PINB:{Description:"Second Encoder Input Pin B",DisplayName:"Second Encoder Input Pin B",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},WENC2_POS_X:{Description:"X position of the center of the second wheel in body frame. Positive X is forward of the origin.",DisplayName:"Wheel2's X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Standard"},WENC2_POS_Y:{Description:"Y position of the center of the second wheel in body frame. Positive Y is to the right of the origin.",DisplayName:"Wheel2's Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Standard"},WENC2_POS_Z:{Description:"Z position of the center of the second wheel in body frame. Positive Z is down from the origin.",DisplayName:"Wheel2's Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Standard"},WENC2_RADIUS:{Description:"Wheel2's radius",DisplayName:"Wheel2's radius",Increment:"0.001",Units:"m",User:"Standard"},WENC2_TYPE:{Description:"What type of WheelEncoder sensor is connected",DisplayName:"Second WheelEncoder type",User:"Standard",Values:{0:"None",1:"Quadrature",10:"SITL Quadrature"}},WENC_CPR:{Description:"WheelEncoder counts per full revolution of the wheel",DisplayName:"WheelEncoder counts per revolution",Increment:"1",User:"Standard"},WENC_PINA:{Description:"Input Pin A",DisplayName:"Input Pin A",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},WENC_PINB:{Description:"Input Pin B",DisplayName:"Input Pin B",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},WENC_POS_X:{Description:"X position of the center of the wheel in body frame. Positive X is forward of the origin.",DisplayName:"Wheel's X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Standard"},WENC_POS_Y:{Description:"Y position of the center of the wheel in body frame. Positive Y is to the right of the origin.",DisplayName:"Wheel's Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Standard"},WENC_POS_Z:{Description:"Z position of the center of the wheel in body frame. Positive Z is down from the origin.",DisplayName:"Wheel's Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Standard"},WENC_RADIUS:{Description:"Wheel radius",DisplayName:"Wheel radius",Increment:"0.001",Units:"m",User:"Standard"},WENC_TYPE:{Description:"What type of WheelEncoder is connected",DisplayName:"WheelEncoder type",User:"Standard",Values:{0:"None",1:"Quadrature",10:"SITL Quadrature"}}},RQ={WNDVN_CAL:{Description:"Start wind vane calibration by setting this to 1 or 2",DisplayName:"Wind vane calibration start",User:"Standard",Values:{0:"None",1:"Calibrate direction",2:"Calibrate speed"}},WNDVN_DIR_DZ:{Description:"Wind vane deadzone when using analog sensor",DisplayName:"Wind vane deadzone when using analog sensor",Increment:"1",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},WNDVN_DIR_FILT:{Description:"apparent Wind vane direction low pass filter frequency, a value of -1 disables filter",DisplayName:"apparent Wind vane direction low pass filter frequency",Units:"Hz",User:"Standard"},WNDVN_DIR_OFS:{Description:"Angle offset when analog windvane is indicating a headwind, ie 0 degress relative to vehicle",DisplayName:"Wind vane headwind offset",Increment:"1",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},WNDVN_DIR_PIN:{Description:"Analog input pin to read as wind vane direction",DisplayName:"Wind vane analog voltage pin for direction",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS"}},WNDVN_DIR_V_MAX:{Description:"Maximum voltage supplied by analog wind vane. When using pin 103, the maximum value of the parameter is 3.3V.",DisplayName:"Wind vane voltage maximum",Increment:"0.01",Range:{high:"5.0",low:"0"},Units:"V",User:"Standard"},WNDVN_DIR_V_MIN:{Description:"Minimum voltage supplied by analog wind vane. When using pin 103, the maximum value of the parameter is 3.3V.",DisplayName:"Wind vane voltage minimum",Increment:"0.01",Range:{high:"5.0",low:"0"},Units:"V",User:"Standard"},WNDVN_SPEED_FILT:{Description:"apparent Wind speed low pass filter frequency, a value of -1 disables filter",DisplayName:"apparent wind speed low pass filter frequency",Units:"Hz",User:"Standard"},WNDVN_SPEED_MIN:{Description:"Wind vane direction will be ignored when apparent wind speeds are below this value (if wind speed sensor is present). If the apparent wind is consistently below this value the vane will not work",DisplayName:"Wind vane cut off wind speed",Increment:"0.1",Range:{high:"5",low:"0"},Units:"m/s",User:"Standard"},WNDVN_SPEED_OFS:{Description:"Wind sensor analog voltage offset at zero wind speed",DisplayName:"Wind speed sensor analog voltage offset",Increment:"0.01",Range:{high:"3.3",low:"0"},Units:"V",User:"Standard"},WNDVN_SPEED_PIN:{Description:"Wind speed analog speed input pin for Modern Devices Wind Sensor rev. p",DisplayName:"Wind vane speed sensor analog pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS"}},WNDVN_SPEED_TYPE:{Description:"Wind speed sensor type",DisplayName:"Wind speed sensor Type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"Airspeed library",2:"Modern Devices Wind Sensor",3:"RPM library",4:"NMEA",10:"SITL true",11:"SITL apparent"}},WNDVN_TEMP_PIN:{Description:"Wind speed sensor analog temp input pin for Modern Devices Wind Sensor rev. p, set to -1 to diasble temp readings",DisplayName:"Wind vane speed sensor analog temp pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS"}},WNDVN_TRUE_FILT:{Description:"True speed and direction low pass filter frequency, a value of -1 disables filter",DisplayName:"True speed and direction low pass filter frequency",Units:"Hz",User:"Standard"},WNDVN_TYPE:{Description:"Wind Vane type",DisplayName:"Wind Vane Type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"Heading when armed",2:"RC input offset heading when armed",3:"Analog",4:"NMEA",10:"SITL true",11:"SITL apparent"}}},bQ={WP_OVERSHOOT:{Description:"Waypoint overshoot maximum in meters. The vehicle will attempt to stay within this many meters of the track as it completes one waypoint and moves to the next.",DisplayName:"Waypoint overshoot maximum",Increment:"0.1",Range:{high:"10",low:"0"},Units:"m",User:"Standard"},WP_PIVOT_ANGLE:{Description:"Pivot when the difference between the vehicle's heading and its target heading is more than this many degrees. Set to zero to disable pivot turns. Note: This parameter should be greater than 10 degrees for pivot turns to work.",DisplayName:"Waypoint Pivot Angle",Increment:"1",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},WP_PIVOT_DELAY:{Description:"Waiting time after pivot turn",DisplayName:"Delay after pivot turn",Increment:"0.1",Range:{high:"60",low:"0"},Units:"s",User:"Standard"},WP_PIVOT_RATE:{Description:"Turn rate during pivot turns",DisplayName:"Waypoint Pivot Turn Rate",Increment:"1",Range:{high:"360",low:"0"},Units:"deg/s",User:"Standard"},WP_RADIUS:{Description:"The distance in meters from a waypoint when we consider the waypoint has been reached. This determines when the vehicle will turn toward the next waypoint.",DisplayName:"Waypoint radius",Increment:"0.1",Range:{high:"100",low:"0"},Units:"m",User:"Standard"},WP_SPEED:{Description:"Waypoint speed default",DisplayName:"Waypoint speed default",Increment:"0.1",Range:{high:"100",low:"0"},Units:"m/s",User:"Standard"},WP_SPEED_MIN:{Description:"Vehicle will not slow below this speed for corners. Should be set to boat's plane speed. Does not apply to pivot turns.",DisplayName:"Waypoint speed minimum",Increment:"0.1",Range:{high:"100",low:"0"},Units:"m/s",User:"Standard"}},NQ={WRC2_RATE_D:{Description:"Wheel rate control D gain. Compensates for short-term change in desired rate vs actual",DisplayName:"Wheel rate control D gain",Range:{high:"0.400",low:"0.000"},User:"Standard"},WRC2_RATE_FF:{Description:"Wheel rate control feed forward gain. Desired rate (in radians/sec) is multiplied by this constant and output to output (in the range -1 to +1)",DisplayName:"Wheel rate control feed forward gain",Range:{high:"2.000",low:"0.100"},User:"Standard"},WRC2_RATE_FILT:{Description:"Wheel rate control input filter. Lower values reduce noise but add delay.",DisplayName:"Wheel rate control filter frequency",Range:{high:"100.000",low:"1.000"},Units:"Hz",User:"Standard"},WRC2_RATE_FLTD:{Description:"Wheel rate control derivative frequency in Hz",DisplayName:"Wheel rate control derivative frequency in Hz",Increment:"1",Range:{high:"50",low:"1"},Units:"Hz",User:"Standard"},WRC2_RATE_FLTE:{Description:"Wheel rate control error frequency in Hz",DisplayName:"Wheel rate control error frequency in Hz",Increment:"1",Range:{high:"50",low:"1"},Units:"Hz",User:"Standard"},WRC2_RATE_FLTT:{Description:"Wheel rate control target frequency in Hz",DisplayName:"Wheel rate control target frequency in Hz",Increment:"1",Range:{high:"50",low:"1"},Units:"Hz",User:"Standard"},WRC2_RATE_I:{Description:"Wheel rate control I gain. Corrects long term error between the desired rate (in rad/s) and actual",DisplayName:"Wheel rate control I gain",Range:{high:"2.000",low:"0.000"},User:"Standard"},WRC2_RATE_IMAX:{Description:"Wheel rate control I gain maximum. Constrains the output (range -1 to +1) that the I term will generate",DisplayName:"Wheel rate control I gain maximum",Range:{high:"1.000",low:"0.000"},User:"Standard"},WRC2_RATE_P:{Description:"Wheel rate control P gain. Converts rate error (in radians/sec) to output (in the range -1 to +1)",DisplayName:"Wheel rate control P gain",Range:{high:"2.000",low:"0.100"},User:"Standard"},WRC2_RATE_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Wheel rate slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},WRC_ENABLE:{Description:"Enable or disable wheel rate control",DisplayName:"Wheel rate control enable/disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},WRC_RATE_D:{Description:"Wheel rate control D gain. Compensates for short-term change in desired rate vs actual",DisplayName:"Wheel rate control D gain",Range:{high:"0.400",low:"0.000"},User:"Standard"},WRC_RATE_FF:{Description:"Wheel rate control feed forward gain. Desired rate (in radians/sec) is multiplied by this constant and output to output (in the range -1 to +1)",DisplayName:"Wheel rate control feed forward gain",Range:{high:"2.000",low:"0.100"},User:"Standard"},WRC_RATE_FILT:{Description:"Wheel rate control input filter. Lower values reduce noise but add delay.",DisplayName:"Wheel rate control filter frequency",Range:{high:"100.000",low:"1.000"},Units:"Hz",User:"Standard"},WRC_RATE_FLTD:{Description:"Wheel rate control derivative frequency in Hz",DisplayName:"Wheel rate control derivative frequency in Hz",Increment:"1",Range:{high:"50",low:"1"},Units:"Hz",User:"Standard"},WRC_RATE_FLTE:{Description:"Wheel rate control error frequency in Hz",DisplayName:"Wheel rate control error frequency in Hz",Increment:"1",Range:{high:"50",low:"1"},Units:"Hz",User:"Standard"},WRC_RATE_FLTT:{Description:"Wheel rate control target frequency in Hz",DisplayName:"Wheel rate control target frequency in Hz",Increment:"1",Range:{high:"50",low:"1"},Units:"Hz",User:"Standard"},WRC_RATE_I:{Description:"Wheel rate control I gain. Corrects long term error between the desired rate (in rad/s) and actual",DisplayName:"Wheel rate control I gain",Range:{high:"2.000",low:"0.000"},User:"Standard"},WRC_RATE_IMAX:{Description:"Wheel rate control I gain maximum. Constrains the output (range -1 to +1) that the I term will generate",DisplayName:"Wheel rate control I gain maximum",Range:{high:"1.000",low:"0.000"},User:"Standard"},WRC_RATE_MAX:{Description:"Wheel max rotation rate",DisplayName:"Wheel max rotation rate",Range:{high:"200",low:"0"},Units:"rad/s",User:"Standard"},WRC_RATE_P:{Description:"Wheel rate control P gain. Converts rate error (in radians/sec) to output (in the range -1 to +1)",DisplayName:"Wheel rate control P gain",Range:{high:"2.000",low:"0.100"},User:"Standard"},WRC_RATE_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Wheel rate slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"}},wQ={version:0},pB1={AFS_:cq,AHRS_:dq,AIS_:Cq,ARMING_:mq,ARSPD:uq,ATC:hq,AVOID_:pq,BARO:fq,BARO1_WCF_:Vq,BARO2_WCF_:Lq,BARO3_WCF_:Hq,BATT2_:Mq,BATT3_:gq,BATT4_:Aq,BATT5_:vq,BATT6_:_q,BATT7_:Sq,BATT8_:Dq,BATT9_:yq,BATT_:Rq,BCN:bq,BRD_:Nq,BRD_RADIO:wq,BRD_RTC:Tq,BTN_:Eq,CAM_:Pq,CAM_RC_:Iq,CAN_:Oq,CAN_D1_:Uq,CAN_D1_KDE_:xq,CAN_D1_PC_:Fq,CAN_D1_TST_:kq,CAN_D1_UC_:Bq,CAN_D2_:zq,CAN_D2_KDE_:Zq,CAN_D2_PC_:Gq,CAN_D2_TST_:Wq,CAN_D2_UC_:Xq,CAN_D3_:Yq,CAN_D3_KDE_:$q,CAN_D3_PC_:qq,CAN_D3_TST_:Kq,CAN_D3_UC_:jq,CAN_P1_:Qq,CAN_P2_:Jq,CAN_P3_:eK,CAN_SLCAN_:tK,COMPASS_:iK,COMPASS_PMOT:aK,DID_:rK,EAHRS:nK,EFI:oK,EK2_:sK,EK3_:lK,EK3_SRC:cK,FENCE_:dK,FFT_:CK,FOLL:mK,FRSKY_:uK,GEN_:hK,GPS:pK,GPS_MB1_:fK,GPS_MB2_:VK,GRIP_:LK,INS_:HK,INS_HNTC2_:MK,INS_HNTCH_:gK,INS_LOG_:AK,INS_TCAL1_:vK,INS_TCAL2_:_K,INS_TCAL3_:SK,LOG:DK,MIS_:yK,MNT:RK,MOT_:bK,MSP:NK,NAVL1_:wK,NTF_:TK,OA_:EK,OA_BR_:PK,OA_DB_:IK,OSD:OK,OSD1_:UK,OSD2_:xK,OSD3_:FK,OSD4_:kK,OSD5_:BK,OSD5_PARAM1:zK,OSD5_PARAM2:ZK,OSD5_PARAM3:GK,OSD5_PARAM4:WK,OSD5_PARAM5:XK,OSD5_PARAM6:YK,OSD5_PARAM7:$K,OSD5_PARAM8:qK,OSD5_PARAM9:KK,OSD6_:jK,OSD6_PARAM1:QK,OSD6_PARAM2:JK,OSD6_PARAM3:ej,OSD6_PARAM4:tj,OSD6_PARAM5:ij,OSD6_PARAM6:aj,OSD6_PARAM7:rj,OSD6_PARAM8:nj,OSD6_PARAM9:oj,PRX:sj,RALLY_:lj,RC:cj,RC10_:dj,RC11_:Cj,RC12_:mj,RC13_:uj,RC14_:hj,RC15_:pj,RC16_:fj,RC1_:Vj,RC2_:Lj,RC3_:Hj,RC4_:Mj,RC5_:gj,RC6_:Aj,RC7_:vj,RC8_:_j,RC9_:Sj,RCMAP_:Dj,RELAY_:yj,RNGFND1_:Rj,RNGFND2_:bj,RNGFND3_:Nj,RNGFND4_:wj,RNGFND5_:Tj,RNGFND6_:Ej,RNGFND7_:Pj,RNGFND8_:Ij,RNGFND9_:Oj,RNGFNDA_:Uj,RPM1_:xj,RPM2_:Fj,RSSI_:kj,Rover:Bj,SAIL_:zj,SCHED_:Zj,SCR_:Gj,SERIAL:Wj,SERVO:Xj,SERVO10_:Yj,SERVO11_:$j,SERVO12_:qj,SERVO13_:Kj,SERVO14_:jj,SERVO15_:Qj,SERVO16_:Jj,SERVO1_:eQ,SERVO2_:tQ,SERVO3_:iQ,SERVO4_:aQ,SERVO5_:rQ,SERVO6_:nQ,SERVO7_:oQ,SERVO8_:sQ,SERVO9_:lQ,SERVO_BLH_:cQ,SERVO_FTW_:dQ,SERVO_ROB_:CQ,SERVO_SBUS_:mQ,SERVO_VOLZ_:uQ,SPRAY_:hQ,SR0_:pQ,SR1_:fQ,SR2_:VQ,SR3_:LQ,SR4_:HQ,SR5_:MQ,SR6_:gQ,SRTL_:AQ,STAT:vQ,TRQD_:_Q,VISO:SQ,VTX_:DQ,WENC:yQ,WNDVN_:RQ,WP_:bQ,WRC:NQ,json:wQ},fB1=Object.freeze(Object.defineProperty({__proto__:null,AFS_:cq,AHRS_:dq,AIS_:Cq,ARMING_:mq,ARSPD:uq,ATC:hq,AVOID_:pq,BARO:fq,BARO1_WCF_:Vq,BARO2_WCF_:Lq,BARO3_WCF_:Hq,BATT2_:Mq,BATT3_:gq,BATT4_:Aq,BATT5_:vq,BATT6_:_q,BATT7_:Sq,BATT8_:Dq,BATT9_:yq,BATT_:Rq,BCN:bq,BRD_:Nq,BRD_RADIO:wq,BRD_RTC:Tq,BTN_:Eq,CAM_:Pq,CAM_RC_:Iq,CAN_:Oq,CAN_D1_:Uq,CAN_D1_KDE_:xq,CAN_D1_PC_:Fq,CAN_D1_TST_:kq,CAN_D1_UC_:Bq,CAN_D2_:zq,CAN_D2_KDE_:Zq,CAN_D2_PC_:Gq,CAN_D2_TST_:Wq,CAN_D2_UC_:Xq,CAN_D3_:Yq,CAN_D3_KDE_:$q,CAN_D3_PC_:qq,CAN_D3_TST_:Kq,CAN_D3_UC_:jq,CAN_P1_:Qq,CAN_P2_:Jq,CAN_P3_:eK,CAN_SLCAN_:tK,COMPASS_:iK,COMPASS_PMOT:aK,DID_:rK,EAHRS:nK,EFI:oK,EK2_:sK,EK3_:lK,EK3_SRC:cK,FENCE_:dK,FFT_:CK,FOLL:mK,FRSKY_:uK,GEN_:hK,GPS:pK,GPS_MB1_:fK,GPS_MB2_:VK,GRIP_:LK,INS_:HK,INS_HNTC2_:MK,INS_HNTCH_:gK,INS_LOG_:AK,INS_TCAL1_:vK,INS_TCAL2_:_K,INS_TCAL3_:SK,LOG:DK,MIS_:yK,MNT:RK,MOT_:bK,MSP:NK,NAVL1_:wK,NTF_:TK,OA_:EK,OA_BR_:PK,OA_DB_:IK,OSD:OK,OSD1_:UK,OSD2_:xK,OSD3_:FK,OSD4_:kK,OSD5_:BK,OSD5_PARAM1:zK,OSD5_PARAM2:ZK,OSD5_PARAM3:GK,OSD5_PARAM4:WK,OSD5_PARAM5:XK,OSD5_PARAM6:YK,OSD5_PARAM7:$K,OSD5_PARAM8:qK,OSD5_PARAM9:KK,OSD6_:jK,OSD6_PARAM1:QK,OSD6_PARAM2:JK,OSD6_PARAM3:ej,OSD6_PARAM4:tj,OSD6_PARAM5:ij,OSD6_PARAM6:aj,OSD6_PARAM7:rj,OSD6_PARAM8:nj,OSD6_PARAM9:oj,PRX:sj,RALLY_:lj,RC:cj,RC10_:dj,RC11_:Cj,RC12_:mj,RC13_:uj,RC14_:hj,RC15_:pj,RC16_:fj,RC1_:Vj,RC2_:Lj,RC3_:Hj,RC4_:Mj,RC5_:gj,RC6_:Aj,RC7_:vj,RC8_:_j,RC9_:Sj,RCMAP_:Dj,RELAY_:yj,RNGFND1_:Rj,RNGFND2_:bj,RNGFND3_:Nj,RNGFND4_:wj,RNGFND5_:Tj,RNGFND6_:Ej,RNGFND7_:Pj,RNGFND8_:Ij,RNGFND9_:Oj,RNGFNDA_:Uj,RPM1_:xj,RPM2_:Fj,RSSI_:kj,Rover:Bj,SAIL_:zj,SCHED_:Zj,SCR_:Gj,SERIAL:Wj,SERVO:Xj,SERVO10_:Yj,SERVO11_:$j,SERVO12_:qj,SERVO13_:Kj,SERVO14_:jj,SERVO15_:Qj,SERVO16_:Jj,SERVO1_:eQ,SERVO2_:tQ,SERVO3_:iQ,SERVO4_:aQ,SERVO5_:rQ,SERVO6_:nQ,SERVO7_:oQ,SERVO8_:sQ,SERVO9_:lQ,SERVO_BLH_:cQ,SERVO_FTW_:dQ,SERVO_ROB_:CQ,SERVO_SBUS_:mQ,SERVO_VOLZ_:uQ,SPRAY_:hQ,SR0_:pQ,SR1_:fQ,SR2_:VQ,SR3_:LQ,SR4_:HQ,SR5_:MQ,SR6_:gQ,SRTL_:AQ,STAT:vQ,TRQD_:_Q,VISO:SQ,VTX_:DQ,WENC:yQ,WNDVN_:RQ,WP_:bQ,WRC:NQ,json:wQ,default:pB1},Symbol.toStringTag,{value:"Module"}));var TQ=(e=>(e[e.PRE_FLIGHT=-1]="PRE_FLIGHT",e[e.MANUAL=0]="MANUAL",e[e.ACRO=1]="ACRO",e[e.STEERING=3]="STEERING",e[e.HOLD=4]="HOLD",e[e.LOITER=5]="LOITER",e[e.FOLLOW=6]="FOLLOW",e[e.SIMPLE=7]="SIMPLE",e[e.DOCK=8]="DOCK",e[e.AUTO=10]="AUTO",e[e.RTL=11]="RTL",e[e.SMART_RTL=12]="SMART_RTL",e[e.GUIDED=15]="GUIDED",e[e.INITIALISING=16]="INITIALISING",e))(TQ||{});class VB1 extends jC{constructor(i){super(a0.Rover,i);S1(this,"_mode",-1);S1(this,"_metadata",fB1)}mode(){return this._mode}modesAvailable(){const i=new Map;return Object.entries(TQ).filter(([a])=>isNaN(Number(a))).forEach(([a,r])=>{i.set(a,r)}),i}onMAVLinkPackage(i){switch(i.message.type){case se.HEARTBEAT:{const a=i.message;if(a.base_mode.bits===0){this._mode=-1,this.onMode.emit();return}if(!(a.base_mode.bits&_n.MAV_MODE_FLAG_CUSTOM_MODE_ENABLED)){console.log(`no custom: ${JSON.stringify(a.base_mode)}`);return}this._mode=a.custom_mode,this.onMode.emit()}}}}const EQ={AHRS_COMP_BETA:{Description:"This controls the time constant for the cross-over frequency used to fuse AHRS (airspeed and heading) and GPS data to estimate ground velocity. Time constant is 0.1/beta. A larger time constant will use GPS data less and a small time constant will use air data less.",DisplayName:"AHRS Velocity Complementary Filter Beta Coefficient",Increment:".01",Range:{high:"0.5",low:"0.001"},User:"Advanced"},AHRS_CUSTOM_PIT:{Description:"Autopilot mounting position pitch offset. Positive values = pitch up, negative values = pitch down. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation pitch offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_CUSTOM_ROLL:{Description:"Autopilot mounting position roll offset. Positive values = roll right, negative values = roll left. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation roll offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_CUSTOM_YAW:{Description:"Autopilot mounting position yaw offset. Positive values = yaw right, negative values = yaw left. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation yaw offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_EKF_TYPE:{Description:"This controls which NavEKF Kalman filter version is used for attitude and position estimation",DisplayName:"Use NavEKF Kalman filter for attitude and position estimation",User:"Advanced",Values:{0:"Disabled",2:"Enable EKF2",3:"Enable EKF3",11:"ExternalAHRS"}},AHRS_GPS_GAIN:{Description:"This controls how much to use the GPS to correct the attitude. This should never be set to zero for a plane as it would result in the plane losing control in turns. For a plane please use the default value of 1.0.",DisplayName:"AHRS GPS gain",Increment:".01",Range:{high:"1.0",low:"0.0"},User:"Advanced"},AHRS_GPS_MINSATS:{Description:"Minimum number of satellites visible to use GPS for velocity based corrections attitude correction. This defaults to 6, which is about the point at which the velocity numbers from a GPS become too unreliable for accurate correction of the accelerometers.",DisplayName:"AHRS GPS Minimum satellites",Increment:"1",Range:{high:"10",low:"0"},User:"Advanced"},AHRS_GPS_USE:{Description:"This controls whether to use dead-reckoning or GPS based navigation. If set to 0 then the GPS won't be used for navigation, and only dead reckoning will be used. A value of zero should never be used for normal flight. Currently this affects only the DCM-based AHRS: the EKF uses GPS whenever it is available.",DisplayName:"AHRS use GPS for navigation",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},AHRS_ORIENTATION:{Description:"Overall board orientation relative to the standard orientation for the board type. This rotates the IMU and compass readings to allow the board to be oriented in your vehicle at any 90 or 45 degree angle. This option takes affect on next boot. After changing you will need to re-level your vehicle.",DisplayName:"Board Orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Roll180Yaw45",10:"Roll180Yaw90",11:"Roll180Yaw135",12:"Pitch180",13:"Roll180Yaw225",14:"Roll180Yaw270",15:"Roll180Yaw315",16:"Roll90",17:"Roll90Yaw45",18:"Roll90Yaw90",19:"Roll90Yaw135",20:"Roll270",21:"Roll270Yaw45",22:"Roll270Yaw90",23:"Roll270Yaw135",24:"Pitch90",25:"Pitch270",26:"Pitch180Yaw90",27:"Pitch180Yaw270",28:"Roll90Pitch90",29:"Roll180Pitch90",30:"Roll270Pitch90",31:"Roll90Pitch180",32:"Roll270Pitch180",33:"Roll90Pitch270",34:"Roll180Pitch270",35:"Roll270Pitch270",36:"Roll90Pitch180Yaw90",37:"Roll90Yaw270",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Roll90Pitch315",100:"Custom"}},AHRS_RP_P:{Description:"This controls how fast the accelerometers correct the attitude",DisplayName:"AHRS RP_P",Increment:".01",Range:{high:"0.4",low:"0.1"},User:"Advanced"},AHRS_TRIM_X:{Description:"Compensates for the roll angle difference between the control board and the frame. Positive values make the vehicle roll right.",DisplayName:"AHRS Trim Roll",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Standard"},AHRS_TRIM_Y:{Description:"Compensates for the pitch angle difference between the control board and the frame. Positive values make the vehicle pitch up/back.",DisplayName:"AHRS Trim Pitch",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Standard"},AHRS_TRIM_Z:{Description:"Not Used",DisplayName:"AHRS Trim Yaw",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Advanced"},AHRS_WIND_MAX:{Description:"This sets the maximum allowable difference between ground speed and airspeed. This allows the plane to cope with a failing airspeed sensor. A value of zero means to use the airspeed as is. See ARSPD_OPTIONS and ARSPD_MAX_WIND to disable airspeed sensors.",DisplayName:"Maximum wind",Increment:"1",Range:{high:"127",low:"0"},Units:"m/s",User:"Advanced"},AHRS_YAW_P:{Description:"This controls the weight the compass or GPS has on the heading. A higher value means the heading will track the yaw source (GPS or compass) more rapidly.",DisplayName:"Yaw P",Increment:".01",Range:{high:"0.4",low:"0.1"},User:"Advanced"}},PQ={ARMING_ACCTHRESH:{Description:"Accelerometer error threshold used to determine inconsistent accelerometers. Compares this error range to other accelerometers to detect a hardware or calibration error. Lower value means tighter check and harder to pass arming check. Not all accelerometers are created equal.",DisplayName:"Accelerometer error threshold",Range:{high:"3.0",low:"0.25"},Units:"m/s/s",User:"Advanced"},ARMING_CHECK:{Bitmask:{0:"All",1:"Barometer",2:"Compass",3:"GPS lock",4:"INS",5:"Parameters",6:"RC Channels",7:"Board voltage",8:"Battery Level",10:"Logging Available",11:"Hardware safety switch",12:"GPS Configuration",13:"System",14:"Mission",15:"Rangefinder",16:"Camera",17:"AuxAuth",18:"VisualOdometry",19:"FFT"},Description:"Checks prior to arming motor. This is a bitmask of checks that will be performed before allowing arming. For most users it is recommended to leave this at the default of 1 (all checks enabled). You can select whatever checks you prefer by adding together the values of each check type to set this parameter. For example, to only allow arming when you have GPS lock and no RC failsafe you would set ARMING_CHECK to 72.",DisplayName:"Arm Checks to Perform (bitmask)",User:"Standard"},ARMING_MIS_ITEMS:{Bitmask:{0:"Land",1:"VTOL Land",2:"DO_LAND_START",3:"Takeoff",4:"VTOL Takeoff",5:"Rallypoint"},Description:"Bitmask of mission items that are required to be planned in order to arm the aircraft",DisplayName:"Required mission items",User:"Advanced"},ARMING_RUDDER:{Description:"Allow arm/disarm by rudder input. When enabled arming can be done with right rudder, disarming with left rudder. Rudder arming only works in manual throttle modes with throttle at zero +- deadzone (RCx_DZ)",DisplayName:"Arming with Rudder enable/disable",User:"Advanced",Values:{0:"Disabled",1:"ArmingOnly",2:"ArmOrDisarm"}}},IQ={ARSPD2_AUTOCAL:{Description:"If this is enabled then the autopilot will automatically adjust the ARSPD_RATIO during flight, based upon an estimation filter using ground speed and true airspeed. The automatic calibration will save the new ratio to EEPROM every 2 minutes if it changes by more than 5%. This option should be enabled for a calibration flight then disabled again when calibration is complete. Leaving it enabled all the time is not recommended.",DisplayName:"Automatic airspeed ratio calibration for 2nd airspeed sensor",User:"Advanced"},ARSPD2_BUS:{Description:"The bus number of the I2C bus to look for the sensor on",DisplayName:"Airspeed I2C bus for 2nd sensor",User:"Advanced",Values:{0:"Bus0(internal)",1:"Bus1(external)",2:"Bus2(auxillary)"}},ARSPD2_OFFSET:{Description:"Airspeed calibration offset",DisplayName:"Airspeed offset for 2nd airspeed sensor",Increment:"0.1",User:"Advanced"},ARSPD2_PIN:{Description:"Pin number indicating location of analog airspeed sensors. Pixhawk/Cube if set to 15. ",DisplayName:"Airspeed pin for 2nd airspeed sensor",User:"Advanced"},ARSPD2_PSI_RANGE:{Description:"This parameter allows you to to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",DisplayName:"The PSI range of the device for 2nd sensor",User:"Advanced"},ARSPD2_RATIO:{Description:"Airspeed calibration ratio",DisplayName:"Airspeed ratio for 2nd airspeed sensor",Increment:"0.1",User:"Advanced"},ARSPD2_SKIP_CAL:{Description:"This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",DisplayName:"Skip airspeed calibration on startup for 2nd sensor",User:"Advanced",Values:{0:"Disable",1:"Enable"}},ARSPD2_TUBE_ORDR:{Description:"This parameter allows you to control whether the order in which the tubes are attached to your pitot tube matters. If you set this to 0 then the top connector on the sensor needs to be the dynamic pressure. If set to 1 then the bottom connector needs to be the dynamic pressure. If set to 2 (the default) then the airspeed driver will accept either order. The reason you may wish to specify the order is it will allow your airspeed sensor to detect if the aircraft it receiving excessive pressure on the static port, which would otherwise be seen as a positive airspeed.",DisplayName:"Control pitot tube order of 2nd airspeed sensor",User:"Advanced"},ARSPD2_TYPE:{Description:"Type of 2nd airspeed sensor",DisplayName:"Second Airspeed type",User:"Standard",Values:{0:"None",1:"I2C-MS4525D0",2:"Analog",3:"I2C-MS5525",4:"I2C-MS5525 (0x76)",5:"I2C-MS5525 (0x77)",6:"I2C-SDP3X",7:"I2C-DLVR-5in",8:"UAVCAN",9:"I2C-DLVR-10in",10:"I2C-DLVR-20in",11:"I2C-DLVR-30in",12:"I2C-DLVR-60in",13:"NMEA water speed",14:"MSP",15:"ASP5033"}},ARSPD2_USE:{Description:"use airspeed for flight control. When set to 0 airspeed sensor can be logged and displayed on a GCS but won't be used for flight. When set to 1 it will be logged and used. When set to 2 it will be only used when the throttle is zero, which can be useful in gliders with airspeed sensors behind a propeller",DisplayName:"Enable use of 2nd airspeed sensor",User:"Standard",Values:{0:"Don't Use",1:"use",2:"UseWhenZeroThrottle"}},ARSPD_AUTOCAL:{Description:"Enables automatic adjustment of ARSPD_RATIO during a calibration flight based on estimation of ground speed and true airspeed. New ratio saved every 2 minutes if change is > 5%. Should not be left enabled.",DisplayName:"Automatic airspeed ratio calibration",User:"Advanced"},ARSPD_BUS:{Description:"Bus number of the I2C bus where the airspeed sensor is connected",DisplayName:"Airspeed I2C bus",User:"Advanced",Values:{0:"Bus0(internal)",1:"Bus1(external)",2:"Bus2(auxillary)"}},ARSPD_OFFSET:{Description:"Airspeed calibration offset",DisplayName:"Airspeed offset",Increment:"0.1",User:"Advanced"},ARSPD_OPTIONS:{Bitmask:{0:"Disable sensor",1:"Re-enable sensor"},Description:"Bitmask of options to use with airspeed. Disable and/or re-enable sensor based on the difference between airspeed and ground speed based on ARSPD_WIND_MAX threshold, if set",DisplayName:"Airspeed options bitmask",User:"Advanced"},ARSPD_PIN:{Description:"The pin number that the airspeed sensor is connected to for analog sensors. Set to 15 on the Pixhawk for the analog airspeed port. ",DisplayName:"Airspeed pin",User:"Advanced"},ARSPD_PRIMARY:{Description:"This selects which airspeed sensor will be the primary if multiple sensors are found",DisplayName:"Primary airspeed sensor",User:"Advanced",Values:{0:"FirstSensor",1:"2ndSensor"}},ARSPD_PSI_RANGE:{Description:"This parameter allows you to to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",DisplayName:"The PSI range of the device",User:"Advanced"},ARSPD_RATIO:{Description:"Calibrates pitot tube pressure to velocity. Increasing this value will indicate a higher airspeed at any given dynamic pressure.",DisplayName:"Airspeed ratio",Increment:"0.1",User:"Advanced"},ARSPD_SKIP_CAL:{Description:"This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",DisplayName:"Skip airspeed calibration on startup",User:"Advanced",Values:{0:"Disable",1:"Enable"}},ARSPD_TUBE_ORDER:{Description:"Changes the pitot tube order to specify the dynamic pressure side of the sensor. Accepts either if set to 2. Accepts only one side if set to 0 or 1 and can help detect excessive pressure on the static port without indicating positive airspeed.",DisplayName:"Control pitot tube order",User:"Advanced"},ARSPD_TYPE:{Description:"Type of airspeed sensor",DisplayName:"Airspeed type",User:"Standard",Values:{0:"None",1:"I2C-MS4525D0",2:"Analog",3:"I2C-MS5525",4:"I2C-MS5525 (0x76)",5:"I2C-MS5525 (0x77)",6:"I2C-SDP3X",7:"I2C-DLVR-5in",8:"UAVCAN",9:"I2C-DLVR-10in",10:"I2C-DLVR-20in",11:"I2C-DLVR-30in",12:"I2C-DLVR-60in",13:"NMEA water speed",14:"MSP",15:"ASP5033"}},ARSPD_USE:{Description:"Enables airspeed use for automatic throttle modes and replaces control from THR_TRIM. Continues to display and log airspeed if set to 0. Uses airspeed for control if set to 1. Only uses airspeed when throttle = 0 if set to 2 (useful for gliders with airspeed sensors behind propellers).",DisplayName:"Airspeed use",User:"Standard",Values:{0:"DoNotUse",1:"Use",2:"UseWhenZeroThrottle"}},ARSPD_WIND_MAX:{Description:"If the difference between airspeed and ground speed is greater than this value the sensor will be marked unhealthy. Using ARSPD_OPTION this health value can be used to disable the sensor.",DisplayName:"Maximum airspeed and ground speed difference",Units:"m/s",User:"Advanced"},ARSPD_WIND_WARN:{Description:"If the difference between airspeed and ground speed is greater than this value the sensor will issue a warning. If 0 ARSPD_WIND_MAX is used.",DisplayName:"Airspeed and ground speed difference that gives a warning",Units:"m/s",User:"Advanced"}},OQ={ATC_ACCEL_P_MAX:{Description:"Maximum acceleration in pitch axis",DisplayName:"Acceleration Max for Pitch",Increment:"1000",Range:{high:"180000",low:"0"},Units:"cdeg/s/s",User:"Advanced",Values:{0:"Disabled",3e4:"VerySlow",72e3:"Slow",108e3:"Medium",162e3:"Fast"}},ATC_ACCEL_R_MAX:{Description:"Maximum acceleration in roll axis",DisplayName:"Acceleration Max for Roll",Increment:"1000",Range:{high:"180000",low:"0"},Units:"cdeg/s/s",User:"Advanced",Values:{0:"Disabled",3e4:"VerySlow",72e3:"Slow",108e3:"Medium",162e3:"Fast"}},ATC_ACCEL_Y_MAX:{Description:"Maximum acceleration in yaw axis",DisplayName:"Acceleration Max for Yaw",Increment:"1000",Range:{high:"72000",low:"0"},Units:"cdeg/s/s",User:"Advanced",Values:{0:"Disabled",9e3:"VerySlow",18e3:"Slow",36e3:"Medium",54e3:"Fast"}},ATC_ANGLE_BOOST:{Description:"Angle Boost increases output throttle as the vehicle leans to reduce loss of altitude",DisplayName:"Angle Boost",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},ATC_ANG_LIM_TC:{Description:"Angle Limit (to maintain altitude) Time Constant",DisplayName:"Angle Limit (to maintain altitude) Time Constant",Range:{high:"10.0",low:"0.5"},User:"Advanced"},ATC_ANG_PIT_P:{Description:"Pitch axis angle controller P gain. Converts the error between the desired pitch angle and actual angle to a desired pitch rate",DisplayName:"Pitch axis angle controller P gain",Range:{high:"12.000",low:"0.0"},User:"Standard"},ATC_ANG_RLL_P:{Description:"Roll axis angle controller P gain. Converts the error between the desired roll angle and actual angle to a desired roll rate",DisplayName:"Roll axis angle controller P gain",Range:{high:"12.000",low:"0.0"},User:"Standard"},ATC_ANG_YAW_P:{Description:"Yaw axis angle controller P gain. Converts the error between the desired yaw angle and actual angle to a desired yaw rate",DisplayName:"Yaw axis angle controller P gain",Range:{high:"6.000",low:"0.0"},User:"Standard"},ATC_INPUT_TC:{Description:"Attitude control input time constant. Low numbers lead to sharper response, higher numbers to softer response",DisplayName:"Attitude control input time constant",Increment:"0.01",Range:{high:"1",low:"0"},Units:"s",User:"Standard",Values:{"0.05":"Very Crisp","0.1":"Crisp","0.15":"Medium","0.2":"Soft","0.5":"Very Soft"}},ATC_RATE_FF_ENAB:{Description:"Controls whether body-frame rate feedfoward is enabled or disabled",DisplayName:"Rate Feedforward Enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},ATC_RATE_P_MAX:{Description:"Maximum angular velocity in pitch axis",DisplayName:"Angular Velocity Max for Pitch",Increment:"1",Range:{high:"1080",low:"0"},Units:"deg/s",User:"Advanced",Values:{0:"Disabled",360:"Slow",720:"Medium",1080:"Fast"}},ATC_RATE_R_MAX:{Description:"Maximum angular velocity in roll axis",DisplayName:"Angular Velocity Max for Roll",Increment:"1",Range:{high:"1080",low:"0"},Units:"deg/s",User:"Advanced",Values:{0:"Disabled",360:"Slow",720:"Medium",1080:"Fast"}},ATC_RATE_Y_MAX:{Description:"Maximum angular velocity in yaw axis",DisplayName:"Angular Velocity Max for Yaw",Increment:"1",Range:{high:"1080",low:"0"},Units:"deg/s",User:"Advanced",Values:{0:"Disabled",360:"Slow",720:"Medium",1080:"Fast"}},ATC_RAT_PIT_D:{Description:"Pitch axis rate controller D gain. Compensates for short-term change in desired pitch rate vs actual pitch rate",DisplayName:"Pitch axis rate controller D gain",Increment:"0.001",Range:{high:"0.02",low:"0.0"},User:"Standard"},ATC_RAT_PIT_FF:{Description:"Pitch axis rate controller feed forward",DisplayName:"Pitch axis rate controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0"},User:"Standard"},ATC_RAT_PIT_FILT:{Description:"Pitch axis rate controller input frequency in Hz",DisplayName:"Pitch axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_PIT_FLTD:{Description:"Pitch axis rate controller input frequency in Hz",DisplayName:"Pitch axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_PIT_FLTE:{Description:"Pitch axis rate controller input frequency in Hz",DisplayName:"Pitch axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_PIT_FLTT:{Description:"Pitch axis rate controller input frequency in Hz",DisplayName:"Pitch axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_PIT_I:{Description:"Pitch axis rate controller I gain. Corrects long-term difference in desired pitch rate vs actual pitch rate",DisplayName:"Pitch axis rate controller I gain",Increment:"0.01",Range:{high:"0.5",low:"0.0"},User:"Standard"},ATC_RAT_PIT_IMAX:{Description:"Pitch axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Pitch axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},ATC_RAT_PIT_P:{Description:"Pitch axis rate controller P gain. Converts the difference between desired pitch rate and actual pitch rate into a motor speed output",DisplayName:"Pitch axis rate controller P gain",Increment:"0.005",Range:{high:"0.30",low:"0.0"},User:"Standard"},ATC_RAT_PIT_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Pitch slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},ATC_RAT_RLL_D:{Description:"Roll axis rate controller D gain. Compensates for short-term change in desired roll rate vs actual roll rate",DisplayName:"Roll axis rate controller D gain",Increment:"0.001",Range:{high:"0.02",low:"0.0"},User:"Standard"},ATC_RAT_RLL_FF:{Description:"Roll axis rate controller feed forward",DisplayName:"Roll axis rate controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0"},User:"Standard"},ATC_RAT_RLL_FILT:{Description:"Roll axis rate controller input frequency in Hz",DisplayName:"Roll axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_RLL_FLTD:{Description:"Roll axis rate controller input frequency in Hz",DisplayName:"Roll axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_RLL_FLTE:{Description:"Roll axis rate controller input frequency in Hz",DisplayName:"Roll axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_RLL_FLTT:{Description:"Roll axis rate controller input frequency in Hz",DisplayName:"Roll axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_RLL_I:{Description:"Roll axis rate controller I gain. Corrects long-term difference in desired roll rate vs actual roll rate",DisplayName:"Roll axis rate controller I gain",Increment:"0.01",Range:{high:"0.5",low:"0.0"},User:"Standard"},ATC_RAT_RLL_IMAX:{Description:"Roll axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Roll axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},ATC_RAT_RLL_P:{Description:"Roll axis rate controller P gain. Converts the difference between desired roll rate and actual roll rate into a motor speed output",DisplayName:"Roll axis rate controller P gain",Increment:"0.005",Range:{high:"0.30",low:"0.0"},User:"Standard"},ATC_RAT_RLL_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Roll slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},ATC_RAT_YAW_D:{Description:"Yaw axis rate controller D gain. Compensates for short-term change in desired yaw rate vs actual yaw rate",DisplayName:"Yaw axis rate controller D gain",Increment:"0.001",Range:{high:"0.02",low:"0.000"},User:"Standard"},ATC_RAT_YAW_FF:{Description:"Yaw axis rate controller feed forward",DisplayName:"Yaw axis rate controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0"},User:"Standard"},ATC_RAT_YAW_FILT:{Description:"Yaw axis rate controller input frequency in Hz",DisplayName:"Yaw axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_YAW_FLTD:{Description:"Yaw axis rate controller input frequency in Hz",DisplayName:"Yaw axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_YAW_FLTE:{Description:"Yaw axis rate controller input frequency in Hz",DisplayName:"Yaw axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_YAW_FLTT:{Description:"Yaw axis rate controller input frequency in Hz",DisplayName:"Yaw axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_YAW_I:{Description:"Yaw axis rate controller I gain. Corrects long-term difference in desired yaw rate vs actual yaw rate",DisplayName:"Yaw axis rate controller I gain",Increment:"0.01",Range:{high:"0.05",low:"0.0"},User:"Standard"},ATC_RAT_YAW_IMAX:{Description:"Yaw axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Yaw axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},ATC_RAT_YAW_P:{Description:"Yaw axis rate controller P gain. Converts the difference between desired yaw rate and actual yaw rate into a motor speed output",DisplayName:"Yaw axis rate controller P gain",Increment:"0.005",Range:{high:"0.50",low:"0.0"},User:"Standard"},ATC_RAT_YAW_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Yaw slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},ATC_SLEW_YAW:{Description:"Maximum rate the yaw target can be updated in Loiter, RTL, Auto flight modes",DisplayName:"Yaw target slew rate",Increment:"100",Range:{high:"18000",low:"500"},Units:"cdeg/s",User:"Advanced"},ATC_THR_MIX_MAN:{Description:"Throttle vs attitude control prioritisation used during manual flight (higher values mean we prioritise attitude control over throttle)",DisplayName:"Throttle Mix Manual",Range:{high:"0.9",low:"0.5"},User:"Advanced"},ATC_THR_MIX_MAX:{Description:"Throttle vs attitude control prioritisation used during active flight (higher values mean we prioritise attitude control over throttle)",DisplayName:"Throttle Mix Maximum",Range:{high:"0.9",low:"0.5"},User:"Advanced"},ATC_THR_MIX_MIN:{Description:"Throttle vs attitude control prioritisation used when landing (higher values mean we prioritise attitude control over throttle)",DisplayName:"Throttle Mix Minimum",Range:{high:"0.25",low:"0.1"},User:"Advanced"}},UQ={AVOID_ACCEL_MAX:{Description:"Maximum acceleration with which obstacles will be avoided with. Set zero to disable acceleration limits",DisplayName:"Avoidance maximum acceleration",Range:{high:"9",low:"0"},Units:"m/s/s",User:"Standard"},AVOID_BACKUP_DZ:{Description:"Distance beyond AVOID_MARGIN parameter, after which vehicle will backaway from obstacles. Increase this parameter if you see vehicle going back and forth in front of obstacle.",DisplayName:"Avoidance deadzone between stopping and backing away from obstacle",Range:{high:"2",low:"0"},Units:"m",User:"Standard"},AVOID_BACKUP_SPD:{Description:"Maximum speed that will be used to back away from obstacles in GPS modes (m/s). Set zero to disable",DisplayName:"Avoidance maximum backup speed",Range:{high:"2",low:"0"},Units:"m/s",User:"Standard"},AVOID_ENABLE:{Bitmask:{0:"UseFence",1:"UseProximitySensor",2:"UseBeaconFence"},Description:"Enabled/disable avoidance input sources",DisplayName:"Avoidance control enable/disable",User:"Standard"},AVOID_MARGIN:{Description:"Vehicle will attempt to stay at least this distance (in meters) from objects while in GPS modes",DisplayName:"Avoidance distance margin in GPS modes",Range:{high:"10",low:"1"},Units:"m",User:"Standard"}},xQ={BARO1_DEVID:{Description:"Barometer sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID",ReadOnly:"True",User:"Advanced"},BARO1_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Ground Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO2_DEVID:{Description:"Barometer2 sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID2",ReadOnly:"True",User:"Advanced"},BARO2_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Ground Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO3_DEVID:{Description:"Barometer3 sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID3",ReadOnly:"True",User:"Advanced"},BARO3_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Absolute Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO_ALT_OFFSET:{Description:"altitude offset in meters added to barometric altitude. This is used to allow for automatic adjustment of the base barometric altitude by a ground station equipped with a barometer. The value is added to the barometric altitude read by the aircraft. It is automatically reset to 0 when the barometer is calibrated on each reboot or when a preflight calibration is performed.",DisplayName:"altitude offset",Increment:"0.1",Units:"m",User:"Advanced"},BARO_EXT_BUS:{Description:"This selects the bus number for looking for an I2C barometer. When set to -1 it will probe all external i2c buses based on the GND_PROBE_EXT parameter.",DisplayName:"External baro bus",User:"Advanced",Values:{0:"Bus0",1:"Bus1","-1":"Disabled"}},BARO_FLTR_RNG:{Description:"This sets the range around the average value that new samples must be within to be accepted. This can help reduce the impact of noise on sensors that are on long I2C cables. The value is a percentage from the average value. A value of zero disables this filter.",DisplayName:"Range in which sample is accepted",Increment:"1",Range:{high:"100",low:"0"},Units:"%"},BARO_GND_TEMP:{Description:"User provided ambient ground temperature in degrees Celsius. This is used to improve the calculation of the altitude the vehicle is at. This parameter is not persistent and will be reset to 0 every time the vehicle is rebooted. A value of 0 means use the internal measurement ambient temperature.",DisplayName:"ground temperature",Increment:"1",Units:"degC",User:"Advanced",Volatile:"True"},BARO_PRIMARY:{Description:"This selects which barometer will be the primary if multiple barometers are found",DisplayName:"Primary barometer",User:"Advanced",Values:{0:"FirstBaro",1:"2ndBaro",2:"3rdBaro"}},BARO_PROBE_EXT:{Bitmask:{0:"BMP085",1:"BMP280",2:"MS5611",3:"MS5607",4:"MS5637",5:"FBM320",6:"DPS280",7:"LPS25H",8:"Keller",9:"MS5837",10:"BMP388",11:"SPL06",12:"MSP"},Description:"This sets which types of external i2c barometer to look for. It is a bitmask of barometer types. The I2C buses to probe is based on GND_EXT_BUS. If BARO_EXT_BUS is -1 then it will probe all external buses, otherwise it will probe just the bus number given in GND_EXT_BUS.",DisplayName:"External barometers to probe",User:"Advanced"},BARO_SPEC_GRAV:{Description:"This sets the specific gravity of the fluid when flying an underwater ROV.",DisplayName:"Specific Gravity (For water depth measurement)",Values:{"1.0":"Freshwater","1.024":"Saltwater"}}},FQ={BARO1_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO1_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},kQ={BARO2_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO2_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},BQ={BARO3_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO3_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},zQ={BATT2_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT2_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT2_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT2__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT2_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT2_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},User:"Standard"},BATT2_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT2__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT2_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT2_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT2_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT2_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT2_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT2_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT2_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT2_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT2_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT2_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT2_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT2_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"UAVCAN-BatteryInfo",9:"ESC",10:"SumOfFollowing",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye"}},BATT2_OPTIONS:{Bitmask:{0:"Ignore UAVCAN SoC"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT2_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With UAVCAN it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT2_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT2_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT2_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},ZQ={BATT3_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT3_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT3_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT3__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT3_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT3_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},User:"Standard"},BATT3_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT3__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT3_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT3_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT3_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT3_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT3_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT3_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT3_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT3_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT3_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT3_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT3_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT3_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"UAVCAN-BatteryInfo",9:"ESC",10:"SumOfFollowing",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye"}},BATT3_OPTIONS:{Bitmask:{0:"Ignore UAVCAN SoC"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT3_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With UAVCAN it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT3_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT3_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT3_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},GQ={BATT4_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT4_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT4_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT4__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT4_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT4_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},User:"Standard"},BATT4_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT4__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT4_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT4_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT4_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT4_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT4_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT4_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT4_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT4_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT4_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT4_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT4_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT4_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"UAVCAN-BatteryInfo",9:"ESC",10:"SumOfFollowing",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye"}},BATT4_OPTIONS:{Bitmask:{0:"Ignore UAVCAN SoC"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT4_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With UAVCAN it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT4_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT4_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT4_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},WQ={BATT5_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT5_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT5_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT5__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT5_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT5_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},User:"Standard"},BATT5_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT5__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT5_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT5_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT5_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT5_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT5_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT5_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT5_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT5_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT5_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT5_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT5_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT5_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"UAVCAN-BatteryInfo",9:"ESC",10:"SumOfFollowing",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye"}},BATT5_OPTIONS:{Bitmask:{0:"Ignore UAVCAN SoC"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT5_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With UAVCAN it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT5_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT5_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT5_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},XQ={BATT6_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT6_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT6_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT6__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT6_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT6_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},User:"Standard"},BATT6_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT6__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT6_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT6_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT6_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT6_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT6_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT6_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT6_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT6_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT6_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT6_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT6_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT6_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"UAVCAN-BatteryInfo",9:"ESC",10:"SumOfFollowing",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye"}},BATT6_OPTIONS:{Bitmask:{0:"Ignore UAVCAN SoC"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT6_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With UAVCAN it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT6_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT6_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT6_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},YQ={BATT7_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT7_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT7_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT7__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT7_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT7_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},User:"Standard"},BATT7_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT7__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT7_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT7_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT7_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT7_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT7_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT7_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT7_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT7_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT7_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT7_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT7_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT7_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"UAVCAN-BatteryInfo",9:"ESC",10:"SumOfFollowing",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye"}},BATT7_OPTIONS:{Bitmask:{0:"Ignore UAVCAN SoC"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT7_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With UAVCAN it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT7_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT7_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT7_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},$Q={BATT8_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT8_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT8_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT8__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT8_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT8_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},User:"Standard"},BATT8_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT8__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT8_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT8_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT8_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT8_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT8_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT8_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT8_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT8_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT8_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT8_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT8_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT8_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"UAVCAN-BatteryInfo",9:"ESC",10:"SumOfFollowing",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye"}},BATT8_OPTIONS:{Bitmask:{0:"Ignore UAVCAN SoC"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT8_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With UAVCAN it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT8_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT8_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT8_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},qQ={BATT9_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT9_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT9_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT9__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT9_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT9_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},User:"Standard"},BATT9_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT9__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT9_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT9_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT9_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT9_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT9_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT9_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT9_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT9_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT9_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT9_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT9_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT9_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"UAVCAN-BatteryInfo",9:"ESC",10:"SumOfFollowing",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye"}},BATT9_OPTIONS:{Bitmask:{0:"Ignore UAVCAN SoC"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT9_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With UAVCAN it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT9_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT9_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT9_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},KQ={BATT_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},User:"Standard"},BATT_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"UAVCAN-BatteryInfo",9:"ESC",10:"SumOfFollowing",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye"}},BATT_OPTIONS:{Bitmask:{0:"Ignore UAVCAN SoC"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With UAVCAN it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},jQ={BRD_ALT_CONFIG:{Description:"Select an alternative hardware configuration. A value of zero selects the default configuration for this board. Other values are board specific. Please see the documentation for your board for details on any alternative configuration values that may be available.",DisplayName:"Alternative HW config",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},BRD_BOOT_DELAY:{Description:"This adds a delay in milliseconds to boot to ensure peripherals initialise fully",DisplayName:"Boot delay",Range:{high:"10000",low:"0"},Units:"ms",User:"Advanced"},BRD_IMUHEAT_I:{Description:"IMU Heater integrator gain",DisplayName:"IMU Heater I gain",Increment:"0.1",Range:{high:"1",low:"0"},User:"Advanced"},BRD_IMUHEAT_IMAX:{Description:"IMU Heater integrator maximum",DisplayName:"IMU Heater IMAX",Increment:"1",Range:{high:"100",low:"0"},User:"Advanced"},BRD_IMUHEAT_P:{Description:"IMU Heater P gain",DisplayName:"IMU Heater P gain",Increment:"1",Range:{high:"500",low:"1"},User:"Advanced"},BRD_IMU_TARGTEMP:{Description:"This sets the target IMU temperature for boards with controllable IMU heating units. DO NOT SET to -1 on the Cube. Set to -1 to disable the heater, please reboot after setting to -1.",DisplayName:"Target IMU temperature",Range:{high:"80",low:"-1"},Units:"degC",User:"Advanced"},BRD_IO_ENABLE:{Description:"This allows for the IO co-processor on FMUv1 and FMUv2 to be disabled",DisplayName:"Enable IO co-processor",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BRD_OPTIONS:{Bitmask:{0:"Enable hardware watchdog",1:"Disable MAVftp",2:"Enable set of internal parameters",3:"Enable Debug Pins"},Description:"Board specific option flags",DisplayName:"Board options",User:"Advanced"},BRD_PWM_COUNT:{Description:"Controls number of FMU outputs which are setup for PWM. All unassigned pins can be used for GPIO",DisplayName:"Auxiliary pin config",RebootRequired:"True",User:"Advanced",Values:{0:"No PWMs",1:"One PWMs",2:"Two PWMs",3:"Three PWMs",4:"Four PWMs",5:"Five PWMs",6:"Six PWMs",7:"Seven PWMs",8:"Eight PWMs"}},BRD_PWM_VOLT_SEL:{Description:"This sets the voltage max for PWM output pulses. 0 for 3.3V and 1 for 5V output.",DisplayName:"Set PWM Out Voltage",User:"Advanced",Values:{0:"3.3V",1:"5V"}},BRD_SAFETYENABLE:{Description:"This controls the default state of the safety switch at startup. When set to 1 the safety switch will start in the safe state (flashing) at boot. When set to zero the safety switch will start in the unsafe state (solid) at startup. Note that if a safety switch is fitted the user can still control the safety state after startup using the switch. The safety state can also be controlled in software using a MAVLink message.",DisplayName:"Enable use of safety arming switch",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},BRD_SAFETYOPTION:{Bitmask:{0:"ActiveForSafetyEnable",1:"ActiveForSafetyDisable",2:"ActiveWhenArmed",3:"Force safety on when the aircraft disarms"},Description:"This controls the activation of the safety button. It allows you to control if the safety button can be used for safety enable and/or disable, and whether the button is only active when disarmed",DisplayName:"Options for safety button behavior",User:"Standard"},BRD_SAFETY_MASK:{Bitmask:{0:"Output1",1:"Output2",2:"Output3",3:"Output4",4:"Output5",5:"Output6",6:"Output7",7:"Output8",8:"Output9",9:"Output10",10:"Output11",11:"Output12",12:"Output13",13:"Output14"},Description:"A bitmask which controls what outputs can move while the safety switch has not been pressed",DisplayName:"Outputs which ignore the safety switch state",RebootRequired:"True",User:"Advanced"},BRD_SBUS_OUT:{Description:"This sets the SBUS output frame rate in Hz",DisplayName:" SBUS output rate",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"50Hz",2:"75Hz",3:"100Hz",4:"150Hz",5:"200Hz",6:"250Hz",7:"300Hz"}},BRD_SD_SLOWDOWN:{Description:"This is a scaling factor to slow down microSD operation. It can be used on flight board and microSD card combinations where full speed is not reliable. For normal full speed operation a value of 0 should be used.",DisplayName:"microSD slowdown",Increment:"1",Range:{high:"32",low:"0"},User:"Advanced"},BRD_SER1_RTSCTS:{Description:"Enable flow control on serial 1 (telemetry 1) on Pixhawk. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup. Note that the PX4v1 does not have hardware flow control pins on this port, so you should leave this disabled.",DisplayName:"Serial 1 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER2_RTSCTS:{Description:"Enable flow control on serial 2 (telemetry 2) on Pixhawk and STATE. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 2 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER3_RTSCTS:{Description:"Enable flow control on serial 3. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 3 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER4_RTSCTS:{Description:"Enable flow control on serial 4. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 4 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER5_RTSCTS:{Description:"Enable flow control on serial 5. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 5 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SERIAL_NUM:{Description:"User-defined serial number of this vehicle, it can be any arbitrary number you want and has no effect on the autopilot",DisplayName:"User-defined serial number",Range:{high:"32767",low:"-32768"},User:"Standard"},BRD_TYPE:{Description:"This allows selection of a PX4 or VRBRAIN board type. If set to zero then the board type is auto-detected (PX4)",DisplayName:"Board type",RebootRequired:"True",User:"Advanced",Values:{0:"AUTO",1:"PX4V1",2:"Pixhawk",3:"Cube/Pixhawk2",4:"Pixracer",5:"PixhawkMini",6:"Pixhawk2Slim",13:"Intel Aero FC",14:"Pixhawk Pro",20:"AUAV2.1",21:"PCNC1",22:"MINDPXV2",23:"SP01",24:"CUAVv5/FMUV5",30:"VRX BRAIN51",32:"VRX BRAIN52",33:"VRX BRAIN52E",34:"VRX UBRAIN51",35:"VRX UBRAIN52",36:"VRX CORE10",38:"VRX BRAIN54",39:"PX4 FMUV6",100:"PX4 OLDDRIVERS"}},BRD_VBUS_MIN:{Description:"Minimum voltage on the autopilot power rail to allow the aircraft to arm. 0 to disable the check.",DisplayName:"Autopilot board voltage requirement",Increment:"0.1",Range:{high:"5.5",low:"4.0"},Units:"V",User:"Advanced"},BRD_VSERVO_MIN:{Description:"Minimum voltage on the servo rail to allow the aircraft to arm. 0 to disable the check.",DisplayName:"Servo voltage requirement",Increment:"0.1",Range:{high:"12.0",low:"3.3"},Units:"V",User:"Advanced"}},QQ={BRD_RADIO_ABLVL:{Description:"This sets the minimum RSSI of an auto-bind packet for it to be accepted. This should be set so that auto-bind will only happen at short range to minimise the change of an auto-bind happening accidentially",DisplayName:"Auto-bind level",Range:{high:"31",low:"0"},User:"Advanced"},BRD_RADIO_ABTIME:{Description:"When non-zero this sets the time with no transmitter packets before we start looking for auto-bind packets.",DisplayName:"Auto-bind time",Range:{high:"120",low:"0"},User:"Advanced"},BRD_RADIO_BZOFS:{Description:"Set transmitter buzzer note adjustment (adjust frequency up)",DisplayName:"Transmitter buzzer adjustment",Range:{high:"40",low:"0"},User:"Advanced"},BRD_RADIO_DEBUG:{Description:"radio debug level",DisplayName:"debug level",Range:{high:"4",low:"0"},User:"Advanced"},BRD_RADIO_DISCRC:{Description:"disable receive CRC (for debug)",DisplayName:"disable receive CRC",User:"Advanced",Values:{0:"NotDisabled",1:"Disabled"}},BRD_RADIO_FCCTST:{Description:"If this is enabled then the radio will continuously transmit as required for FCC testing. The transmit channel is set by the value of the parameter. The radio will not work for RC input while this is enabled",DisplayName:"Put radio into FCC test mode",User:"Advanced",Values:{0:"Disabled",1:"MinChannel",2:"MidChannel",3:"MaxChannel",4:"MinChannelCW",5:"MidChannelCW",6:"MaxChannelCW"}},BRD_RADIO_PPSCH:{Description:"Channel to show received packet-per-second rate, or zero for disabled",DisplayName:"Packet rate channel",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_PROT:{Description:"Select air protocol",DisplayName:"protocol",User:"Advanced",Values:{0:"Auto",1:"DSM2",2:"DSMX"}},BRD_RADIO_SIGCH:{Description:"Channel to show receive RSSI signal strength, or zero for disabled",DisplayName:"RSSI signal strength",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_STKMD:{Description:"This selects between different stick input modes. The default is mode2, which has throttle on the left stick and pitch on the right stick. You can instead set mode1, which has throttle on the right stick and pitch on the left stick.",DisplayName:"Stick input mode",User:"Advanced",Values:{1:"Mode1",2:"Mode2"}},BRD_RADIO_TELEM:{Description:"If this is non-zero then telemetry packets will be sent over DSM",DisplayName:"Enable telemetry",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BRD_RADIO_TESTCH:{Description:"This sets the radio to a fixed test channel for factory testing. Using a fixed channel avoids the need for binding in factory testing.",DisplayName:"Set radio to factory test channel",User:"Advanced",Values:{0:"Disabled",1:"TestChan1",2:"TestChan2",3:"TestChan3",4:"TestChan4",5:"TestChan5",6:"TestChan6",7:"TestChan7",8:"TestChan8"}},BRD_RADIO_TPPSCH:{Description:"Channel to show telemetry packets-per-second value, as received at TX",DisplayName:"Telemetry PPS channel",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_TSIGCH:{Description:"Channel to show telemetry RSSI value as received by TX",DisplayName:"RSSI value channel for telemetry data on transmitter",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_TXMAX:{Description:"Set transmitter maximum transmit power (from 1 to 8)",DisplayName:"Transmitter transmit power",Range:{high:"8",low:"1"},User:"Advanced"},BRD_RADIO_TXPOW:{Description:"Set telemetry transmit power. This is the power level (from 1 to 8) for telemetry packets sent from the RX to the TX",DisplayName:"Telemetry Transmit power",Range:{high:"8",low:"1"},User:"Advanced"},BRD_RADIO_TYPE:{Description:"This enables support for direct attached radio receivers",DisplayName:"Set type of direct attached radio",Values:{0:"None",1:"CYRF6936",2:"CC2500",3:"BK2425"}}},JQ={BRD_RTC_TYPES:{Bitmask:{0:"GPS",1:"MAVLINK_SYSTEM_TIME",2:"HW"},Description:"Specifies which sources of UTC time will be accepted",DisplayName:"Allowed sources of RTC time",User:"Advanced"},BRD_RTC_TZ_MIN:{Description:"Adds offset in +- minutes from UTC to calculate local time",DisplayName:"Timezone offset from UTC",Range:{high:"+840",low:"-720"},User:"Advanced"}},eJ={BTN0_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN0_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},tJ={BTN10_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN10_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},iJ={BTN11_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN11_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},aJ={BTN12_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN12_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},rJ={BTN13_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN13_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},nJ={BTN14_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN14_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},oJ={BTN15_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN15_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},sJ={BTN1_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN1_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},lJ={BTN2_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN2_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},cJ={BTN3_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN3_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},dJ={BTN4_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN4_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},CJ={BTN5_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN5_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},mJ={BTN6_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN6_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},uJ={BTN7_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN7_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},hJ={BTN8_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN8_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},pJ={BTN9_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN9_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},fJ={CAM_AUTO_ONLY:{Description:"When enabled, trigging by distance is done in AUTO mode only.",DisplayName:"Distance-trigging in AUTO mode only",User:"Standard",Values:{0:"Always",1:"Only when in AUTO"}},CAM_DURATION:{Description:"How long the shutter will be held open in 10ths of a second (i.e. enter 10 for 1second, 50 for 5seconds)",DisplayName:"Duration that shutter is held open",Range:{high:"50",low:"0"},Units:"ds",User:"Standard"},CAM_FEEDBACK_PIN:{Description:"pin number to use for save accurate camera feedback messages. If set to -1 then don't use a pin flag for this, otherwise this is a pin number which if held high after a picture trigger order, will save camera messages when camera really takes a picture. A universal camera hot shoe is needed. The pin should be held high for at least 2 milliseconds for reliable trigger detection. See also the CAM_FEEDBACK_POL option.",DisplayName:"Camera feedback pin",RebootRequired:"True",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},CAM_FEEDBACK_POL:{Description:"Polarity for feedback pin. If this is 1 then the feedback pin should go high on trigger. If set to 0 then it should go low",DisplayName:"Camera feedback pin polarity",User:"Standard",Values:{0:"TriggerLow",1:"TriggerHigh"}},CAM_MAX_ROLL:{Description:"Postpone shooting if roll is greater than limit. (0=Disable, will shoot regardless of roll).",DisplayName:"Maximum photo roll angle.",Range:{high:"180",low:"0"},Units:"deg",User:"Standard"},CAM_MIN_INTERVAL:{Description:"Postpone shooting if previous picture was taken less than preset time(ms) ago.",DisplayName:"Minimum time between photos",Range:{high:"10000",low:"0"},Units:"ms",User:"Standard"},CAM_RELAY_ON:{Description:"This sets whether the relay goes high or low when it triggers. Note that you should also set RELAY_DEFAULT appropriately for your camera",DisplayName:"Relay ON value",User:"Standard",Values:{0:"Low",1:"High"}},CAM_SERVO_OFF:{Description:"PWM value in microseconds to move servo to when shutter is deactivated",DisplayName:"Servo OFF PWM value",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CAM_SERVO_ON:{Description:"PWM value in microseconds to move servo to when shutter is activated",DisplayName:"Servo ON PWM value",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CAM_TRIGG_DIST:{Description:"Distance in meters between camera triggers. If this value is non-zero then the camera will trigger whenever the position changes by this number of meters regardless of what mode the APM is in. Note that this parameter can also be set in an auto mission using the DO_SET_CAM_TRIGG_DIST command, allowing you to enable/disable the triggering of the camera during the flight.",DisplayName:"Camera trigger distance",Range:{high:"1000",low:"0"},Units:"m",User:"Standard"},CAM_TRIGG_TYPE:{Description:"how to trigger the camera to take a picture",DisplayName:"Camera shutter (trigger) type",User:"Standard",Values:{0:"Servo",1:"Relay",2:"GoPro in Solo Gimbal"}},CAM_TYPE:{Description:"Set the camera type that is being used, certain cameras have custom functions that need further configuration, this enables that.",DisplayName:"Type of camera (0: None, 1: BMMCC)",User:"Standard",Values:{0:"Default",1:"BMMCC"}}},VJ={CAM_RC_BTN_DELAY:{Description:"Time it takes for the a RunCam button press to be actived in ms. If this is too short then commands can get out of sync.",DisplayName:"RunCam button delay before allowing further button presses",User:"Advanced"},CAM_RC_BT_DELAY:{Description:"Time it takes for the RunCam to become fully ready in ms. If this is too short then commands can get out of sync.",DisplayName:"RunCam boot delay before allowing updates",User:"Advanced"},CAM_RC_CONTROL:{Bitmask:{0:"Stick yaw right",1:"Stick roll right",2:"3-position switch",3:"2-position switch",4:"Autorecording enabled"},Description:"Specifies the allowed actions required to enter the OSD menu",DisplayName:"RunCam control option",User:"Advanced"},CAM_RC_FEATURES:{Bitmask:{0:"Power Button",1:"WiFi Button",2:"Change Mode",3:"5-Key OSD",4:"Settings Access",5:"DisplayPort",6:"Start Recording",7:"Stop Recording"},Description:"The available features of the attached RunCam device. If 0 then the RunCam device will be queried for the features it supports, otherwise this setting is used.",DisplayName:"RunCam features available",User:"Advanced"},CAM_RC_MDE_DELAY:{Description:"Time it takes for the a RunCam mode button press to be actived in ms. If a mode change first requires a video recording change then double this value is used. If this is too short then commands can get out of sync.",DisplayName:"RunCam mode delay before allowing further button presses",User:"Advanced"},CAM_RC_TYPE:{Description:"RunCam deviee type used to determine OSD menu structure and shutter options.",DisplayName:"RunCam device type",Values:{0:"Disabled",1:"RunCam Split Micro/RunCam with UART",2:"RunCam Split",3:"RunCam Split4 4k",4:"RunCam Hybrid"}}},LJ={CAN_LOGLEVEL:{Description:"Loglevel for recording initialisation and debug information from CAN Interface",DisplayName:"Loglevel",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Log None",1:"Log Error",2:"Log Warning and below",3:"Log Info and below",4:"Log Everything"}}},HJ={CAN_D1_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"UAVCAN",3:"ToshibaCAN",4:"PiccoloCAN",5:"CANTester",8:"KDECAN",9:"PacketDigitalCAN"}}},MJ={CAN_D1_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},gJ={CAN_D1_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D1_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D1_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D1_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},AJ={CAN_D1_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",4:"TEST_TOSHIBA_CAN",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC"}},CAN_D1_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},vJ={CAN_D1_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"RC Out channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D1_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D1_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D1_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"RC Out channels to be transmitted as servo over UAVCAN",User:"Advanced"},CAN_D1_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},_J={CAN_D2_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"UAVCAN",3:"ToshibaCAN",4:"PiccoloCAN",5:"CANTester",8:"KDECAN",9:"PacketDigitalCAN"}}},SJ={CAN_D2_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},DJ={CAN_D2_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D2_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D2_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D2_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},yJ={CAN_D2_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",4:"TEST_TOSHIBA_CAN",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC"}},CAN_D2_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},RJ={CAN_D2_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"RC Out channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D2_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D2_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D2_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"RC Out channels to be transmitted as servo over UAVCAN",User:"Advanced"},CAN_D2_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},bJ={CAN_D3_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"UAVCAN",3:"ToshibaCAN",4:"PiccoloCAN",5:"CANTester",8:"KDECAN",9:"PacketDigitalCAN"}}},NJ={CAN_D3_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},wJ={CAN_D3_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D3_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D3_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D3_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},TJ={CAN_D3_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",4:"TEST_TOSHIBA_CAN",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC"}},CAN_D3_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},EJ={CAN_D3_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"RC Out channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D3_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D3_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D3_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"RC Out channels to be transmitted as servo over UAVCAN",User:"Advanced"},CAN_D3_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},PJ={CAN_P1_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P1_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver"}}},IJ={CAN_P2_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P2_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver"}}},OJ={CAN_P3_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P3_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver"}}},UJ={CAN_SLCAN_CPORT:{Description:"CAN Interface ID to be routed to SLCAN, 0 means no routing",DisplayName:"SLCAN Route",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First interface",2:"Second interface"}},CAN_SLCAN_SDELAY:{Description:"Duration after which slcan starts after setting SERNUM in seconds.",DisplayName:"SLCAN Start Delay",Range:{high:"127",low:"0"},User:"Standard"},CAN_SLCAN_SERNUM:{Description:"Serial Port ID to be used for temporary SLCAN iface, -1 means no temporary serial. This parameter is automatically reset on reboot or on timeout. See CAN_SLCAN_TIMOUT for timeout details",DisplayName:"SLCAN Serial Port",User:"Standard",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},CAN_SLCAN_TIMOUT:{Description:"Duration of inactivity after which SLCAN is switched back to original driver in seconds.",DisplayName:"SLCAN Timeout",Range:{high:"127",low:"0"},User:"Standard"}},xJ={CIRCLE_OPTIONS:{Bitmask:{0:"manual control",1:"face direction of travel",2:"Start at center rather than on perimeter"},Description:"0:Enable or disable using the pitch/roll stick control circle mode's radius and rate",DisplayName:"Circle options",User:"Standard"},CIRCLE_RADIUS:{Description:"Defines the radius of the circle the vehicle will fly when in Circle flight mode",DisplayName:"Circle Radius",Increment:"100",Range:{high:"200000",low:"0"},Units:"cm",User:"Standard"},CIRCLE_RATE:{Description:"Circle mode's turn rate in deg/sec. Positive to turn clockwise, negative for counter clockwise",DisplayName:"Circle rate",Increment:"1",Range:{high:"90",low:"-90"},Units:"deg/s",User:"Standard"}},FJ={COMPASS_AUTODEC:{Description:"Enable or disable the automatic calculation of the declination based on gps location",DisplayName:"Auto Declination",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_AUTO_ROT:{Description:"When enabled this will automatically check the orientation of compasses on successful completion of compass calibration. If set to 2 then external compasses will have their orientation automatically corrected.",DisplayName:"Automatically check orientation",Values:{0:"Disabled",1:"CheckOnly",2:"CheckAndFix"}},COMPASS_CAL_FIT:{Description:"This controls the fitness level required for a successful compass calibration. A lower value makes for a stricter fit (less likely to pass). This is the value used for the primary magnetometer. Other magnetometers get double the value.",DisplayName:"Compass calibration fitness",Increment:"0.1",Range:{high:"32",low:"4"},User:"Advanced",Values:{4:"Very Strict",8:"Strict",16:"Default",32:"Relaxed"}},COMPASS_CUS_PIT:{Description:"Compass mounting position pitch offset. Positive values = pitch up, negative values = pitch down. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation pitch offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_CUS_ROLL:{Description:"Compass mounting position roll offset. Positive values = roll right, negative values = roll left. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation roll offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_CUS_YAW:{Description:"Compass mounting position yaw offset. Positive values = yaw right, negative values = yaw left. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation yaw offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_DEC:{Description:"An angle to compensate between the true north and magnetic north",DisplayName:"Compass declination",Increment:"0.01",Range:{high:"3.142",low:"-3.142"},Units:"rad",User:"Standard"},COMPASS_DEV_ID:{Description:"Compass device id. Automatically detected, do not set manually",DisplayName:"Compass device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID2:{Description:"Second compass's device id. Automatically detected, do not set manually",DisplayName:"Compass2 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID3:{Description:"Third compass's device id. Automatically detected, do not set manually",DisplayName:"Compass3 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID4:{Description:"Extra 4th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass4 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID5:{Description:"Extra 5th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass5 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID6:{Description:"Extra 6th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass6 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID7:{Description:"Extra 7th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass7 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID8:{Description:"Extra 8th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass8 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DIA2_X:{Calibration:"1",Description:"DIA_X in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA2_Y:{Calibration:"1",Description:"DIA_Y in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA2_Z:{Description:"DIA_Z in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal Z component",User:"Advanced"},COMPASS_DIA3_X:{Calibration:"1",Description:"DIA_X in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA3_Y:{Calibration:"1",Description:"DIA_Y in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA3_Z:{Description:"DIA_Z in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal Z component",User:"Advanced"},COMPASS_DIA_X:{Calibration:"1",Description:"DIA_X in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA_Y:{Calibration:"1",Description:"DIA_Y in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA_Z:{Description:"DIA_Z in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal Z component",User:"Advanced"},COMPASS_ENABLE:{Description:"Setting this to Enabled(1) will enable the compass. Setting this to Disabled(0) will disable the compass. Note that this is separate from COMPASS_USE. This will enable the low level senor, and will enable logging of magnetometer data. To use the compass for navigation you must also set COMPASS_USE to 1.",DisplayName:"Enable Compass",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},COMPASS_EXTERN2:{Description:"Configure second compass so it is attached externally. This is auto-detected on PX4 and Pixhawk. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass2 is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_EXTERN3:{Description:"Configure third compass so it is attached externally. This is auto-detected on PX4 and Pixhawk. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass3 is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_EXTERNAL:{Description:"Configure compass so it is attached externally. This is auto-detected on PX4 and Pixhawk. Set to 1 if the compass is externally connected. When externally connected the COMPASS_ORIENT option operates independently of the AHRS_ORIENTATION board orientation option. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_FLTR_RNG:{Description:"This sets the range around the average value that new samples must be within to be accepted. This can help reduce the impact of noise on sensors that are on long I2C cables. The value is a percentage from the average value. A value of zero disables this filter.",DisplayName:"Range in which sample is accepted",Increment:"1",Range:{high:"100",low:"0"},Units:"%"},COMPASS_LEARN:{Description:"Enable or disable the automatic learning of compass offsets. You can enable learning either using a compass-only method that is suitable only for fixed wing aircraft or using the offsets learnt by the active EKF state estimator. If this option is enabled then the learnt offsets are saved when you disarm the vehicle. If InFlight learning is enabled then the compass with automatically start learning once a flight starts (must be armed). While InFlight learning is running you cannot use position control modes.",DisplayName:"Learn compass offsets automatically",User:"Advanced",Values:{0:"Disabled",1:"Internal-Learning",2:"EKF-Learning",3:"InFlight-Learning"}},COMPASS_MOT2_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass2's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT2_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass2's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT2_Z:{Description:"Multiplied by the current throttle and added to compass2's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass3's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass3's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_Z:{Description:"Multiplied by the current throttle and added to compass3's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOTCT:{Calibration:"1",Description:"Set motor interference compensation type to disabled, throttle or current. Do not change manually.",DisplayName:"Motor interference compensation type",User:"Advanced",Values:{0:"Disabled",1:"Use Throttle",2:"Use Current"}},COMPASS_MOT_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to the compass's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to the compass's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT_Z:{Description:"Multiplied by the current throttle and added to the compass's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_ODI2_X:{Calibration:"1",Description:"ODI_X in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI2_Y:{Calibration:"1",Description:"ODI_Y in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI2_Z:{Description:"ODI_Z in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_ODI3_X:{Calibration:"1",Description:"ODI_X in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI3_Y:{Calibration:"1",Description:"ODI_Y in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI3_Z:{Description:"ODI_Z in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_ODI_X:{Calibration:"1",Description:"ODI_X in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI_Y:{Calibration:"1",Description:"ODI_Y in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI_Z:{Description:"ODI_Z in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_OFFS_MAX:{Description:"This sets the maximum allowed compass offset in calibration and arming checks",DisplayName:"Compass maximum offset",Increment:"1",Range:{high:"3000",low:"500"},User:"Advanced"},COMPASS_OFS2_X:{Calibration:"1",Description:"Offset to be added to compass2's x-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS2_Y:{Calibration:"1",Description:"Offset to be added to compass2's y-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS2_Z:{Description:"Offset to be added to compass2's z-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_X:{Calibration:"1",Description:"Offset to be added to compass3's x-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_Y:{Calibration:"1",Description:"Offset to be added to compass3's y-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_Z:{Description:"Offset to be added to compass3's z-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_X:{Calibration:"1",Description:"Offset to be added to the compass x-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_Y:{Calibration:"1",Description:"Offset to be added to the compass y-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_Z:{Description:"Offset to be added to the compass z-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OPTIONS:{Bitmask:{0:"CalRequireGPS"},Description:"This sets options to change the behaviour of the compass",DisplayName:"Compass options",User:"Advanced"},COMPASS_ORIENT:{Description:"The orientation of the first external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used.",DisplayName:"Compass orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Roll180Yaw45",10:"Roll180Yaw90",11:"Roll180Yaw135",12:"Pitch180",13:"Roll180Yaw225",14:"Roll180Yaw270",15:"Roll180Yaw315",16:"Roll90",17:"Roll90Yaw45",18:"Roll90Yaw90",19:"Roll90Yaw135",20:"Roll270",21:"Roll270Yaw45",22:"Roll270Yaw90",23:"Roll270Yaw135",24:"Pitch90",25:"Pitch270",26:"Pitch180Yaw90",27:"Pitch180Yaw270",28:"Roll90Pitch90",29:"Roll180Pitch90",30:"Roll270Pitch90",31:"Roll90Pitch180",32:"Roll270Pitch180",33:"Roll90Pitch270",34:"Roll180Pitch270",35:"Roll270Pitch270",36:"Roll90Pitch180Yaw90",37:"Roll90Yaw270",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Roll90Pitch315",100:"Custom"}},COMPASS_ORIENT2:{Description:"The orientation of a second external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used.",DisplayName:"Compass2 orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Roll180Yaw45",10:"Roll180Yaw90",11:"Roll180Yaw135",12:"Pitch180",13:"Roll180Yaw225",14:"Roll180Yaw270",15:"Roll180Yaw315",16:"Roll90",17:"Roll90Yaw45",18:"Roll90Yaw90",19:"Roll90Yaw135",20:"Roll270",21:"Roll270Yaw45",22:"Roll270Yaw90",23:"Roll270Yaw135",24:"Pitch90",25:"Pitch270",26:"Pitch180Yaw90",27:"Pitch180Yaw270",28:"Roll90Pitch90",29:"Roll180Pitch90",30:"Roll270Pitch90",31:"Roll90Pitch180",32:"Roll270Pitch180",33:"Roll90Pitch270",34:"Roll180Pitch270",35:"Roll270Pitch270",36:"Roll90Pitch180Yaw90",37:"Roll90Yaw270",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Roll90Pitch315",100:"Custom"}},COMPASS_ORIENT3:{Description:"The orientation of a third external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used.",DisplayName:"Compass3 orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Roll180Yaw45",10:"Roll180Yaw90",11:"Roll180Yaw135",12:"Pitch180",13:"Roll180Yaw225",14:"Roll180Yaw270",15:"Roll180Yaw315",16:"Roll90",17:"Roll90Yaw45",18:"Roll90Yaw90",19:"Roll90Yaw135",20:"Roll270",21:"Roll270Yaw45",22:"Roll270Yaw90",23:"Roll270Yaw135",24:"Pitch90",25:"Pitch270",26:"Pitch180Yaw90",27:"Pitch180Yaw270",28:"Roll90Pitch90",29:"Roll180Pitch90",30:"Roll270Pitch90",31:"Roll90Pitch180",32:"Roll270Pitch180",33:"Roll90Pitch270",34:"Roll180Pitch270",35:"Roll270Pitch270",36:"Roll90Pitch180Yaw90",37:"Roll90Yaw270",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Roll90Pitch315",100:"Custom"}},COMPASS_PRIO1_ID:{Description:"Compass device id with 1st order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 1st order priority",RebootRequired:"True",User:"Advanced"},COMPASS_PRIO2_ID:{Description:"Compass device id with 2nd order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 2nd order priority",RebootRequired:"True",User:"Advanced"},COMPASS_PRIO3_ID:{Description:"Compass device id with 3rd order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 3rd order priority",RebootRequired:"True",User:"Advanced"},COMPASS_SCALE:{Description:"Scaling factor for first compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass1 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_SCALE2:{Description:"Scaling factor for 2nd compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass2 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_SCALE3:{Description:"Scaling factor for 3rd compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass3 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_TYPEMASK:{Bitmask:{0:"HMC5883",1:"LSM303D",2:"AK8963",3:"BMM150",4:"LSM9DS1",5:"LIS3MDL",6:"AK09916",7:"IST8310",8:"ICM20948",9:"MMC3416",11:"UAVCAN",12:"QMC5883",14:"MAG3110",15:"IST8308",16:"RM3100",17:"MSP",18:"ExternalAHRS"},Description:"This is a bitmask of driver types to disable. If a driver type is set in this mask then that driver will not try to find a sensor at startup",DisplayName:"Compass disable driver type mask",User:"Advanced"},COMPASS_USE:{Description:"Enable or disable the use of the compass (instead of the GPS) for determining heading",DisplayName:"Use compass for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_USE2:{Description:"Enable or disable the secondary compass for determining heading.",DisplayName:"Compass2 used for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_USE3:{Description:"Enable or disable the tertiary compass for determining heading.",DisplayName:"Compass3 used for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}}},kJ={COMPASS_PMOT1_X:{Description:"Compensation for X axis of motor1",DisplayName:"Compass per-motor1 X",User:"Advanced"},COMPASS_PMOT1_Y:{Description:"Compensation for Y axis of motor1",DisplayName:"Compass per-motor1 Y",User:"Advanced"},COMPASS_PMOT1_Z:{Description:"Compensation for Z axis of motor1",DisplayName:"Compass per-motor1 Z",User:"Advanced"},COMPASS_PMOT2_X:{Description:"Compensation for X axis of motor2",DisplayName:"Compass per-motor2 X",User:"Advanced"},COMPASS_PMOT2_Y:{Description:"Compensation for Y axis of motor2",DisplayName:"Compass per-motor2 Y",User:"Advanced"},COMPASS_PMOT2_Z:{Description:"Compensation for Z axis of motor2",DisplayName:"Compass per-motor2 Z",User:"Advanced"},COMPASS_PMOT3_X:{Description:"Compensation for X axis of motor3",DisplayName:"Compass per-motor3 X",User:"Advanced"},COMPASS_PMOT3_Y:{Description:"Compensation for Y axis of motor3",DisplayName:"Compass per-motor3 Y",User:"Advanced"},COMPASS_PMOT3_Z:{Description:"Compensation for Z axis of motor3",DisplayName:"Compass per-motor3 Z",User:"Advanced"},COMPASS_PMOT4_X:{Description:"Compensation for X axis of motor4",DisplayName:"Compass per-motor4 X",User:"Advanced"},COMPASS_PMOT4_Y:{Description:"Compensation for Y axis of motor4",DisplayName:"Compass per-motor4 Y",User:"Advanced"},COMPASS_PMOT4_Z:{Description:"Compensation for Z axis of motor4",DisplayName:"Compass per-motor4 Z",User:"Advanced"},COMPASS_PMOT_EN:{Description:"This enables per-motor compass corrections",DisplayName:"per-motor compass correction enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_PMOT_EXP:{Description:"This is the exponential correction for the power output of the motor for per-motor compass correction",DisplayName:"per-motor exponential correction",Increment:"0.01",Range:{high:"2",low:"0"},User:"Advanced"}},BJ={EAHRS_RATE:{Description:"Requested rate for AHRS device",DisplayName:"AHRS data rate",Units:"Hz",User:"Standard"},EAHRS_TYPE:{Description:"Type of AHRS device",DisplayName:"AHRS type",User:"Standard",Values:{0:"None",1:"VectorNav"}}},zJ={EK2_ABIAS_P_NSE:{Description:"This noise controls the growth of the vertical accelerometer delta velocity bias state error estimate. Increasing it makes accelerometer bias estimation faster and noisier.",DisplayName:"Accelerometer bias stability (m/s^3)",Range:{high:"0.005",low:"0.00001"},Units:"m/s/s/s",User:"Advanced"},EK2_ACC_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to accelerometer measurement errors excluding bias. Increasing it makes the flter trust the accelerometer measurements less and other measurements more.",DisplayName:"Accelerometer noise (m/s^2)",Increment:"0.01",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK2_ALT_M_NSE:{Description:"This is the RMS value of noise in the altitude measurement. Increasing it reduces the weighting of the baro measurement and will make the filter respond more slowly to baro measurement errors, but will make it more sensitive to GPS and accelerometer errors.",DisplayName:"Altitude measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_ALT_SOURCE:{Description:"Primary height sensor used by the EKF. If a sensor other than Baro is selected and becomes unavailable, then the Baro sensor will be used as a fallback. NOTE: The EK2_RNG_USE_HGT parameter can be used to switch to range-finder when close to the ground in conjunction with EK2_ALT_SOURCE = 0 or 2 (Baro or GPS).",DisplayName:"Primary altitude sensor source",RebootRequired:"True",User:"Advanced",Values:{0:"Use Baro",1:"Use Range Finder",2:"Use GPS",3:"Use Range Beacon"}},EK2_BCN_DELAY:{Description:"This is the number of msec that the range beacon measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Range beacon measurement delay (msec)",Increment:"10",Range:{high:"127",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_BCN_I_GTE:{Description:"This sets the percentage number of standard deviations applied to the range beacon measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range beacon measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_BCN_M_NSE:{Description:"This is the RMS value of noise in the range beacon measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range beacon measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_CHECK_SCALE:{Description:"This scales the thresholds that are used to check GPS accuracy before it is used by the EKF. A value of 100 is the default. Values greater than 100 increase and values less than 100 reduce the maximum GPS error the EKF will accept. A value of 200 will double the allowable GPS error.",DisplayName:"GPS accuracy check scaler (%)",Range:{high:"200",low:"50"},Units:"%",User:"Advanced"},EK2_EAS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the airspeed measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Airspeed measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_EAS_M_NSE:{Description:"This is the RMS value of noise in equivalent airspeed measurements used by planes. Increasing it reduces the weighting of airspeed measurements and will make wind speed estimates less noisy and slower to converge. Increasing also increases navigation errors when dead-reckoning without GPS measurements.",DisplayName:"Equivalent airspeed measurement noise (m/s)",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK2_ENABLE:{Description:"This enables EKF2. Enabling EKF2 only makes the maths run, it does not mean it will be used for flight control. To use it for flight control set AHRS_EKF_TYPE=2. A reboot or restart will need to be performed after changing the value of EK2_ENABLE for it to take effect.",DisplayName:"Enable EKF2",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},EK2_FLOW_DELAY:{Description:"This is the number of msec that the optical flow measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Optical Flow measurement delay (msec)",Increment:"10",Range:{high:"127",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_FLOW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the optical flow innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Optical Flow measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_FLOW_M_NSE:{Description:"This is the RMS value of noise and errors in optical flow measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Optical flow measurement noise (rad/s)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad/s",User:"Advanced"},EK2_FLOW_USE:{Description:"Controls if the optical flow data is fused into the 24-state navigation estimator OR the 1-state terrain height estimator.",DisplayName:"Optical flow use bitmask",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Navigation",2:"Terrain"}},EK2_GBIAS_P_NSE:{Description:"This state process noise controls growth of the gyro delta angle bias state error estimate. Increasing it makes rate gyro bias estimation faster and noisier.",DisplayName:"Rate gyro bias stability (rad/s/s)",Range:{high:"0.001",low:"0.00001"},Units:"rad/s/s",User:"Advanced"},EK2_GLITCH_RAD:{Description:"This controls the maximum radial uncertainty in position between the value predicted by the filter and the value measured by the GPS before the filter position and velocity states are reset to the GPS. Making this value larger allows the filter to ignore larger GPS glitches but also means that non-GPS errors such as IMU and compass can create a larger error in position before the filter is forced back to the GPS position.",DisplayName:"GPS glitch radius gate size (m)",Increment:"5",Range:{high:"100",low:"10"},Units:"m",User:"Advanced"},EK2_GPS_CHECK:{Bitmask:{0:"NSats",1:"HDoP",2:"speed error",3:"position error",4:"yaw error",5:"pos drift",6:"vert speed",7:"horiz speed"},Description:"This is a 1 byte bitmap controlling which GPS preflight checks are performed. Set to 0 to bypass all checks. Set to 255 perform all checks. Set to 3 to check just the number of satellites and HDoP. Set to 31 for the most rigorous checks that will still allow checks to pass when the copter is moving, eg launch from a boat.",DisplayName:"GPS preflight check",User:"Advanced"},EK2_GPS_TYPE:{Description:"This controls use of GPS measurements : 0 = use 3D velocity & 2D position, 1 = use 2D velocity and 2D position, 2 = use 2D position, 3 = Inhibit GPS use - this can be useful when flying with an optical flow sensor in an environment where GPS quality is poor and subject to large multipath errors.",DisplayName:"GPS mode control",User:"Advanced",Values:{0:"GPS 3D Vel and 2D Pos",1:"GPS 2D vel and 2D pos",2:"GPS 2D pos",3:"No GPS"}},EK2_GSCL_P_NSE:{Description:"This noise controls the rate of gyro scale factor learning. Increasing it makes rate gyro scale factor estimation faster and noisier.",DisplayName:"Rate gyro scale factor stability (1/s)",Range:{high:"0.001",low:"0.000001"},Units:"Hz",User:"Advanced"},EK2_GSF_RST_MAX:{Description:"Sets the maximum number of times the EKF2 will be allowed to reset it's yaw to the estimate from the EKF-GSF yaw estimator. No resets will be allowed unless the use of the EKF-GSF yaw estimate is enabled via the EK2_GSF_USE parameter.",DisplayName:"Maximum number of resets to the EKF-GSF yaw estimate allowed",Increment:"1",Range:{high:"10",low:"1"},RebootRequired:"True",User:"Advanced"},EK2_GSF_RUN_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of which EKF2 instances run an independant EKF-GSF yaw estimator to provide a backup yaw estimate that doesn't rely on magnetometer data. This estimator uses IMU, GPS and, if available, airspeed data. EKF-GSF yaw estimator data for the primary EKF2 instance will be logged as GSF0 and GSF1 messages. Use of the yaw estimate generated by this algorithm is controlled by the EK2_GSF_USE, EK2_GSF_DELAY and EK2_GSF_MAXCOUNT parameters. To run the EKF-GSF yaw estimator in ride-along and logging only, set EK2_GSF_USE to 0. ",DisplayName:"Bitmask of which EKF-GSF yaw estimators run",RebootRequired:"True",User:"Advanced"},EK2_GSF_USE_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of which EKF2 instances will use the output from the EKF-GSF yaw estimator that has been turned on by the EK2_GSF_RUN parameter. If the inertial navigation calculation stops following the GPS, then the vehicle code can request EKF2 to attempt to resolve the issue, either by performing a yaw reset if enabled by this parameter by switching to another EKF2 instance. Additionally the EKF2 will initiate a reset internally if navigation is lost for more than EK2_GSF_DELAY milli seconds.",DisplayName:"Bitmask of which EKF-GSF yaw estimators are used",RebootRequired:"True",User:"Advanced"},EK2_GYRO_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to gyro measurement errors excluding bias. Increasing it makes the flter trust the gyro measurements less and other measurements more.",DisplayName:"Rate gyro noise (rad/s)",Increment:"0.0001",Range:{high:"0.1",low:"0.0001"},Units:"rad/s",User:"Advanced"},EK2_HGT_DELAY:{Description:"This is the number of msec that the Height measurements lag behind the inertial measurements.",DisplayName:"Height measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_HGT_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the height measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Height measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_HRT_FILT:{Description:"Specifies the crossover frequency of the complementary filter used to calculate the output predictor height rate derivative.",DisplayName:"Height rate filter crossover frequency",Range:{high:"30.0",low:"0.1"},RebootRequired:"False",Units:"Hz"},EK2_IMU_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU"},Description:"1 byte bitmap of IMUs to use in EKF2. A separate instance of EKF2 will be started for each IMU selected. Set to 1 to use the first IMU only (default), set to 2 to use the second IMU only, set to 3 to use the first and second IMU. Additional IMU's can be used up to a maximum of 6 if memory and processing resources permit. There may be insufficient memory and processing resources to run multiple instances. If this occurs EKF2 will fail to start.",DisplayName:"Bitmask of active IMUs",RebootRequired:"True",User:"Advanced"},EK2_MAGB_P_NSE:{Description:"This state process noise controls the growth of body magnetic field state error estimates. Increasing it makes magnetometer bias error estimation faster and noisier.",DisplayName:"Body magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK2_MAGE_P_NSE:{Description:"This state process noise controls the growth of earth magnetic field state error estimates. Increasing it makes earth magnetic field estimation faster and noisier.",DisplayName:"Earth magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK2_MAG_CAL:{Description:"This determines when the filter will use the 3-axis magnetometer fusion model that estimates both earth and body fixed magnetic field states, when it will use a simpler magnetic heading fusion model that does not use magnetic field states and when it will use an alternative method of yaw determination to the magnetometer. The 3-axis magnetometer fusion is only suitable for use when the external magnetic field environment is stable. EK2_MAG_CAL = 0 uses heading fusion on ground, 3-axis fusion in-flight, and is the default setting for Plane users. EK2_MAG_CAL = 1 uses 3-axis fusion only when manoeuvring. EK2_MAG_CAL = 2 uses heading fusion at all times, is recommended if the external magnetic field is varying and is the default for rovers. EK2_MAG_CAL = 3 uses heading fusion on the ground and 3-axis fusion after the first in-air field and yaw reset has completed, and is the default for copters. EK2_MAG_CAL = 4 uses 3-axis fusion at all times. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK2_MAG_MASK parameter. NOTE: limited operation without a magnetometer or any other yaw sensor is possible by setting all COMPASS_USE, COMPASS_USE2, COMPASS_USE3, etc parameters to 0 with COMPASS_ENABLE set to 1. If this is done, the EK2_GSF_RUN and EK2_GSF_USE masks must be set to the same as EK2_IMU_MASK.",DisplayName:"Magnetometer default fusion mode",User:"Advanced",Values:{0:"When flying",1:"When manoeuvring",2:"Never",3:"After first climb yaw reset",4:"Always"}},EK2_MAG_EF_LIM:{Description:"This limits the difference between the learned earth magnetic field and the earth field from the world magnetic model tables. A value of zero means to disable the use of the WMM tables.",DisplayName:"EarthField error limit",Range:{high:"500",low:"0"},Units:"mGauss",User:"Advanced"},EK2_MAG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Magnetometer measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_MAG_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of EKF cores that will disable magnetic field states and use simple magnetic heading fusion at all times. This parameter enables specified cores to be used as a backup for flight into an environment with high levels of external magnetic interference which may degrade the EKF attitude estimate when using 3-axis magnetometer fusion. NOTE : Use of a different magnetometer fusion algorithm on different cores makes unwanted EKF core switches due to magnetometer errors more likely.",DisplayName:"Bitmask of active EKF cores that will always use heading fusion",RebootRequired:"True",User:"Advanced"},EK2_MAG_M_NSE:{Description:"This is the RMS value of noise in magnetometer measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Magnetometer measurement noise (Gauss)",Increment:"0.01",Range:{high:"0.5",low:"0.01"},Units:"Gauss",User:"Advanced"},EK2_MAX_FLOW:{Description:"This sets the magnitude maximum optical flow rate in rad/sec that will be accepted by the filter",DisplayName:"Maximum valid optical flow rate",Increment:"0.1",Range:{high:"4.0",low:"1.0"},Units:"rad/s",User:"Advanced"},EK2_NOAID_M_NSE:{Description:"This sets the amount of position variation that the EKF allows for when operating without external measurements (eg GPS or optical flow). Increasing this parameter makes the EKF attitude estimate less sensitive to vehicle manoeuvres but more sensitive to IMU errors.",DisplayName:"Non-GPS operation position uncertainty (m)",Range:{high:"50.0",low:"0.5"},Units:"m",User:"Advanced"},EK2_OGN_HGT_MASK:{Bitmask:{0:"Correct when using Baro height",1:"Correct when using range finder height",2:"Apply corrections to local position"},Description:"When a height sensor other than GPS is used as the primary height source by the EKF, the position of the zero height datum is defined by that sensor and its frame of reference. If a GPS height measurement is also available, then the height of the WGS-84 height datum used by the EKF can be corrected so that the height returned by the getLLH() function is compensated for primary height sensor drift and change in datum over time. The first two bit positions control when the height datum will be corrected. Correction is performed using a Bayes filter and only operates when GPS quality permits. The third bit position controls where the corrections to the GPS reference datum are applied. Corrections can be applied to the local vertical position or to the reported EKF origin height (default).",DisplayName:"Bitmask control of EKF reference height correction",RebootRequired:"True",User:"Advanced"},EK2_POSNE_M_NSE:{Description:"This sets the GPS horizontal position observation noise. Increasing it reduces the weighting of GPS horizontal position measurements.",DisplayName:"GPS horizontal position measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_POS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS position measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS position measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_RNG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the range finder innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range finder measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_RNG_M_NSE:{Description:"This is the RMS value of noise in the range finder measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range finder measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_RNG_USE_HGT:{Description:"Range finder can be used as the primary height source when below this percentage of its maximum range (see RNGFND_MAX_CM). This will not work unless Baro or GPS height is selected as the primary height source vis EK2_ALT_SOURCE = 0 or 2 respectively. This feature should not be used for terrain following as it is designed for vertical takeoff and landing with climb above the range finder use height before commencing the mission, and with horizontal position changes below that height being limited to a flat region around the takeoff and landing point.",DisplayName:"Range finder switch height percentage",Increment:"1",Range:{high:"70",low:"-1"},Units:"%",User:"Advanced"},EK2_RNG_USE_SPD:{Description:"The range finder will not be used as the primary height source when the horizontal ground speed is greater than this value.",DisplayName:"Range finder max ground speed",Increment:"0.5",Range:{high:"6.0",low:"2.0"},Units:"m/s",User:"Advanced"},EK2_TAU_OUTPUT:{Description:"Sets the time constant of the output complementary filter/predictor in centi-seconds.",DisplayName:"Output complementary filter time constant (centi-sec)",Increment:"5",Range:{high:"50",low:"10"},Units:"cs",User:"Advanced"},EK2_TERR_GRAD:{Description:"Specifies the maximum gradient of the terrain below the vehicle assumed when it is fusing range finder or optical flow to estimate terrain height.",DisplayName:"Maximum terrain gradient",Increment:"0.01",Range:{high:"0.2",low:"0"},User:"Advanced"},EK2_VELD_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set vertical velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS vertical velocity measurements.",DisplayName:"GPS vertical velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK2_VELNE_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set horizontal velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS horizontal velocity measurements.",DisplayName:"GPS horizontal velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK2_VEL_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS velocity measurement innovation consistency check. Decreasing it makes it more likely that good measurements willbe rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS velocity innovation gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_WIND_PSCALE:{Description:"This controls how much the process noise on the wind states is increased when gaining or losing altitude to take into account changes in wind speed and direction with altitude. Increasing this parameter increases how rapidly the wind states adapt when changing altitude, but does make wind velocity estimation noiser.",DisplayName:"Height rate to wind process noise scaler",Increment:"0.1",Range:{high:"1.0",low:"0.0"},User:"Advanced"},EK2_WIND_P_NSE:{Description:"This state process noise controls the growth of wind state error estimates. Increasing it makes wind estimation faster and noisier.",DisplayName:"Wind velocity process noise (m/s^2)",Increment:"0.1",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK2_YAW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer yaw measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Yaw measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_YAW_M_NSE:{Description:"This is the RMS value of noise in yaw measurements from the magnetometer. Increasing it reduces the weighting on these measurements.",DisplayName:"Yaw measurement noise (rad)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},ZJ={EK3_ABIAS_P_NSE:{Description:"This noise controls the growth of the vertical accelerometer delta velocity bias state error estimate. Increasing it makes accelerometer bias estimation faster and noisier.",DisplayName:"Accelerometer bias stability (m/s^3)",Range:{high:"0.005",low:"0.00001"},Units:"m/s/s/s",User:"Advanced"},EK3_ACC_BIAS_LIM:{Description:"The accelerometer bias state will be limited to +- this value",DisplayName:"Accelerometer bias limit",Increment:"0.1",Range:{high:"2.5",low:"0.5"},Units:"m/s/s",User:"Advanced"},EK3_ACC_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to accelerometer measurement errors excluding bias. Increasing it makes the flter trust the accelerometer measurements less and other measurements more.",DisplayName:"Accelerometer noise (m/s^2)",Increment:"0.01",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK3_AFFINITY:{Bitmask:{0:"EnableGPSAffinity",1:"EnableBaroAffinity",2:"EnableCompassAffinity",3:"EnableAirspeedAffinity"},Description:"These options control the affinity between sensor instances and EKF cores",DisplayName:"EKF3 Sensor Affinity Options",RebootRequired:"True",User:"Advanced"},EK3_ALT_M_NSE:{Description:"This is the RMS value of noise in the altitude measurement. Increasing it reduces the weighting of the baro measurement and will make the filter respond more slowly to baro measurement errors, but will make it more sensitive to GPS and accelerometer errors.",DisplayName:"Altitude measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_BCN_DELAY:{Description:"This is the number of msec that the range beacon measurements lag behind the inertial measurements.",DisplayName:"Range beacon measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_BCN_I_GTE:{Description:"This sets the percentage number of standard deviations applied to the range beacon measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range beacon measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_BCN_M_NSE:{Description:"This is the RMS value of noise in the range beacon measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range beacon measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_BETA_MASK:{Bitmask:{0:"Always",1:"WhenNoYawSensor"},Description:"1 byte bitmap controlling use of sideslip angle fusion for estimation of non wind states during operation of 'fly forward' vehicle types such as fixed wing planes. By assuming that the angle of sideslip is small, the wind velocity state estimates are corrected whenever the EKF is not dead reckoning (e.g. has an independent velocity or position sensor such as GPS). This behaviour is on by default and cannot be disabled. When the EKF is dead reckoning, the wind states are used as a reference, enabling use of the small angle of sideslip assumption to correct non wind velocity states (eg attitude, velocity, position, etc) and improve navigation accuracy. This behaviour is on by default and cannot be disabled. The behaviour controlled by this parameter is the use of the small angle of sideslip assumption to correct non wind velocity states when the EKF is NOT dead reckoning. This is primarily of benefit to reduce the buildup of yaw angle errors during straight and level flight without a yaw sensor (e.g. magnetometer or dual antenna GPS yaw) provided aerobatic flight maneuvers with large sideslip angles are not performed. The 'always' option might be used where the yaw sensor is intentionally not fitted or disabled. The 'WhenNoYawSensor' option might be used if a yaw sensor is fitted, but protection against in-flight failure and continual rejection by the EKF is desired. For vehicles operated within visual range of the operator performing frequent turning maneuvers, setting this parameter is unnecessary.",DisplayName:"Bitmask controlling sidelip angle fusion",RebootRequired:"True",User:"Advanced"},EK3_CHECK_SCALE:{Description:"This scales the thresholds that are used to check GPS accuracy before it is used by the EKF. A value of 100 is the default. Values greater than 100 increase and values less than 100 reduce the maximum GPS error the EKF will accept. A value of 200 will double the allowable GPS error.",DisplayName:"GPS accuracy check scaler (%)",Range:{high:"200",low:"50"},Units:"%",User:"Advanced"},EK3_DRAG_BCOEF_X:{Description:"Ratio of mass to drag coefficient measured along the X body axis. This parameter enables estimation of wind drift for vehicles with bluff bodies and without propulsion forces in the X and Y direction (eg multicopters). The drag produced by this effect scales with speed squared. Set to a postive value > 1.0 to enable. A starting value is the mass in Kg divided by the frontal area. The predicted drag from the rotors is specified separately by the EK3_MCOEF parameter.",DisplayName:"Ballistic coefficient for X axis drag",Range:{high:"1000.0",low:"0.0"},Units:"kg/m/m",User:"Advanced"},EK3_DRAG_BCOEF_Y:{Description:"Ratio of mass to drag coefficient measured along the Y body axis. This parameter enables estimation of wind drift for vehicles with bluff bodies and without propulsion forces in the X and Y direction (eg multicopters). The drag produced by this effect scales with speed squared. Set to a postive value > 1.0 to enable. A starting value is the mass in Kg divided by the side area. The predicted drag from the rotors is specified separately by the EK3_MCOEF parameter.",DisplayName:"Ballistic coefficient for Y axis drag",Range:{high:"1000.0",low:"50.0"},Units:"kg/m/m",User:"Advanced"},EK3_DRAG_MCOEF:{Description:"This parameter is used to predict the drag produced by the rotors when flying a multi-copter, enabling estimation of wind drift. The drag produced by this effect scales with speed not speed squared and is produced because some of the air velocity normal to the rotors axis of rotation is lost when passing through the rotor disc which changes the momentum of the airflow causing drag. For unducted rotors the effect is roughly proportional to the area of the propeller blades when viewed side on and changes with different propellers. It is higher for ducted rotors. For example if flying at 15 m/s at sea level conditions produces a rotor induced drag acceleration of 1.5 m/s/s, then EK3_MCOEF would be set to 0.1 = (1.5/15.0). Set EK3_MCOEF to a postive value to enable wind estimation using this drag effect. To account for the drag produced by the body which scales with speed squared, see documentation for the EK3_BCOEF_X and EK3_BCOEF_Y parameters.",DisplayName:"Momentum coefficient for propeller drag",Increment:"0.01",Range:{high:"1.0",low:"0.0"},Units:"1/s",User:"Advanced"},EK3_DRAG_M_NSE:{Description:"This sets the amount of noise used when fusing X and Y acceleration as an observation that enables esitmation of wind velocity for multi-rotor vehicles. This feature is enabled by the EK3_BCOEF_X and EK3_BCOEF_Y parameters",DisplayName:"Observation noise for drag acceleration",Increment:"0.1",Range:{high:"2.0",low:"0.1"},Units:"m/s/s",User:"Advanced"},EK3_EAS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the airspeed measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Airspeed measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_EAS_M_NSE:{Description:"This is the RMS value of noise in equivalent airspeed measurements used by planes. Increasing it reduces the weighting of airspeed measurements and will make wind speed estimates less noisy and slower to converge. Increasing also increases navigation errors when dead-reckoning without GPS measurements.",DisplayName:"Equivalent airspeed measurement noise (m/s)",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK3_ENABLE:{Description:"This enables EKF3. Enabling EKF3 only makes the maths run, it does not mean it will be used for flight control. To use it for flight control set AHRS_EKF_TYPE=3. A reboot or restart will need to be performed after changing the value of EK3_ENABLE for it to take effect.",DisplayName:"Enable EKF3",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},EK3_ERR_THRESH:{Description:"lanes have to be consistently better than the primary by at least this threshold to reduce their overall relativeCoreError, lowering this makes lane switching more sensitive to smaller error differences",DisplayName:"EKF3 Lane Relative Error Sensitivity Threshold",Increment:"0.05",Range:{high:"1",low:"0.05"},User:"Advanced"},EK3_FLOW_DELAY:{Description:"This is the number of msec that the optical flow measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Optical Flow measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_FLOW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the optical flow innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Optical Flow measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_FLOW_M_NSE:{Description:"This is the RMS value of noise and errors in optical flow measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Optical flow measurement noise (rad/s)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad/s",User:"Advanced"},EK3_FLOW_USE:{Description:"Controls if the optical flow data is fused into the 24-state navigation estimator OR the 1-state terrain height estimator.",DisplayName:"Optical flow use bitmask",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Navigation",2:"Terrain"}},EK3_GBIAS_P_NSE:{Description:"This state process noise controls growth of the gyro delta angle bias state error estimate. Increasing it makes rate gyro bias estimation faster and noisier.",DisplayName:"Rate gyro bias stability (rad/s/s)",Range:{high:"0.001",low:"0.00001"},Units:"rad/s/s",User:"Advanced"},EK3_GLITCH_RAD:{Description:"This controls the maximum radial uncertainty in position between the value predicted by the filter and the value measured by the GPS before the filter position and velocity states are reset to the GPS. Making this value larger allows the filter to ignore larger GPS glitches but also means that non-GPS errors such as IMU and compass can create a larger error in position before the filter is forced back to the GPS position.",DisplayName:"GPS glitch radius gate size (m)",Increment:"5",Range:{high:"100",low:"10"},Units:"m",User:"Advanced"},EK3_GND_EFF_DZ:{Description:"This parameter sets the size of the dead zone that is applied to negative baro height spikes that can occur when takeing off or landing when a vehicle with lift rotors is operating in ground effect ground effect. Set to about 0.5m less than the amount of negative offset in baro height that occurs just prior to takeoff when lift motors are spooling up. Set to 0 if no ground effect is present. ",DisplayName:"Baro height ground effect dead zone",Increment:"0.5",Range:{high:"10.0",low:"0.0"},User:"Advanced"},EK3_GPS_CHECK:{Bitmask:{0:"NSats",1:"HDoP",2:"speed error",3:"position error",4:"yaw error",5:"pos drift",6:"vert speed",7:"horiz speed"},Description:"This is a 1 byte bitmap controlling which GPS preflight checks are performed. Set to 0 to bypass all checks. Set to 255 perform all checks. Set to 3 to check just the number of satellites and HDoP. Set to 31 for the most rigorous checks that will still allow checks to pass when the copter is moving, eg launch from a boat.",DisplayName:"GPS preflight check",User:"Advanced"},EK3_GSF_RST_MAX:{Description:"Sets the maximum number of times the EKF3 will be allowed to reset it's yaw to the estimate from the EKF-GSF yaw estimator. No resets will be allowed unless the use of the EKF-GSF yaw estimate is enabled via the EK3_GSF_USE parameter.",DisplayName:"Maximum number of resets to the EKF-GSF yaw estimate allowed",Increment:"1",Range:{high:"10",low:"1"},RebootRequired:"True",User:"Advanced"},EK3_GSF_RUN_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of which EKF3 instances run an independant EKF-GSF yaw estimator to provide a backup yaw estimate that doesn't rely on magnetometer data. This estimator uses IMU, GPS and, if available, airspeed data. EKF-GSF yaw estimator data for the primary EKF3 instance will be logged as GSF0 and GSF1 messages. Use of the yaw estimate generated by this algorithm is controlled by the EK3_GSF_USE, EK3_GSF_DELAY and EK3_GSF_MAXCOUNT parameters. To run the EKF-GSF yaw estimator in ride-along and logging only, set EK3_GSF_USE to 0. ",DisplayName:"Bitmask of which EKF-GSF yaw estimators run",RebootRequired:"True",User:"Advanced"},EK3_GSF_USE_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of which EKF3 instances will use the output from the EKF-GSF yaw estimator that has been turned on by the EK3_GSF_RUN parameter. If the inertial navigation calculation stops following the GPS, then the vehicle code can request EKF3 to attempt to resolve the issue, either by performing a yaw reset if enabled by this parameter by switching to another EKF3 instance. Additionally the EKF3 will initiate a reset internally if navigation is lost for more than EK3_GSF_DELAY milli seconds.",DisplayName:"Bitmask of which EKF-GSF yaw estimators are used",RebootRequired:"True",User:"Advanced"},EK3_GYRO_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to gyro measurement errors excluding bias. Increasing it makes the flter trust the gyro measurements less and other measurements more.",DisplayName:"Rate gyro noise (rad/s)",Increment:"0.0001",Range:{high:"0.1",low:"0.0001"},Units:"rad/s",User:"Advanced"},EK3_HGT_DELAY:{Description:"This is the number of msec that the Height measurements lag behind the inertial measurements.",DisplayName:"Height measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_HGT_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the height measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Height measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_HRT_FILT:{Description:"Specifies the crossover frequency of the complementary filter used to calculate the output predictor height rate derivative.",DisplayName:"Height rate filter crossover frequency",Range:{high:"30.0",low:"0.1"},RebootRequired:"False",Units:"Hz"},EK3_IMU_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU"},Description:"1 byte bitmap of IMUs to use in EKF3. A separate instance of EKF3 will be started for each IMU selected. Set to 1 to use the first IMU only (default), set to 2 to use the second IMU only, set to 3 to use the first and second IMU. Additional IMU's can be used up to a maximum of 6 if memory and processing resources permit. There may be insufficient memory and processing resources to run multiple instances. If this occurs EKF3 will fail to start.",DisplayName:"Bitmask of active IMUs",RebootRequired:"True",User:"Advanced"},EK3_MAGB_P_NSE:{Description:"This state process noise controls the growth of body magnetic field state error estimates. Increasing it makes magnetometer bias error estimation faster and noisier.",DisplayName:"Body magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK3_MAGE_P_NSE:{Description:"This state process noise controls the growth of earth magnetic field state error estimates. Increasing it makes earth magnetic field estimation faster and noisier.",DisplayName:"Earth magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK3_MAG_CAL:{Description:"This determines when the filter will use the 3-axis magnetometer fusion model that estimates both earth and body fixed magnetic field states and when it will use a simpler magnetic heading fusion model that does not use magnetic field states. The 3-axis magnetometer fusion is only suitable for use when the external magnetic field environment is stable. EK3_MAG_CAL = 0 uses heading fusion on ground, 3-axis fusion in-flight, and is the default setting for Plane users. EK3_MAG_CAL = 1 uses 3-axis fusion only when manoeuvring. EK3_MAG_CAL = 2 uses heading fusion at all times, is recommended if the external magnetic field is varying and is the default for rovers. EK3_MAG_CAL = 3 uses heading fusion on the ground and 3-axis fusion after the first in-air field and yaw reset has completed, and is the default for copters. EK3_MAG_CAL = 4 uses 3-axis fusion at all times. EK3_MAG_CAL = 5 uses an external yaw sensor with simple heading fusion. NOTE : Use of simple heading magnetometer fusion makes vehicle compass calibration and alignment errors harder for the EKF to detect which reduces the sensitivity of the Copter EKF failsafe algorithm. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK3_MAG_MASK parameter. EK3_MAG_CAL = 6 uses an external yaw sensor with fallback to compass when the external sensor is not available if we are flying. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK3_MAG_MASK parameter. NOTE: limited operation without a magnetometer or any other yaw sensor is possible by setting all COMPASS_USE, COMPASS_USE2, COMPASS_USE3, etc parameters to 0 and setting COMPASS_ENABLE to 0. If this is done, the EK3_GSF_RUN and EK3_GSF_USE masks must be set to the same as EK3_IMU_MASK. A yaw angle derived from IMU and GPS velocity data using a Gaussian Sum Filter (GSF) will then be used to align the yaw when flight commences and there is sufficient movement.",DisplayName:"Magnetometer default fusion mode",RebootRequired:"True",User:"Advanced",Values:{0:"When flying",1:"When manoeuvring",2:"Never",3:"After first climb yaw reset",4:"Always",5:"Use external yaw sensor (Deprecated in 4.1+ see EK3_SRCn_YAW)",6:"External yaw sensor with compass fallback (Deprecated in 4.1+ see EK3_SRCn_YAW)"}},EK3_MAG_EF_LIM:{Description:"This limits the difference between the learned earth magnetic field and the earth field from the world magnetic model tables. A value of zero means to disable the use of the WMM tables.",DisplayName:"EarthField error limit",Range:{high:"500",low:"0"},Units:"mGauss",User:"Advanced"},EK3_MAG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Magnetometer measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_MAG_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of EKF cores that will disable magnetic field states and use simple magnetic heading fusion at all times. This parameter enables specified cores to be used as a backup for flight into an environment with high levels of external magnetic interference which may degrade the EKF attitude estimate when using 3-axis magnetometer fusion. NOTE : Use of a different magnetometer fusion algorithm on different cores makes unwanted EKF core switches due to magnetometer errors more likely.",DisplayName:"Bitmask of active EKF cores that will always use heading fusion",RebootRequired:"True",User:"Advanced"},EK3_MAG_M_NSE:{Description:"This is the RMS value of noise in magnetometer measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Magnetometer measurement noise (Gauss)",Increment:"0.01",Range:{high:"0.5",low:"0.01"},Units:"Gauss",User:"Advanced"},EK3_MAX_FLOW:{Description:"This sets the magnitude maximum optical flow rate in rad/sec that will be accepted by the filter",DisplayName:"Maximum valid optical flow rate",Increment:"0.1",Range:{high:"4.0",low:"1.0"},Units:"rad/s",User:"Advanced"},EK3_NOAID_M_NSE:{Description:"This sets the amount of position variation that the EKF allows for when operating without external measurements (eg GPS or optical flow). Increasing this parameter makes the EKF attitude estimate less sensitive to vehicle manoeuvres but more sensitive to IMU errors.",DisplayName:"Non-GPS operation position uncertainty (m)",Range:{high:"50.0",low:"0.5"},Units:"m",User:"Advanced"},EK3_OGNM_TEST_SF:{Description:"This parameter is adjust the sensitivity of the on ground not moving test which is used to assist with learning the yaw gyro bias and stopping yaw drift before flight when operating without a yaw sensor. Bigger values allow the detection of a not moving condition with noiser IMU data. Check the XKFM data logged when the vehicle is on ground not moving and adjust the value of OGNM_TEST_SF to be slightly higher than the maximum value of the XKFM.ADR, XKFM.ALR, XKFM.GDR and XKFM.GLR test levels.",DisplayName:"On ground not moving test scale factor",Increment:"0.5",Range:{high:"10.0",low:"1.0"},User:"Advanced"},EK3_OGN_HGT_MASK:{Bitmask:{0:"Correct when using Baro height",1:"Correct when using range finder height",2:"Apply corrections to local position"},Description:"When a height sensor other than GPS is used as the primary height source by the EKF, the position of the zero height datum is defined by that sensor and its frame of reference. If a GPS height measurement is also available, then the height of the WGS-84 height datum used by the EKF can be corrected so that the height returned by the getLLH() function is compensated for primary height sensor drift and change in datum over time. The first two bit positions control when the height datum will be corrected. Correction is performed using a Bayes filter and only operates when GPS quality permits. The third bit position controls where the corrections to the GPS reference datum are applied. Corrections can be applied to the local vertical position or to the reported EKF origin height (default).",DisplayName:"Bitmask control of EKF reference height correction",RebootRequired:"True",User:"Advanced"},EK3_POSNE_M_NSE:{Description:"This sets the GPS horizontal position observation noise. Increasing it reduces the weighting of GPS horizontal position measurements.",DisplayName:"GPS horizontal position measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_POS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS position measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS position measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_PRIMARY:{Description:"The core number (index in IMU mask) that will be used as the primary EKF core on startup. While disarmed the EKF will force the use of this core. A value of 0 corresponds to the first IMU in EK3_IMU_MASK.",DisplayName:"Primary core number",Increment:"1",Range:{high:"2",low:"0"},User:"Advanced"},EK3_RNG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the range finder innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range finder measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_RNG_M_NSE:{Description:"This is the RMS value of noise in the range finder measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range finder measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_RNG_USE_HGT:{Description:"Range finder can be used as the primary height source when below this percentage of its maximum range (see RNGFNDx_MAX_CM) and the primary height source is Baro or GPS (see EK3_SRCx_POSZ). This feature should not be used for terrain following as it is designed for vertical takeoff and landing with climb above the range finder use height before commencing the mission, and with horizontal position changes below that height being limited to a flat region around the takeoff and landing point.",DisplayName:"Range finder switch height percentage",Increment:"1",Range:{high:"70",low:"-1"},Units:"%",User:"Advanced"},EK3_RNG_USE_SPD:{Description:"The range finder will not be used as the primary height source when the horizontal ground speed is greater than this value.",DisplayName:"Range finder max ground speed",Increment:"0.5",Range:{high:"6.0",low:"2.0"},Units:"m/s",User:"Advanced"},EK3_TAU_OUTPUT:{Description:"Sets the time constant of the output complementary filter/predictor in centi-seconds.",DisplayName:"Output complementary filter time constant (centi-sec)",Increment:"5",Range:{high:"50",low:"10"},Units:"cs",User:"Advanced"},EK3_TERR_GRAD:{Description:"Specifies the maximum gradient of the terrain below the vehicle when it is using range finder as a height reference",DisplayName:"Maximum terrain gradient",Increment:"0.01",Range:{high:"0.2",low:"0"},User:"Advanced"},EK3_VELD_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set vertical velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS vertical velocity measurements.",DisplayName:"GPS vertical velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_VELNE_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set horizontal velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS horizontal velocity measurements.",DisplayName:"GPS horizontal velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_VEL_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS velocity measurement innovation consistency check. Decreasing it makes it more likely that good measurements willbe rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS velocity innovation gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_VIS_VERR_MAX:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when minimum quality is reported by the sensor. When quality is between max and min, the error will be calculated using linear interpolation between VIS_VERR_MIN and VIS_VERR_MAX.",DisplayName:"Visual odometry maximum velocity error",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK3_VIS_VERR_MIN:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when maximum quality is reported by the sensor. When quality is between max and min, the error will be calculated using linear interpolation between VIS_VERR_MIN and VIS_VERR_MAX.",DisplayName:"Visual odometry minimum velocity error",Increment:"0.05",Range:{high:"0.5",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_WENC_VERR:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when wheel encoder data is being fused.",DisplayName:"Wheel odometry velocity error",Increment:"0.1",Range:{high:"1.0",low:"0.01"},Units:"m/s",User:"Advanced"},EK3_WIND_PSCALE:{Description:"This controls how much the process noise on the wind states is increased when gaining or losing altitude to take into account changes in wind speed and direction with altitude. Increasing this parameter increases how rapidly the wind states adapt when changing altitude, but does make wind velocity estimation noiser.",DisplayName:"Height rate to wind process noise scaler",Increment:"0.1",Range:{high:"2.0",low:"0.0"},User:"Advanced"},EK3_WIND_P_NSE:{Description:"This state process noise controls the growth of wind state error estimates. Increasing it makes wind estimation faster and noisier.",DisplayName:"Wind velocity process noise (m/s^2)",Increment:"0.1",Range:{high:"2.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK3_YAW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer yaw measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Yaw measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_YAW_M_NSE:{Description:"This is the RMS value of noise in yaw measurements from the magnetometer. Increasing it reduces the weighting on these measurements.",DisplayName:"Yaw measurement noise (rad)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},GJ={EK3_SRC1_POSXY:{Description:"Position Horizontal Source (Primary)",DisplayName:"Position Horizontal Source (Primary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_POSZ:{Description:"Position Vertical Source",DisplayName:"Position Vertical Source",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_VELXY:{Description:"Velocity Horizontal Source",DisplayName:"Velocity Horizontal Source",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC1_VELZ:{Description:"Velocity Vertical Source",DisplayName:"Velocity Vertical Source",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_YAW:{Description:"Yaw Source",DisplayName:"Yaw Source",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC2_POSXY:{Description:"Position Horizontal Source (Secondary)",DisplayName:"Position Horizontal Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_POSZ:{Description:"Position Vertical Source (Secondary)",DisplayName:"Position Vertical Source (Secondary)",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_VELXY:{Description:"Velocity Horizontal Source (Secondary)",DisplayName:"Velocity Horizontal Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC2_VELZ:{Description:"Velocity Vertical Source (Secondary)",DisplayName:"Velocity Vertical Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_YAW:{Description:"Yaw Source (Secondary)",DisplayName:"Yaw Source (Secondary)",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC3_POSXY:{Description:"Position Horizontal Source (Tertiary)",DisplayName:"Position Horizontal Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_POSZ:{Description:"Position Vertical Source (Tertiary)",DisplayName:"Position Vertical Source (Tertiary)",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_VELXY:{Description:"Velocity Horizontal Source (Tertiary)",DisplayName:"Velocity Horizontal Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC3_VELZ:{Description:"Velocity Vertical Source (Tertiary)",DisplayName:"Velocity Vertical Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_YAW:{Description:"Yaw Source (Tertiary)",DisplayName:"Yaw Source (Tertiary)",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC_OPTIONS:{Bitmask:{0:"FuseAllVelocities"},Description:"EKF Source Options",DisplayName:"EKF Source Options",User:"Advanced"}},WJ={FENCE_ACTION:{Description:"What action should be taken when fence is breached",DisplayName:"Fence Action",User:"Standard",Values:{0:"Report Only",1:"RTL or Land"}},FENCE_ALT_MAX:{Description:"Maximum altitude allowed before geofence triggers",DisplayName:"Fence Maximum Altitude",Increment:"1",Range:{high:"1000",low:"10"},Units:"m",User:"Standard"},FENCE_ALT_MIN:{Description:"Minimum altitude allowed before geofence triggers",DisplayName:"Fence Minimum Altitude",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FENCE_ENABLE:{Description:"Allows you to enable (1) or disable (0) the fence functionality",DisplayName:"Fence enable/disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},FENCE_MARGIN:{Description:"Distance that autopilot's should maintain from the fence to avoid a breach",DisplayName:"Fence Margin",Range:{high:"10",low:"1"},Units:"m",User:"Standard"},FENCE_RADIUS:{Description:"Circle fence radius which when breached will cause an RTL",DisplayName:"Circular Fence Radius",Range:{high:"10000",low:"30"},Units:"m",User:"Standard"},FENCE_TOTAL:{Description:"Number of polygon points saved in eeprom (do not update manually)",DisplayName:"Fence polygon point total",Range:{high:"20",low:"1"},User:"Standard"},FENCE_TYPE:{Bitmask:{0:"Max altitude",1:"Circle",2:"Polygon",3:"Min altitude"},Description:"Enabled fence types held as bitmask",DisplayName:"Fence Type",User:"Standard"}},XJ={FFT_ATT_REF:{Description:"FFT attenuation level in dB for bandwidth calculation and peak detection. The bandwidth is calculated by comparing peak power output with the attenuated version. The default of 15 has shown to be a good compromise in both simulations and real flight.",DisplayName:"FFT attenuation for bandwidth calculation",Range:{high:"100",low:"0"},User:"Advanced"},FFT_BW_HOVER:{Description:"FFT learned bandwidth at hover for the attenuation frequencies.",DisplayName:"FFT learned bandwidth at hover",Range:{high:"200",low:"0"},User:"Advanced"},FFT_ENABLE:{Description:"Enable Gyro FFT analyser",DisplayName:"Enable",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},FFT_FREQ_HOVER:{Description:"The learned hover noise frequency",DisplayName:"FFT learned hover frequency",Range:{high:"250",low:"0"},User:"Advanced"},FFT_HMNC_FIT:{Description:"FFT harmonic fit frequency threshold percentage at which a signal of the appropriate frequency is determined to be the harmonic of another. Signals that have a harmonic relationship that varies at most by this percentage are considered harmonics of each other for the purpose of selecting the harmonic notch frequency. If a match is found then the lower frequency harmonic is always used as the basis for the dynamic harmonic notch. A value of zero completely disables harmonic matching.",DisplayName:"FFT harmonic fit frequency threshold",Range:{high:"100",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_HMNC_PEAK:{Description:"The FFT harmonic peak target that should be returned by FTN1.PkAvg. The resulting value will be used by the harmonic notch if configured to track the FFT frequency. By default the appropriate peak is auto-detected based on the harmonic fit between peaks and the energy-weighted average frequency on roll on pitch is used. Setting this to 1 will always target the highest energy peak. Setting this to 2 will target the highest energy peak that is lower in frequency than the highest energy peak. Setting this to 3 will target the highest energy peak that is higher in frequency than the highest energy peak. Setting this to 4 will target the highest energy peak on the roll axis only and only the roll frequency will be used (some vehicles have a much more pronounced peak on roll). Setting this to 5 will target the highest energy peak on the pitch axis only and only the pitch frequency will be used (some vehicles have a much more pronounced peak on roll).",DisplayName:"FFT harmonic peak target",User:"Advanced",Values:{0:"Auto",1:"Center Frequency",2:"Lower-Shoulder Frequency",3:"Upper-Shoulder Frequency",4:"Roll-Axis",5:"Pitch-Axis"}},FFT_MAXHZ:{Description:"Upper bound of FFT frequency detection in Hz. On smaller vehicles the maximum motor frequency is likely to be significantly higher than for larger vehicles.",DisplayName:"Maximum Frequency",Range:{high:"495",low:"20"},Units:"Hz",User:"Advanced"},FFT_MINHZ:{Description:"Lower bound of FFT frequency detection in Hz. On larger vehicles the minimum motor frequency is likely to be significantly lower than for smaller vehicles.",DisplayName:"Minimum Frequency",Range:{high:"400",low:"20"},Units:"Hz",User:"Advanced"},FFT_SAMPLE_MODE:{Description:"Sampling mode (and therefore rate). 0: Gyro rate sampling, 1: Fast loop rate sampling, 2: Fast loop rate / 2 sampling, 3: Fast loop rate / 3 sampling. Takes effect on reboot.",DisplayName:"Sample Mode",Range:{high:"4",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_SNR_REF:{Description:"FFT SNR reference threshold in dB at which a signal is determined to be present.",DisplayName:"FFT SNR reference threshold",Range:{high:"100.0",low:"0.0"},User:"Advanced"},FFT_THR_REF:{Description:"FFT learned thrust reference for the hover frequency and FFT minimum frequency.",DisplayName:"FFT learned thrust reference",Range:{high:"0.9",low:"0.01"},User:"Advanced"},FFT_WINDOW_OLAP:{Description:"Percentage of window to be overlapped before another frame is process. Takes effect on reboot. A good default is 50% overlap. Higher overlap results in more processed frames but not necessarily more temporal resolution. Lower overlap results in lost information at the frame edges.",DisplayName:"FFT window overlap",Range:{high:"0.9",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_WINDOW_SIZE:{Description:"Size of window to be used in FFT calculations. Takes effect on reboot. Must be a power of 2 and between 32 and 512. Larger windows give greater frequency resolution but poorer time resolution, consume more CPU time and may not be appropriate for all vehicles. Time and frequency resolution are given by the sample-rate / window-size. Windows of 256 are only really recommended for F7 class boards, windows of 512 or more H7 class.",DisplayName:"FFT window size",Range:{high:"1024",low:"32"},RebootRequired:"True",User:"Advanced"}},YJ={FLOW_ADDR:{Description:"This is used to select between multiple possible I2C addresses for some sensor types. For PX4Flow you can choose 0 to 7 for the 8 possible addresses on the I2C bus.",DisplayName:"Address on the bus",Range:{high:"127",low:"0"},User:"Advanced"},FLOW_FXSCALER:{Description:"This sets the parts per thousand scale factor correction applied to the flow sensor X axis optical rate. It can be used to correct for variations in effective focal length. Each positive increment of 1 increases the scale factor applied to the X axis optical flow reading by 0.1%. Negative values reduce the scale factor.",DisplayName:"X axis optical flow scale factor correction",Increment:"1",Range:{high:"+200",low:"-200"},User:"Standard"},FLOW_FYSCALER:{Description:"This sets the parts per thousand scale factor correction applied to the flow sensor Y axis optical rate. It can be used to correct for variations in effective focal length. Each positive increment of 1 increases the scale factor applied to the Y axis optical flow reading by 0.1%. Negative values reduce the scale factor.",DisplayName:"Y axis optical flow scale factor correction",Increment:"1",Range:{high:"+200",low:"-200"},User:"Standard"},FLOW_ORIENT_YAW:{Description:"Specifies the number of centi-degrees that the flow sensor is yawed relative to the vehicle. A sensor with its X-axis pointing to the right of the vehicle X axis has a positive yaw angle.",DisplayName:"Flow sensor yaw alignment",Increment:"10",Range:{high:"+18000",low:"-17999"},Units:"cdeg",User:"Standard"},FLOW_POS_X:{Description:"X position of the optical flow sensor focal point in body frame. Positive X is forward of the origin.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},FLOW_POS_Y:{Description:"Y position of the optical flow sensor focal point in body frame. Positive Y is to the right of the origin.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},FLOW_POS_Z:{Description:"Z position of the optical flow sensor focal point in body frame. Positive Z is down from the origin.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},FLOW_TYPE:{Description:"Optical flow sensor type",DisplayName:"Optical flow sensor type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"PX4Flow",2:"Pixart",3:"Bebop",4:"CXOF",5:"MAVLink",6:"UAVCAN",7:"MSP",8:"UPFLOW"}}},$J={FRSKY_DNLINK1_ID:{Description:"Change the first extra downlink sensor id (SPort only)",DisplayName:"First downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}},FRSKY_DNLINK2_ID:{Description:"Change the second extra downlink sensor id (SPort only)",DisplayName:"Second downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}},FRSKY_DNLINK_ID:{Description:"Change the default downlink sensor id (SPort only)",DisplayName:"Default downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26",27:"27","-1":"Disable"}},FRSKY_UPLINK_ID:{Description:"Change the uplink sensor id (SPort only)",DisplayName:"Uplink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}}},qJ={GEN_TYPE:{Description:"Generator type",DisplayName:"Generator type",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"IE 650w 800w Fuel Cell",2:"IE 2.4kW Fuel Cell",3:"Richenpower"}}},KJ={GPS1_CAN_OVRIDE:{Description:"GPS Node id for first GPS. If 0 the gps will be automatically selected on first come basis.",DisplayName:"First UAVCAN GPS NODE ID",User:"Advanced"},GPS2_CAN_OVRIDE:{Description:"GPS Node id for second GPS. If 0 the gps will be automatically selected on first come basis.",DisplayName:"Second UAVCAN GPS NODE ID",User:"Advanced"},GPS_AUTO_CONFIG:{Description:"Controls if the autopilot should automatically configure the GPS based on the parameters and default settings",DisplayName:"Automatic GPS configuration",User:"Advanced",Values:{0:"Disables automatic configuration",1:"Enable automatic configuration"}},GPS_AUTO_SWITCH:{Description:"Automatic switchover to GPS reporting best lock, 1:UseBest selects the GPS with highest status, if both are equal the GPS with highest satellite count is used 4:Use primary if 3D fix or better, will revert to 'UseBest' behaviour if 3D fix is lost on primary",DisplayName:"Automatic Switchover Setting",User:"Advanced",Values:{0:"Use primary",1:"UseBest",2:"Blend",4:"Use primary if 3D fix or better"}},GPS_BLEND_MASK:{Bitmask:{0:"Horiz Pos",1:"Vert Pos",2:"Speed"},Description:"Determines which of the accuracy measures Horizontal position, Vertical Position and Speed are used to calculate the weighting on each GPS receiver when soft switching has been selected by setting GPS_AUTO_SWITCH to 2(Blend)",DisplayName:"Multi GPS Blending Mask",User:"Advanced"},GPS_BLEND_TC:{Description:"Controls the slowest time constant applied to the calculation of GPS position and height offsets used to adjust different GPS receivers for steady state position differences.",DisplayName:"Blending time constant",Range:{high:"30.0",low:"5.0"},Units:"s",User:"Advanced"},GPS_CAN_NODEID1:{Description:"GPS Node id for discovered first.",DisplayName:"GPS Node ID 1",ReadOnly:"True",User:"Advanced"},GPS_CAN_NODEID2:{Description:"GPS Node id for discovered second.",DisplayName:"GPS Node ID 2",ReadOnly:"True",User:"Advanced"},GPS_COM_PORT:{Description:"The physical COM port on the connected device, currently only applies to SBF GPS",DisplayName:"GPS physical COM port",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},GPS_COM_PORT2:{Description:"The physical COM port on the connected device, currently only applies to SBF GPS",DisplayName:"GPS physical COM port",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},GPS_DELAY_MS:{Description:"Controls the amount of GPS measurement delay that the autopilot compensates for. Set to zero to use the default delay for the detected GPS type.",DisplayName:"GPS delay in milliseconds",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},GPS_DELAY_MS2:{Description:"Controls the amount of GPS measurement delay that the autopilot compensates for. Set to zero to use the default delay for the detected GPS type.",DisplayName:"GPS 2 delay in milliseconds",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},GPS_DRV_OPTIONS:{Bitmask:{0:"Use UART2 for moving baseline on ublox",1:"Use base station for GPS yaw on SBF",2:"Use baudrate 115200"},Description:"Additional backend specific options",DisplayName:"driver options",User:"Advanced"},GPS_GNSS_MODE:{Bitmask:{0:"GPS",1:"SBAS",2:"Galileo",3:"Beidou",4:"IMES",5:"QZSS",6:"GLONASS"},Description:"Bitmask for what GNSS system to use on the first GPS (all unchecked or zero to leave GPS as configured)",DisplayName:"GNSS system configuration",User:"Advanced"},GPS_GNSS_MODE2:{Bitmask:{0:"GPS",1:"SBAS",2:"Galileo",3:"Beidou",4:"IMES",5:"QZSS",6:"GLONASS"},Description:"Bitmask for what GNSS system to use on the second GPS (all unchecked or zero to leave GPS as configured)",DisplayName:"GNSS system configuration",User:"Advanced"},GPS_INJECT_TO:{Description:"The GGS can send raw serial packets to inject data to multiple GPSes.",DisplayName:"Destination for GPS_INJECT_DATA MAVLink packets",User:"Advanced",Values:{0:"send to first GPS",1:"send to 2nd GPS",127:"send to all"}},GPS_MIN_DGPS:{Description:"Sets the minimum type of differential GPS corrections required before allowing to switch into DGPS mode.",DisplayName:"Minimum Lock Type Accepted for DGPS",RebootRequired:"True",User:"Advanced",Values:{0:"Any",50:"FloatRTK",100:"IntegerRTK"}},GPS_MIN_ELEV:{Description:"This sets the minimum elevation of satellites above the horizon for them to be used for navigation. Setting this to -100 leaves the minimum elevation set to the GPS modules default.",DisplayName:"Minimum elevation",Range:{high:"90",low:"-100"},Units:"deg",User:"Advanced"},GPS_NAVFILTER:{Description:"Navigation filter engine setting",DisplayName:"Navigation filter setting",User:"Advanced",Values:{0:"Portable",2:"Stationary",3:"Pedestrian",4:"Automotive",5:"Sea",6:"Airborne1G",7:"Airborne2G",8:"Airborne4G"}},GPS_POS1_X:{Description:"X position of the first GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS1_Y:{Description:"Y position of the first GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS1_Z:{Description:"Z position of the first GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_X:{Description:"X position of the second GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_Y:{Description:"Y position of the second GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_Z:{Description:"Z position of the second GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_PRIMARY:{Description:"This GPS will be used when GPS_AUTO_SWITCH is 0 and used preferentially with GPS_AUTO_SWITCH = 4.",DisplayName:"Primary GPS",Increment:"1",User:"Advanced",Values:{0:"FirstGPS",1:"SecondGPS"}},GPS_RATE_MS:{Description:"Controls how often the GPS should provide a position update. Lowering below 5Hz(default) is not allowed. Raising the rate above 5Hz usually provides little benefit and for some GPS (eg Ublox M9N) can severely impact performance.",DisplayName:"GPS update rate in milliseconds",Range:{high:"200",low:"50"},Units:"ms",User:"Advanced",Values:{100:"10Hz",125:"8Hz",200:"5Hz"}},GPS_RATE_MS2:{Description:"Controls how often the GPS should provide a position update. Lowering below 5Hz(default) is not allowed. Raising the rate above 5Hz usually provides little benefit and for some GPS (eg Ublox M9N) can severely impact performance.",DisplayName:"GPS 2 update rate in milliseconds",Range:{high:"200",low:"50"},Units:"ms",User:"Advanced",Values:{100:"10Hz",125:"8Hz",200:"5Hz"}},GPS_RAW_DATA:{Description:"Handles logging raw data; on uBlox chips that support raw data this will log RXM messages into logger; on Septentrio this will log on the equipment's SD card and when set to 2, the autopilot will try to stop logging after disarming and restart after arming",DisplayName:"Raw data logging",RebootRequired:"True",User:"Advanced",Values:{0:"Ignore",1:"Always log",2:"Stop logging when disarmed (SBF only)",5:"Only log every five samples (uBlox only)"}},GPS_SAVE_CFG:{Description:"Determines whether the configuration for this GPS should be written to non-volatile memory on the GPS. Currently working for UBlox 6 series and above.",DisplayName:"Save GPS configuration",User:"Advanced",Values:{0:"Do not save config",1:"Save config",2:"Save only when needed"}},GPS_SBAS_MODE:{Description:"This sets the SBAS (satellite based augmentation system) mode if available on this GPS. If set to 2 then the SBAS mode is not changed in the GPS. Otherwise the GPS will be reconfigured to enable/disable SBAS. Disabling SBAS may be worthwhile in some parts of the world where an SBAS signal is available but the baseline is too long to be useful.",DisplayName:"SBAS Mode",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"NoChange"}},GPS_SBP_LOGMASK:{Description:"Masked with the SBP msg_type field to determine whether SBR1/SBR2 data is logged",DisplayName:"Swift Binary Protocol Logging Mask",User:"Advanced",Values:{0:"None (0x0000)","-1":"All (0xFFFF)","-256":"External only (0xFF00)"}},GPS_TYPE:{Description:"GPS type of 1st GPS",DisplayName:"1st GPS type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"AUTO",2:"uBlox",3:"MTK",4:"MTK19",5:"NMEA",6:"SiRF",7:"HIL",8:"SwiftNav",9:"UAVCAN",10:"SBF",11:"GSOF",13:"ERB",14:"MAV",15:"NOVA",16:"HemisphereNMEA",17:"uBlox-MovingBaseline-Base",18:"uBlox-MovingBaseline-Rover",19:"MSP",20:"AllyStar",21:"ExternalAHRS"}},GPS_TYPE2:{Description:"GPS type of 2nd GPS",DisplayName:"2nd GPS type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"AUTO",2:"uBlox",3:"MTK",4:"MTK19",5:"NMEA",6:"SiRF",7:"HIL",8:"SwiftNav",9:"UAVCAN",10:"SBF",11:"GSOF",13:"ERB",14:"MAV",15:"NOVA",16:"HemisphereNMEA",17:"uBlox-MovingBaseline-Base",18:"uBlox-MovingBaseline-Rover",19:"MSP",20:"AllyStar",21:"ExternalAHRS"}}},jJ={GPS_MB1_OFS_X:{Description:"X position of the base GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_OFS_Y:{Description:"Y position of the base GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Y position offset ",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_OFS_Z:{Description:"Z position of the base GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_TYPE:{Description:"Controls the type of moving base used if using moving base.",DisplayName:"Moving base type",RebootRequired:"True",User:"Advanced",Values:{0:"Relative to alternate GPS instance",1:"RelativeToCustomBase"}}},QJ={GPS_MB2_OFS_X:{Description:"X position of the base GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_OFS_Y:{Description:"Y position of the base GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Y position offset ",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_OFS_Z:{Description:"Z position of the base GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_TYPE:{Description:"Controls the type of moving base used if using moving base.",DisplayName:"Moving base type",RebootRequired:"True",User:"Advanced",Values:{0:"Relative to alternate GPS instance",1:"RelativeToCustomBase"}}},JJ={GRIP_ENABLE:{Description:"Gripper enable/disable",DisplayName:"Gripper Enable/Disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},GRIP_GRAB:{Description:"PWM value in microseconds sent to Gripper to initiate grabbing the cargo",DisplayName:"Gripper Grab PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_NEUTRAL:{Description:"PWM value in microseconds sent to grabber when not grabbing or releasing",DisplayName:"Neutral PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_REGRAB:{Description:"Time in seconds that gripper will regrab the cargo to ensure grip has not weakened; 0 to disable",DisplayName:"Gripper Regrab interval",Range:{high:"255",low:"0"},Units:"s",User:"Advanced"},GRIP_RELEASE:{Description:"PWM value in microseconds sent to Gripper to release the cargo",DisplayName:"Gripper Release PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_TYPE:{Description:"Gripper enable/disable",DisplayName:"Gripper Type",User:"Standard",Values:{0:"None",1:"Servo",2:"EPM"}},GRIP_UAVCAN_ID:{Description:"Refer to https://docs.zubax.com/opengrab_epm_v3#UAVCAN_interface",DisplayName:"EPM UAVCAN Hardpoint ID",Range:{high:"255",low:"0"},User:"Standard"}},e11={INS_ACC1_CALTEMP:{Calibration:"1",Description:"Temperature that the 1st accelerometer was calibrated at",DisplayName:"Calibration temperature for 1st accelerometer",Units:"degC",User:"Advanced"},INS_ACC2OFFS_X:{Calibration:"1",Description:"Accelerometer2 offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2OFFS_Y:{Calibration:"1",Description:"Accelerometer2 offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2OFFS_Z:{Calibration:"1",Description:"Accelerometer2 offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2SCAL_X:{Calibration:"1",Description:"Accelerometer2 scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2SCAL_Y:{Calibration:"1",Description:"Accelerometer2 scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2SCAL_Z:{Calibration:"1",Description:"Accelerometer2 scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2_CALTEMP:{Calibration:"1",Description:"Temperature that the 2nd accelerometer was calibrated at",DisplayName:"Calibration temperature for 2nd accelerometer",Units:"degC",User:"Advanced"},INS_ACC2_ID:{Description:"Accelerometer2 sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer2 ID",ReadOnly:"True",User:"Advanced"},INS_ACC3OFFS_X:{Calibration:"1",Description:"Accelerometer3 offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3OFFS_Y:{Calibration:"1",Description:"Accelerometer3 offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3OFFS_Z:{Calibration:"1",Description:"Accelerometer3 offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3SCAL_X:{Calibration:"1",Description:"Accelerometer3 scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3SCAL_Y:{Calibration:"1",Description:"Accelerometer3 scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3SCAL_Z:{Calibration:"1",Description:"Accelerometer3 scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3_CALTEMP:{Calibration:"1",Description:"Temperature that the 3rd accelerometer was calibrated at",DisplayName:"Calibration temperature for 3rd accelerometer",Units:"degC",User:"Advanced"},INS_ACC3_ID:{Description:"Accelerometer3 sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer3 ID",ReadOnly:"True",User:"Advanced"},INS_ACCEL_FILTER:{Description:"Filter cutoff frequency for accelerometers. This can be set to a lower value to try to cope with very high vibration levels in aircraft. A value of zero means no filtering (not recommended!)",DisplayName:"Accel filter cutoff frequency",Range:{high:"256",low:"0"},Units:"Hz",User:"Advanced"},INS_ACCOFFS_X:{Calibration:"1",Description:"Accelerometer offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCOFFS_Y:{Calibration:"1",Description:"Accelerometer offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCOFFS_Z:{Calibration:"1",Description:"Accelerometer offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCSCAL_X:{Calibration:"1",Description:"Accelerometer scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACCSCAL_Y:{Calibration:"1",Description:"Accelerometer scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACCSCAL_Z:{Calibration:"1",Description:"Accelerometer scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC_BODYFIX:{Description:"The body-fixed accelerometer to be used for trim calculation",DisplayName:"Body-fixed accelerometer",User:"Advanced",Values:{1:"IMU 1",2:"IMU 2",3:"IMU 3"}},INS_ACC_ID:{Description:"Accelerometer sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer ID",ReadOnly:"True",User:"Advanced"},INS_ENABLE_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU"},Description:"Bitmask of IMUs to enable. It can be used to prevent startup of specific detected IMUs",DisplayName:"IMU enable mask",User:"Advanced"},INS_FAST_SAMPLE:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU"},Description:"Mask of IMUs to enable fast sampling on, if available",DisplayName:"Fast sampling mask",User:"Advanced"},INS_GYR1_CALTEMP:{Calibration:"1",Description:"Temperature that the 1st gyroscope was calibrated at",DisplayName:"Calibration temperature for 1st gyroscope",Units:"degC",User:"Advanced"},INS_GYR2OFFS_X:{Calibration:"1",Description:"Gyro2 sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYR2OFFS_Y:{Calibration:"1",Description:"Gyro2 sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYR2OFFS_Z:{Calibration:"1",Description:"Gyro2 sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYR2_CALTEMP:{Calibration:"1",Description:"Temperature that the 2nd gyroscope was calibrated at",DisplayName:"Calibration temperature for 2nd gyroscope",Units:"degC",User:"Advanced"},INS_GYR2_ID:{Description:"Gyro2 sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro2 ID",ReadOnly:"True",User:"Advanced"},INS_GYR3OFFS_X:{Calibration:"1",Description:"Gyro3 sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYR3OFFS_Y:{Calibration:"1",Description:"Gyro3 sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYR3OFFS_Z:{Calibration:"1",Description:"Gyro3 sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYR3_CALTEMP:{Calibration:"1",Description:"Temperature that the 3rd gyroscope was calibrated at",DisplayName:"Calibration temperature for 3rd gyroscope",Units:"degC",User:"Advanced"},INS_GYR3_ID:{Description:"Gyro3 sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro3 ID",ReadOnly:"True",User:"Advanced"},INS_GYROFFS_X:{Calibration:"1",Description:"Gyro sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYROFFS_Y:{Calibration:"1",Description:"Gyro sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYROFFS_Z:{Calibration:"1",Description:"Gyro sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYRO_FILTER:{Description:"Filter cutoff frequency for gyroscopes. This can be set to a lower value to try to cope with very high vibration levels in aircraft. A value of zero means no filtering (not recommended!)",DisplayName:"Gyro filter cutoff frequency",Range:{high:"256",low:"0"},Units:"Hz",User:"Advanced"},INS_GYRO_RATE:{Description:"Gyro rate for IMUs with fast sampling enabled. The gyro rate is the sample rate at which the IMU filters operate and needs to be at least double the maximum filter frequency. If the sensor does not support the selected rate the next highest supported rate will be used. For IMUs which do not support fast sampling this setting is ignored and the default gyro rate of 1Khz is used.",DisplayName:"Gyro rate for IMUs with Fast Sampling enabled",RebootRequired:"True",User:"Advanced",Values:{0:"1kHz",1:"2kHz",2:"4kHz",3:"8kHz"}},INS_GYR_CAL:{Description:"Conrols when automatic gyro calibration is performed",DisplayName:"Gyro Calibration scheme",User:"Advanced",Values:{0:"Never",1:"Start-up only"}},INS_GYR_ID:{Description:"Gyro sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro ID",ReadOnly:"True",User:"Advanced"},INS_POS1_X:{Description:"X position of the first IMU Accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS1_Y:{Description:"Y position of the first IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS1_Z:{Description:"Z position of the first IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_X:{Description:"X position of the second IMU accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_Y:{Description:"Y position of the second IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_Z:{Description:"Z position of the second IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS3_X:{Description:"X position of the third IMU accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Range:{high:"10",low:"-10"},Units:"m",User:"Advanced"},INS_POS3_Y:{Description:"Y position of the third IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS3_Z:{Description:"Z position of the third IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_STILL_THRESH:{Description:"Threshold to tolerate vibration to determine if vehicle is motionless. This depends on the frame type and if there is a constant vibration due to motors before launch or after landing. Total motionless is about 0.05. Suggested values: Planes/rover use 0.1, multirotors use 1, tradHeli uses 5",DisplayName:"Stillness threshold for detecting if we are moving",Range:{high:"50",low:"0.05"},User:"Advanced"},INS_TCAL_OPTIONS:{Bitmask:{0:"PersistParams"},Description:"This enables optional temperature calibration features. Setting PersistParams will save the accelerometer and temperature calibration parameters in the bootloader sector on the next update of the bootloader.",DisplayName:"Options for temperature calibration",User:"Advanced"},INS_TRIM_OPTION:{Description:"Specifies how the accel cal routine determines the trims",DisplayName:"Accel cal trim option",User:"Advanced",Values:{0:"Don't adjust the trims",1:"Assume first orientation was level",2:"Assume ACC_BODYFIX is perfectly aligned to the vehicle"}},INS_USE:{Description:"Use first IMU for attitude, velocity and position estimates",DisplayName:"Use first IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_USE2:{Description:"Use second IMU for attitude, velocity and position estimates",DisplayName:"Use second IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_USE3:{Description:"Use third IMU for attitude, velocity and position estimates",DisplayName:"Use third IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}}},t11={INS_HNTCH_ATT:{Description:"Harmonic Notch Filter attenuation in dB. Values greater than 40dB will typically produce a hard notch rather than a modest attenuation of motor noise.",DisplayName:"Harmonic Notch Filter attenuation",Range:{high:"50",low:"5"},Units:"dB",User:"Advanced"},INS_HNTCH_BW:{Description:"Harmonic Notch Filter bandwidth in Hz. This is typically set to half the base frequency. The ratio of base frequency to bandwidth determines the notch quality factor and is fixed across harmonics.",DisplayName:"Harmonic Notch Filter bandwidth",Range:{high:"250",low:"5"},Units:"Hz",User:"Advanced"},INS_HNTCH_ENABLE:{Description:"Harmonic Notch Filter enable",DisplayName:"Harmonic Notch Filter enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_HNTCH_FREQ:{Description:"Harmonic Notch Filter base center frequency in Hz. This should be set at most half the backend gyro rate (which is typically 1Khz). For helicopters using RPM sensor to dynamically set the notch frequency, use this parameter to provide a lower limit to the dynamic notch filter. Recommend setting it to half the operating rotor speed in Hz.",DisplayName:"Harmonic Notch Filter base frequency",Range:{high:"495",low:"10"},Units:"Hz",User:"Advanced"},INS_HNTCH_HMNCS:{Bitmask:{0:"1st harmonic",1:"2nd harmonic",2:"3rd harmonic",3:"4th hamronic",4:"5th harmonic",5:"6th harmonic",6:"7th harmonic",7:"8th harmonic"},Description:"Bitmask of harmonic frequencies to apply Harmonic Notch Filter to. This option takes effect on the next reboot. A maximum of 3 harmonics can be used at any one time.",DisplayName:"Harmonic Notch Filter harmonics",RebootRequired:"True",User:"Advanced"},INS_HNTCH_MODE:{Description:"Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based updates should only be used with multicopters.",DisplayName:"Harmonic Notch Filter dynamic frequency tracking mode",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Disabled",1:"Throttle",2:"RPM Sensor",3:"ESC Telemetry",4:"Dynamic FFT"}},INS_HNTCH_OPTS:{Bitmask:{0:"Double notch",1:"Dynamic harmonic",2:"Update at loop rate"},Description:"Harmonic Notch Filter options. Double-notches can provide deeper attenuation across a wider bandwidth than single notches and are suitable for larger aircraft. Dynamic harmonics attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz.",DisplayName:"Harmonic Notch Filter options",RebootRequired:"True",User:"Advanced"},INS_HNTCH_REF:{Description:"A reference value of zero disables dynamic updates on the Harmonic Notch Filter and a positive value enables dynamic updates on the Harmonic Notch Filter. For throttle-based scaling, this parameter is the reference value associated with the specified frequency to facilitate frequency scaling of the Harmonic Notch Filter. For RPM and ESC telemetry based tracking, this parameter is set to 1 to enable the Harmonic Notch Filter using the RPM sensor or ESC telemetry set to measure rotor speed. The sensor data is converted to Hz automatically for use in the Harmonic Notch Filter. This reference value may also be used to scale the sensor data, if required. For example, rpm sensor data is required to measure heli motor RPM. Therefore the reference value can be used to scale the RPM sensor to the rotor RPM.",DisplayName:"Harmonic Notch Filter reference value",Range:{high:"1.0",low:"0.0"},RebootRequired:"True",User:"Advanced"}},i11={INS_LOG_BAT_CNT:{Description:"Number of samples to take when logging streams of IMU sensor readings. Will be rounded down to a multiple of 32. This option takes effect on the next reboot.",DisplayName:"sample count per batch",Increment:"32",RebootRequired:"True",User:"Advanced"},INS_LOG_BAT_LGCT:{Description:"Number of samples to push to count every INS_LOG_BAT_LGIN",DisplayName:"logging count",Increment:"1"},INS_LOG_BAT_LGIN:{Description:"Interval between pushing samples to the AP_Logger log",DisplayName:"logging interval",Increment:"10",Units:"ms"},INS_LOG_BAT_MASK:{Bitmask:{0:"IMU1",1:"IMU2",2:"IMU3"},Description:"Bitmap of which IMUs to log batch data for. This option takes effect on the next reboot.",DisplayName:"Sensor Bitmask",RebootRequired:"True",User:"Advanced"},INS_LOG_BAT_OPT:{Bitmask:{0:"Sensor-Rate Logging (sample at full sensor rate seen by AP)",1:"Sample post-filtering"},Description:"Options for the BatchSampler. Post-filter and sensor-rate logging cannot be used at the same time.",DisplayName:"Batch Logging Options Mask",User:"Advanced"}},a11={INS_NOTCH_ATT:{Description:"Notch attenuation in dB",DisplayName:"Attenuation",Range:{high:"30",low:"5"},Units:"dB",User:"Advanced"},INS_NOTCH_BW:{Description:"Notch bandwidth in Hz",DisplayName:"Bandwidth",Range:{high:"100",low:"5"},Units:"Hz",User:"Advanced"},INS_NOTCH_ENABLE:{Description:"Enable notch filter",DisplayName:"Enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_NOTCH_FREQ:{Description:"Notch center frequency in Hz",DisplayName:"Frequency",Range:{high:"400",low:"10"},Units:"Hz",User:"Advanced"}},r11={INS_TCAL1_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL1_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL1_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},n11={INS_TCAL2_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL2_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL2_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},o11={INS_TCAL3_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL3_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL3_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},s11={LEAK1_LOGIC:{Description:"Default reading of leak detector when dry",DisplayName:"Default reading of leak detector when dry",User:"Standard",Values:{0:"Low",1:"High"}},LEAK1_PIN:{Description:"Pin that the leak detector is connected to",DisplayName:"Pin that leak detector is connected to",RebootRequired:"True",User:"Standard",Values:{13:"Pixhawk 3.3ADC1",14:"Pixhawk 3.3ADC2",15:"Pixhawk 6.6ADC",27:"Navigator Built-In",50:"Pixhawk Aux1",51:"Pixhawk Aux2",52:"Pixhawk Aux3",53:"Pixhawk Aux4",54:"Pixhawk Aux5",55:"Pixhawk Aux6","-1":"Disabled"}},LEAK2_LOGIC:{Description:"Default reading of leak detector when dry",DisplayName:"Default reading of leak detector when dry",User:"Standard",Values:{0:"Low",1:"High"}},LEAK2_PIN:{Description:"Pin that the leak detector is connected to",DisplayName:"Pin that leak detector is connected to",RebootRequired:"True",User:"Standard",Values:{13:"Pixhawk 3.3ADC1",14:"Pixhawk 3.3ADC2",15:"Pixhawk 6.6ADC",27:"Navigator Leak1",50:"Pixhawk Aux1",51:"Pixhawk Aux2",52:"Pixhawk Aux3",53:"Pixhawk Aux4",54:"Pixhawk Aux5",55:"Pixhawk Aux6","-1":"Disabled"}},LEAK3_LOGIC:{Description:"Default reading of leak detector when dry",DisplayName:"Default reading of leak detector when dry",User:"Standard",Values:{0:"Low",1:"High"}},LEAK3_PIN:{Description:"Pin that the leak detector is connected to",DisplayName:"Pin that leak detector is connected to",RebootRequired:"True",User:"Standard",Values:{13:"Pixhawk 3.3ADC1",14:"Pixhawk 3.3ADC2",15:"Pixhawk 6.6ADC",27:"Navigator Leak1",50:"Pixhawk Aux1",51:"Pixhawk Aux2",52:"Pixhawk Aux3",53:"Pixhawk Aux4",54:"Pixhawk Aux5",55:"Pixhawk Aux6","-1":"Disabled"}}},l11={LOG_BACKEND_TYPE:{Bitmask:{0:"File",1:"MAVLink",2:"Block"},Description:"Bitmap of what Logger backend types to enable. Block-based logging is available on SITL and boards with dataflash chips. Multiple backends can be selected.",DisplayName:"AP_Logger Backend Storage type",User:"Standard"},LOG_DISARMED:{Description:"If LOG_DISARMED is set to 1 then logging will be enabled while disarmed. This can make for very large logfiles but can help a lot when tracking down startup issues",DisplayName:"Enable logging while disarmed",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},LOG_FILE_BUFSIZE:{Description:'The File and Block backends use a buffer to store data before writing to the block device. Raising this value may reduce "gaps" in your SD card logging. This buffer size may be reduced depending on available memory. PixHawk requires at least 4 kilobytes. Maximum value available here is 64 kilobytes.',DisplayName:"Maximum AP_Logger File and Block Backend buffer size (in kilobytes)",User:"Standard"},LOG_FILE_DSRMROT:{Description:"When set, the current log file is closed when the vehicle is disarmed. If LOG_DISARMED is set then a fresh log will be opened. Applies to the File and Block logging backends.",DisplayName:"Stop logging to current file on disarm",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},LOG_FILE_MB_FREE:{Description:"Set this such that the free space is larger than your largest typical flight log",DisplayName:"Old logs on the SD card will be deleted to maintain this amount of free space",Range:{high:"1000",low:"10"},Units:"MB",User:"Standard"},LOG_FILE_TIMEOUT:{Description:"This controls the amount of time before failing writes to a log file cause the file to be closed and logging stopped.",DisplayName:"Timeout before giving up on file writes",Units:"s",User:"Standard"},LOG_MAV_BUFSIZE:{Description:"Maximum amount of memory to allocate to AP_Logger-over-mavlink",DisplayName:"Maximum AP_Logger MAVLink Backend buffer size",Units:"kB",User:"Advanced"},LOG_REPLAY:{Description:"If LOG_REPLAY is set to 1 then the EKF2 state estimator will log detailed information needed for diagnosing problems with the Kalman filter. It is suggested that you also raise LOG_FILE_BUFSIZE to give more buffer space for logging and use a high quality microSD card to ensure no sensor data is lost",DisplayName:"Enable logging of information needed for Replay",User:"Standard",Values:{0:"Disabled",1:"Enabled"}}},c11={LOIT_ACC_MAX:{Description:"Loiter maximum correction acceleration in cm/s/s. Higher values cause the copter to correct position errors more aggressively.",DisplayName:"Loiter maximum correction acceleration",Increment:"1",Range:{high:"981",low:"100"},Units:"cm/s/s",User:"Advanced"},LOIT_ANG_MAX:{Description:"Loiter maximum lean angle. Set to zero for 2/3 of PSC_ANGLE_MAX or ANGLE_MAX",DisplayName:"Loiter Angle Max",Increment:"1",Range:{high:"45",low:"0"},Units:"deg",User:"Advanced"},LOIT_BRK_ACCEL:{Description:"Loiter braking acceleration in cm/s/s. Higher values stop the copter more quickly when the stick is centered.",DisplayName:"Loiter braking acceleration",Increment:"1",Range:{high:"250",low:"25"},Units:"cm/s/s",User:"Advanced"},LOIT_BRK_DELAY:{Description:"Loiter brake start delay (in seconds)",DisplayName:"Loiter brake start delay (in seconds)",Increment:"0.1",Range:{high:"2",low:"0"},Units:"s",User:"Advanced"},LOIT_BRK_JERK:{Description:"Loiter braking jerk in cm/s/s/s. Higher values will remove braking faster if the pilot moves the sticks during a braking maneuver.",DisplayName:"Loiter braking jerk",Increment:"1",Range:{high:"5000",low:"500"},Units:"cm/s/s/s",User:"Advanced"},LOIT_SPEED:{Description:"Defines the maximum speed in cm/s which the aircraft will travel horizontally while in loiter mode",DisplayName:"Loiter Horizontal Maximum Speed",Increment:"50",Range:{high:"3500",low:"20"},Units:"cm/s",User:"Standard"}},d11={MIS_OPTIONS:{Bitmask:{0:"Clear Mission on reboot"},Description:"Bitmask of what options to use in missions.",DisplayName:"Mission options bitmask",User:"Advanced"},MIS_RESTART:{Description:"Controls mission starting point when entering Auto mode (either restart from beginning of mission or resume from last command run)",DisplayName:"Mission Restart when entering Auto mode",User:"Advanced",Values:{0:"Resume Mission",1:"Restart Mission"}},MIS_TOTAL:{Description:"The number of mission mission items that has been loaded by the ground station. Do not change this manually.",DisplayName:"Total mission commands",Increment:"1",Range:{high:"32766",low:"0"},ReadOnly:"True",User:"Advanced"}},C11={MNT2_ANGMAX_PAN:{Description:"MOunt2's maximum physical pan (yaw) angular position",DisplayName:"Mount2's maximum pan angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_ANGMAX_ROL:{Description:"Mount2's maximum physical roll angular position",DisplayName:"Mount2's maximum roll angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_ANGMAX_TIL:{Description:"Mount2's maximum physical tilt (pitch) angular position",DisplayName:"Mount2's maximum tilt angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_ANGMIN_PAN:{Description:"Mount2's minimum physical pan (yaw) angular position",DisplayName:"Mount2's minimum pan angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_ANGMIN_ROL:{Description:"Mount2's minimum physical roll angular position",DisplayName:"Mount2's minimum roll angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_ANGMIN_TIL:{Description:"Mount2's minimum physical tilt (pitch) angular position",DisplayName:"Mount2's minimum tilt angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_DEFLT_MODE:{Description:"Mount default operating mode on startup and after control is returned from autopilot",DisplayName:"Mount default operating mode",User:"Standard",Values:{0:"Retracted",1:"Neutral",2:"MavLink Targeting",3:"RC Targeting",4:"GPS Point"}},MNT2_LEAD_PTCH:{Description:"Causes the servo angle output to lead the current angle of the vehicle by some amount of time based on current angular rate. Increase until the servo is responsive but doesn't overshoot. Does nothing with pan stabilization enabled.",DisplayName:"Mount2's Pitch stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT2_LEAD_RLL:{Description:"Causes the servo angle output to lead the current angle of the vehicle by some amount of time based on current angular rate, compensating for servo delay. Increase until the servo is responsive but doesn't overshoot. Does nothing with pan stabilization enabled.",DisplayName:"Mount2's Roll stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT2_NEUTRAL_X:{Description:"Mount2 roll angle when in neutral position",DisplayName:"Mount2 roll angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_NEUTRAL_Y:{Description:"Mount2 tilt/pitch angle when in neutral position",DisplayName:"Mount2 tilt/pitch angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_NEUTRAL_Z:{Description:"Mount2 pan/yaw angle when in neutral position",DisplayName:"Mount2 pan/yaw angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_RC_IN_PAN:{Description:"0 for none, any other for the RC channel to be used to control pan (yaw) movements",DisplayName:"Mount2's pan (yaw) RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT2_RC_IN_ROLL:{Description:"0 for none, any other for the RC channel to be used to control roll movements",DisplayName:"Mount2's roll RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT2_RC_IN_TILT:{Description:"0 for none, any other for the RC channel to be used to control tilt (pitch) movements",DisplayName:"Mount2's tilt (pitch) RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT2_RETRACT_X:{Description:"Mount2 roll angle when in retracted position",DisplayName:"Mount2 roll angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_RETRACT_Y:{Description:"Mount2 tilt/pitch angle when in retracted position",DisplayName:"Mount2 tilt/pitch angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_RETRACT_Z:{Description:"Mount2 yaw/pan angle when in retracted position",DisplayName:"Mount2 yaw/pan angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_STAB_PAN:{Description:"enable pan/yaw stabilisation relative to Earth",DisplayName:"Stabilize mount2 pan/yaw angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT2_STAB_ROLL:{Description:"enable roll stabilisation relative to Earth",DisplayName:"Stabilize Mount2's roll angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT2_STAB_TILT:{Description:"enable tilt/pitch stabilisation relative to Earth",DisplayName:"Stabilize Mount2's pitch/tilt angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT2_TYPE:{Description:"Mount Type (None, Servo or MAVLink)",DisplayName:"Mount2 Type",User:"Standard",Values:{0:"None",1:"Servo",2:"3DR Solo",3:"Alexmos Serial",4:"SToRM32 MAVLink",5:"SToRM32 Serial"}},MNT_ANGMAX_PAN:{Description:"Maximum physical pan (yaw) angular position of the mount",DisplayName:"Maximum pan angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_ANGMAX_ROL:{Description:"Maximum physical roll angular position of the mount",DisplayName:"Maximum roll angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_ANGMAX_TIL:{Description:"Maximum physical tilt (pitch) angular position of the mount",DisplayName:"Maximum tilt angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_ANGMIN_PAN:{Description:"Minimum physical pan (yaw) angular position of mount.",DisplayName:"Minimum pan angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_ANGMIN_ROL:{Description:"Minimum physical roll angular position of mount.",DisplayName:"Minimum roll angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_ANGMIN_TIL:{Description:"Minimum physical tilt (pitch) angular position of mount.",DisplayName:"Minimum tilt angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_DEFLT_MODE:{Description:"Mount default operating mode on startup and after control is returned from autopilot",DisplayName:"Mount default operating mode",User:"Standard",Values:{0:"Retracted",1:"Neutral",2:"MavLink Targeting",3:"RC Targeting",4:"GPS Point"}},MNT_JSTICK_SPD:{Description:"0 for position control, small for low speeds, 100 for max speed. A good general value is 10 which gives a movement speed of 3 degrees per second.",DisplayName:"mount joystick speed",Increment:"1",Range:{high:"100",low:"0"},User:"Standard"},MNT_LEAD_PTCH:{Description:"Causes the servo angle output to lead the current angle of the vehicle by some amount of time based on current angular rate. Increase until the servo is responsive but doesn't overshoot. Does nothing with pan stabilization enabled.",DisplayName:"Pitch stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT_LEAD_RLL:{Description:"Causes the servo angle output to lead the current angle of the vehicle by some amount of time based on current angular rate, compensating for servo delay. Increase until the servo is responsive but doesn't overshoot. Does nothing with pan stabilization enabled.",DisplayName:"Roll stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT_NEUTRAL_X:{Description:"Mount roll angle when in neutral position",DisplayName:"Mount roll angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_NEUTRAL_Y:{Description:"Mount tilt/pitch angle when in neutral position",DisplayName:"Mount tilt/pitch angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_NEUTRAL_Z:{Description:"Mount pan/yaw angle when in neutral position",DisplayName:"Mount pan/yaw angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_RC_IN_PAN:{Description:"0 for none, any other for the RC channel to be used to control pan (yaw) movements",DisplayName:"pan (yaw) RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT_RC_IN_ROLL:{Description:"0 for none, any other for the RC channel to be used to control roll movements",DisplayName:"roll RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT_RC_IN_TILT:{Description:"0 for none, any other for the RC channel to be used to control tilt (pitch) movements",DisplayName:"tilt (pitch) RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT_RETRACT_X:{Description:"Mount roll angle when in retracted position",DisplayName:"Mount roll angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_RETRACT_Y:{Description:"Mount tilt/pitch angle when in retracted position",DisplayName:"Mount tilt/pitch angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_RETRACT_Z:{Description:"Mount yaw/pan angle when in retracted position",DisplayName:"Mount yaw/pan angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_STAB_PAN:{Description:"enable pan/yaw stabilisation relative to Earth",DisplayName:"Stabilize mount pan/yaw angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT_STAB_ROLL:{Description:"enable roll stabilisation relative to Earth",DisplayName:"Stabilize mount's roll angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT_STAB_TILT:{Description:"enable tilt/pitch stabilisation relative to Earth",DisplayName:"Stabilize mount's pitch/tilt angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT_TYPE:{Description:"Mount Type (None, Servo or MAVLink)",DisplayName:"Mount Type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"Servo",2:"3DR Solo",3:"Alexmos Serial",4:"SToRM32 MAVLink",5:"SToRM32 Serial"}}},m11={MOT_10_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_11_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_12_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_1_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_2_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_3_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_4_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_5_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_6_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_7_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_8_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_9_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_BAT_CURR_MAX:{Description:"Maximum current over which maximum throttle is limited (0 = Disabled)",DisplayName:"Motor Current Max",Range:{high:"200",low:"0"},Units:"A",User:"Advanced"},MOT_BAT_CURR_TC:{Description:"Time constant used to limit the maximum current",DisplayName:"Motor Current Max Time Constant",Range:{high:"10",low:"0"},Units:"s",User:"Advanced"},MOT_BAT_IDX:{Description:"Which battery monitor should be used for doing compensation",DisplayName:"Battery compensation index",User:"Advanced",Values:{0:"First battery",1:"Second battery"}},MOT_BAT_VOLT_MAX:{Description:"Battery voltage compensation maximum voltage (voltage above this will have no additional scaling effect on thrust). Recommend 4.2 * cell count, 0 = Disabled",DisplayName:"Battery voltage compensation maximum voltage",Range:{high:"53",low:"6"},Units:"V",User:"Advanced"},MOT_BAT_VOLT_MIN:{Description:"Battery voltage compensation minimum voltage (voltage below this will have no additional scaling effect on thrust). Recommend 3.3 * cell count, 0 = Disabled",DisplayName:"Battery voltage compensation minimum voltage",Range:{high:"42",low:"6"},Units:"V",User:"Advanced"},MOT_BOOST_SCALE:{Description:"Booster motor output scaling factor vs main throttle. The output to the BoostThrottle servo will be the main throttle times this scaling factor. A higher scaling factor will put more of the load on the booster motor. A value of 1 will set the BoostThrottle equal to the main throttle.",DisplayName:"Motor boost scale",Increment:"0.1",Range:{high:"5",low:"0"},User:"Advanced"},MOT_FV_CPLNG_K:{Description:"Used to decouple pitch from forward/vertical motion. 0 to disable, 1.2 normal",DisplayName:"Forward/vertical to pitch decoupling factor",Increment:"0.1",Range:{high:"1.5",low:"0.0"},User:"Standard"},MOT_HOVER_LEARN:{Description:"Enable/Disable automatic learning of hover throttle",DisplayName:"Hover Value Learning",User:"Advanced",Values:{0:"Disabled"}},MOT_PWM_MAX:{Description:"This sets the max PWM value in microseconds that will ever be output to the motors, 0 = use input RC3_MAX",DisplayName:"PWM output maximum",Range:{high:"2000",low:"0"},Units:"PWM",User:"Advanced"},MOT_PWM_MIN:{Description:"This sets the min PWM output value in microseconds that will ever be output to the motors, 0 = use input RC3_MIN",DisplayName:"PWM output minimum",Range:{high:"2000",low:"0"},Units:"PWM",User:"Advanced"},MOT_PWM_TYPE:{Description:"This selects the output PWM type, allowing for normal PWM continuous output, OneShot, brushed or DShot motor output",DisplayName:"Output PWM type",RebootRequired:"True",User:"Advanced",Values:{0:"Normal",1:"OneShot",2:"OneShot125",3:"Brushed",4:"DShot150",5:"DShot300",6:"DShot600",7:"DShot1200"}},MOT_SAFE_DISARM:{Description:"Disables motor PWM output when disarmed",DisplayName:"Motor PWM output disabled when disarmed",User:"Advanced",Values:{0:"PWM enabled while disarmed",1:"PWM disabled while disarmed"}},MOT_SAFE_TIME:{Description:"Time taken to disable and enable the motor PWM output when disarmed and armed.",DisplayName:"Time taken to disable and enable the motor PWM output when disarmed and armed.",Increment:"0.001",Range:{high:"5",low:"0"},Units:"s",User:"Advanced"},MOT_SLEW_DN_TIME:{Description:"Time in seconds to slew output from full to zero. This is used to limit the rate at which output can change. Range is constrained between 0 and 0.5.",DisplayName:"Output slew time for decreasing throttle",Increment:"0.001",Range:{high:".5",low:"0"},Units:"s",User:"Advanced"},MOT_SLEW_UP_TIME:{Description:"Time in seconds to slew output from zero to full. This is used to limit the rate at which output can change. Range is constrained between 0 and 0.5.",DisplayName:"Output slew time for increasing throttle",Increment:"0.001",Range:{high:".5",low:"0"},Units:"s",User:"Advanced"},MOT_SPIN_ARM:{Description:"Point at which the motors start to spin expressed as a number from 0 to 1 in the entire output range. Should be lower than MOT_SPIN_MIN.",DisplayName:"Motor Spin armed",User:"Advanced",Values:{"0.0":"Low","0.1":"Default","0.2":"High"}},MOT_SPIN_MAX:{Description:"Point at which the thrust saturates expressed as a number from 0 to 1 in the entire output range",DisplayName:"Motor Spin maximum",User:"Advanced",Values:{"0.9":"Low","0.95":"Default","1.0":"High"}},MOT_SPIN_MIN:{Description:"Point at which the thrust starts expressed as a number from 0 to 1 in the entire output range. Should be higher than MOT_SPIN_ARM.",DisplayName:"Motor Spin minimum",User:"Advanced",Values:{"0.0":"Low","0.15":"Default","0.3":"High"}},MOT_SPOOL_TIME:{Description:"Time in seconds to spool up the motors from zero to min throttle. ",DisplayName:"Spool up time",Increment:"0.1",Range:{high:"2",low:"0"},Units:"s",User:"Advanced"},MOT_THST_EXPO:{Description:"Motor thrust curve exponent (0.0 for linear to 1.0 for second order curve)",DisplayName:"Thrust Curve Expo",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},MOT_THST_HOVER:{Description:"Motor thrust needed to hover expressed as a number from 0 to 1",DisplayName:"Thrust Hover Value",Range:{high:"0.8",low:"0.2"},User:"Advanced"},MOT_YAW_HEADROOM:{Description:"Yaw control is given at least this pwm in microseconds range",DisplayName:"Matrix Yaw Min",Range:{high:"500",low:"0"},Units:"PWM",User:"Advanced"},MOT_YAW_SV_ANGLE:{Description:"Yaw servo's maximum lean angle",DisplayName:"Yaw Servo Max Lean Angle",Increment:"1",Range:{high:"80",low:"5"},Units:"deg",User:"Standard"}},u11={MSP_OPTIONS:{Bitmask:{0:"EnableTelemetryMode"},Description:"A bitmask to set some MSP specific options",DisplayName:"MSP OSD Options",User:"Standard"},MSP_OSD_NCELLS:{Description:"Used for average cell voltage calculation",DisplayName:"Cell count override",User:"Standard",Values:{0:"Auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14"}}},h11={NTF_BUZZ_ON_LVL:{Description:"Specifies pin level that indicates buzzer should play",DisplayName:"Buzzer-on pin logic level",User:"Advanced",Values:{0:"LowIsOn",1:"HighIsOn"}},NTF_BUZZ_PIN:{Description:"Enables to connect active buzzer to arbitrary pin. Requires 3-pin buzzer or additional MOSFET!",DisplayName:"Buzzer pin",User:"Advanced",Values:{0:"Disabled"}},NTF_BUZZ_TYPES:{Bitmask:{0:"Built-in buzzer",1:"DShot",2:"UAVCAN"},Description:"Controls what types of Buzzer will be enabled",DisplayName:"Buzzer Driver Types",User:"Advanced"},NTF_BUZZ_VOLUME:{Description:"Control the volume of the buzzer",DisplayName:"Buzzer volume",Range:{high:"100",low:"0"},Units:"%"},NTF_DISPLAY_TYPE:{Description:"This sets up the type of on-board I2C display. Disabled by default.",DisplayName:"Type of on-board I2C display",User:"Advanced",Values:{0:"Disable",1:"ssd1306",2:"sh1106",10:"SITL"}},NTF_LED_BRIGHT:{Description:"Select the RGB LED brightness level. When USB is connected brightness will never be higher than low regardless of the setting.",DisplayName:"LED Brightness",User:"Advanced",Values:{0:"Off",1:"Low",2:"Medium",3:"High"}},NTF_LED_LEN:{Description:"The number of Serial LED's to use for notifications (NeoPixel's and ProfiLED)",DisplayName:"Serial LED String Length",Range:{high:"32",low:"1"},RebootRequired:"True",User:"Advanced"},NTF_LED_OVERRIDE:{Description:'Specifies the source for the colours and brightness for the LED. OutbackChallenge conforms to the MedicalExpress (https://uavchallenge.org/medical-express/) rules, essentially "Green" is disarmed (safe-to-approach), "Red" is armed (not safe-to-approach). Traffic light is a simplified color set, red when armed, yellow when the safety switch is not surpressing outputs (but disarmed), and green when outputs are surpressed and disarmed, the LED will blink faster if disarmed and failing arming checks.',DisplayName:"Specifies colour source for the RGBLed",User:"Advanced",Values:{0:"Standard",1:"MAVLink/Scripting/AP_Periph",2:"OutbackChallenge",3:"TrafficLight"}},NTF_LED_TYPES:{Bitmask:{0:"Built-in LED",1:"Internal ToshibaLED",2:"External ToshibaLED",3:"External PCA9685",4:"Oreo LED",5:"UAVCAN",6:"NCP5623 External",7:"NCP5623 Internal",8:"NeoPixel",9:"ProfiLED",10:"Scripting",11:"DShot"},Description:"Controls what types of LEDs will be enabled",DisplayName:"LED Driver Types",User:"Advanced"},NTF_OREO_THEME:{Description:"Enable/Disable Solo Oreo LED driver, 0 to disable, 1 for Aircraft theme, 2 for Rover theme",DisplayName:"OreoLED Theme",User:"Advanced",Values:{0:"Disabled",1:"Aircraft",2:"Rover"}}},p11={PRX_FILT:{Description:"Cutoff frequency for low pass filter applied to each face in the proximity boundary",DisplayName:"Proximity filter cutoff frequency",Range:{high:"20",low:"0"},Units:"Hz",User:"Advanced"},PRX_IGN_ANG1:{Description:"Proximity sensor ignore angle 1",DisplayName:"Proximity sensor ignore angle 1",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_ANG2:{Description:"Proximity sensor ignore angle 2",DisplayName:"Proximity sensor ignore angle 2",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_ANG3:{Description:"Proximity sensor ignore angle 3",DisplayName:"Proximity sensor ignore angle 3",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_ANG4:{Description:"Proximity sensor ignore angle 4",DisplayName:"Proximity sensor ignore angle 4",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_ANG5:{Description:"Proximity sensor ignore angle 5",DisplayName:"Proximity sensor ignore angle 5",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_ANG6:{Description:"Proximity sensor ignore angle 6",DisplayName:"Proximity sensor ignore angle 6",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID1:{Description:"Proximity sensor ignore width 1",DisplayName:"Proximity sensor ignore width 1",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID2:{Description:"Proximity sensor ignore width 2",DisplayName:"Proximity sensor ignore width 2",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID3:{Description:"Proximity sensor ignore width 3",DisplayName:"Proximity sensor ignore width 3",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID4:{Description:"Proximity sensor ignore width 4",DisplayName:"Proximity sensor ignore width 4",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID5:{Description:"Proximity sensor ignore width 5",DisplayName:"Proximity sensor ignore width 5",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID6:{Description:"Proximity sensor ignore width 6",DisplayName:"Proximity sensor ignore width 6",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_LOG_RAW:{Description:"Set this parameter to one if logging unfiltered(raw) distances from sensor should be enabled",DisplayName:"Proximity raw distances log",User:"Advanced",Values:{0:"Off",1:"On"}},PRX_ORIENT:{Description:"Proximity sensor orientation",DisplayName:"Proximity sensor orientation",User:"Standard",Values:{0:"Default",1:"Upside Down"}},PRX_TYPE:{Description:"What type of proximity sensor is connected",DisplayName:"Proximity type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"LightWareSF40C-legacy",2:"MAVLink",3:"TeraRangerTower",4:"RangeFinder",5:"RPLidarA2",6:"TeraRangerTowerEvo",7:"LightwareSF40c",8:"LightwareSF45B",10:"SITL",12:"AirSimSITL"}},PRX_YAW_CORR:{Description:"Proximity sensor yaw correction",DisplayName:"Proximity sensor yaw correction",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"}},f11={PSC_ACCZ_D:{Description:"Acceleration (vertical) controller D gain. Compensates for short-term change in desired vertical acceleration vs actual acceleration",DisplayName:"Acceleration (vertical) controller D gain",Range:{high:"0.400",low:"0.000"},User:"Standard"},PSC_ACCZ_FF:{Description:"Acceleration (vertical) controller feed forward",DisplayName:"Acceleration (vertical) controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0"},User:"Standard"},PSC_ACCZ_FLTD:{Description:"Acceleration (vertical) controller derivative frequency in Hz",DisplayName:"Acceleration (vertical) controller derivative frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},PSC_ACCZ_FLTE:{Description:"Acceleration (vertical) controller error frequency in Hz",DisplayName:"Acceleration (vertical) controller error frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},PSC_ACCZ_FLTT:{Description:"Acceleration (vertical) controller target frequency in Hz",DisplayName:"Acceleration (vertical) controller target frequency in Hz",Increment:"1",Range:{high:"50",low:"1"},Units:"Hz",User:"Standard"},PSC_ACCZ_I:{Description:"Acceleration (vertical) controller I gain. Corrects long-term difference in desired vertical acceleration and actual acceleration",DisplayName:"Acceleration (vertical) controller I gain",Range:{high:"3.000",low:"0.000"},User:"Standard"},PSC_ACCZ_IMAX:{Description:"Acceleration (vertical) controller I gain maximum. Constrains the maximum pwm that the I term will generate",DisplayName:"Acceleration (vertical) controller I gain maximum",Range:{high:"1000",low:"0"},Units:"d%",User:"Standard"},PSC_ACCZ_P:{Description:"Acceleration (vertical) controller P gain. Converts the difference between desired vertical acceleration and actual acceleration into a motor output",DisplayName:"Acceleration (vertical) controller P gain",Increment:"0.05",Range:{high:"1.500",low:"0.200"},User:"Standard"},PSC_ACCZ_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Accel (vertical) slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},PSC_ACC_XY_FILT:{Description:"Lower values will slow the response of the navigation controller and reduce twitchiness",DisplayName:"XY Acceleration filter cutoff frequency",Increment:"0.1",Range:{high:"5",low:"0.5"},Units:"Hz",User:"Advanced"},PSC_ANGLE_MAX:{Description:"Maximum lean angle autopilot can request. Set to zero to use ANGLE_MAX parameter value",DisplayName:"Position Control Angle Max",Increment:"1",Range:{high:"45",low:"0"},Units:"deg",User:"Advanced"},PSC_JERK_XY:{Description:"Jerk limit of the horizontal kinematic path generation used to determine how quickly the aircraft varies the acceleration target",DisplayName:"Jerk limit for the horizontal kinematic input shaping",Increment:"1",Range:{high:"20",low:"1"},Units:"m/s/s/s",User:"Advanced"},PSC_JERK_Z:{Description:"Jerk limit of the vertical kinematic path generation used to determine how quickly the aircraft varies the acceleration target",DisplayName:"Jerk limit for the vertical kinematic input shaping",Increment:"1",Range:{high:"50",low:"5"},Units:"m/s/s/s",User:"Advanced"},PSC_POSXY_P:{Description:"Position controller P gain. Converts the distance (in the latitude direction) to the target location into a desired speed which is then passed to the loiter latitude rate controller",DisplayName:"Position (horizontal) controller P gain",Range:{high:"2.000",low:"0.500"},User:"Standard"},PSC_POSZ_P:{Description:"Position (vertical) controller P gain. Converts the difference between the desired altitude and actual altitude into a climb or descent rate which is passed to the throttle rate controller",DisplayName:"Position (vertical) controller P gain",Range:{high:"3.000",low:"1.000"},User:"Standard"},PSC_VELXY_D:{Description:"Velocity (horizontal) D gain. Corrects short-term changes in velocity",DisplayName:"Velocity (horizontal) D gain",Increment:"0.001",Range:{high:"1.00",low:"0.00"},User:"Advanced"},PSC_VELXY_FF:{Description:"Velocity (horizontal) feed forward gain. Converts the difference between desired velocity to a target acceleration",DisplayName:"Velocity (horizontal) feed forward gain",Increment:"0.01",Range:{high:"6",low:"0"},User:"Advanced"},PSC_VELXY_FLTD:{Description:"Velocity (horizontal) input filter. This filter (in Hz) is applied to the input for D term",DisplayName:"Velocity (horizontal) input filter",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},PSC_VELXY_FLTE:{Description:"Velocity (horizontal) input filter. This filter (in Hz) is applied to the input for P and I terms",DisplayName:"Velocity (horizontal) input filter",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},PSC_VELXY_I:{Description:"Velocity (horizontal) I gain. Corrects long-term difference between desired and actual velocity to a target acceleration",DisplayName:"Velocity (horizontal) I gain",Increment:"0.01",Range:{high:"1.00",low:"0.02"},User:"Advanced"},PSC_VELXY_IMAX:{Description:"Velocity (horizontal) integrator maximum. Constrains the target acceleration that the I gain will output",DisplayName:"Velocity (horizontal) integrator maximum",Increment:"10",Range:{high:"4500",low:"0"},Units:"cm/s/s",User:"Advanced"},PSC_VELXY_P:{Description:"Velocity (horizontal) P gain. Converts the difference between desired and actual velocity to a target acceleration",DisplayName:"Velocity (horizontal) P gain",Increment:"0.1",Range:{high:"6.0",low:"0.1"},User:"Advanced"},PSC_VELZ_D:{Description:"Velocity (vertical) controller D gain. Corrects short-term changes in velocity",DisplayName:"Velocity (vertical) controller D gain",Increment:"0.001",Range:{high:"1.00",low:"0.00"},User:"Advanced"},PSC_VELZ_FF:{Description:"Velocity (vertical) controller Feed Forward gain. Produces an output that is proportional to the magnitude of the target",DisplayName:"Velocity (vertical) controller Feed Forward gain",Increment:"0.01",Range:{high:"1",low:"0"},User:"Advanced"},PSC_VELZ_FLTD:{Description:"Velocity (vertical) input filter for D term. This filter (in Hz) is applied to the input for D terms",DisplayName:"Velocity (vertical) input filter for D term",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},PSC_VELZ_FLTE:{Description:"Velocity (vertical) error filter. This filter (in Hz) is applied to the input for P and I terms",DisplayName:"Velocity (vertical) error filter",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},PSC_VELZ_I:{Description:"Velocity (vertical) controller I gain. Corrects long-term difference in desired velocity to a target acceleration",DisplayName:"Velocity (vertical) controller I gain",Increment:"0.01",Range:{high:"1.00",low:"0.02"},User:"Advanced"},PSC_VELZ_IMAX:{Description:"Velocity (vertical) controller I gain maximum. Constrains the target acceleration that the I gain will output",DisplayName:"Velocity (vertical) controller I gain maximum",Range:{high:"8.000",low:"1.000"},User:"Standard"},PSC_VELZ_P:{Description:"Velocity (vertical) controller P gain. Converts the difference between desired vertical speed and actual speed into a desired acceleration that is passed to the throttle acceleration controller",DisplayName:"Velocity (vertical) controller P gain",Range:{high:"8.000",low:"1.000"},User:"Standard"}},V11={RALLY_INCL_HOME:{Description:"Controls if Home is included as a Rally point (i.e. as a safe landing place) for RTL",DisplayName:"Rally Include Home",User:"Standard",Values:{0:"DoNotIncludeHome",1:"IncludeHome"}},RALLY_LIMIT_KM:{Description:"Maximum distance to rally point. If the closest rally point is more than this number of kilometers from the current position and the home location is closer than any of the rally points from the current position then do RTL to home rather than to the closest rally point. This prevents a leftover rally point from a different airfield being used accidentally. If this is set to 0 then the closest rally point is always used.",DisplayName:"Rally Limit",Increment:"0.1",Units:"km",User:"Advanced"},RALLY_TOTAL:{Description:"Number of rally points currently loaded",DisplayName:"Rally Total",User:"Advanced"}},L11={RC_OPTIONS:{Bitmask:{0:"Ignore RC Receiver",1:"Ignore MAVLink Overrides",2:"Ignore Receiver Failsafe bit but allow other RC failsafes if setup",3:"FPort Pad",4:"Log RC input bytes",5:"Arming check throttle for 0 input",6:"Skip the arming check for neutral Roll/Pitch/Yay sticks",7:"Allow Switch reverse",8:"Use passthrough for CRSF telemetry",9:"Suppress CRSF mode/rate message for ELRS systems",10:"Enable RC Protocol re-detection"},Description:"RC input options",DisplayName:"RC options",User:"Advanced"},RC_OVERRIDE_TIME:{Description:"Timeout after which RC overrides will no longer be used, and RC input will resume, 0 will disable RC overrides, -1 will never timeout, and continue using overrides until they are disabled",DisplayName:"RC override timeout",Range:{high:"120.0",low:"0.0"},Units:"s",User:"Advanced"},RC_PROTOCOLS:{Bitmask:{0:"All",1:"PPM",2:"IBUS",3:"SBUS",4:"SBUS_NI",5:"DSM",6:"SUMD",7:"SRXL",8:"SRXL2",9:"CRSF",10:"ST24",11:"FPORT",12:"FPORT2"},Description:"Bitmask of enabled RC protocols. Allows narrowing the protocol detection to only specific types of RC receivers which can avoid issues with incorrect detection. Set to 1 to enable all protocols.",DisplayName:"RC protocols enabled",User:"Advanced"}},H11={RC10_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC10_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC10_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC10_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC10_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},M11={RC11_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC11_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC11_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC11_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC11_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},g11={RC12_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC12_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC12_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC12_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC12_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},A11={RC13_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC13_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC13_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC13_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC13_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},v11={RC14_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC14_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC14_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC14_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC14_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},_11={RC15_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC15_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC15_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC15_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC15_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},S11={RC16_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC16_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC16_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC16_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC16_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},D11={RC1_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC1_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC1_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC1_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC1_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},y11={RC2_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC2_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC2_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC2_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC2_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},R11={RC3_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC3_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC3_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC3_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC3_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},b11={RC4_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC4_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC4_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC4_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC4_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},N11={RC5_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC5_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC5_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC5_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC5_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},w11={RC6_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC6_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC6_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC6_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC6_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},T11={RC7_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC7_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC7_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC7_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC7_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},E11={RC8_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC8_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC8_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC8_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC8_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},P11={RC9_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC9_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC9_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC9_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC9_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},I11={RCMAP_FORWARD:{Description:"Forward channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Forward is normally on channel 5, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Forward channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_LATERAL:{Description:"Lateral channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Lateral is normally on channel 6, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Lateral channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_PITCH:{Description:"Pitch channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Pitch is normally on channel 2, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Pitch channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_ROLL:{Description:"Roll channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Roll is normally on channel 1, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Roll channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_THROTTLE:{Description:"Throttle channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Throttle is normally on channel 3, but you can move it to any channel with this parameter. Warning APM 2.X: Changing the throttle channel could produce unexpected fail-safe results if connection between receiver and on-board PPM Encoder is lost. Disabling on-board PPM Encoder is recommended. Reboot is required for changes to take effect.",DisplayName:"Throttle channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_YAW:{Description:"Yaw channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Yaw (also known as rudder) is normally on channel 4, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Yaw channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"}},O11={RELAY_DEFAULT:{Description:"The state of the relay on boot.",DisplayName:"Default relay state",User:"Standard",Values:{0:"Off",1:"On",2:"NoChange"}},RELAY_PIN:{Description:"Digital pin number for first relay control. This is the pin used for camera control.",DisplayName:"First Relay Pin",User:"Standard",Values:{27:"BBBMini Pin P8.17",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN2:{Description:"Digital pin number for 2nd relay control.",DisplayName:"Second Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",65:"BBBMini Pin P8.18",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN3:{Description:"Digital pin number for 3rd relay control.",DisplayName:"Third Relay Pin",User:"Standard",Values:{22:"BBBMini Pin P8.19",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN4:{Description:"Digital pin number for 4th relay control.",DisplayName:"Fourth Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",63:"BBBMini Pin P8.34",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN5:{Description:"Digital pin number for 5th relay control.",DisplayName:"Fifth Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",62:"BBBMini Pin P8.13",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN6:{Description:"Digital pin number for 6th relay control.",DisplayName:"Sixth Relay Pin",User:"Standard",Values:{37:"BBBMini Pin P8.14",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}}},U11={RNGFND1_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and UAVCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND1_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND1_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND1_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND1_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND1_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND1_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND1_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"PX4-airspeed port",15:"Pixhawk-airspeed port",50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6","-1":"Not Used"}},RNGFND1_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND1_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND1_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND1_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND1_TYPE:{Description:"What type of rangefinder device that is connected",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"uLanding",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"UAVCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",100:"SITL"}},RNGFND1_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND1_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND1_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},x11={RNGFND2_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and UAVCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND2_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND2_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND2_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND2_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND2_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND2_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND2_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"PX4-airspeed port",15:"Pixhawk-airspeed port",50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6","-1":"Not Used"}},RNGFND2_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND2_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND2_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND2_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND2_TYPE:{Description:"What type of rangefinder device that is connected",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"uLanding",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"UAVCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",100:"SITL"}},RNGFND2_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND2_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND2_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},F11={RNGFND3_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and UAVCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND3_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND3_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND3_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND3_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND3_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND3_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND3_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"PX4-airspeed port",15:"Pixhawk-airspeed port",50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6","-1":"Not Used"}},RNGFND3_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND3_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND3_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND3_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND3_TYPE:{Description:"What type of rangefinder device that is connected",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"uLanding",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"UAVCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",100:"SITL"}},RNGFND3_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND3_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND3_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},k11={RNGFND4_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and UAVCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND4_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND4_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND4_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND4_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND4_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND4_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND4_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"PX4-airspeed port",15:"Pixhawk-airspeed port",50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6","-1":"Not Used"}},RNGFND4_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND4_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND4_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND4_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND4_TYPE:{Description:"What type of rangefinder device that is connected",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"uLanding",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"UAVCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",100:"SITL"}},RNGFND4_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND4_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND4_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},B11={RNGFND5_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and UAVCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND5_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND5_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND5_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND5_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND5_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND5_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND5_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"PX4-airspeed port",15:"Pixhawk-airspeed port",50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6","-1":"Not Used"}},RNGFND5_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND5_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND5_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND5_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND5_TYPE:{Description:"What type of rangefinder device that is connected",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"uLanding",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"UAVCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",100:"SITL"}},RNGFND5_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND5_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND5_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},z11={RNGFND6_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and UAVCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND6_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND6_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND6_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND6_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND6_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND6_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND6_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"PX4-airspeed port",15:"Pixhawk-airspeed port",50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6","-1":"Not Used"}},RNGFND6_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND6_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND6_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND6_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND6_TYPE:{Description:"What type of rangefinder device that is connected",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"uLanding",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"UAVCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",100:"SITL"}},RNGFND6_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND6_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND6_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},Z11={RNGFND7_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and UAVCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND7_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND7_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND7_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND7_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND7_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND7_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND7_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"PX4-airspeed port",15:"Pixhawk-airspeed port",50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6","-1":"Not Used"}},RNGFND7_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND7_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND7_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND7_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND7_TYPE:{Description:"What type of rangefinder device that is connected",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"uLanding",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"UAVCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",100:"SITL"}},RNGFND7_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND7_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND7_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},G11={RNGFND8_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and UAVCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND8_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND8_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND8_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND8_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND8_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND8_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND8_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"PX4-airspeed port",15:"Pixhawk-airspeed port",50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6","-1":"Not Used"}},RNGFND8_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND8_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND8_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND8_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND8_TYPE:{Description:"What type of rangefinder device that is connected",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"uLanding",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"UAVCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",100:"SITL"}},RNGFND8_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND8_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND8_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},W11={RNGFND9_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and UAVCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND9_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND9_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND9_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND9_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND9_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND9_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND9_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"PX4-airspeed port",15:"Pixhawk-airspeed port",50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6","-1":"Not Used"}},RNGFND9_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND9_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND9_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND9_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND9_TYPE:{Description:"What type of rangefinder device that is connected",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"uLanding",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"UAVCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",100:"SITL"}},RNGFND9_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND9_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND9_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},X11={RNGFNDA_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and UAVCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFNDA_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFNDA_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFNDA_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFNDA_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFNDA_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFNDA_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFNDA_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"PX4-airspeed port",15:"Pixhawk-airspeed port",50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6","-1":"Not Used"}},RNGFNDA_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFNDA_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFNDA_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFNDA_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFNDA_TYPE:{Description:"What type of rangefinder device that is connected",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"uLanding",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"UAVCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",100:"SITL"}},RNGFNDA_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFNDA_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFNDA_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},Y11={RPM2_PIN:{Description:"Which pin to use",DisplayName:"RPM2 input pin number",User:"Standard",Values:{50:"PixhawkAUX1",51:"PixhawkAUX2",52:"PixhawkAUX3",53:"PixhawkAUX4",54:"PixhawkAUX5",55:"PixhawkAUX6","-1":"Disabled"}},RPM2_SCALING:{Description:"Scaling factor between sensor reading and RPM.",DisplayName:"RPM scaling",Increment:"0.001",User:"Advanced"},RPM2_TYPE:{Description:"What type of RPM sensor is connected",DisplayName:"Second RPM type",User:"Advanced",Values:{0:"None",1:"PWM",2:"AUXPIN",3:"EFI",4:"Harmonic Notch"}},RPM_MAX:{Description:"Maximum RPM to report",DisplayName:"Maximum RPM",Increment:"1",User:"Standard"},RPM_MIN:{Description:"Minimum RPM to report",DisplayName:"Minimum RPM",Increment:"1",User:"Standard"},RPM_MIN_QUAL:{Description:"Minimum data quality to be used",DisplayName:"Minimum Quality",Increment:"0.1",User:"Advanced"},RPM_PIN:{Description:"Which pin to use",DisplayName:"Input pin number",User:"Standard",Values:{50:"PixhawkAUX1",51:"PixhawkAUX2",52:"PixhawkAUX3",53:"PixhawkAUX4",54:"PixhawkAUX5",55:"PixhawkAUX6","-1":"Disabled"}},RPM_SCALING:{Description:"Scaling factor between sensor reading and RPM.",DisplayName:"RPM scaling",Increment:"0.001",User:"Standard"},RPM_TYPE:{Description:"What type of RPM sensor is connected",DisplayName:"RPM type",User:"Standard",Values:{0:"None",1:"PWM",2:"AUXPIN",3:"EFI",4:"Harmonic Notch"}}},$11={SCHED_DEBUG:{Description:'Set to non-zero to enable scheduler debug messages. When set to show "Slips" the scheduler will display a message whenever a scheduled task is delayed due to too much CPU load. When set to ShowOverruns the scheduled will display a message whenever a task takes longer than the limit promised in the task table.',DisplayName:"Scheduler debug level",User:"Advanced",Values:{0:"Disabled",2:"ShowSlips",3:"ShowOverruns"}},SCHED_LOOP_RATE:{Description:"This controls the rate of the main control loop in Hz. This should only be changed by developers. This only takes effect on restart. Values over 400 are considered highly experimental.",DisplayName:"Scheduling main loop rate",RebootRequired:"True",User:"Advanced",Values:{50:"50Hz",100:"100Hz",200:"200Hz",250:"250Hz",300:"300Hz",400:"400Hz"}},SCHED_OPTIONS:{Bitmask:{0:"Enable per-task perf info"},Description:"This controls optional aspects of the scheduler.",DisplayName:"Scheduling options",User:"Advanced"}},q11={SCR_DEBUG_LVL:{Description:"The higher the number the more verbose builtin scripting debug will be.",DisplayName:"Scripting Debug Level",User:"Advanced"},SCR_DIR_DISABLE:{Bitmask:{0:"ROMFS",1:"APM/scripts"},Description:"This will stop scripts being loaded from the given locations",DisplayName:"Directory disable",RebootRequired:"True",User:"Advanced"},SCR_ENABLE:{Description:"Controls if scripting is enabled",DisplayName:"Enable Scripting",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Lua Scripts"}},SCR_HEAP_SIZE:{Description:"Amount of memory available for scripting",DisplayName:"Scripting Heap Size",Increment:"1024",Range:{high:"1048576",low:"1024"},RebootRequired:"True",User:"Advanced"},SCR_USER1:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter1",User:"Standard"},SCR_USER2:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter2",User:"Standard"},SCR_USER3:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter3",User:"Standard"},SCR_USER4:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter4",User:"Standard"},SCR_VM_I_COUNT:{Description:"The number virtual machine instructions that can be run before considering a script to have taken an excessive amount of time",DisplayName:"Scripting Virtual Machine Instruction Count",Increment:"10000",Range:{high:"1000000",low:"1000"},User:"Advanced"}},K11={SERIAL0_BAUD:{Description:"The baud rate used on the USB console. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial0 baud rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL0_PROTOCOL:{Description:"Control what protocol to use on the console. ",DisplayName:"Console protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVlink1",2:"MAVLink2"}},SERIAL1_BAUD:{Description:"The baud rate used on the Telem1 port. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Telem1 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL1_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire. The Swap option allows the RX and TX pins to be swapped on STM32F7 based boards.",DisplayName:"Telem1 options",RebootRequired:"True",User:"Advanced"},SERIAL1_PROTOCOL:{Description:"Control what protocol to use on the Telem1 port. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Telem1 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire","-1":"None"}},SERIAL2_BAUD:{Description:"The baud rate of the Telem2 port. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Telemetry 2 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL2_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Telem2 options",RebootRequired:"True",User:"Advanced"},SERIAL2_PROTOCOL:{Description:"Control what protocol to use on the Telem2 port. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Telemetry 2 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire","-1":"None"}},SERIAL3_BAUD:{Description:"The baud rate used for the Serial 3 (GPS). Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 3 (GPS) Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL3_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial3 options",RebootRequired:"True",User:"Advanced"},SERIAL3_PROTOCOL:{Description:"Control what protocol Serial 3 (GPS) should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial 3 (GPS) protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire","-1":"None"}},SERIAL4_BAUD:{Description:"The baud rate used for Serial4. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 4 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL4_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial4 options",RebootRequired:"True",User:"Advanced"},SERIAL4_PROTOCOL:{Description:"Control what protocol Serial4 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial4 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire","-1":"None"}},SERIAL5_BAUD:{Description:"The baud rate used for Serial5. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 5 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL5_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial5 options",RebootRequired:"True",User:"Advanced"},SERIAL5_PROTOCOL:{Description:"Control what protocol Serial5 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial5 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire","-1":"None"}},SERIAL6_BAUD:{Description:"The baud rate used for Serial6. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 6 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL6_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial6 options",RebootRequired:"True",User:"Advanced"},SERIAL6_PROTOCOL:{Description:"Control what protocol Serial6 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial6 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire","-1":"None"}},SERIAL7_BAUD:{Description:"The baud rate used for Serial7. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 7 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL7_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial7 options",RebootRequired:"True",User:"Advanced"},SERIAL7_PROTOCOL:{Description:"Control what protocol Serial7 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial7 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire","-1":"None"}},SERIAL8_BAUD:{Description:"The baud rate used for Serial8. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 8 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL8_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial8 options",RebootRequired:"True",User:"Advanced"},SERIAL8_PROTOCOL:{Description:"Control what protocol Serial8 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial8 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire","-1":"None"}},SERIAL_PASS1:{Description:"This sets one side of pass-through between two serial ports. Once both sides are set then all data received on either port will be passed to the other port",DisplayName:"Serial passthru first port",User:"Advanced",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},SERIAL_PASS2:{Description:"This sets one side of pass-through between two serial ports. Once both sides are set then all data received on either port will be passed to the other port",DisplayName:"Serial passthru second port",User:"Advanced",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},SERIAL_PASSTIMO:{Description:"This sets a timeout for serial pass-through in seconds. When the pass-through is enabled by setting the SERIAL_PASS1 and SERIAL_PASS2 parameters then it remains in effect until no data comes from the first port for SERIAL_PASSTIMO seconds. This allows the port to revent to its normal usage (such as MAVLink connection to a GCS) when it is no longer needed. A value of 0 means no timeout.",DisplayName:"Serial passthru timeout",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"}},j11={SERVO_DSHOT_ESC:{Description:"This sets the DShot ESC type for all outputs. The ESC type affects the range of DShot commands available. None means that no dshot commands will be executed.",DisplayName:"Servo DShot ESC type",User:"Advanced",Values:{0:"None",1:"BLHeli32/BLHeli_S/Kiss"}},SERVO_DSHOT_RATE:{Description:"This sets the DShot output rate for all outputs as a multiple of the loop rate. 0 sets the output rate to be fixed at 1Khz for low loop rates. This value should never be set below 500Hz.",DisplayName:"Servo DShot output rate",User:"Advanced",Values:{0:"1Khz",1:"loop-rate",2:"double loop-rate",3:"triple loop-rate",4:"quadruple loop rate"}},SERVO_RATE:{Description:"This sets the default output rate in Hz for all outputs.",DisplayName:"Servo default output rate",Range:{high:"400",low:"25"},Units:"Hz",User:"Advanced"}},Q11={SERVO10_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO10_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO10_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO10_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO10_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},J11={SERVO11_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO11_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO11_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO11_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO11_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},e21={SERVO12_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO12_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO12_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO12_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO12_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},t21={SERVO13_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO13_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO13_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO13_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO13_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},i21={SERVO14_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO14_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO14_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO14_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO14_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},a21={SERVO15_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO15_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO15_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO15_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO15_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},r21={SERVO16_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO16_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO16_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO16_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO16_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},n21={SERVO1_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO1_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO1_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO1_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO1_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},o21={SERVO2_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO2_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO2_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO2_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO2_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},s21={SERVO3_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO3_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO3_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO3_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO3_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},l21={SERVO4_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO4_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO4_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO4_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO4_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},c21={SERVO5_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO5_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO5_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO5_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO5_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},d21={SERVO6_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO6_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO6_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO6_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO6_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},C21={SERVO7_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO7_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO7_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO7_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO7_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},m21={SERVO8_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO8_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO8_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO8_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO8_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},u21={SERVO9_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO9_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO9_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO9_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO9_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},h21={SERVO_BLH_3DMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which are dynamically reversible. This is used to configure ESCs in '3D' mode, allowing for the motor to spin in either direction",DisplayName:"BLHeli bitmask of 3D channels",User:"Advanced"},SERVO_BLH_AUTO:{Description:"If set to 1 this auto-enables BLHeli pass-thru support for all multicopter motors",DisplayName:"BLHeli pass-thru auto-enable for multicopter motors",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},SERVO_BLH_BDMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which support bi-directional dshot. This is used for ESCs which have firmware that supports bi-directional dshot allowing fast rpm telemetry values to be returned for the harmonic notch.",DisplayName:"BLHeli bitmask of bi-directional dshot channels",User:"Advanced"},SERVO_BLH_DEBUG:{Description:"When set to 1 this enabled verbose debugging output over MAVLink when the blheli protocol is active. This can be used to diagnose failures.",DisplayName:"BLHeli debug level",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},SERVO_BLH_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Enable of BLHeli pass-thru servo protocol support to specific channels. This mask is in addition to motors enabled using SERVO_BLH_AUTO (if any)",DisplayName:"BLHeli Channel Bitmask",User:"Advanced"},SERVO_BLH_OTYPE:{Description:"When set to a non-zero value this overrides the output type for the output channels given by SERVO_BLH_MASK. This can be used to enable DShot on outputs that are not part of the multicopter motors group.",DisplayName:"BLHeli output type override",User:"Advanced",Values:{0:"None",1:"OneShot",2:"OneShot125",3:"Brushed",4:"DShot150",5:"DShot300",6:"DShot600",7:"DShot1200"}},SERVO_BLH_POLES:{Description:"This allows calculation of true RPM from ESC's eRPM. The default is 14.",DisplayName:"BLHeli Motor Poles",Range:{high:"127",low:"1"},User:"Advanced"},SERVO_BLH_PORT:{Description:"This sets the serial port to use for blheli pass-thru",DisplayName:"Control port",User:"Advanced",Values:{0:"Console",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5"}},SERVO_BLH_RVMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which are reversed. This is used to configure ESCs in reversed mode",DisplayName:"BLHeli bitmask of reversed channels",User:"Advanced"},SERVO_BLH_TEST:{Description:"Setting SERVO_BLH_TEST to a motor number enables an internal test of the BLHeli ESC protocol to the corresponding ESC. The debug output is displayed on the USB console.",DisplayName:"BLHeli internal interface test",User:"Advanced",Values:{0:"Disabled",1:"TestMotor1",2:"TestMotor2",3:"TestMotor3",4:"TestMotor4",5:"TestMotor5",6:"TestMotor6",7:"TestMotor7",8:"TestMotor8"}},SERVO_BLH_TMOUT:{Description:"This sets the inactivity timeout for the BLHeli protocol in seconds. If no packets are received in this time normal MAVLink operations are resumed. A value of 0 means no timeout",DisplayName:"BLHeli protocol timeout",Range:{high:"300",low:"0"},Units:"s",User:"Standard"},SERVO_BLH_TRATE:{Description:"This sets the rate in Hz for requesting telemetry from ESCs. It is the rate per ESC. Setting to zero disables telemetry requests",DisplayName:"BLHeli telemetry rate",Range:{high:"500",low:"0"},Units:"Hz",User:"Standard"}},p21={SERVO_FTW_MASK:{Bitmask:{0:"SERVO1",1:"SERVO2",2:"SERVO3",3:"SERVO4",4:"SERVO5",5:"SERVO6",6:"SERVO7",7:"SERVO8",8:"SERVO9",9:"SERVO10",10:"SERVO11",11:"SERVO12"},Description:"Servo channel mask specifying FETtec ESC output.",DisplayName:"Servo channel output bitmask",RebootRequired:"True",User:"Standard"},SERVO_FTW_POLES:{Description:"Number of motor electrical poles",DisplayName:"Nr. electrical poles",Range:{high:"50",low:"2"},User:"Standard"},SERVO_FTW_RVMASK:{Bitmask:{0:"SERVO1",1:"SERVO2",2:"SERVO3",3:"SERVO4",4:"SERVO5",5:"SERVO6",6:"SERVO7",7:"SERVO8",8:"SERVO9",9:"SERVO10",10:"SERVO11",11:"SERVO12"},Description:"Servo channel mask to reverse rotation of FETtec ESC outputs.",DisplayName:"Servo channel reverse rotation bitmask",User:"Standard"}},f21={SERVO_ROB_POSMAX:{Description:"Position maximum at servo max value. This should be within the position control range of the servos, normally 0 to 4095",DisplayName:"Robotis servo position max",Range:{high:"4095",low:"0"},User:"Standard"},SERVO_ROB_POSMIN:{Description:"Position minimum at servo min value. This should be within the position control range of the servos, normally 0 to 4095",DisplayName:"Robotis servo position min",Range:{high:"4095",low:"0"},User:"Standard"}},V21={SERVO_SBUS_RATE:{Description:"This sets the SBUS output frame rate in Hz.",DisplayName:"SBUS default output rate",Range:{high:"250",low:"25"},Units:"Hz",User:"Advanced"}},L21={SERVO_VOLZ_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Enable of volz servo protocol to specific channels",DisplayName:"Channel Bitmask",User:"Standard"}},H21={SR0_EXTRA1:{Description:"Stream rate of ATTITUDE and SIMSTATE (SITL only) to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, and SYSTEM_TIME to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_EXT_STAT:{Description:"Stream rate of SYS_STATUS, MEMINFO, MISSION_CURRENT, GPS_RAW_INT, NAV_CONTROLLER_OUTPUT, and LIMITS_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_PRESSURE, and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS_RAW to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},M21={SR1_EXTRA1:{Description:"Stream rate of ATTITUDE and SIMSTATE (SITL only) to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, and SYSTEM_TIME to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_EXT_STAT:{Description:"Stream rate of SYS_STATUS, MEMINFO, MISSION_CURRENT, GPS_RAW_INT, NAV_CONTROLLER_OUTPUT, and LIMITS_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_PRESSURE, and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS_RAW to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},g21={SR2_EXTRA1:{Description:"Stream rate of ATTITUDE and SIMSTATE (SITL only) to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, and SYSTEM_TIME to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_EXT_STAT:{Description:"Stream rate of SYS_STATUS, MEMINFO, MISSION_CURRENT, GPS_RAW_INT, NAV_CONTROLLER_OUTPUT, and LIMITS_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_PRESSURE, and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS_RAW to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},A21={SR3_EXTRA1:{Description:"Stream rate of ATTITUDE and SIMSTATE (SITL only) to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, and SYSTEM_TIME to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_EXT_STAT:{Description:"Stream rate of SYS_STATUS, MEMINFO, MISSION_CURRENT, GPS_RAW_INT, NAV_CONTROLLER_OUTPUT, and LIMITS_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_PRESSURE, and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS_RAW to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},v21={SR4_EXTRA1:{Description:"Stream rate of ATTITUDE and SIMSTATE (SITL only) to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, and SYSTEM_TIME to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_EXT_STAT:{Description:"Stream rate of SYS_STATUS, MEMINFO, MISSION_CURRENT, GPS_RAW_INT, NAV_CONTROLLER_OUTPUT, and LIMITS_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_PRESSURE, and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS_RAW to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},_21={SR5_EXTRA1:{Description:"Stream rate of ATTITUDE and SIMSTATE (SITL only) to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, and SYSTEM_TIME to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_EXT_STAT:{Description:"Stream rate of SYS_STATUS, MEMINFO, MISSION_CURRENT, GPS_RAW_INT, NAV_CONTROLLER_OUTPUT, and LIMITS_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_PRESSURE, and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS_RAW to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},S21={SR6_EXTRA1:{Description:"Stream rate of ATTITUDE and SIMSTATE (SITL only) to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, and SYSTEM_TIME to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_EXT_STAT:{Description:"Stream rate of SYS_STATUS, MEMINFO, MISSION_CURRENT, GPS_RAW_INT, NAV_CONTROLLER_OUTPUT, and LIMITS_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_PRESSURE, and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS_RAW to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},D21={ACRO_BAL_PITCH:{Description:"rate at which pitch angle returns to level in acro mode. A higher value causes the vehicle to return to level faster.",DisplayName:"Acro Balance Pitch",Increment:"0.1",Range:{high:"3",low:"0"},User:"Advanced"},ACRO_BAL_ROLL:{Description:"rate at which roll angle returns to level in acro mode. A higher value causes the vehicle to return to level faster.",DisplayName:"Acro Balance Roll",Increment:"0.1",Range:{high:"3",low:"0"},User:"Advanced"},ACRO_EXPO:{Description:"Acro roll/pitch Expo to allow faster rotation when stick at edges",DisplayName:"Acro Expo",User:"Advanced",Values:{0:"Disabled","0.1":"Very Low","0.2":"Low","0.3":"Medium","0.4":"High","0.5":"Very High"}},ACRO_RP_P:{Description:"Converts pilot roll and pitch into a desired rate of rotation in ACRO and SPORT mode. Higher values mean faster rate of rotation.",DisplayName:"Acro Roll and Pitch P gain",Range:{high:"10",low:"1"},User:"Standard"},ACRO_TRAINER:{Description:"Type of trainer used in acro mode",DisplayName:"Acro Trainer",User:"Advanced",Values:{0:"Disabled",1:"Leveling",2:"Leveling and Limited"}},ACRO_YAW_P:{Description:"Converts pilot yaw input into a desired rate of rotation. Higher values mean faster rate of rotation.",DisplayName:"Acro Yaw P gain",Range:{high:"10",low:"1"},User:"Standard"},ANGLE_MAX:{Description:"Maximum lean angle in all flight modes",DisplayName:"Angle Max",Increment:"10",Range:{high:"8000",low:"1000"},Units:"cdeg",User:"Advanced"},FORMAT_VERSION:{Description:"This value is incremented when changes are made to the eeprom format",DisplayName:"Eeprom format version number",ReadOnly:"True",User:"Advanced"},FRAME_CONFIG:{Description:"Set this parameter according to your vehicle/motor configuration",DisplayName:"Frame configuration",RebootRequired:"True",User:"Standard",Values:{0:"BlueROV1",1:"Vectored",2:"Vectored_6DOF",3:"Vectored_6DOF_90",4:"SimpleROV-3",5:"SimpleROV-4",6:"SimpleROV-5",7:"Custom"}},FS_CRASH_CHECK:{Description:"This enables automatic crash checking. When enabled the motors will disarm if a crash is detected.",DisplayName:"Crash check enable",User:"Advanced",Values:{0:"Disabled",1:"Warn only",2:"Disarm"}},FS_EKF_ACTION:{Description:"Controls the action that will be taken when an EKF failsafe is invoked",DisplayName:"EKF Failsafe Action",User:"Advanced",Values:{0:"Disabled",1:"Warn only",2:"Disarm"}},FS_EKF_THRESH:{Description:"Allows setting the maximum acceptable compass and velocity variance",DisplayName:"EKF failsafe variance threshold",User:"Advanced",Values:{"0.6":"Strict","0.8":"Default","1.0":"Relaxed"}},FS_GCS_ENABLE:{Description:"Controls what action to take when GCS heartbeat is lost.",DisplayName:"Ground Station Failsafe Enable",User:"Standard",Values:{0:"Disabled",1:"Warn only",2:"Disarm",3:"Enter depth hold mode",4:"Enter surface mode"}},FS_LEAK_ENABLE:{Description:"Controls what action to take if a leak is detected.",DisplayName:"Leak Failsafe Enable",User:"Standard",Values:{0:"Disabled",1:"Warn only",2:"Enter surface mode"}},FS_PILOT_INPUT:{Description:"Controls what action to take if no pilot input has been received after the timeout period specified by the FS_PILOT_TIMEOUT parameter",DisplayName:"Pilot input failsafe action",User:"Standard",Values:{0:"Disabled",1:"Warn Only",2:"Disarm"}},FS_PILOT_TIMEOUT:{Description:"Controls the maximum interval between received pilot inputs before the failsafe action is triggered",DisplayName:"Timeout for activation of pilot input failsafe",Range:{high:"3.0",low:"0.1"},Units:"s",User:"Standard"},FS_PRESS_ENABLE:{Description:"Controls what action to take if internal pressure exceeds FS_PRESS_MAX parameter.",DisplayName:"Internal Pressure Failsafe Enable",User:"Standard",Values:{0:"Disabled",1:"Warn only"}},FS_PRESS_MAX:{Description:"The maximum internal pressure allowed before triggering failsafe. Failsafe action is determined by FS_PRESS_ENABLE parameter",DisplayName:"Internal Pressure Failsafe Threshold",Units:"Pa",User:"Standard"},FS_TEMP_ENABLE:{Description:"Controls what action to take if internal temperature exceeds FS_TEMP_MAX parameter.",DisplayName:"Internal Temperature Failsafe Enable",User:"Standard",Values:{0:"Disabled",1:"Warn only"}},FS_TEMP_MAX:{Description:"The maximum internal temperature allowed before triggering failsafe. Failsafe action is determined by FS_TEMP_ENABLE parameter.",DisplayName:"Internal Temperature Failsafe Threshold",Units:"degC",User:"Standard"},FS_TERRAIN_ENAB:{Description:"Controls what action to take if terrain information is lost during AUTO mode",DisplayName:"Terrain Failsafe Enable",User:"Standard",Values:{0:"Disarm",1:"Hold Position",2:"Surface"}},GCS_PID_MASK:{Bitmask:{0:"Roll",1:"Pitch",2:"Yaw"},Description:"bitmask of PIDs to send MAVLink PID_TUNING messages for",DisplayName:"GCS PID tuning mask",User:"Advanced",Values:{0:"None",1:"Roll",2:"Pitch",4:"Yaw"}},JS_GAIN_DEFAULT:{Description:"Default gain at boot, must be in range [JS_GAIN_MIN , JS_GAIN_MAX]",DisplayName:"Default gain at boot",Range:{high:"1.0",low:"0.1"},User:"Standard"},JS_GAIN_MAX:{Description:"Maximum joystick gain",DisplayName:"Maximum joystick gain",Range:{high:"1.0",low:"0.2"},User:"Standard"},JS_GAIN_MIN:{Description:"Minimum joystick gain",DisplayName:"Minimum joystick gain",Range:{high:"0.8",low:"0.1"},User:"Standard"},JS_GAIN_STEPS:{Description:"Controls the number of steps between minimum and maximum joystick gain when the gain is adjusted using buttons. Set to 1 to always use JS_GAIN_DEFAULT.",DisplayName:"Gain steps",Range:{high:"10",low:"1"},User:"Standard"},JS_LIGHTS_STEPS:{Description:"Number of steps in brightness between minimum and maximum brightness",DisplayName:"Lights brightness steps",Range:{high:"10",low:"1"},Units:"PWM",User:"Standard"},JS_THR_GAIN:{Description:"Scalar for gain on the throttle channel",DisplayName:"Throttle gain scalar",Range:{high:"4.0",low:"0.5"},User:"Standard"},LOG_BITMASK:{Bitmask:{0:"ATTITUDE_FAST",1:"ATTITUDE_MED",2:"GPS",3:"PM",4:"CTUN",5:"NTUN",6:"RCIN",7:"IMU",8:"CMD",9:"CURRENT",10:"RCOUT",11:"OPTFLOW",12:"PID",13:"COMPASS",14:"INAV",15:"CAMERA",17:"MOTBATT",18:"IMU_FAST",19:"IMU_RAW"},Description:"4 byte bitmap of log types to enable",DisplayName:"Log bitmask",User:"Standard",Values:{0:"Disabled",830:"Default",894:"Default+RCIN",958:"Default+IMU",1854:"Default+Motors",45054:"NearlyAll",131071:"All+FastATT",262142:"All+MotBatt",393214:"All+FastIMU",397310:"All+FastIMU+PID",655358:"All+FullIMU","-6146":"NearlyAll-AC315"}},PILOT_ACCEL_Z:{Description:"The vertical acceleration used when pilot is controlling the altitude",DisplayName:"Pilot vertical acceleration",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s/s",User:"Standard"},PILOT_SPEED_DN:{Description:"The maximum vertical descending velocity the pilot may request in cm/s",DisplayName:"Pilot maximum vertical descending speed",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s",User:"Standard"},PILOT_SPEED_UP:{Description:"The maximum vertical ascending velocity the pilot may request in cm/s",DisplayName:"Pilot maximum vertical ascending speed",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s",User:"Standard"},PILOT_THR_FILT:{Description:"Throttle filter cutoff (Hz) - active whenever altitude control is inactive - 0 to disable",DisplayName:"Throttle filter cutoff",Increment:".5",Range:{high:"10",low:"0"},Units:"Hz",User:"Advanced"},RC_SPEED:{Description:"This is the speed in Hertz that your ESCs will receive updates",DisplayName:"ESC Update Speed",Increment:"1",Range:{high:"490",low:"50"},Units:"Hz",User:"Advanced"},RNGFND_GAIN:{Description:"Used to adjust the speed with which the target altitude is changed when objects are sensed below the sub",DisplayName:"Rangefinder gain",Increment:"0.01",Range:{high:"2.0",low:"0.01"},User:"Standard"},SURFACE_DEPTH:{Description:"The depth the external pressure sensor will read when the vehicle is considered at the surface (in centimeters)",DisplayName:"Depth reading at surface",Range:{high:"0",low:"-100"},Units:"cm",User:"Standard"},SYSID_MYGCS:{Description:"Allows restricting radio overrides to only come from my ground station",DisplayName:"My ground station number",User:"Advanced"},SYSID_THISMAV:{Description:"Allows setting an individual MAVLink system id for this vehicle to distinguish it from others on the same network",DisplayName:"MAVLink system ID of this vehicle",Range:{high:"255",low:"1"},User:"Advanced"},THR_DZ:{Description:"The PWM deadzone in microseconds above and below mid throttle. Used in AltHold, Loiter, PosHold flight modes",DisplayName:"Throttle deadzone",Increment:"1",Range:{high:"300",low:"0"},Units:"PWM",User:"Standard"},WP_YAW_BEHAVIOR:{Description:"Determines how the autopilot controls the yaw during missions and RTL",DisplayName:"Yaw behaviour during missions",User:"Standard",Values:{0:"Never change yaw",1:"Face next waypoint",2:"Face next waypoint except RTL",3:"Face along GPS course",4:"Correct crosstrack error"}},XTRACK_ANG_LIM:{Description:"Maximum allowed angle (in degrees) between current track and desired heading during waypoint navigation",DisplayName:"Crosstrack correction angle limit",Range:{high:"90",low:"10"},User:"Standard"}},y21={TERRAIN_ENABLE:{Description:"enable terrain data. This enables the vehicle storing a database of terrain data on the SD card. The terrain data is requested from the ground station as needed, and stored for later use on the SD card. To be useful the ground station must support TERRAIN_REQUEST messages and have access to a terrain database, such as the SRTM database.",DisplayName:"Terrain data enable",User:"Advanced",Values:{0:"Disable",1:"Enable"}},TERRAIN_OPTIONS:{Bitmask:{0:"Disable Download"},Description:"Options to change behaviour of terrain system",DisplayName:"Terrain options",User:"Advanced"},TERRAIN_SPACING:{Description:"Distance between terrain grid points in meters. This controls the horizontal resolution of the terrain data that is stored on te SD card and requested from the ground station. If your GCS is using the ArduPilot SRTM database like Mission Planner or MAVProxy, then a resolution of 100 meters is appropriate. Grid spacings lower than 100 meters waste SD card space if the GCS cannot provide that resolution. The grid spacing also controls how much data is kept in memory during flight. A larger grid spacing will allow for a larger amount of data in memory. A grid spacing of 100 meters results in the vehicle keeping 12 grid squares in memory with each grid square having a size of 2.7 kilometers by 3.2 kilometers. Any additional grid squares are stored on the SD once they are fetched from the GCS and will be loaded as needed.",DisplayName:"Terrain grid spacing",Increment:"1",Units:"m",User:"Advanced"}},R21={VISO_DELAY_MS:{Description:"Visual odometry sensor delay relative to inertial measurements",DisplayName:"Visual odometry sensor delay",Range:{high:"250",low:"0"},Units:"ms",User:"Advanced"},VISO_ORIENT:{Description:"Visual odometery camera orientation",DisplayName:"Visual odometery camera orientation",User:"Advanced",Values:{0:"Forward",2:"Right",4:"Back",6:"Left",24:"Up",25:"Down"}},VISO_POS_M_NSE:{Description:"Visual odometry position measurement noise minimum (meters). This value will be used if the sensor provides a lower noise value (or no noise value)",DisplayName:"Visual odometry position measurement noise ",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},VISO_POS_X:{Description:"X position of the camera in body frame. Positive X is forward of the origin.",DisplayName:"Visual odometry camera X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_POS_Y:{Description:"Y position of the camera in body frame. Positive Y is to the right of the origin.",DisplayName:"Visual odometry camera Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_POS_Z:{Description:"Z position of the camera in body frame. Positive Z is down from the origin.",DisplayName:"Visual odometry camera Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_SCALE:{Description:"Visual odometry scaling factor applied to position estimates from sensor",DisplayName:"Visual odometry scaling factor",User:"Advanced"},VISO_TYPE:{Description:"Visual odometry camera connection type",DisplayName:"Visual odometry camera connection type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"MAVLink",2:"IntelT265"}},VISO_VEL_M_NSE:{Description:"Visual odometry velocity measurement noise in m/s",DisplayName:"Visual odometry velocity measurement noise",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},VISO_YAW_M_NSE:{Description:"Visual odometry yaw measurement noise minimum (radians), This value will be used if the sensor provides a lower noise value (or no noise value)",DisplayName:"Visual odometry yaw measurement noise",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},b21={VTX_BAND:{Description:"Video Transmitter Band",DisplayName:"Video Transmitter Band",User:"Standard",Values:{0:"Band A",1:"Band B",2:"Band E",3:"Airwave",4:"RaceBand",5:"Low RaceBand"}},VTX_CHANNEL:{Description:"Video Transmitter Channel",DisplayName:"Video Transmitter Channel",Range:{high:"7",low:"0"},User:"Standard"},VTX_ENABLE:{Description:"Toggles the Video Transmitter on and off",DisplayName:"Is the Video Transmitter enabled or not",Values:{0:"Disable",1:"Enable"}},VTX_FREQ:{Description:"Video Transmitter Frequency. The frequency is derived from the setting of BAND and CHANNEL",DisplayName:"Video Transmitter Frequency",Range:{high:"6000",low:"5000"},ReadOnly:"True",User:"Standard"},VTX_MAX_POWER:{Description:"Video Transmitter Maximum Power Level. Different VTXs support different power levels, this prevents the power aux switch from requesting too high a power level. The switch supports 6 power levels and the selected power will be a subdivision between 0 and this setting.",DisplayName:"Video Transmitter Max Power Level",Range:{high:"1000",low:"25"}},VTX_OPTIONS:{Bitmask:{0:"Pitmode",1:"Pitmode until armed",2:"Pitmode when disarmed",3:"Unlocked",4:"Add leading zero byte to requests"},Description:"Video Transmitter Options. Pitmode puts the VTX in a low power state. Unlocked enables certain restricted frequencies and power levels. Do not enable the Unlocked option unless you have appropriate permissions in your jurisdiction to transmit at high power levels.",DisplayName:"Video Transmitter Options",User:"Advanced"},VTX_POWER:{Description:"Video Transmitter Power Level. Different VTXs support different power levels, the power level chosen will be rounded down to the nearest supported power level",DisplayName:"Video Transmitter Power Level",Range:{high:"1000",low:"1"}}},N21={WPNAV_ACCEL:{Description:"Defines the horizontal acceleration in cm/s/s used during missions",DisplayName:"Waypoint Acceleration ",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s/s",User:"Standard"},WPNAV_ACCEL_Z:{Description:"Defines the vertical acceleration in cm/s/s used during missions",DisplayName:"Waypoint Vertical Acceleration",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s/s",User:"Standard"},WPNAV_JERK:{Description:"Defines the horizontal jerk in m/s/s used during missions",DisplayName:"Waypoint Jerk",Range:{high:"20",low:"1"},Units:"m/s/s/s",User:"Standard"},WPNAV_RADIUS:{Description:"Defines the distance from a waypoint, that when crossed indicates the wp has been hit.",DisplayName:"Waypoint Radius",Increment:"1",Range:{high:"1000",low:"5"},Units:"cm",User:"Standard"},WPNAV_RFND_USE:{Description:"This controls if waypoint missions use rangefinder for terrain following",DisplayName:"Waypoint missions use rangefinder for terrain following",User:"Advanced",Values:{0:"Disable",1:"Enable"}},WPNAV_SPEED:{Description:"Defines the speed in cm/s which the aircraft will attempt to maintain horizontally during a WP mission",DisplayName:"Waypoint Horizontal Speed Target",Increment:"50",Range:{high:"2000",low:"20"},Units:"cm/s",User:"Standard"},WPNAV_SPEED_DN:{Description:"Defines the speed in cm/s which the aircraft will attempt to maintain while descending during a WP mission",DisplayName:"Waypoint Descent Speed Target",Increment:"10",Range:{high:"500",low:"10"},Units:"cm/s",User:"Standard"},WPNAV_SPEED_UP:{Description:"Defines the speed in cm/s which the aircraft will attempt to maintain while climbing during a WP mission",DisplayName:"Waypoint Climb Speed Target",Increment:"50",Range:{high:"1000",low:"10"},Units:"cm/s",User:"Standard"},WPNAV_TER_MARGIN:{Description:"Waypoint Terrain following altitude margin. Vehicle will stop if distance from target altitude is larger than this margin (in meters)",DisplayName:"Waypoint Terrain following altitude margin",Range:{high:"100",low:"0.1"},Units:"m",User:"Advanced"}},w21={version:0},LB1={AHRS_:EQ,ARMING_:PQ,ARSPD:IQ,ATC_:OQ,AVOID_:UQ,BARO:xQ,BARO1_WCF_:FQ,BARO2_WCF_:kQ,BARO3_WCF_:BQ,BATT2_:zQ,BATT3_:ZQ,BATT4_:GQ,BATT5_:WQ,BATT6_:XQ,BATT7_:YQ,BATT8_:$Q,BATT9_:qQ,BATT_:KQ,BRD_:jQ,BRD_RADIO:QQ,BRD_RTC:JQ,BTN0_:eJ,BTN10_:tJ,BTN11_:iJ,BTN12_:aJ,BTN13_:rJ,BTN14_:nJ,BTN15_:oJ,BTN1_:sJ,BTN2_:lJ,BTN3_:cJ,BTN4_:dJ,BTN5_:CJ,BTN6_:mJ,BTN7_:uJ,BTN8_:hJ,BTN9_:pJ,CAM_:fJ,CAM_RC_:VJ,CAN_:LJ,CAN_D1_:HJ,CAN_D1_KDE_:MJ,CAN_D1_PC_:gJ,CAN_D1_TST_:AJ,CAN_D1_UC_:vJ,CAN_D2_:_J,CAN_D2_KDE_:SJ,CAN_D2_PC_:DJ,CAN_D2_TST_:yJ,CAN_D2_UC_:RJ,CAN_D3_:bJ,CAN_D3_KDE_:NJ,CAN_D3_PC_:wJ,CAN_D3_TST_:TJ,CAN_D3_UC_:EJ,CAN_P1_:PJ,CAN_P2_:IJ,CAN_P3_:OJ,CAN_SLCAN_:UJ,CIRCLE_:xJ,COMPASS_:FJ,COMPASS_PMOT:kJ,EAHRS:BJ,EK2_:zJ,EK3_:ZJ,EK3_SRC:GJ,FENCE_:WJ,FFT_:XJ,FLOW:YJ,FRSKY_:$J,GEN_:qJ,GPS:KJ,GPS_MB1_:jJ,GPS_MB2_:QJ,GRIP_:JJ,INS_:e11,INS_HNTCH_:t11,INS_LOG_:i11,INS_NOTCH_:a11,INS_TCAL1_:r11,INS_TCAL2_:n11,INS_TCAL3_:o11,LEAK:s11,LOG:l11,LOIT_:c11,MIS_:d11,MNT:C11,MOT_:m11,MSP:u11,NTF_:h11,PRX:p11,PSC:f11,RALLY_:V11,RC:L11,RC10_:H11,RC11_:M11,RC12_:g11,RC13_:A11,RC14_:v11,RC15_:_11,RC16_:S11,RC1_:D11,RC2_:y11,RC3_:R11,RC4_:b11,RC5_:N11,RC6_:w11,RC7_:T11,RC8_:E11,RC9_:P11,RCMAP_:I11,RELAY_:O11,RNGFND1_:U11,RNGFND2_:x11,RNGFND3_:F11,RNGFND4_:k11,RNGFND5_:B11,RNGFND6_:z11,RNGFND7_:Z11,RNGFND8_:G11,RNGFND9_:W11,RNGFNDA_:X11,RPM:Y11,SCHED_:$11,SCR_:q11,SERIAL:K11,SERVO:j11,SERVO10_:Q11,SERVO11_:J11,SERVO12_:e21,SERVO13_:t21,SERVO14_:i21,SERVO15_:a21,SERVO16_:r21,SERVO1_:n21,SERVO2_:o21,SERVO3_:s21,SERVO4_:l21,SERVO5_:c21,SERVO6_:d21,SERVO7_:C21,SERVO8_:m21,SERVO9_:u21,SERVO_BLH_:h21,SERVO_FTW_:p21,SERVO_ROB_:f21,SERVO_SBUS_:V21,SERVO_VOLZ_:L21,SR0_:H21,SR1_:M21,SR2_:g21,SR3_:A21,SR4_:v21,SR5_:_21,SR6_:S21,Sub:D21,TERRAIN_:y21,VISO:R21,VTX_:b21,WPNAV_:N21,json:w21},HB1=Object.freeze(Object.defineProperty({__proto__:null,AHRS_:EQ,ARMING_:PQ,ARSPD:IQ,ATC_:OQ,AVOID_:UQ,BARO:xQ,BARO1_WCF_:FQ,BARO2_WCF_:kQ,BARO3_WCF_:BQ,BATT2_:zQ,BATT3_:ZQ,BATT4_:GQ,BATT5_:WQ,BATT6_:XQ,BATT7_:YQ,BATT8_:$Q,BATT9_:qQ,BATT_:KQ,BRD_:jQ,BRD_RADIO:QQ,BRD_RTC:JQ,BTN0_:eJ,BTN10_:tJ,BTN11_:iJ,BTN12_:aJ,BTN13_:rJ,BTN14_:nJ,BTN15_:oJ,BTN1_:sJ,BTN2_:lJ,BTN3_:cJ,BTN4_:dJ,BTN5_:CJ,BTN6_:mJ,BTN7_:uJ,BTN8_:hJ,BTN9_:pJ,CAM_:fJ,CAM_RC_:VJ,CAN_:LJ,CAN_D1_:HJ,CAN_D1_KDE_:MJ,CAN_D1_PC_:gJ,CAN_D1_TST_:AJ,CAN_D1_UC_:vJ,CAN_D2_:_J,CAN_D2_KDE_:SJ,CAN_D2_PC_:DJ,CAN_D2_TST_:yJ,CAN_D2_UC_:RJ,CAN_D3_:bJ,CAN_D3_KDE_:NJ,CAN_D3_PC_:wJ,CAN_D3_TST_:TJ,CAN_D3_UC_:EJ,CAN_P1_:PJ,CAN_P2_:IJ,CAN_P3_:OJ,CAN_SLCAN_:UJ,CIRCLE_:xJ,COMPASS_:FJ,COMPASS_PMOT:kJ,EAHRS:BJ,EK2_:zJ,EK3_:ZJ,EK3_SRC:GJ,FENCE_:WJ,FFT_:XJ,FLOW:YJ,FRSKY_:$J,GEN_:qJ,GPS:KJ,GPS_MB1_:jJ,GPS_MB2_:QJ,GRIP_:JJ,INS_:e11,INS_HNTCH_:t11,INS_LOG_:i11,INS_NOTCH_:a11,INS_TCAL1_:r11,INS_TCAL2_:n11,INS_TCAL3_:o11,LEAK:s11,LOG:l11,LOIT_:c11,MIS_:d11,MNT:C11,MOT_:m11,MSP:u11,NTF_:h11,PRX:p11,PSC:f11,RALLY_:V11,RC:L11,RC10_:H11,RC11_:M11,RC12_:g11,RC13_:A11,RC14_:v11,RC15_:_11,RC16_:S11,RC1_:D11,RC2_:y11,RC3_:R11,RC4_:b11,RC5_:N11,RC6_:w11,RC7_:T11,RC8_:E11,RC9_:P11,RCMAP_:I11,RELAY_:O11,RNGFND1_:U11,RNGFND2_:x11,RNGFND3_:F11,RNGFND4_:k11,RNGFND5_:B11,RNGFND6_:z11,RNGFND7_:Z11,RNGFND8_:G11,RNGFND9_:W11,RNGFNDA_:X11,RPM:Y11,SCHED_:$11,SCR_:q11,SERIAL:K11,SERVO:j11,SERVO10_:Q11,SERVO11_:J11,SERVO12_:e21,SERVO13_:t21,SERVO14_:i21,SERVO15_:a21,SERVO16_:r21,SERVO1_:n21,SERVO2_:o21,SERVO3_:s21,SERVO4_:l21,SERVO5_:c21,SERVO6_:d21,SERVO7_:C21,SERVO8_:m21,SERVO9_:u21,SERVO_BLH_:h21,SERVO_FTW_:p21,SERVO_ROB_:f21,SERVO_SBUS_:V21,SERVO_VOLZ_:L21,SR0_:H21,SR1_:M21,SR2_:g21,SR3_:A21,SR4_:v21,SR5_:_21,SR6_:S21,Sub:D21,TERRAIN_:y21,VISO:R21,VTX_:b21,WPNAV_:N21,json:w21,default:LB1},Symbol.toStringTag,{value:"Module"}));var T21=(e=>(e[e.PRE_FLIGHT=-1]="PRE_FLIGHT",e[e.STABILIZE=0]="STABILIZE",e[e.ACRO=1]="ACRO",e[e.ALT_HOLD=2]="ALT_HOLD",e[e.AUTO=3]="AUTO",e[e.GUIDED=4]="GUIDED",e[e.CIRCLE=7]="CIRCLE",e[e.SURFACE=9]="SURFACE",e[e.POSHOLD=16]="POSHOLD",e[e.MANUAL=19]="MANUAL",e[e.MOTOR_DETECT=20]="MOTOR_DETECT",e))(T21||{});class MB1 extends jC{constructor(i){super(a0.Sub,i);S1(this,"_mode",-1);S1(this,"_metadata",HB1)}mode(){return this._mode}modesAvailable(){const i=new Map;return Object.entries(T21).filter(([a])=>isNaN(Number(a))).forEach(([a,r])=>{i.set(a,r)}),i}onMAVLinkPackage(i){switch(i.message.type){case se.HEARTBEAT:{const a=i.message;if(a.base_mode.bits===0){this._mode=-1,this.onMode.emit();return}if(!(a.base_mode.bits&_n.MAV_MODE_FLAG_CUSTOM_MODE_ENABLED)){console.log(`no custom: ${JSON.stringify(a.base_mode)}`);return}this._mode=a.custom_mode,this.onMode.emit()}}}}const oa=class{static createVehicle(t,i,a){let r;switch(t){case M4.ArduPilot:r=oa.createArduPilotVehicle(i,a);break}if(r===void 0){unimplemented("Firmware not supported");return}return Pt.onRead.add(n=>r==null?void 0:r.onMessage(n)),oa._vehicles.push(new WeakRef(r)),oa.onVehicles.register_caller(this.vehicles),oa.onVehicles.emit(),r}static createArduPilotVehicle(t,i){switch(t){case a0.Copter:return new CB1(i);case a0.Plane:return new hB1(i);case a0.Rover:return new VB1(i);case a0.Sub:return new MB1(i);default:unimplemented("Firmware not supported")}}static vehicles(){return oa._vehicles=oa._vehicles.filter(t=>t.deref()!==void 0),oa._vehicles}};let m3=oa;S1(m3,"_vehicles",[]),S1(m3,"onVehicles",new Z5);function E21(e){if(!m3.vehicles().isEmpty()){Pt.onRead.remove(E21);return}const t=new TextDecoder,i=JSON.parse(t.decode(e)),{system_id:a,component_id:r}=i.header;if(i.message.type!==se.HEARTBEAT)return;const n=i.message;if(n.autopilot.type!==dd.MAV_AUTOPILOT_INVALID)switch(n.autopilot.type!==dd.MAV_AUTOPILOT_ARDUPILOTMEGA&&console.warn(`Vehicle not supported: ${a}/${r}: ${n.autopilot.type}`),n.mavtype.type){case I5.MAV_TYPE_SUBMARINE:m3.createVehicle(M4.ArduPilot,a0.Sub,a);break;case I5.MAV_TYPE_GROUND_ROVER:case I5.MAV_TYPE_SURFACE_BOAT:m3.createVehicle(M4.ArduPilot,a0.Rover,a);break;case I5.MAV_TYPE_FLAPPING_WING:case I5.MAV_TYPE_VTOL_TILTROTOR:case I5.MAV_TYPE_VTOL_QUADROTOR:case I5.MAV_TYPE_VTOL_DUOROTOR:case I5.MAV_TYPE_FIXED_WING:m3.createVehicle(M4.ArduPilot,a0.Plane,a);break;case I5.MAV_TYPE_TRICOPTER:case I5.MAV_TYPE_COAXIAL:case I5.MAV_TYPE_HEXAROTOR:case I5.MAV_TYPE_HELICOPTER:case I5.MAV_TYPE_OCTOROTOR:case I5.MAV_TYPE_DODECAROTOR:case I5.MAV_TYPE_QUADROTOR:m3.createVehicle(M4.ArduPilot,a0.Copter,a);break;default:console.warn(`Vehicle type not supported: ${a}/${r}: ${n.mavtype.type}`)}}Pt.onRead.add(E21);var _a={exports:{}};(function(e,t){(function(i,a){a()})(O5,function(){function i(d,C){return typeof C>"u"?C={autoBom:!1}:typeof C!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),C={autoBom:!C}),C.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(d.type)?new Blob(["\uFEFF",d],{type:d.type}):d}function a(d,C,m){var u=new XMLHttpRequest;u.open("GET",d),u.responseType="blob",u.onload=function(){l(u.response,C,m)},u.onerror=function(){console.error("could not download file")},u.send()}function r(d){var C=new XMLHttpRequest;C.open("HEAD",d,!1);try{C.send()}catch{}return 200<=C.status&&299>=C.status}function n(d){try{d.dispatchEvent(new MouseEvent("click"))}catch{var C=document.createEvent("MouseEvents");C.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),d.dispatchEvent(C)}}var o=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof O5=="object"&&O5.global===O5?O5:void 0,s=o.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),l=o.saveAs||(typeof window!="object"||window!==o?function(){}:"download"in HTMLAnchorElement.prototype&&!s?function(d,C,m){var u=o.URL||o.webkitURL,p=document.createElement("a");C=C||d.name||"download",p.download=C,p.rel="noopener",typeof d=="string"?(p.href=d,p.origin===location.origin?n(p):r(p.href)?a(d,C,m):n(p,p.target="_blank")):(p.href=u.createObjectURL(d),setTimeout(function(){u.revokeObjectURL(p.href)},4e4),setTimeout(function(){n(p)},0))}:"msSaveOrOpenBlob"in navigator?function(d,C,m){if(C=C||d.name||"download",typeof d!="string")navigator.msSaveOrOpenBlob(i(d,m),C);else if(r(d))a(d,C,m);else{var u=document.createElement("a");u.href=d,u.target="_blank",setTimeout(function(){n(u)})}}:function(d,C,m,u){if(u=u||open("","_blank"),u&&(u.document.title=u.document.body.innerText="downloading..."),typeof d=="string")return a(d,C,m);var p=d.type==="application/octet-stream",V=/constructor/i.test(o.HTMLElement)||o.safari,f=/CriOS\/[\d]+/.test(navigator.userAgent);if((f||p&&V||s)&&typeof FileReader<"u"){var M=new FileReader;M.onloadend=function(){var _=M.result;_=f?_:_.replace(/^data:[^;]*;/,"data:attachment/file;"),u?u.location.href=_:location=_,u=null},M.readAsDataURL(d)}else{var H=o.URL||o.webkitURL,g=H.createObjectURL(d);u?u.location=g:location.href=g,u=null,setTimeout(function(){H.revokeObjectURL(g)},4e4)}});o.saveAs=l.saveAs=l,e.exports=l})})(_a);const gB1=[{name:"ROV functions mapping",axesCorrespondencies:{[t5.A0]:{action:Et.axis_y,min:-1e3,max:1e3},[t5.A1]:{action:Et.axis_x,min:1e3,max:-1e3},[t5.A2]:{action:Et.axis_r,min:-1e3,max:1e3},[t5.A3]:{action:Et.axis_z,min:1e3,max:0}},buttonsCorrespondencies:{[p3.regular]:{[B1.B0]:{action:ft.shift},[B1.B1]:{action:Qe["Mode manual"]},[B1.B2]:{action:Qe["Mode depth hold"]},[B1.B3]:{action:Qe["Mode stabilize"]},[B1.B4]:{action:it.go_to_previous_view},[B1.B5]:{action:it.go_to_next_view},[B1.B6]:{action:Qe["Mount tilt down"]},[B1.B7]:{action:Qe["Mount tilt up"]},[B1.B8]:{action:Qe.Disarm},[B1.B9]:{action:Qe.Arm},[B1.B10]:{action:Qe["Mount center"]},[B1.B11]:{action:Qe["Input hold set"]},[B1.B12]:{action:Qe["Gain inc"]},[B1.B13]:{action:Qe["Gain dec"]},[B1.B14]:{action:Qe["Lights1 dimmer"]},[B1.B15]:{action:Qe["Lights1 brighter"]},[B1.B16]:{action:it.toggle_bottom_bar},[B1.B17]:{action:Qe["Roll pitch toggle"]}},[p3.shift]:{[B1.B0]:{action:E2.no_function},[B1.B1]:{action:E2.no_function},[B1.B2]:{action:Qe["Mode poshold"]},[B1.B3]:{action:Qe["Mode acro"]},[B1.B4]:{action:E2.no_function},[B1.B5]:{action:E2.no_function},[B1.B6]:{action:Qe["Servo 1 min"]},[B1.B7]:{action:Qe["Servo 1 max"]},[B1.B8]:{action:E2.no_function},[B1.B9]:{action:E2.no_function},[B1.B10]:{action:Qe["Relay 1 toggle"]},[B1.B11]:{action:E2.no_function},[B1.B12]:{action:Qe["Trim pitch inc"]},[B1.B13]:{action:Qe["Trim pitch dec"]},[B1.B14]:{action:Qe["Trim roll dec"]},[B1.B15]:{action:Qe["Trim roll inc"]},[B1.B16]:{action:E2.no_function},[B1.B17]:{action:E2.no_function}}}},{name:"Boat functions mapping",axesCorrespondencies:{[t5.A0]:{action:Et.axis_y,min:-1e3,max:1e3},[t5.A1]:{action:Et.axis_x,min:1e3,max:-1e3},[t5.A2]:{action:Et.axis_r,min:-1e3,max:1e3},[t5.A3]:{action:Et.axis_z,min:1e3,max:-1e3}},buttonsCorrespondencies:{[p3.regular]:{[B1.B0]:{action:ft.shift},[B1.B1]:{action:E2.no_function},[B1.B2]:{action:E2.no_function},[B1.B3]:{action:E2.no_function},[B1.B4]:{action:it.go_to_previous_view},[B1.B5]:{action:it.go_to_next_view},[B1.B6]:{action:E2.no_function},[B1.B7]:{action:E2.no_function},[B1.B8]:{action:it.mavlink_disarm},[B1.B9]:{action:it.mavlink_arm},[B1.B10]:{action:E2.no_function},[B1.B11]:{action:E2.no_function},[B1.B12]:{action:E2.no_function},[B1.B13]:{action:E2.no_function},[B1.B14]:{action:E2.no_function},[B1.B15]:{action:E2.no_function},[B1.B16]:{action:it.toggle_bottom_bar},[B1.B17]:{action:E2.no_function}},[p3.shift]:{[B1.B0]:{action:E2.no_function},[B1.B1]:{action:E2.no_function},[B1.B2]:{action:E2.no_function},[B1.B3]:{action:E2.no_function},[B1.B4]:{action:E2.no_function},[B1.B5]:{action:E2.no_function},[B1.B6]:{action:E2.no_function},[B1.B7]:{action:E2.no_function},[B1.B8]:{action:E2.no_function},[B1.B9]:{action:E2.no_function},[B1.B10]:{action:E2.no_function},[B1.B11]:{action:E2.no_function},[B1.B12]:{action:E2.no_function},[B1.B13]:{action:E2.no_function},[B1.B14]:{action:E2.no_function},[B1.B15]:{action:E2.no_function},[B1.B16]:{action:E2.no_function},[B1.B17]:{action:E2.no_function}}}}],o_={[ut.DualSense]:{name:"DualSense",axes:[0,1,2,3],buttons:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]},[ut.DualShock4]:{name:"DualShock4",axes:[0,1,2,3],buttons:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]},[ut.IpegaPG9023]:{name:"Ipega9023",axes:[0,1,2,3],buttons:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]},[ut.XboxOneS_Bluetooth]:{name:"Xbox One S",axes:[0,1,2,3],buttons:[0,1,2,3,4,11,6,7,8,9,5,11,12,13,14,15,16,17]},[ut.XboxController_Bluetooth]:{name:"Xbox Controller (bluetooth)",axes:[0,1,2,3],buttons:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,16]},[ut.XboxController_Wired]:{name:"Xbox Controller (wired)",axes:[0,1,2,3],buttons:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]},[ut.XboxController_360]:{name:ut.XboxController_360,axes:[0,1,2,3],buttons:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]},[ut.LogitechExtreme3DPro]:{name:ut.XboxController_360,axes:[0,1,5,6,7,2,3,8,9,4],buttons:[0,1,2,3,4,5,6,7,8,9,10,11]},[ut.Unknown]:{name:"Standard gamepad",axes:[0,1,2,3,4,5,6,7],buttons:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]}};class s_ extends Error{constructor(t,i,a){const r=t.status||t.status===0?t.status:"",n=t.statusText||"",o=`${r} ${n}`.trim(),s=o?`status code ${o}`:"an unknown error";super(`Request failed with ${s}`),Object.defineProperty(this,"response",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="HTTPError",this.response=t,this.request=i,this.options=a}}class P21 extends Error{constructor(t){super("Request timed out"),Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="TimeoutError",this.request=t}}const tc=e=>e!==null&&typeof e=="object",ul=(...e)=>{for(const t of e)if((!tc(t)||Array.isArray(t))&&t!==void 0)throw new TypeError("The `options` argument must be an object");return VH({},...e)},I21=(e={},t={})=>{const i=new globalThis.Headers(e),a=t instanceof globalThis.Headers,r=new globalThis.Headers(t);for(const[n,o]of r.entries())a&&o==="undefined"||o===void 0?i.delete(n):i.set(n,o);return i},VH=(...e)=>{let t={},i={};for(const a of e)if(Array.isArray(a))Array.isArray(t)||(t=[]),t=[...t,...a];else if(tc(a)){for(let[r,n]of Object.entries(a))tc(n)&&r in t&&(n=VH(t[r],n)),t={...t,[r]:n};tc(a.headers)&&(i=I21(i,a.headers),t.headers=i)}return t},AB1=(()=>{let e=!1,t=!1;const i=typeof globalThis.ReadableStream=="function",a=typeof globalThis.Request=="function";return i&&a&&(t=new globalThis.Request("https://empty.invalid",{body:new globalThis.ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type")),e&&!t})(),vB1=typeof globalThis.AbortController=="function",_B1=typeof globalThis.ReadableStream=="function",SB1=typeof globalThis.FormData=="function",O21=["get","post","put","patch","head","delete"],DB1={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*"},Tu=2147483647,U21=Symbol("stop"),yB1={json:!0,parseJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,fetch:!0},RB1={method:!0,headers:!0,body:!0,mode:!0,credentials:!0,cache:!0,redirect:!0,referrer:!0,referrerPolicy:!0,integrity:!0,keepalive:!0,signal:!0,window:!0,dispatcher:!0,duplex:!0},bB1=e=>O21.includes(e)?e.toUpperCase():e,NB1=["get","put","head","delete","options","trace"],wB1=[408,413,429,500,502,503,504],x21=[413,429,503],l_={limit:2,methods:NB1,statusCodes:wB1,afterStatusCodes:x21,maxRetryAfter:Number.POSITIVE_INFINITY,backoffLimit:Number.POSITIVE_INFINITY,delay:e=>.3*2**(e-1)*1e3},TB1=(e={})=>{if(typeof e=="number")return{...l_,limit:e};if(e.methods&&!Array.isArray(e.methods))throw new Error("retry.methods must be an array");if(e.statusCodes&&!Array.isArray(e.statusCodes))throw new Error("retry.statusCodes must be an array");return{...l_,...e,afterStatusCodes:x21}};async function EB1(e,t,i,a){return new Promise((r,n)=>{const o=setTimeout(()=>{i&&i.abort(),n(new P21(e))},a.timeout);a.fetch(e,t).then(r).catch(n).then(()=>{clearTimeout(o)})})}async function PB1(e,{signal:t}){return new Promise((i,a)=>{t&&(t.throwIfAborted(),t.addEventListener("abort",r,{once:!0}));function r(){clearTimeout(n),a(t.reason)}const n=setTimeout(()=>{t==null||t.removeEventListener("abort",r),i()},e)})}const IB1=(e,t)=>{const i={};for(const a in t)!(a in RB1)&&!(a in yB1)&&!(a in e)&&(i[a]=t[a]);return i};class pd{static create(t,i){const a=new pd(t,i),r=async()=>{if(typeof a._options.timeout=="number"&&a._options.timeout>Tu)throw new RangeError(`The \`timeout\` option cannot be greater than ${Tu}`);await Promise.resolve();let s=await a._fetch();for(const l of a._options.hooks.afterResponse){const d=await l(a.request,a._options,a._decorateResponse(s.clone()));d instanceof globalThis.Response&&(s=d)}if(a._decorateResponse(s),!s.ok&&a._options.throwHttpErrors){let l=new s_(s,a.request,a._options);for(const d of a._options.hooks.beforeError)l=await d(l);throw l}if(a._options.onDownloadProgress){if(typeof a._options.onDownloadProgress!="function")throw new TypeError("The `onDownloadProgress` option must be a function");if(!_B1)throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");return a._stream(s.clone(),a._options.onDownloadProgress)}return s},o=a._options.retry.methods.includes(a.request.method.toLowerCase())?a._retry(r):r();for(const[s,l]of Object.entries(DB1))o[s]=async()=>{a.request.headers.set("accept",a.request.headers.get("accept")||l);const C=(await o).clone();if(s==="json"){if(C.status===204||(await C.clone().arrayBuffer()).byteLength===0)return"";if(i.parseJson)return i.parseJson(await C.text())}return C[s]()};return o}constructor(t,i={}){var a,r,n,o;if(Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"abortController",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_retryCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_input",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._input=t,this._options={credentials:this._input.credentials||"same-origin",...i,headers:I21(this._input.headers,i.headers),hooks:VH({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},i.hooks),method:bB1((a=i.method)!=null?a:this._input.method),prefixUrl:String(i.prefixUrl||""),retry:TB1(i.retry),throwHttpErrors:i.throwHttpErrors!==!1,timeout:(r=i.timeout)!=null?r:1e4,fetch:(n=i.fetch)!=null?n:globalThis.fetch.bind(globalThis)},typeof this._input!="string"&&!(this._input instanceof URL||this._input instanceof globalThis.Request))throw new TypeError("`input` must be a string, URL, or Request");if(this._options.prefixUrl&&typeof this._input=="string"){if(this._input.startsWith("/"))throw new Error("`input` must not begin with a slash when using `prefixUrl`");this._options.prefixUrl.endsWith("/")||(this._options.prefixUrl+="/"),this._input=this._options.prefixUrl+this._input}if(vB1){if(this.abortController=new globalThis.AbortController,this._options.signal){const s=this._options.signal;this._options.signal.addEventListener("abort",()=>{this.abortController.abort(s.reason)})}this._options.signal=this.abortController.signal}if(AB1&&(this._options.duplex="half"),this.request=new globalThis.Request(this._input,this._options),this._options.searchParams){const l="?"+(typeof this._options.searchParams=="string"?this._options.searchParams.replace(/^\?/,""):new URLSearchParams(this._options.searchParams).toString()),d=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,l);(SB1&&this._options.body instanceof globalThis.FormData||this._options.body instanceof URLSearchParams)&&!(this._options.headers&&this._options.headers["content-type"])&&this.request.headers.delete("content-type"),this.request=new globalThis.Request(new globalThis.Request(d,{...this.request}),this._options)}this._options.json!==void 0&&(this._options.body=JSON.stringify(this._options.json),this.request.headers.set("content-type",(o=this._options.headers.get("content-type"))!=null?o:"application/json"),this.request=new globalThis.Request(this.request,{body:this._options.body}))}_calculateRetryDelay(t){if(this._retryCount++,this._retryCount<=this._options.retry.limit&&!(t instanceof P21)){if(t instanceof s_){if(!this._options.retry.statusCodes.includes(t.response.status))return 0;const a=t.response.headers.get("Retry-After");if(a&&this._options.retry.afterStatusCodes.includes(t.response.status)){let r=Number(a);return Number.isNaN(r)?r=Date.parse(a)-Date.now():r*=1e3,this._options.retry.maxRetryAfter!==void 0&&r>this._options.retry.maxRetryAfter?0:r}if(t.response.status===413)return 0}const i=this._options.retry.delay(this._retryCount);return Math.min(this._options.retry.backoffLimit,i)}return 0}_decorateResponse(t){return this._options.parseJson&&(t.json=async()=>this._options.parseJson(await t.text())),t}async _retry(t){try{return await t()}catch(i){const a=Math.min(this._calculateRetryDelay(i),Tu);if(a!==0&&this._retryCount>0){await PB1(a,{signal:this._options.signal});for(const r of this._options.hooks.beforeRetry)if(await r({request:this.request,options:this._options,error:i,retryCount:this._retryCount})===U21)return;return this._retry(t)}throw i}}async _fetch(){for(const i of this._options.hooks.beforeRequest){const a=await i(this.request,this._options);if(a instanceof Request){this.request=a;break}if(a instanceof Response)return a}const t=IB1(this.request,this._options);return this._options.timeout===!1?this._options.fetch(this.request.clone(),t):EB1(this.request.clone(),t,this.abortController,this._options)}_stream(t,i){const a=Number(t.headers.get("content-length"))||0;let r=0;return t.status===204?(i&&i({percent:1,totalBytes:a,transferredBytes:r},new Uint8Array),new globalThis.Response(null,{status:t.status,statusText:t.statusText,headers:t.headers})):new globalThis.Response(new globalThis.ReadableStream({async start(n){const o=t.body.getReader();i&&i({percent:0,transferredBytes:0,totalBytes:a},new Uint8Array);async function s(){const{done:l,value:d}=await o.read();if(l){n.close();return}if(i){r+=d.byteLength;const C=a===0?0:r/a;i({percent:C,transferredBytes:r,totalBytes:a},d)}n.enqueue(d),await s()}await s()}}),{status:t.status,statusText:t.statusText,headers:t.headers})}}/*! MIT License © Sindre Sorhus */const $p=e=>{const t=(i,a)=>pd.create(i,ul(e,a));for(const i of O21)t[i]=(a,r)=>pd.create(a,ul(e,r,{method:i}));return t.create=i=>$p(ul(i)),t.extend=i=>$p(ul(e,i)),t.stop=U21,t},OB1=$p(),U8=OB1,UB1=async(e,t)=>{try{return await U8.get(`http://${e}/bag/v1.0/get/${t}`,{timeout:5e3}).json()}catch(i){throw new Error(`Could not get bag of holdings for ${t}. ${i}`)}},F21=async e=>{try{return await UB1(e,"cockpit")}catch(t){throw new Error(`Could not get Cockpit's storage data from vehicle. ${t}`)}},qp=async(e,t)=>(await F21(e))[t],xB1=async(e,t,i)=>{try{await U8.post(`http://${e}/bag/v1.0/set/${t}`,{json:i,timeout:5e3})}catch(a){throw new Error(`Could not set bag of holdings for ${t}. ${a}`)}},FB1=async(e,t)=>{try{await xB1(e,"cockpit",t)}catch(i){throw new Error(`Could not set Cockpit's storage data on vehicle. ${i}`)}},Kp=async(e,t,i)=>{let a={};try{a=await F21(e)}catch(n){console.error(n)}const r=a;r[t]=i,await FB1(e,r)},kB1=async e=>{try{const t=`http://${e}/beacon/v1.0/services`;return(await U8.get(t,{timeout:5e3}).json()).filter(a=>a.service_type==="_http").map(a=>({ipv4Address:a.ip,interfaceType:a.interface_type}))}catch(t){throw new Error(`Could not get information about IPs on BlueOS. ${t}`)}},BB1=async e=>{try{const t=`http://${e}/mavlink2rest/info`;return(await U8.get(t,{timeout:5e3}).json()).service.version}catch(t){throw new Error(`Could not get Mavlink2Rest version. ${t}`)}},zB1=async e=>{try{const t=`http://${e}/ardupilot-manager/v1.0/firmware_info`;return(await U8.get(t,{timeout:5e3}).json()).version}catch(t){throw new Error(`Could not get Ardupilot firmware version. ${t}`)}},ZB1=[...Object.values(Et),...Object.values(E2)],GB1=[...Object.values(it),...Object.values(Qe),...Object.values(E2),...Object.values(ft)],Eu="cockpit-protocol-mappings-v1",WB1="cockpit-protocol-mapping-index-v1",Pu="cockpit-standard-mappings-v2",k21=er("controller",()=>{const e=i1(new Map),t=i1([]),i=R5(Eu,gB1),a=R5(WB1,0),r=R5(Pu,o_),n=ZB1,o=GB1,s=i1(!0),l=R5("cockpit-hold-last-joystick-input-when-window-hidden",!1),d=q({get(){return i.value[a.value]},set(N){i.value[a.value]=N}}),C=N=>{const w=i.value.findIndex(x=>x.name===N.name);if(w===-1){O2.fire({icon:"error",text:"Could not find mapping.",timer:3e3});return}a.value=w},m=N=>{t.value.push(N)};Jl.onJoystickUpdate(N=>u(N)),Jl.onJoystickStateUpdate(N=>V(N));const u=N=>{var x;const w=new Map(Array.from(N).map(([U,E])=>[U,new Pk1(E)]));for(const[U,E]of w)e.value.has(U)||(E.model=Jl.getModel(E.gamepad),e.value.set(U,E),console.info(`Joystick ${U} (${E.model}) connected.`),console.info("Enabling joystick forwarding."),s.value=!0);for(const U of e.value.keys()){if(N.has(U))continue;const E=(x=e.value.get(U))==null?void 0:x.model;e.value.delete(U),console.info(`Joystick ${U} (${E!=null?E:"Unknown model"}) disconnected.`),e.value.size===0&&(console.warn("Disabling joystick forwarding."),s.value=!1)}},p=E61();T1(p,N=>{l.value||(N==="hidden"?(console.warn("Window/tab hidden. Disabling joystick forwarding."),s.value=!1):(console.info("Window/tab visible. Enabling joystick forwarding."),s.value=!0))});const V=N=>{const w=e.value.get(N.detail.index);if(w===void 0||N.type!==Sn.Axis&&N.type!==Sn.Button)return;w.gamepad=N.detail.gamepad;const x=w.model||ut.Unknown;w.gamepadToCockpitMap=r.value[x];for(const U of t.value)U(w.state,d.value,f(w.state,d.value))},f=(N,w)=>{let x=ft.regular.id;Object.entries(w.buttonsCorrespondencies.regular).forEach(O=>{var J;const z=(J=N.buttons[Number(O[0])])!=null?J:0>.5,F=Object.values(ft).map(W=>JSON.stringify(W)).includes(JSON.stringify(O[1].action));z&&F&&(x=O[1].action.id)});const U=ft[x];return N.buttons.map((O,z)=>({id:z,value:O})).filter(O=>{var z;return(z=O.value)!=null?z:0>.5}).map(O=>w.buttonsCorrespondencies[x][O.id].action).concat(U)};let M=structuredClone(x2(d.value));return T1(i,()=>{const N=structuredClone(x2(M)),w=i.value[a.value],x=Object.values(w.axesCorrespondencies).map(E=>E.action.id),U=x.filter((E,O)=>x.indexOf(E)!==O).filter(E=>E!==E2.no_function.id);U.isEmpty()||(Object.entries(w.axesCorrespondencies).forEach(([E,O])=>{const z=U.includes(O.action.id),J=N.axesCorrespondencies[E].action.id===O.action.id;if(z&&J){const W=`Unmapping '${O.action.name}' from input ${E} layout. - Cannot use same action on multiple axes.`;O2.fire({text:W,icon:"warning"}),w.axesCorrespondencies[E].action=E2.no_function}}),i.value[a.value]=w),M=structuredClone(x2(i.value[a.value]))},{deep:!0}),setInterval(()=>{const N=[];Object.entries(d.value.buttonsCorrespondencies.regular).forEach(w=>{w[1].action.protocol==M5.CockpitModifierKey&&N.push({modKey:w[1].action.id,button:Number(w[0])})}),Object.entries(d.value.buttonsCorrespondencies).forEach(([w,x])=>{Object.entries(x).forEach(([U,E])=>{const O=ft[w];JSON.stringify(E.action)===JSON.stringify(O)&&(O2.fire({text:"Cannot map modifier key to it's own layout.",icon:"warning"}),d.value.buttonsCorrespondencies[w][Number(U)].action=E2.no_function)})}),N.forEach(w=>{const x=d.value.buttonsCorrespondencies[w.modKey][w.button].action;JSON.stringify(x)!==JSON.stringify(E2.no_function)&&(O2.fire({text:`Unmapping '${x.name} from ${w.modKey} layout. Cannot use same button as the modifier.`,icon:"warning"}),d.value.buttonsCorrespondencies[w.modKey][w.button].action=E2.no_function)})},500),Object.entries(o_).forEach(([N,w])=>{Object.keys(r.value).includes(N)||(r.value[N]=w)}),{registerControllerUpdateCallback:m,enableForwarding:s,holdLastInputWhenWindowHidden:l,joysticks:e,protocolMapping:d,protocolMappings:i,cockpitStdMappings:r,availableAxesActions:n,availableButtonActions:o,loadProtocolMapping:C,exportJoystickMapping:N=>{const w=new Blob([JSON.stringify(N.gamepadToCockpitMap)],{type:"text/plain;charset=utf-8"});_a.exports.saveAs(w,`cockpit-std-profile-joystick-${N.model}.json`)},importJoystickMapping:async(N,w)=>{const x=new FileReader;x.onload=U=>{const E=U.target.result,O=JSON.parse(E);if(!O.name||!O.axes||!O.buttons){O2.fire({icon:"error",text:"Invalid joystick mapping file.",timer:3e3});return}r.value[N.model]=O},x.readAsText(w.target.files[0])},exportJoysticksMappingsToVehicle:async(N,w)=>{await Kp(N,Pu,w),O2.fire({icon:"success",text:"Joystick mapping exported to vehicle.",timer:3e3})},importJoysticksMappingsFromVehicle:async N=>{const w=await qp(N,Pu);if(!w){O2.fire({icon:"error",text:"No joystick mappings to import from vehicle.",timer:3e3});return}try{Object.values(w).forEach(x=>{if(!x.name||!x.axes||!x.buttons)throw Error("Invalid joystick mapping inside vehicle.")})}catch(x){O2.fire({icon:"error",text:`Could not import joystick mapping from vehicle. ${x}`,timer:3e3});return}r.value=w,O2.fire({icon:"success",text:"Joystick mapping imported from vehicle.",timer:3e3})},exportFunctionsMapping:N=>{const w=new Blob([JSON.stringify(N)],{type:"text/plain;charset=utf-8"});_a.exports.saveAs(w,`cockpit-std-profile-joystick-${N.name}.json`)},importFunctionsMapping:async N=>{const w=new FileReader;w.onload=x=>{const U=x.target.result,E=JSON.parse(U);if(!E.name||!E.axesCorrespondencies||!E.buttonsCorrespondencies){O2.fire({icon:"error",text:"Invalid functions mapping file.",timer:3e3});return}d.value=E},w.readAsText(N.target.files[0])},exportFunctionsMappingToVehicle:async(N,w)=>{await Kp(N,Eu,w),O2.fire({icon:"success",text:"Joystick functions mapping exported to vehicle.",timer:3e3})},importFunctionsMappingFromVehicle:async N=>{const w=await qp(N,Eu);if(!w)throw new Error("Could not import functions mapping from vehicle. No data available.");w.forEach(x=>{if(!x||!x.name||!x.axesCorrespondencies||!x.buttonsCorrespondencies)throw new Error("Could not import joystick funtions from vehicle. Invalid data.")}),i.value=w}}});class c_{constructor(t){S1(this,"_customValue");S1(this,"_defaultValue");S1(this,"isCustom",!1);this._defaultValue=t,this._customValue=this.defaultValue}set val(t){this._customValue=t}get val(){return this.isCustom?this._customValue:this.defaultValue}get defaultValue(){return this._defaultValue()}reset(){this.isCustom=!1,this._customValue=this.defaultValue}}const r5=er("main-vehicle",()=>{const e=i1(),t=R5("cockpit-vehicle-address",Gp),i=new c_(()=>new cd(`ws://${t.value}:6040/ws/mavlink`)),a=i1(i),r=new c_(()=>new cd(`ws://${t.value}:6021`)),n=i1(r),o=i1(),s=i1(),l=i1(),d=$2({}),C=$2({}),m=$2({}),u=$2({}),p=$2({}),V=i1(void 0),f=i1(void 0),M=i1(void 0),H=i1(void 0),g=i1([]),_=VC({interval:100}),v=$2({}),S=$2({}),y=$2({}),D=i1(void 0),R=i1(),N=q(()=>o.value!==void 0&&new Date(_.value).getTime()-o.value.getTime()<5e3);async function w(){if(!V.value)throw new Error("No vehicle available to arm.");if(await L6(sa.ARM,"Confirm Arm","Arm Command Confirmed"))V.value.arm();else throw new Error("Arming cancelled by the user")}async function x(){if(!V.value)throw new Error("No vehicle available to disarm.");if(await L6(sa.DISARM,"Confirm Disarm","Disarm Command Confirmed"))V.value.disarm();else throw new Error("Disarming cancelled by the user")}async function U(){if(!V.value)throw new Error("No vehicle available for takeoff");U7.value=!0;const m1=await L6(sa.TAKEOFF,"Confirm Takeoff","Takeoff Command Confirmed");if(U7.value=!1,m1)V.value.takeoff(qr.value);else throw console.error("Takeoff cancelled by the user"),new Error("Takeoff cancelled by the user")}async function E(){if(!V.value)throw new Error("No vehicle available to change altitude.");U7.value=!0;const m1=await L6(sa.ALT_CHANGE,"Confirm Altitude Change","Alt Change Cmd Confirmed");if(U7.value=!1,m1)V.value.changeAltitude(d.rel-qr.value);else throw console.error("Altitude change cancelled by the user"),new Error("Altitude change cancelled by the user")}async function O(){if(!V.value)throw new Error("No vehicle available to land.");if(await L6(sa.LAND,"Confirm Landing","Landing Command Confirmed"))V.value.land();else throw console.error("Landing cancelled by the user"),new Error("Landing cancelled by the user")}async function z(m1,f1,L1,e1,Y,a1,c1){if(!V.value)throw new Error("No vehicle available to execute go to command.");if(await L6(sa.GOTO,"Confirm Go To Position","Go To Position Command Confirmed")){const _1=new Yk;_1.latitude=Y,_1.altitude=c1,_1.longitude=a1,V.value.goTo(m1,f1,L1,e1,_1)}else throw new Error("Go to position cancelled by the user")}function F(m1){var f1,L1;((f1=V.value)==null?void 0:f1.firmware())===M4.ArduPilot&&((L1=V.value)==null||L1.setParameter(m1))}function J(){var m1;(m1=V.value)==null||m1.sendGcsHeartbeat()}async function W(m1,f1){var L1;return await((L1=V.value)==null?void 0:L1.uploadMission(m1,f1))}async function r1(m1){var f1,L1;return(L1=await((f1=V.value)==null?void 0:f1.fetchMission(m1)))!=null?L1:[]}async function $(){var m1;(m1=V.value)==null||m1.clearMissions()}async function t1(){var m1;(m1=V.value)==null||m1.startMission()}function l1(){var m1,f1;return[...(f1=(m1=R.value)==null?void 0:m1.entries())!=null?f1:[]].filter(([,L1])=>L1>=0).map(([L1])=>L1)}function V1(m1){var L1,e1;const f1=(L1=R.value)==null?void 0:L1.get(m1);f1!==void 0&&((e1=V.value)==null||e1.setMode(f1))}Pt.onMainConnection.add(()=>{const m1=Pt.mainConnection();m1!==void 0&&(a.value.val=m1.uri())}),Pt.addConnection(a.value.val,pH.MAVLink);const A1=m1=>{var L1;return((L1=m1==null?void 0:m1.last())==null?void 0:L1.deref())||void 0};m3.onVehicles.once(m1=>{V.value=A1(m1),R.value=V.value.modesAvailable(),H.value=V.value.icon(),g.value=V.value.configurationPages(),V.value.onAltitude.add(f1=>{Object.assign(d,f1)}),V.value.onAttitude.add(f1=>{Object.assign(C,f1)}),V.value.onArm.add(f1=>{f.value=f1}),V.value.onTakeoff.add(f1=>{M.value=f1}),V.value.onCpuLoad.add(f1=>{e.value=f1}),V.value.onPosition.add(f1=>{Object.assign(m,f1)}),V.value.onVelocity.add(f1=>{Object.assign(p,f1)}),V.value.onPowerSupply.add(f1=>{Object.assign(u,f1)}),V.value.onStatusText.add(f1=>{Object.assign(v,f1)}),V.value.onStatusGPS.add(f1=>{Object.assign(S,f1)}),V.value.onGenericVariables.add(f1=>{Object.assign(y,f1)}),V.value.onMAVLinkMessage.add(se.HEARTBEAT,f1=>{if(f1.header.component_id!=1)return;const L1=f1.message;s.value=L1.autopilot.type,l.value=L1.mavtype.type,o.value=new Date}),A1(m1).onMode.add(f1=>{var L1,e1;D.value=[...(e1=(L1=R.value)==null?void 0:L1.entries())!=null?e1:[]].filter(([,Y])=>Y===f1).map(([Y])=>Y).first()})}),T1(V,async m1=>{if(m1===void 0)return;const f1=window;f1.vehicle={arm:w,disarm:x,modesAvailable:()=>{console.log(l1())},setFlightMode:V1},Y4(it.mavlink_arm,w),Y4(it.mavlink_disarm,x)});const n1=k21(),M1=new Bk1,X=new Uk1;n1.registerControllerUpdateCallback(M1.updateControllerData),n1.registerControllerUpdateCallback(X.updateControllerData),setInterval(()=>{!V.value||(M1.vehicle===void 0&&M1.setVehicle(V.value),n1.enableForwarding&&M1.sendManualControl())},40),setInterval(()=>J(),1e3),setInterval(()=>{n1.enableForwarding&&X.sendCockpitActions()},10);const s1=q(()=>({bundlePolicy:"max-bundle",iceServers:[{urls:`turn:${t.value}:3478`,username:"user",credential:"pwd"},{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun1.l.google.com:19302"},{urls:"stun:stun2.l.google.com:19302"},{urls:"stun:stun3.l.google.com:19302"},{urls:"stun:stun4.l.google.com:19302"}]}));return{arm:w,takeoff:U,changeAlt:E,land:O,disarm:x,goTo:z,modesAvailable:l1,setFlightMode:V1,sendGcsHeartbeat:J,configure:F,fetchMission:r1,uploadMission:W,clearMissions:$,startMission:t1,globalAddress:t,mainConnectionURI:a,webRTCSignallingURI:n,cpuLoad:e,lastHeartbeat:o,firmwareType:s,vehicleType:l,altitude:d,attitude:C,coordinates:m,velocity:p,powerSupply:u,statusText:v,statusGPS:S,mode:D,modes:R,isArmed:f,flying:M,isVehicleOnline:N,icon:H,configurationPages:g,rtcConfiguration:s1,genericVariables:y}}),XB1=e=>(Dt("data-v-26225d3c"),e=e(),yt(),e),YB1={class:"custom-select"},$B1=["value"],qB1=XB1(()=>K("span",{class:"custom-arrow"},null,-1)),KB1=n2({__name:"Dropdown",props:{modelValue:{},options:{},disabled:{type:Boolean,default:!1},nameKey:{default:void 0},valueKey:{default:void 0}},emits:["update:modelValue"],setup(e,{emit:t}){const i=e,a=t,r=j2(i).options,n=j2(i).disabled,o=j2(i).modelValue,s=j2(i).nameKey,l=j2(i).valueKey;return(d,C)=>(C1(),N1("div",YB1,[N2(K("select",{"onUpdate:modelValue":[C[0]||(C[0]=m=>de(o)?o.value=m:null),C[1]||(C[1]=m=>a("update:modelValue",m))],class:c2(["flex items-center justify-center w-full py-1 pl-2 pr-8 text-base font-bold transition-all border-0 rounded-md shadow-inner cursor-pointer h-9 bg-slate-800/60 text-slate-100 hover:bg-slate-600/60",{"pointer-events-none":B(n)}])},[(C1(!0),N1(Y1,null,fe(B(r),m=>(C1(),N1("option",{key:m,value:B(l)?m[B(l)]:m},q1(B(s)!==void 0?m[B(s)]:m),9,$B1))),128))],2),[[OV,B(o)]]),qB1]))}});const w5=(e,t)=>{const i=e.__vccOpts||e;for(const[a,r]of t)i[a]=r;return i},Eo=w5(KB1,[["__scopeId","data-v-26225d3c"]]),QC=er("alert",()=>{const e=$2([new ii(_e.Success,"Cockpit started")]),t=R5("cockpit-enable-voice-alerts",!0),i=$2([]),a=R5("cockpit-selected-alert-speech-voice",void 0),r=R5("cockpit-enabled-alert-levels",[{level:_e.Success,enabled:!0},{level:_e.Error,enabled:!0},{level:_e.Info,enabled:!1},{level:_e.Warning,enabled:!0},{level:_e.Critical,enabled:!0}]),n=q(()=>e.sort((m,u)=>m.time_created.getTime()-u.time_created.getTime())),o=m=>{switch(e.push(m),m.level){case _e.Success:console.log(m.message);break;case _e.Error:console.error(m.message);break;case _e.Info:console.info(m.message);break;case _e.Warning:console.warn(m.message);break;case _e.Critical:console.error(m.message);break;default:unimplemented(`A new alert level was added but we have not updated - this part of the code. Regardless of that, here's the alert message: ${m.message}`);break}},s=window.speechSynthesis,l=[];s.onvoiceschanged=()=>{let m,u;if(s.getVoices().forEach(p=>{i.push(p),p.default&&(m=p.name),p.lang===navigator.language&&(u=p.name)}),a.value===void 0){if(u!==void 0){a.value=u;return}m&&(a.value=m)}};const d=q(()=>i.map(m=>({value:m.name,name:`${m.name} (${m.lang})`})));function C(m){const u=new SpeechSynthesisUtterance(m),p=i.find(V=>V.name===a.value);p&&(u.voice=p,u.lang=p.lang),l.push(u),u.onend=function(){delete l[l.indexOf(u)]},u.onerror=function(V){console.error(`SpeechSynthesisUtterance error: ${V.error}`)},s.speak(u)}return T1(e,()=>{const m=e.slice(-1)[0],u=r.value.find(p=>p.level===m.level);!t.value||(u===void 0||!u.enabled)&&!m.message.startsWith("#")||(C(m.level),C(m.message))}),{alerts:e,enableVoiceAlerts:t,enabledAlertLevels:r,selectedAlertSpeechVoiceName:a,availableAlertSpeechVoiceNames:d,sortedAlerts:n,pushAlert:o}});const uo=h2()({name:"VCardActions",props:F2(),setup(e,t){let{slots:i}=t;return I0({VBtn:{slim:!0,variant:"text"}}),M2(()=>{var a;return P("div",{class:["v-card-actions",e.class],style:e.style},[(a=i.default)==null?void 0:a.call(i)])}),{}}}),jB1=bo("v-card-subtitle"),Wi=bo("v-card-title");function LH(e){return sH(()=>{const t=[],i={};if(e.value.background)if(xp(e.value.background)){if(i.backgroundColor=e.value.background,!e.value.text&&sF1(e.value.background)){const a=li(e.value.background);if(a.a==null||a.a===1){const r=Ak(a);i.color=r,i.caretColor=r}}}else t.push(`bg-${e.value.background}`);return e.value.text&&(xp(e.value.text)?(i.color=e.value.text,i.caretColor=e.value.text):t.push(`text-${e.value.text}`)),{colorClasses:t,colorStyles:i}})}function Bi(e,t){const i=q(()=>({text:de(e)?e.value:t?e[t]:null})),{colorClasses:a,colorStyles:r}=LH(i);return{textColorClasses:a,textColorStyles:r}}function d0(e,t){const i=q(()=>({background:de(e)?e.value:t?e[t]:null})),{colorClasses:a,colorStyles:r}=LH(i);return{backgroundColorClasses:a,backgroundColorStyles:r}}const QB1=["x-small","small","default","large","x-large"],Po=k1({size:{type:[String,Number],default:"default"}},"size");function x8(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:P3();return sH(()=>{let i,a;return Jc(QB1,e.size)?i=`${t}--size-${e.size}`:e.size&&(a={width:f2(e.size),height:f2(e.size)}),{sizeClasses:i,sizeStyles:a}})}const T5=k1({tag:{type:String,default:"div"}},"tag"),JB1=k1({color:String,start:Boolean,end:Boolean,icon:Ce,...F2(),...Po(),...T5({tag:"i"}),...p5()},"VIcon"),Ze=h2()({name:"VIcon",props:JB1(),setup(e,t){let{attrs:i,slots:a}=t;const r=i1(),{themeClasses:n}=N5(e),{iconData:o}=sk1(q(()=>r.value||e.icon)),{sizeClasses:s}=x8(e),{textColorClasses:l,textColorStyles:d}=Bi(t2(e,"color"));return M2(()=>{var m,u;const C=(m=a.default)==null?void 0:m.call(a);return C&&(r.value=(u=sk(C).filter(p=>p.type===x4&&p.children&&typeof p.children=="string")[0])==null?void 0:u.children),P(o.value.component,{tag:e.tag,icon:o.value.icon,class:["v-icon","notranslate",n.value,s.value,l.value,{"v-icon--clickable":!!i.onClick,"v-icon--start":e.start,"v-icon--end":e.end},e.class],style:[s.value?void 0:{fontSize:f2(e.size),height:f2(e.size),width:f2(e.size)},d.value,e.style],role:i.onClick?"button":void 0,"aria-hidden":!i.onClick},{default:()=>[C]})}),{}}});const ar=k1({height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},"dimension");function rr(e){return{dimensionStyles:q(()=>({height:f2(e.height),maxHeight:f2(e.maxHeight),maxWidth:f2(e.maxWidth),minHeight:f2(e.minHeight),minWidth:f2(e.minWidth),width:f2(e.width)}))}}function ez1(e){return{aspectStyles:q(()=>{const t=Number(e.aspectRatio);return t?{paddingBottom:String(1/t*100)+"%"}:void 0})}}const B21=k1({aspectRatio:[String,Number],contentClass:String,inline:Boolean,...F2(),...ar()},"VResponsive"),d_=h2()({name:"VResponsive",props:B21(),setup(e,t){let{slots:i}=t;const{aspectStyles:a}=ez1(e),{dimensionStyles:r}=rr(e);return M2(()=>{var n;return P("div",{class:["v-responsive",{"v-responsive--inline":e.inline},e.class],style:[r.value,e.style]},[P("div",{class:"v-responsive__sizer",style:a.value},null),(n=i.additional)==null?void 0:n.call(i),i.default&&P("div",{class:["v-responsive__content",e.contentClass]},[i.default()])])}),{}}}),Io=k1({transition:{type:[Boolean,String,Object],default:"fade-transition",validator:e=>e!==!0}},"transition"),g4=(e,t)=>{let{slots:i}=t;const{transition:a,disabled:r,...n}=e,{component:o=q5,...s}=typeof a=="object"?a:{};return u5(o,V2(typeof a=="string"?{name:r?"":a}:s,n,{disabled:r}),i)};function tz1(e,t){if(!oH)return;const i=t.modifiers||{},a=t.value,{handler:r,options:n}=typeof a=="object"?a:{handler:a,options:{}},o=new IntersectionObserver(function(){var m;let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],l=arguments.length>1?arguments[1]:void 0;const d=(m=e._observe)==null?void 0:m[t.instance.$.uid];if(!d)return;const C=s.some(u=>u.isIntersecting);r&&(!i.quiet||d.init)&&(!i.once||C||d.init)&&r(C,s,l),C&&i.once?z21(e,t):d.init=!0},n);e._observe=Object(e._observe),e._observe[t.instance.$.uid]={init:!1,observer:o},o.observe(e)}function z21(e,t){var a;const i=(a=e._observe)==null?void 0:a[t.instance.$.uid];!i||(i.observer.unobserve(e),delete e._observe[t.instance.$.uid])}const iz1={mounted:tz1,unmounted:z21},Z21=iz1,az1=k1({alt:String,cover:Boolean,draggable:{type:[Boolean,String],default:void 0},eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:()=>({root:void 0,rootMargin:void 0,threshold:void 0})},sizes:String,src:{type:[String,Object],default:""},crossorigin:String,referrerpolicy:String,srcset:String,position:String,...B21(),...F2(),...Io()},"VImg"),G21=h2()({name:"VImg",directives:{intersect:Z21},props:az1(),emits:{loadstart:e=>!0,load:e=>!0,error:e=>!0},setup(e,t){let{emit:i,slots:a}=t;const r=b5("VImg"),n=g2(""),o=i1(),s=g2(e.eager?"loading":"idle"),l=g2(),d=g2(),C=q(()=>e.src&&typeof e.src=="object"?{src:e.src.src,srcset:e.srcset||e.src.srcset,lazySrc:e.lazySrc||e.src.lazySrc,aspect:Number(e.aspectRatio||e.src.aspect||0)}:{src:e.src,srcset:e.srcset,lazySrc:e.lazySrc,aspect:Number(e.aspectRatio||0)}),m=q(()=>C.value.aspect||l.value/d.value||0);T1(()=>e.src,()=>{u(s.value!=="idle")}),T1(m,(N,w)=>{!N&&w&&o.value&&H(o.value)}),B5(()=>u());function u(N){if(!(e.eager&&N)&&!(oH&&!N&&!e.eager)){if(s.value="loading",C.value.lazySrc){const w=new Image;w.src=C.value.lazySrc,H(w,null)}!C.value.src||k2(()=>{var w;i("loadstart",((w=o.value)==null?void 0:w.currentSrc)||C.value.src),setTimeout(()=>{var x;if(!r.isUnmounted)if((x=o.value)!=null&&x.complete){if(o.value.naturalWidth||V(),s.value==="error")return;m.value||H(o.value,null),s.value==="loading"&&p()}else m.value||H(o.value),f()})})}}function p(){var N;r.isUnmounted||(f(),H(o.value),s.value="loaded",i("load",((N=o.value)==null?void 0:N.currentSrc)||C.value.src))}function V(){var N;r.isUnmounted||(s.value="error",i("error",((N=o.value)==null?void 0:N.currentSrc)||C.value.src))}function f(){const N=o.value;N&&(n.value=N.currentSrc||N.src)}let M=-1;xe(()=>{clearTimeout(M)});function H(N){let w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:100;const x=()=>{if(clearTimeout(M),r.isUnmounted)return;const{naturalHeight:U,naturalWidth:E}=N;U||E?(l.value=E,d.value=U):!N.complete&&s.value==="loading"&&w!=null?M=window.setTimeout(x,w):(N.currentSrc.endsWith(".svg")||N.currentSrc.startsWith("data:image/svg+xml"))&&(l.value=1,d.value=1)};x()}const g=q(()=>({"v-img__img--cover":e.cover,"v-img__img--contain":!e.cover})),_=()=>{var x;if(!C.value.src||s.value==="idle")return null;const N=P("img",{class:["v-img__img",g.value],style:{objectPosition:e.position},src:C.value.src,srcset:C.value.srcset,alt:e.alt,crossorigin:e.crossorigin,referrerpolicy:e.referrerpolicy,draggable:e.draggable,sizes:e.sizes,ref:o,onLoad:p,onError:V},null),w=(x=a.sources)==null?void 0:x.call(a);return P(g4,{transition:e.transition,appear:!0},{default:()=>[N2(w?P("picture",{class:"v-img__picture"},[w,N]):N,[[Ut,s.value==="loaded"]])]})},v=()=>P(g4,{transition:e.transition},{default:()=>[C.value.lazySrc&&s.value!=="loaded"&&P("img",{class:["v-img__img","v-img__img--preload",g.value],style:{objectPosition:e.position},src:C.value.lazySrc,alt:e.alt,crossorigin:e.crossorigin,referrerpolicy:e.referrerpolicy,draggable:e.draggable},null)]}),S=()=>a.placeholder?P(g4,{transition:e.transition,appear:!0},{default:()=>[(s.value==="loading"||s.value==="error"&&!a.error)&&P("div",{class:"v-img__placeholder"},[a.placeholder()])]}):null,y=()=>a.error?P(g4,{transition:e.transition,appear:!0},{default:()=>[s.value==="error"&&P("div",{class:"v-img__error"},[a.error()])]}):null,D=()=>e.gradient?P("div",{class:"v-img__gradient",style:{backgroundImage:`linear-gradient(${e.gradient})`}},null):null,R=g2(!1);{const N=T1(m,w=>{w&&(requestAnimationFrame(()=>{requestAnimationFrame(()=>{R.value=!0})}),N())})}return M2(()=>{const N=d_.filterProps(e);return N2(P(d_,V2({class:["v-img",{"v-img--booting":!R.value},e.class],style:[{width:f2(e.width==="auto"?l.value:e.width)},e.style]},N,{aspectRatio:m.value,"aria-label":e.alt,role:e.alt?"img":void 0}),{additional:()=>P(Y1,null,[P(_,null,null),P(v,null,null),P(D,null,null),P(S,null,null),P(y,null,null)]),default:a.default}),[[k5("intersect"),{handler:u,options:e.options},null,{once:!0}]])}),{currentSrc:n,image:o,state:s,naturalWidth:l,naturalHeight:d}}}),rz1=[null,"default","comfortable","compact"],fi=k1({density:{type:String,default:"default",validator:e=>rz1.includes(e)}},"density");function I3(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:P3();return{densityClasses:q(()=>`${t}--density-${e.density}`)}}const p0=k1({rounded:{type:[Boolean,Number,String],default:void 0}},"rounded");function F0(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:P3();return{roundedClasses:q(()=>{const a=de(e)?e.value:e.rounded,r=[];if(a===!0||a==="")r.push(`${t}--rounded`);else if(typeof a=="string"||a===0)for(const n of String(a).split(" "))r.push(`rounded-${n}`);return r})}}const nz1=["elevated","flat","tonal","outlined","text","plain"];function F8(e,t){return P(Y1,null,[e&&P("span",{key:"overlay",class:`${t}__overlay`},null),P("span",{key:"underlay",class:`${t}__underlay`},null)])}const Ea=k1({color:String,variant:{type:String,default:"elevated",validator:e=>nz1.includes(e)}},"variant");function k8(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:P3();const i=q(()=>{const{variant:n}=B(e);return`${t}--variant-${n}`}),{colorClasses:a,colorStyles:r}=LH(q(()=>{const{variant:n,color:o}=B(e);return{[["elevated","flat"].includes(n)?"background":"text"]:o}}));return{colorClasses:a,colorStyles:r,variantClasses:i}}const oz1=k1({start:Boolean,end:Boolean,icon:Ce,image:String,text:String,...F2(),...fi(),...p0(),...Po(),...T5(),...p5(),...Ea({variant:"flat"})},"VAvatar"),ho=h2()({name:"VAvatar",props:oz1(),setup(e,t){let{slots:i}=t;const{themeClasses:a}=N5(e),{colorClasses:r,colorStyles:n,variantClasses:o}=k8(e),{densityClasses:s}=I3(e),{roundedClasses:l}=F0(e),{sizeClasses:d,sizeStyles:C}=x8(e);return M2(()=>P(e.tag,{class:["v-avatar",{"v-avatar--start":e.start,"v-avatar--end":e.end},a.value,r.value,s.value,l.value,d.value,o.value,e.class],style:[n.value,C.value,e.style]},{default:()=>{var m,u;return[e.image?P(G21,{key:"image",src:e.image,alt:"",cover:!0},null):e.icon?P(Ze,{key:"icon",icon:e.icon},null):(u=(m=i.default)==null?void 0:m.call(i))!=null?u:e.text,F8(!1,"v-avatar")]}})),{}}}),sz1=k1({defaults:Object,disabled:Boolean,reset:[Number,String],root:[Boolean,String],scoped:Boolean},"VDefaultsProvider"),ot=h2(!1)({name:"VDefaultsProvider",props:sz1(),setup(e,t){let{slots:i}=t;const{defaults:a,disabled:r,reset:n,root:o,scoped:s}=j2(e);return I0(a,{reset:n,root:o,scoped:s,disabled:r}),()=>{var l;return(l=i.default)==null?void 0:l.call(i)}}}),lz1=k1({appendAvatar:String,appendIcon:Ce,prependAvatar:String,prependIcon:Ce,subtitle:[String,Number],title:[String,Number],...F2(),...fi()},"VCardItem"),cz1=h2()({name:"VCardItem",props:lz1(),setup(e,t){let{slots:i}=t;return M2(()=>{var d;const a=!!(e.prependAvatar||e.prependIcon),r=!!(a||i.prepend),n=!!(e.appendAvatar||e.appendIcon),o=!!(n||i.append),s=!!(e.title!=null||i.title),l=!!(e.subtitle!=null||i.subtitle);return P("div",{class:["v-card-item",e.class],style:e.style},[r&&P("div",{key:"prepend",class:"v-card-item__prepend"},[i.prepend?P(ot,{key:"prepend-defaults",disabled:!a,defaults:{VAvatar:{density:e.density,icon:e.prependIcon,image:e.prependAvatar}}},i.prepend):a&&P(ho,{key:"prepend-avatar",density:e.density,icon:e.prependIcon,image:e.prependAvatar},null)]),P("div",{class:"v-card-item__content"},[s&&P(Wi,{key:"title"},{default:()=>{var C,m;return[(m=(C=i.title)==null?void 0:C.call(i))!=null?m:e.title]}}),l&&P(jB1,{key:"subtitle"},{default:()=>{var C,m;return[(m=(C=i.subtitle)==null?void 0:C.call(i))!=null?m:e.subtitle]}}),(d=i.default)==null?void 0:d.call(i)]),o&&P("div",{key:"append",class:"v-card-item__append"},[i.append?P(ot,{key:"append-defaults",disabled:!n,defaults:{VAvatar:{density:e.density,icon:e.appendIcon,image:e.appendAvatar}}},i.append):n&&P(ho,{key:"append-avatar",density:e.density,icon:e.appendIcon,image:e.appendAvatar},null)])])}),{}}}),C0=bo("v-card-text"),Pa=k1({border:[Boolean,Number,String]},"border");function nr(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:P3();return{borderClasses:q(()=>{const a=de(e)?e.value:e.border,r=[];if(a===!0||a==="")r.push(`${t}--border`);else if(typeof a=="string"||a===0)for(const n of String(a).split(" "))r.push(`border-${n}`);return r})}}const Xi=k1({elevation:{type:[Number,String],validator(e){const t=parseInt(e);return!isNaN(t)&&t>=0&&t<=24}}},"elevation");function O3(e){return{elevationClasses:q(()=>{const i=de(e)?e.value:e.elevation,a=[];return i==null||a.push(`elevation-${i}`),a})}}function W21(e,t){const i=i1(),a=g2(!1);if(oH){const r=new IntersectionObserver(n=>{e==null||e(n,r),a.value=!!n.find(o=>o.isIntersecting)},t);xe(()=>{r.disconnect()}),T1(i,(n,o)=>{o&&(r.unobserve(o),a.value=!1),n&&r.observe(n)},{flush:"post"})}return{intersectionRef:i,isIntersecting:a}}const C_={center:"center",top:"bottom",bottom:"top",left:"right",right:"left"},JC=k1({location:String},"location");function em(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i=arguments.length>2?arguments[2]:void 0;const{isRtl:a}=pi();return{locationStyles:q(()=>{if(!e.location)return{};const{side:n,align:o}=Op(e.location.split(" ").length>1?e.location:`${e.location} center`,a.value);function s(d){return i?i(d):0}const l={};return n!=="center"&&(t?l[C_[n]]=`calc(100% - ${s(n)}px)`:l[n]=0),o!=="center"?t?l[C_[o]]=`calc(100% - ${s(o)}px)`:l[o]=0:(n==="center"?l.top=l.left="50%":l[{top:"left",bottom:"left",left:"top",right:"top"}[n]]="50%",l.transform={top:"translateX(-50%)",bottom:"translateX(-50%)",left:"translateY(-50%)",right:"translateY(-50%)",center:"translate(-50%, -50%)"}[n]),l})}}const dz1=k1({absolute:Boolean,active:{type:Boolean,default:!0},bgColor:String,bgOpacity:[Number,String],bufferValue:{type:[Number,String],default:0},clickable:Boolean,color:String,height:{type:[Number,String],default:4},indeterminate:Boolean,max:{type:[Number,String],default:100},modelValue:{type:[Number,String],default:0},reverse:Boolean,stream:Boolean,striped:Boolean,roundedBar:Boolean,...F2(),...JC({location:"top"}),...p0(),...T5(),...p5()},"VProgressLinear"),tm=h2()({name:"VProgressLinear",props:dz1(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:i}=t;const a=ue(e,"modelValue"),{isRtl:r,rtlClasses:n}=pi(),{themeClasses:o}=N5(e),{locationStyles:s}=em(e),{textColorClasses:l,textColorStyles:d}=Bi(e,"color"),{backgroundColorClasses:C,backgroundColorStyles:m}=d0(q(()=>e.bgColor||e.color)),{backgroundColorClasses:u,backgroundColorStyles:p}=d0(e,"color"),{roundedClasses:V}=F0(e),{intersectionRef:f,isIntersecting:M}=W21(),H=q(()=>parseInt(e.max,10)),g=q(()=>parseInt(e.height,10)),_=q(()=>parseFloat(e.bufferValue)/H.value*100),v=q(()=>parseFloat(a.value)/H.value*100),S=q(()=>r.value!==e.reverse),y=q(()=>e.indeterminate?"fade-transition":"slide-x-transition"),D=q(()=>e.bgOpacity==null?e.bgOpacity:parseFloat(e.bgOpacity));function R(N){if(!f.value)return;const{left:w,right:x,width:U}=f.value.getBoundingClientRect(),E=S.value?U-N.clientX+(x-U):N.clientX-w;a.value=Math.round(E/U*H.value)}return M2(()=>P(e.tag,{ref:f,class:["v-progress-linear",{"v-progress-linear--absolute":e.absolute,"v-progress-linear--active":e.active&&M.value,"v-progress-linear--reverse":S.value,"v-progress-linear--rounded":e.rounded,"v-progress-linear--rounded-bar":e.roundedBar,"v-progress-linear--striped":e.striped},V.value,o.value,n.value,e.class],style:[{bottom:e.location==="bottom"?0:void 0,top:e.location==="top"?0:void 0,height:e.active?f2(g.value):0,"--v-progress-linear-height":f2(g.value),...s.value},e.style],role:"progressbar","aria-hidden":e.active?"false":"true","aria-valuemin":"0","aria-valuemax":e.max,"aria-valuenow":e.indeterminate?void 0:v.value,onClick:e.clickable&&R},{default:()=>[e.stream&&P("div",{key:"stream",class:["v-progress-linear__stream",l.value],style:{...d.value,[S.value?"left":"right"]:f2(-g.value),borderTop:`${f2(g.value/2)} dotted`,opacity:D.value,top:`calc(50% - ${f2(g.value/4)})`,width:f2(100-_.value,"%"),"--v-progress-linear-stream-to":f2(g.value*(S.value?1:-1))}},null),P("div",{class:["v-progress-linear__background",C.value],style:[m.value,{opacity:D.value,width:f2(e.stream?_.value:100,"%")}]},null),P(q5,{name:y.value},{default:()=>[e.indeterminate?P("div",{class:"v-progress-linear__indeterminate"},[["long","short"].map(N=>P("div",{key:N,class:["v-progress-linear__indeterminate",N,u.value],style:p.value},null))]):P("div",{class:["v-progress-linear__determinate",u.value],style:[p.value,{width:f2(v.value,"%")}]},null)]}),i.default&&P("div",{class:"v-progress-linear__content"},[i.default({value:v.value,buffer:_.value})])]})),{}}}),im=k1({loading:[Boolean,String]},"loader");function B8(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:P3();return{loaderClasses:q(()=>({[`${t}--loading`]:e.loading}))}}function am(e,t){var a;let{slots:i}=t;return P("div",{class:`${e.name}__loader`},[((a=i.default)==null?void 0:a.call(i,{color:e.color,isActive:e.active}))||P(tm,{absolute:e.absolute,active:e.active,color:e.color,height:"2",indeterminate:!0},null)])}const Cz1=["static","relative","fixed","absolute","sticky"],HH=k1({position:{type:String,validator:e=>Cz1.includes(e)}},"position");function MH(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:P3();return{positionClasses:q(()=>e.position?`${t}--${e.position}`:void 0)}}function mz1(){const e=b5("useRoute");return q(()=>{var t;return(t=e==null?void 0:e.proxy)==null?void 0:t.$route})}function X21(){var e,t;return(t=(e=b5("useRouter"))==null?void 0:e.proxy)==null?void 0:t.$router}function rm(e,t){const i=fn("RouterLink"),a=q(()=>!!(e.href||e.to)),r=q(()=>(a==null?void 0:a.value)||Rv(t,"click")||Rv(e,"click"));if(typeof i=="string")return{isLink:a,isClickable:r,href:t2(e,"href")};const n=e.to?i.useLink(e):void 0,o=mz1();return{isLink:a,isClickable:r,route:n==null?void 0:n.route,navigate:n==null?void 0:n.navigate,isActive:n&&q(()=>{var s,l,d;return e.exact?o.value?((d=n.isExactActive)==null?void 0:d.value)&&wa(n.route.value.query,o.value.query):(l=n.isExactActive)==null?void 0:l.value:(s=n.isActive)==null?void 0:s.value}),href:q(()=>e.to?n==null?void 0:n.route.value.href:e.href)}}const nm=k1({href:String,replace:Boolean,to:[String,Object],exact:Boolean},"router");let Iu=!1;function uz1(e,t){let i=!1,a,r;ze&&(k2(()=>{window.addEventListener("popstate",n),a=e==null?void 0:e.beforeEach((o,s,l)=>{Iu?i?t(l):l():setTimeout(()=>i?t(l):l()),Iu=!0}),r=e==null?void 0:e.afterEach(()=>{Iu=!1})}),j5(()=>{window.removeEventListener("popstate",n),a==null||a(),r==null||r()}));function n(o){var s;(s=o.state)!=null&&s.replaced||(i=!0,setTimeout(()=>i=!1))}}const jp=Symbol("rippleStop"),hz1=80;function m_(e,t){e.style.transform=t,e.style.webkitTransform=t}function Qp(e){return e.constructor.name==="TouchEvent"}function Y21(e){return e.constructor.name==="KeyboardEvent"}const pz1=function(e,t){var m;let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=0,r=0;if(!Y21(e)){const u=t.getBoundingClientRect(),p=Qp(e)?e.touches[e.touches.length-1]:e;a=p.clientX-u.left,r=p.clientY-u.top}let n=0,o=.3;(m=t._ripple)!=null&&m.circle?(o=.15,n=t.clientWidth/2,n=i.center?n:n+Math.sqrt((a-n)**2+(r-n)**2)/4):n=Math.sqrt(t.clientWidth**2+t.clientHeight**2)/2;const s=`${(t.clientWidth-n*2)/2}px`,l=`${(t.clientHeight-n*2)/2}px`,d=i.center?s:`${a-n}px`,C=i.center?l:`${r-n}px`;return{radius:n,scale:o,x:d,y:C,centerX:s,centerY:l}},fd={show(e,t){var p;let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!((p=t==null?void 0:t._ripple)!=null&&p.enabled))return;const a=document.createElement("span"),r=document.createElement("span");a.appendChild(r),a.className="v-ripple__container",i.class&&(a.className+=` ${i.class}`);const{radius:n,scale:o,x:s,y:l,centerX:d,centerY:C}=pz1(e,t,i),m=`${n*2}px`;r.className="v-ripple__animation",r.style.width=m,r.style.height=m,t.appendChild(a);const u=window.getComputedStyle(t);u&&u.position==="static"&&(t.style.position="relative",t.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),m_(r,`translate(${s}, ${l}) scale3d(${o},${o},${o})`),r.dataset.activated=String(performance.now()),setTimeout(()=>{r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),m_(r,`translate(${d}, ${C}) scale3d(1,1,1)`)},0)},hide(e){var n;if(!((n=e==null?void 0:e._ripple)!=null&&n.enabled))return;const t=e.getElementsByClassName("v-ripple__animation");if(t.length===0)return;const i=t[t.length-1];if(i.dataset.isHiding)return;i.dataset.isHiding="true";const a=performance.now()-Number(i.dataset.activated),r=Math.max(250-a,0);setTimeout(()=>{i.classList.remove("v-ripple__animation--in"),i.classList.add("v-ripple__animation--out"),setTimeout(()=>{var s;e.getElementsByClassName("v-ripple__animation").length===1&&e.dataset.previousPosition&&(e.style.position=e.dataset.previousPosition,delete e.dataset.previousPosition),((s=i.parentNode)==null?void 0:s.parentNode)===e&&e.removeChild(i.parentNode)},300)},r)}};function $21(e){return typeof e>"u"||!!e}function Ks(e){const t={},i=e.currentTarget;if(!(!(i!=null&&i._ripple)||i._ripple.touched||e[jp])){if(e[jp]=!0,Qp(e))i._ripple.touched=!0,i._ripple.isTouch=!0;else if(i._ripple.isTouch)return;if(t.center=i._ripple.centered||Y21(e),i._ripple.class&&(t.class=i._ripple.class),Qp(e)){if(i._ripple.showTimerCommit)return;i._ripple.showTimerCommit=()=>{fd.show(e,i,t)},i._ripple.showTimer=window.setTimeout(()=>{var a;(a=i==null?void 0:i._ripple)!=null&&a.showTimerCommit&&(i._ripple.showTimerCommit(),i._ripple.showTimerCommit=null)},hz1)}else fd.show(e,i,t)}}function u_(e){e[jp]=!0}function R0(e){const t=e.currentTarget;if(!!(t!=null&&t._ripple)){if(window.clearTimeout(t._ripple.showTimer),e.type==="touchend"&&t._ripple.showTimerCommit){t._ripple.showTimerCommit(),t._ripple.showTimerCommit=null,t._ripple.showTimer=window.setTimeout(()=>{R0(e)});return}window.setTimeout(()=>{t._ripple&&(t._ripple.touched=!1)}),fd.hide(t)}}function q21(e){const t=e.currentTarget;!(t!=null&&t._ripple)||(t._ripple.showTimerCommit&&(t._ripple.showTimerCommit=null),window.clearTimeout(t._ripple.showTimer))}let js=!1;function K21(e){!js&&(e.keyCode===vv.enter||e.keyCode===vv.space)&&(js=!0,Ks(e))}function j21(e){js=!1,R0(e)}function Q21(e){js&&(js=!1,R0(e))}function J21(e,t,i){var o;const{value:a,modifiers:r}=t,n=$21(a);if(n||fd.hide(e),e._ripple=(o=e._ripple)!=null?o:{},e._ripple.enabled=n,e._ripple.centered=r.center,e._ripple.circle=r.circle,Pp(a)&&a.class&&(e._ripple.class=a.class),n&&!i){if(r.stop){e.addEventListener("touchstart",u_,{passive:!0}),e.addEventListener("mousedown",u_);return}e.addEventListener("touchstart",Ks,{passive:!0}),e.addEventListener("touchend",R0,{passive:!0}),e.addEventListener("touchmove",q21,{passive:!0}),e.addEventListener("touchcancel",R0),e.addEventListener("mousedown",Ks),e.addEventListener("mouseup",R0),e.addEventListener("mouseleave",R0),e.addEventListener("keydown",K21),e.addEventListener("keyup",j21),e.addEventListener("blur",Q21),e.addEventListener("dragstart",R0,{passive:!0})}else!n&&i&&ee1(e)}function ee1(e){e.removeEventListener("mousedown",Ks),e.removeEventListener("touchstart",Ks),e.removeEventListener("touchend",R0),e.removeEventListener("touchmove",q21),e.removeEventListener("touchcancel",R0),e.removeEventListener("mouseup",R0),e.removeEventListener("mouseleave",R0),e.removeEventListener("keydown",K21),e.removeEventListener("keyup",j21),e.removeEventListener("dragstart",R0),e.removeEventListener("blur",Q21)}function fz1(e,t){J21(e,t,!1)}function Vz1(e){delete e._ripple,ee1(e)}function Lz1(e,t){if(t.value===t.oldValue)return;const i=$21(t.oldValue);J21(e,t,i)}const Fn={mounted:fz1,unmounted:Vz1,updated:Lz1},Hz1=k1({appendAvatar:String,appendIcon:Ce,disabled:Boolean,flat:Boolean,hover:Boolean,image:String,link:{type:Boolean,default:void 0},prependAvatar:String,prependIcon:Ce,ripple:{type:[Boolean,Object],default:!0},subtitle:[String,Number],text:[String,Number],title:[String,Number],...Pa(),...F2(),...fi(),...ar(),...Xi(),...im(),...JC(),...HH(),...p0(),...nm(),...T5(),...p5(),...Ea({variant:"elevated"})},"VCard"),st=h2()({name:"VCard",directives:{Ripple:Fn},props:Hz1(),setup(e,t){let{attrs:i,slots:a}=t;const{themeClasses:r}=N5(e),{borderClasses:n}=nr(e),{colorClasses:o,colorStyles:s,variantClasses:l}=k8(e),{densityClasses:d}=I3(e),{dimensionStyles:C}=rr(e),{elevationClasses:m}=O3(e),{loaderClasses:u}=B8(e),{locationStyles:p}=em(e),{positionClasses:V}=MH(e),{roundedClasses:f}=F0(e),M=rm(e,i),H=q(()=>e.link!==!1&&M.isLink.value),g=q(()=>!e.disabled&&e.link!==!1&&(e.link||M.isClickable.value));return M2(()=>{const _=H.value?"a":e.tag,v=!!(a.title||e.title!=null),S=!!(a.subtitle||e.subtitle!=null),y=v||S,D=!!(a.append||e.appendAvatar||e.appendIcon),R=!!(a.prepend||e.prependAvatar||e.prependIcon),N=!!(a.image||e.image),w=y||R||D,x=!!(a.text||e.text!=null);return N2(P(_,{class:["v-card",{"v-card--disabled":e.disabled,"v-card--flat":e.flat,"v-card--hover":e.hover&&!(e.disabled||e.flat),"v-card--link":g.value},r.value,n.value,o.value,d.value,m.value,u.value,V.value,f.value,l.value,e.class],style:[s.value,C.value,p.value,e.style],href:M.href.value,onClick:g.value&&M.navigate,tabindex:e.disabled?-1:void 0},{default:()=>{var U;return[N&&P("div",{key:"image",class:"v-card__image"},[a.image?P(ot,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{cover:!0,src:e.image}}},a.image):P(G21,{key:"image-img",cover:!0,src:e.image},null)]),P(am,{name:"v-card",active:!!e.loading,color:typeof e.loading=="boolean"?void 0:e.loading},{default:a.loader}),w&&P(cz1,{key:"item",prependAvatar:e.prependAvatar,prependIcon:e.prependIcon,title:e.title,subtitle:e.subtitle,appendAvatar:e.appendAvatar,appendIcon:e.appendIcon},{default:a.item,prepend:a.prepend,title:a.title,subtitle:a.subtitle,append:a.append}),x&&P(C0,{key:"text"},{default:()=>{var E,O;return[(O=(E=a.text)==null?void 0:E.call(a))!=null?O:e.text]}}),(U=a.default)==null?void 0:U.call(a),a.actions&&P(uo,null,{default:a.actions}),F8(g.value,"v-card")]}}),[[k5("ripple"),g.value&&e.ripple]])}),{}}});const Mz1=k1({color:String,inset:Boolean,length:[Number,String],thickness:[Number,String],vertical:Boolean,...F2(),...p5()},"VDivider"),Qs=h2()({name:"VDivider",props:Mz1(),setup(e,t){let{attrs:i}=t;const{themeClasses:a}=N5(e),{textColorClasses:r,textColorStyles:n}=Bi(t2(e,"color")),o=q(()=>{const s={};return e.length&&(s[e.vertical?"maxHeight":"maxWidth"]=f2(e.length)),e.thickness&&(s[e.vertical?"borderRightWidth":"borderTopWidth"]=f2(e.thickness)),s});return M2(()=>P("hr",{class:[{"v-divider":!0,"v-divider--inset":e.inset,"v-divider--vertical":e.vertical},a.value,r.value,e.class],style:[o.value,n.value,e.style],"aria-orientation":!i.role||i.role==="separator"?e.vertical?"vertical":"horizontal":void 0,role:`${i.role||"separator"}`},null)),{}}}),gz1={};function Az1(e,t){return C1(),Q1(st,{class:"elevation-0"},{default:v1(()=>[P(Wi,{class:"flex-centered mt-2"},{default:v1(()=>[Se(e.$slots,"title")]),_:3}),P(Qs),P(C0,{class:"flex-centered flex-column"},{default:v1(()=>[Se(e.$slots,"content")]),_:3})]),_:3})}const kn=w5(gz1,[["render",Az1]]);const vz1=k1({disabled:Boolean,group:Boolean,hideOnLeave:Boolean,leaveAbsolute:Boolean,mode:String,origin:String},"transition");function k0(e,t,i){return h2()({name:e,props:vz1({mode:i,origin:t}),setup(a,r){let{slots:n}=r;const o={onBeforeEnter(s){a.origin&&(s.style.transformOrigin=a.origin)},onLeave(s){if(a.leaveAbsolute){const{offsetTop:l,offsetLeft:d,offsetWidth:C,offsetHeight:m}=s;s._transitionInitialStyles={position:s.style.position,top:s.style.top,left:s.style.left,width:s.style.width,height:s.style.height},s.style.position="absolute",s.style.top=`${l}px`,s.style.left=`${d}px`,s.style.width=`${C}px`,s.style.height=`${m}px`}a.hideOnLeave&&s.style.setProperty("display","none","important")},onAfterLeave(s){if(a.leaveAbsolute&&(s==null?void 0:s._transitionInitialStyles)){const{position:l,top:d,left:C,width:m,height:u}=s._transitionInitialStyles;delete s._transitionInitialStyles,s.style.position=l||"",s.style.top=d||"",s.style.left=C||"",s.style.width=m||"",s.style.height=u||""}}};return()=>{const s=a.group?Gr:q5;return u5(s,{name:a.disabled?"":e,css:!a.disabled,...a.group?void 0:{mode:a.mode},...a.disabled?{}:o},n.default)}}})}function te1(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"in-out";return h2()({name:e,props:{mode:{type:String,default:i},disabled:Boolean},setup(a,r){let{slots:n}=r;return()=>u5(q5,{name:a.disabled?"":e,css:!a.disabled,...a.disabled?{}:t},n.default)}})}function ie1(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";const i=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1)?"width":"height",a=gt(`offset-${i}`);return{onBeforeEnter(o){o._parent=o.parentNode,o._initialStyle={transition:o.style.transition,overflow:o.style.overflow,[i]:o.style[i]}},onEnter(o){const s=o._initialStyle;o.style.setProperty("transition","none","important"),o.style.overflow="hidden";const l=`${o[a]}px`;o.style[i]="0",o.offsetHeight,o.style.transition=s.transition,e&&o._parent&&o._parent.classList.add(e),requestAnimationFrame(()=>{o.style[i]=l})},onAfterEnter:n,onEnterCancelled:n,onLeave(o){o._initialStyle={transition:"",overflow:o.style.overflow,[i]:o.style[i]},o.style.overflow="hidden",o.style[i]=`${o[a]}px`,o.offsetHeight,requestAnimationFrame(()=>o.style[i]="0")},onAfterLeave:r,onLeaveCancelled:r};function r(o){e&&o._parent&&o._parent.classList.remove(e),n(o)}function n(o){const s=o._initialStyle[i];o.style.overflow=o._initialStyle.overflow,s!=null&&(o.style[i]=s),delete o._initialStyle}}const _z1=k1({target:[Object,Array]},"v-dialog-transition"),gH=h2()({name:"VDialogTransition",props:_z1(),setup(e,t){let{slots:i}=t;const a={onBeforeEnter(r){r.style.pointerEvents="none",r.style.visibility="hidden"},async onEnter(r,n){var u;await new Promise(p=>requestAnimationFrame(p)),await new Promise(p=>requestAnimationFrame(p)),r.style.visibility="";const{x:o,y:s,sx:l,sy:d,speed:C}=p_(e.target,r),m=P6(r,[{transform:`translate(${o}px, ${s}px) scale(${l}, ${d})`,opacity:0},{}],{duration:225*C,easing:VF1});(u=h_(r))==null||u.forEach(p=>{P6(p,[{opacity:0},{opacity:0,offset:.33},{}],{duration:225*2*C,easing:rd})}),m.finished.then(()=>n())},onAfterEnter(r){r.style.removeProperty("pointer-events")},onBeforeLeave(r){r.style.pointerEvents="none"},async onLeave(r,n){var u;await new Promise(p=>requestAnimationFrame(p));const{x:o,y:s,sx:l,sy:d,speed:C}=p_(e.target,r);P6(r,[{},{transform:`translate(${o}px, ${s}px) scale(${l}, ${d})`,opacity:0}],{duration:125*C,easing:LF1}).finished.then(()=>n()),(u=h_(r))==null||u.forEach(p=>{P6(p,[{},{opacity:0,offset:.2},{opacity:0}],{duration:125*2*C,easing:rd})})},onAfterLeave(r){r.style.removeProperty("pointer-events")}};return()=>e.target?P(q5,V2({name:"dialog-transition"},a,{css:!1}),i):P(q5,{name:"dialog-transition"},i)}});function h_(e){var i;const t=(i=e.querySelector(":scope > .v-card, :scope > .v-sheet, :scope > .v-list"))==null?void 0:i.children;return t&&[...t]}function p_(e,t){const i=Ck(e),a=cH(t),[r,n]=getComputedStyle(t).transformOrigin.split(" ").map(H=>parseFloat(H)),[o,s]=getComputedStyle(t).getPropertyValue("--v-overlay-anchor-origin").split(" ");let l=i.left+i.width/2;o==="left"||s==="left"?l-=i.width/2:(o==="right"||s==="right")&&(l+=i.width/2);let d=i.top+i.height/2;o==="top"||s==="top"?d-=i.height/2:(o==="bottom"||s==="bottom")&&(d+=i.height/2);const C=i.width/a.width,m=i.height/a.height,u=Math.max(1,C,m),p=C/u||0,V=m/u||0,f=a.width*a.height/(window.innerWidth*window.innerHeight),M=f>.12?Math.min(1.5,(f-.12)*10+1):1;return{x:l-(r+a.left),y:d-(n+a.top),sx:p,sy:V,speed:M}}k0("fab-transition","center center","out-in");k0("dialog-bottom-transition");k0("dialog-top-transition");k0("fade-transition");const ae1=k0("scale-transition");k0("scroll-x-transition");k0("scroll-x-reverse-transition");k0("scroll-y-transition");k0("scroll-y-reverse-transition");k0("slide-x-transition");k0("slide-x-reverse-transition");const re1=k0("slide-y-transition");k0("slide-y-reverse-transition");const ne1=te1("expand-transition",ie1()),oe1=te1("expand-x-transition",ie1("",!0));function se1(e){const{t}=ir();function i(a){var l;let{name:r}=a;const n={prepend:"prependAction",prependInner:"prependAction",append:"appendAction",appendInner:"appendAction",clear:"clear"}[r],o=e[`onClick:${r}`],s=o&&n?t(`$vuetify.input.${n}`,(l=e.label)!=null?l:""):void 0;return P(Ze,{icon:e[`${r}Icon`],"aria-label":s,onClick:o},null)}return{InputIcon:i}}const Sz1=k1({active:Boolean,color:String,messages:{type:[Array,String],default:()=>[]},...F2(),...Io({transition:{component:re1,leaveAbsolute:!0,group:!0}})},"VMessages"),Dz1=h2()({name:"VMessages",props:Sz1(),setup(e,t){let{slots:i}=t;const a=q(()=>Ft(e.messages)),{textColorClasses:r,textColorStyles:n}=Bi(q(()=>e.color));return M2(()=>P(g4,{transition:e.transition,tag:"div",class:["v-messages",r.value,e.class],style:[n.value,e.style],role:"alert","aria-live":"polite"},{default:()=>[e.active&&a.value.map((o,s)=>P("div",{class:"v-messages__message",key:`${s}-${a.value}`},[i.message?i.message({message:o}):o]))]})),{}}}),AH=k1({focused:Boolean,"onUpdate:focused":E0()},"focus");function z8(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:P3();const i=ue(e,"focused"),a=q(()=>({[`${t}--focused`]:i.value}));function r(){i.value=!0}function n(){i.value=!1}return{focusClasses:a,isFocused:i,focus:r,blur:n}}const le1=Symbol.for("vuetify:form"),yz1=k1({disabled:Boolean,fastFail:Boolean,readonly:Boolean,modelValue:{type:Boolean,default:null},validateOn:{type:String,default:"input"}},"form");function Rz1(e){const t=ue(e,"modelValue"),i=q(()=>e.disabled),a=q(()=>e.readonly),r=g2(!1),n=i1([]),o=i1([]);async function s(){const C=[];let m=!0;o.value=[],r.value=!0;for(const u of n.value){const p=await u.validate();if(p.length>0&&(m=!1,C.push({id:u.id,errorMessages:p})),!m&&e.fastFail)break}return o.value=C,r.value=!1,{valid:m,errors:o.value}}function l(){n.value.forEach(C=>C.reset())}function d(){n.value.forEach(C=>C.resetValidation())}return T1(n,()=>{let C=0,m=0;const u=[];for(const p of n.value)p.isValid===!1?(m++,u.push({id:p.id,errorMessages:p.errorMessages})):p.isValid===!0&&C++;o.value=u,t.value=m>0?!1:C===n.value.length?!0:null},{deep:!0}),X2(le1,{register:C=>{let{id:m,validate:u,reset:p,resetValidation:V}=C;n.value.some(f=>f.id===m),n.value.push({id:m,validate:u,reset:p,resetValidation:V,isValid:null,errorMessages:[]})},unregister:C=>{n.value=n.value.filter(m=>m.id!==C)},update:(C,m,u)=>{const p=n.value.find(V=>V.id===C);!p||(p.isValid=m,p.errorMessages=u)},isDisabled:i,isReadonly:a,isValidating:r,isValid:t,items:n,validateOn:t2(e,"validateOn")}),{errors:o,isDisabled:i,isReadonly:a,isValidating:r,isValid:t,items:n,validate:s,reset:l,resetValidation:d}}function vH(){return H2(le1,null)}const bz1=k1({disabled:{type:Boolean,default:null},error:Boolean,errorMessages:{type:[Array,String],default:()=>[]},maxErrors:{type:[Number,String],default:1},name:String,label:String,readonly:{type:Boolean,default:null},rules:{type:Array,default:()=>[]},modelValue:null,validateOn:String,validationValue:null,...AH()},"validation");function Nz1(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:P3(),i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:x0();const a=ue(e,"modelValue"),r=q(()=>e.validationValue===void 0?a.value:e.validationValue),n=vH(),o=i1([]),s=g2(!0),l=q(()=>!!(Ft(a.value===""?null:a.value).length||Ft(r.value===""?null:r.value).length)),d=q(()=>{var v;return!!((v=e.disabled)!=null?v:n==null?void 0:n.isDisabled.value)}),C=q(()=>{var v;return!!((v=e.readonly)!=null?v:n==null?void 0:n.isReadonly.value)}),m=q(()=>{var v;return(v=e.errorMessages)!=null&&v.length?Ft(e.errorMessages).concat(o.value).slice(0,Math.max(0,+e.maxErrors)):o.value}),u=q(()=>{var y,D;let v=((y=e.validateOn)!=null?y:n==null?void 0:n.validateOn.value)||"input";v==="lazy"&&(v="input lazy");const S=new Set((D=v==null?void 0:v.split(" "))!=null?D:[]);return{blur:S.has("blur")||S.has("input"),input:S.has("input"),submit:S.has("submit"),lazy:S.has("lazy")}}),p=q(()=>{var v;return e.error||((v=e.errorMessages)==null?void 0:v.length)?!1:e.rules.length?s.value?o.value.length||u.value.lazy?null:!0:!o.value.length:!0}),V=g2(!1),f=q(()=>({[`${t}--error`]:p.value===!1,[`${t}--dirty`]:l.value,[`${t}--disabled`]:d.value,[`${t}--readonly`]:C.value})),M=q(()=>{var v;return(v=e.name)!=null?v:B(i)});B5(()=>{n==null||n.register({id:M.value,validate:_,reset:H,resetValidation:g})}),xe(()=>{n==null||n.unregister(M.value)}),ee(async()=>{u.value.lazy||await _(!0),n==null||n.update(M.value,p.value,m.value)}),M3(()=>u.value.input,()=>{T1(r,()=>{if(r.value!=null)_();else if(e.focused){const v=T1(()=>e.focused,S=>{S||_(),v()})}})}),M3(()=>u.value.blur,()=>{T1(()=>e.focused,v=>{v||_()})}),T1(p,()=>{n==null||n.update(M.value,p.value,m.value)});function H(){a.value=null,k2(g)}function g(){s.value=!0,u.value.lazy?o.value=[]:_(!0)}async function _(){var y;let v=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;const S=[];V.value=!0;for(const D of e.rules){if(S.length>=+((y=e.maxErrors)!=null?y:1))break;const N=await(typeof D=="function"?D:()=>D)(r.value);if(N!==!0){if(N!==!1&&typeof N!="string"){console.warn(`${N} is not a valid value. Rule functions must return boolean true or a string.`);continue}S.push(N||"")}}return o.value=S,V.value=!1,s.value=v,o.value}return{errorMessages:m,isDirty:l,isDisabled:d,isReadonly:C,isPristine:s,isValid:p,isValidating:V,reset:H,resetValidation:g,validate:_,validationClasses:f}}const Z8=k1({id:String,appendIcon:Ce,centerAffix:{type:Boolean,default:!0},prependIcon:Ce,hideDetails:[Boolean,String],hideSpinButtons:Boolean,hint:String,persistentHint:Boolean,messages:{type:[Array,String],default:()=>[]},direction:{type:String,default:"horizontal",validator:e=>["horizontal","vertical"].includes(e)},"onClick:prepend":E0(),"onClick:append":E0(),...F2(),...fi(),...bz1()},"VInput"),$4=h2()({name:"VInput",props:{...Z8()},emits:{"update:modelValue":e=>!0},setup(e,t){let{attrs:i,slots:a,emit:r}=t;const{densityClasses:n}=I3(e),{rtlClasses:o}=pi(),{InputIcon:s}=se1(e),l=x0(),d=q(()=>e.id||`input-${l}`),C=q(()=>`${d.value}-messages`),{errorMessages:m,isDirty:u,isDisabled:p,isReadonly:V,isPristine:f,isValid:M,isValidating:H,reset:g,resetValidation:_,validate:v,validationClasses:S}=Nz1(e,"v-input",d),y=q(()=>({id:d,messagesId:C,isDirty:u,isDisabled:p,isReadonly:V,isPristine:f,isValid:M,isValidating:H,reset:g,resetValidation:_,validate:v})),D=q(()=>{var R;return((R=e.errorMessages)==null?void 0:R.length)||!f.value&&m.value.length?m.value:e.hint&&(e.persistentHint||e.focused)?e.hint:e.messages});return M2(()=>{var U,E,O,z;const R=!!(a.prepend||e.prependIcon),N=!!(a.append||e.appendIcon),w=D.value.length>0,x=!e.hideDetails||e.hideDetails==="auto"&&(w||!!a.details);return P("div",{class:["v-input",`v-input--${e.direction}`,{"v-input--center-affix":e.centerAffix,"v-input--hide-spin-buttons":e.hideSpinButtons},n.value,o.value,S.value,e.class],style:e.style},[R&&P("div",{key:"prepend",class:"v-input__prepend"},[(U=a.prepend)==null?void 0:U.call(a,y.value),e.prependIcon&&P(s,{key:"prepend-icon",name:"prepend"},null)]),a.default&&P("div",{class:"v-input__control"},[(E=a.default)==null?void 0:E.call(a,y.value)]),N&&P("div",{key:"append",class:"v-input__append"},[e.appendIcon&&P(s,{key:"append-icon",name:"append"},null),(O=a.append)==null?void 0:O.call(a,y.value)]),x&&P("div",{class:"v-input__details"},[P(Dz1,{id:C.value,active:w,messages:D.value},{message:a.message}),(z=a.details)==null?void 0:z.call(a,y.value)])])}),{reset:g,resetValidation:_,validate:v,isValid:M,errorMessages:m}}});const wz1=k1({bgColor:String,color:String,indeterminate:[Boolean,String],modelValue:{type:[Number,String],default:0},rotate:{type:[Number,String],default:0},width:{type:[Number,String],default:4},...F2(),...Po(),...T5({tag:"div"}),...p5()},"VProgressCircular"),_H=h2()({name:"VProgressCircular",props:wz1(),setup(e,t){let{slots:i}=t;const a=20,r=2*Math.PI*a,n=i1(),{themeClasses:o}=N5(e),{sizeClasses:s,sizeStyles:l}=x8(e),{textColorClasses:d,textColorStyles:C}=Bi(t2(e,"color")),{textColorClasses:m,textColorStyles:u}=Bi(t2(e,"bgColor")),{intersectionRef:p,isIntersecting:V}=W21(),{resizeRef:f,contentRect:M}=No(),H=q(()=>Math.max(0,Math.min(100,parseFloat(e.modelValue)))),g=q(()=>Number(e.width)),_=q(()=>l.value?Number(e.size):M.value?M.value.width:Math.max(g.value,32)),v=q(()=>a/(1-g.value/_.value)*2),S=q(()=>g.value/_.value*v.value),y=q(()=>f2((100-H.value)/100*r));return c0(()=>{p.value=n.value,f.value=n.value}),M2(()=>P(e.tag,{ref:n,class:["v-progress-circular",{"v-progress-circular--indeterminate":!!e.indeterminate,"v-progress-circular--visible":V.value,"v-progress-circular--disable-shrink":e.indeterminate==="disable-shrink"},o.value,s.value,d.value,e.class],style:[l.value,C.value,e.style],role:"progressbar","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":e.indeterminate?void 0:H.value},{default:()=>[P("svg",{style:{transform:`rotate(calc(-90deg + ${Number(e.rotate)}deg))`},xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${v.value} ${v.value}`},[P("circle",{class:["v-progress-circular__underlay",m.value],style:u.value,fill:"transparent",cx:"50%",cy:"50%",r:a,"stroke-width":S.value,"stroke-dasharray":r,"stroke-dashoffset":0},null),P("circle",{class:"v-progress-circular__overlay",fill:"transparent",cx:"50%",cy:"50%",r:a,"stroke-width":S.value,"stroke-dasharray":r,"stroke-dashoffset":y.value},null)]),i.default&&P("div",{class:"v-progress-circular__content"},[i.default({value:H.value})])]})),{}}});const Tz1=k1({text:String,clickable:Boolean,...F2(),...p5()},"VLabel"),SH=h2()({name:"VLabel",props:Tz1(),setup(e,t){let{slots:i}=t;return M2(()=>{var a;return P("label",{class:["v-label",{"v-label--clickable":e.clickable},e.class],style:e.style},[e.text,(a=i.default)==null?void 0:a.call(i)])}),{}}});const ce1=Symbol.for("vuetify:selection-control-group"),de1=k1({color:String,disabled:{type:Boolean,default:null},defaultsTarget:String,error:Boolean,id:String,inline:Boolean,falseIcon:Ce,trueIcon:Ce,ripple:{type:Boolean,default:!0},multiple:{type:Boolean,default:null},name:String,readonly:{type:Boolean,default:null},modelValue:null,type:String,valueComparator:{type:Function,default:wa},...F2(),...fi(),...p5()},"SelectionControlGroup"),Ez1=k1({...de1({defaultsTarget:"VSelectionControl"})},"VSelectionControlGroup");h2()({name:"VSelectionControlGroup",props:Ez1(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:i}=t;const a=ue(e,"modelValue"),r=x0(),n=q(()=>e.id||`v-selection-control-group-${r}`),o=q(()=>e.name||n.value),s=new Set;return X2(ce1,{modelValue:a,forceUpdate:()=>{s.forEach(l=>l())},onForceUpdate:l=>{s.add(l),j5(()=>{s.delete(l)})}}),I0({[e.defaultsTarget]:{color:t2(e,"color"),disabled:t2(e,"disabled"),density:t2(e,"density"),error:t2(e,"error"),inline:t2(e,"inline"),modelValue:a,multiple:q(()=>!!e.multiple||e.multiple==null&&Array.isArray(a.value)),name:o,falseIcon:t2(e,"falseIcon"),trueIcon:t2(e,"trueIcon"),readonly:t2(e,"readonly"),ripple:t2(e,"ripple"),type:t2(e,"type"),valueComparator:t2(e,"valueComparator")}}),M2(()=>{var l;return P("div",{class:["v-selection-control-group",{"v-selection-control-group--inline":e.inline},e.class],style:e.style,role:e.type==="radio"?"radiogroup":void 0},[(l=i.default)==null?void 0:l.call(i)])}),{}}});const DH=k1({label:String,baseColor:String,trueValue:null,falseValue:null,value:null,...F2(),...de1()},"VSelectionControl");function Pz1(e){const t=H2(ce1,void 0),{densityClasses:i}=I3(e),a=ue(e,"modelValue"),r=q(()=>e.trueValue!==void 0?e.trueValue:e.value!==void 0?e.value:!0),n=q(()=>e.falseValue!==void 0?e.falseValue:!1),o=q(()=>!!e.multiple||e.multiple==null&&Array.isArray(a.value)),s=q({get(){const p=t?t.modelValue.value:a.value;return o.value?Ft(p).some(V=>e.valueComparator(V,r.value)):e.valueComparator(p,r.value)},set(p){if(e.readonly)return;const V=p?r.value:n.value;let f=V;o.value&&(f=p?[...Ft(a.value),V]:Ft(a.value).filter(M=>!e.valueComparator(M,r.value))),t?t.modelValue.value=f:a.value=f}}),{textColorClasses:l,textColorStyles:d}=Bi(q(()=>{if(!(e.error||e.disabled))return s.value?e.color:e.baseColor})),{backgroundColorClasses:C,backgroundColorStyles:m}=d0(q(()=>s.value&&!e.error&&!e.disabled?e.color:void 0)),u=q(()=>s.value?e.trueIcon:e.falseIcon);return{group:t,densityClasses:i,trueValue:r,falseValue:n,model:s,textColorClasses:l,textColorStyles:d,backgroundColorClasses:C,backgroundColorStyles:m,icon:u}}const Vd=h2()({name:"VSelectionControl",directives:{Ripple:Fn},inheritAttrs:!1,props:DH(),emits:{"update:modelValue":e=>!0},setup(e,t){let{attrs:i,slots:a}=t;const{group:r,densityClasses:n,icon:o,model:s,textColorClasses:l,textColorStyles:d,backgroundColorClasses:C,backgroundColorStyles:m,trueValue:u}=Pz1(e),p=x0(),V=q(()=>e.id||`input-${p}`),f=g2(!1),M=g2(!1),H=i1();r==null||r.onForceUpdate(()=>{H.value&&(H.value.checked=s.value)});function g(S){f.value=!0,id(S.target,":focus-visible")!==!1&&(M.value=!0)}function _(){f.value=!1,M.value=!1}function v(S){e.readonly&&r&&k2(()=>r.forceUpdate()),s.value=S.target.checked}return M2(()=>{var N,w,x;const S=a.label?a.label({label:e.label,props:{for:V.value}}):e.label,[y,D]=$C(i),R=P("input",V2({ref:H,checked:s.value,disabled:!!(e.readonly||e.disabled),id:V.value,onBlur:_,onFocus:g,onInput:v,"aria-disabled":!!(e.readonly||e.disabled),type:e.type,value:u.value,name:e.name,"aria-checked":e.type==="checkbox"?s.value:void 0},D),null);return P("div",V2({class:["v-selection-control",{"v-selection-control--dirty":s.value,"v-selection-control--disabled":e.disabled,"v-selection-control--error":e.error,"v-selection-control--focused":f.value,"v-selection-control--focus-visible":M.value,"v-selection-control--inline":e.inline},n.value,e.class]},y,{style:e.style}),[P("div",{class:["v-selection-control__wrapper",l.value],style:d.value},[(N=a.default)==null?void 0:N.call(a,{backgroundColorClasses:C,backgroundColorStyles:m}),N2(P("div",{class:["v-selection-control__input"]},[(x=(w=a.input)==null?void 0:w.call(a,{model:s,textColorClasses:l,textColorStyles:d,backgroundColorClasses:C,backgroundColorStyles:m,inputNode:R,icon:o.value,props:{onFocus:g,onBlur:_,id:V.value}}))!=null?x:P(Y1,null,[o.value&&P(Ze,{key:"icon",icon:o.value},null),R])]),[[k5("ripple"),e.ripple&&[!e.disabled&&!e.readonly,null,["center","circle"]]]])]),S&&P(SH,{for:V.value,clickable:!0,onClick:U=>U.stopPropagation()},{default:()=>[S]})])}),{isFocused:f,input:H}}}),Iz1=k1({indeterminate:Boolean,inset:Boolean,flat:Boolean,loading:{type:[Boolean,String],default:!1},...Z8(),...DH()},"VSwitch"),At=h2()({name:"VSwitch",inheritAttrs:!1,props:Iz1(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,t){let{attrs:i,slots:a}=t;const r=ue(e,"indeterminate"),n=ue(e,"modelValue"),{loaderClasses:o}=B8(e),{isFocused:s,focus:l,blur:d}=z8(e),C=i1(),m=q(()=>typeof e.loading=="string"&&e.loading!==""?e.loading:e.color),u=x0(),p=q(()=>e.id||`switch-${u}`);function V(){r.value&&(r.value=!1)}function f(M){var H,g;M.stopPropagation(),M.preventDefault(),(g=(H=C.value)==null?void 0:H.input)==null||g.click()}return M2(()=>{const[M,H]=$C(i),g=$4.filterProps(e),_=Vd.filterProps(e);return P($4,V2({class:["v-switch",{"v-switch--inset":e.inset},{"v-switch--indeterminate":r.value},o.value,e.class]},M,g,{modelValue:n.value,"onUpdate:modelValue":v=>n.value=v,id:p.value,focused:s.value,style:e.style}),{...a,default:v=>{let{id:S,messagesId:y,isDisabled:D,isReadonly:R,isValid:N}=v;return P(Vd,V2({ref:C},_,{modelValue:n.value,"onUpdate:modelValue":[w=>n.value=w,V],id:S.value,"aria-describedby":y.value,type:"checkbox","aria-checked":r.value?"mixed":void 0,disabled:D.value,readonly:R.value,onFocus:l,onBlur:d},H),{...a,default:w=>{let{backgroundColorClasses:x,backgroundColorStyles:U}=w;return P("div",{class:["v-switch__track",...x.value],style:U.value,onClick:f},null)},input:w=>{let{inputNode:x,icon:U,backgroundColorClasses:E,backgroundColorStyles:O}=w;return P(Y1,null,[x,P("div",{class:["v-switch__thumb",{"v-switch__thumb--filled":U||e.loading},e.inset?void 0:E.value],style:e.inset?void 0:O.value},[P(ae1,null,{default:()=>[e.loading?P(am,{name:"v-switch",active:!0,color:N.value===!1?void 0:m.value},{default:z=>a.loader?a.loader(z):P(_H,{active:z.isActive,color:z.color,indeterminate:!0,size:"16",width:"2"},null)}):U&&P(Ze,{key:U,icon:U,size:"x-small"},null)]})])])}})}})}),{}}}),Oz1=K("span",{class:"text-sm font-medium text-slate-500"},"Enable voice on specific alert levels:",-1),Uz1={class:"flex items-center justify-start"},xz1=K("span",{class:"text-sm font-medium text-slate-500"},"Alert voice:",-1),Fz1=n2({__name:"ConfigurationAlertsView",setup(e){const t=QC();return(i,a)=>(C1(),Q1(kn,null,{title:v1(()=>[L2("Alerts configuration")]),content:v1(()=>[P(At,{modelValue:B(t).enableVoiceAlerts,"onUpdate:modelValue":a[0]||(a[0]=r=>B(t).enableVoiceAlerts=r),label:"Enable voice alerts",class:"m-2 text-slate-800",color:"rgb(0, 20, 80)"},null,8,["modelValue"]),Oz1,K("div",Uz1,[(C1(!0),N1(Y1,null,fe(B(t).enabledAlertLevels,r=>(C1(),N1("div",{key:r.level,class:"mx-2"},[P(At,{modelValue:r.enabled,"onUpdate:modelValue":n=>r.enabled=n,label:zi(r.level),class:"text-slate-800",color:"rgb(0, 20, 80)"},null,8,["modelValue","onUpdate:modelValue","label"])]))),128))]),xz1,P(Eo,{modelValue:B(t).selectedAlertSpeechVoiceName,"onUpdate:modelValue":a[1]||(a[1]=r=>B(t).selectedAlertSpeechVoiceName=r),options:B(t).availableAlertSpeechVoiceNames,"name-key":"name","value-key":"value",class:"max-w-[200px] my-2"},null,8,["modelValue","options"])]),_:1}))}});const Ce1=k1({divided:Boolean,...Pa(),...F2(),...fi(),...Xi(),...p0(),...T5(),...p5(),...Ea()},"VBtnGroup"),f_=h2()({name:"VBtnGroup",props:Ce1(),setup(e,t){let{slots:i}=t;const{themeClasses:a}=N5(e),{densityClasses:r}=I3(e),{borderClasses:n}=nr(e),{elevationClasses:o}=O3(e),{roundedClasses:s}=F0(e);I0({VBtn:{height:"auto",color:t2(e,"color"),density:t2(e,"density"),flat:!0,variant:t2(e,"variant")}}),M2(()=>P(e.tag,{class:["v-btn-group",{"v-btn-group--divided":e.divided},a.value,n.value,r.value,o.value,s.value,e.class],style:e.style},i))}}),yH=k1({modelValue:{type:null,default:void 0},multiple:Boolean,mandatory:[Boolean,String],max:Number,selectedClass:String,disabled:Boolean},"group"),RH=k1({value:null,disabled:Boolean,selectedClass:String},"group-item");function bH(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;const a=b5("useGroupItem");if(!a)throw new Error("[Vuetify] useGroupItem composable must be used inside a component setup function");const r=x0();X2(Symbol.for(`${t.description}:id`),r);const n=H2(t,null);if(!n){if(!i)return n;throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${t.description}`)}const o=t2(e,"value"),s=q(()=>!!(n.disabled.value||e.disabled));n.register({id:r,value:o,disabled:s},a),xe(()=>{n.unregister(r)});const l=q(()=>n.isSelected(r)),d=q(()=>l.value&&[n.selectedClass.value,e.selectedClass]);return T1(l,C=>{a.emit("group:selected",{value:C})}),{id:r,isSelected:l,toggle:()=>n.select(r,!l.value),select:C=>n.select(r,C),selectedClass:d,value:o,disabled:s,group:n}}function NH(e,t){let i=!1;const a=$2([]),r=ue(e,"modelValue",[],u=>u==null?[]:me1(a,Ft(u)),u=>{const p=Bz1(a,u);return e.multiple?p:p[0]}),n=b5("useGroup");function o(u,p){const V=u,f=Symbol.for(`${t.description}:id`),H=ss(f,n==null?void 0:n.vnode).indexOf(p);H>-1?a.splice(H,0,V):a.push(V)}function s(u){if(i)return;l();const p=a.findIndex(V=>V.id===u);a.splice(p,1)}function l(){const u=a.find(p=>!p.disabled);u&&e.mandatory==="force"&&!r.value.length&&(r.value=[u.id])}ee(()=>{l()}),xe(()=>{i=!0});function d(u,p){const V=a.find(f=>f.id===u);if(!(p&&(V==null?void 0:V.disabled)))if(e.multiple){const f=r.value.slice(),M=f.findIndex(g=>g===u),H=~M;if(p=p!=null?p:!H,H&&e.mandatory&&f.length<=1||!H&&e.max!=null&&f.length+1>e.max)return;M<0&&p?f.push(u):M>=0&&!p&&f.splice(M,1),r.value=f}else{const f=r.value.includes(u);if(e.mandatory&&f)return;r.value=(p!=null?p:!f)?[u]:[]}}function C(u){if(e.multiple,r.value.length){const p=r.value[0],V=a.findIndex(H=>H.id===p);let f=(V+u)%a.length,M=a[f];for(;M.disabled&&f!==V;)f=(f+u)%a.length,M=a[f];if(M.disabled)return;r.value=[a[f].id]}else{const p=a.find(V=>!V.disabled);p&&(r.value=[p.id])}}const m={register:o,unregister:s,selected:r,select:d,disabled:t2(e,"disabled"),prev:()=>C(a.length-1),next:()=>C(1),isSelected:u=>r.value.includes(u),selectedClass:q(()=>e.selectedClass),items:q(()=>a),getItemIndex:u=>kz1(a,u)};return X2(t,m),m}function kz1(e,t){const i=me1(e,[t]);return i.length?e.findIndex(a=>a.id===i[0]):-1}function me1(e,t){const i=[];return t.forEach(a=>{const r=e.find(o=>wa(a,o.value)),n=e[a];(r==null?void 0:r.value)!=null?i.push(r.id):n!=null&&i.push(n.id)}),i}function Bz1(e,t){const i=[];return t.forEach(a=>{const r=e.findIndex(n=>n.id===a);if(~r){const n=e[r];i.push(n.value!=null?n.value:r)}}),i}const ue1=Symbol.for("vuetify:v-btn-toggle"),zz1=k1({...Ce1(),...yH()},"VBtnToggle");h2()({name:"VBtnToggle",props:zz1(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:i}=t;const{isSelected:a,next:r,prev:n,select:o,selected:s}=NH(e,ue1);return M2(()=>{const l=f_.filterProps(e);return P(f_,V2({class:["v-btn-toggle",e.class]},l,{style:e.style}),{default:()=>{var d;return[(d=i.default)==null?void 0:d.call(i,{isSelected:a,next:r,prev:n,select:o,selected:s})]}})}),{next:r,prev:n,select:o}}});function Zz1(e,t){T1(()=>{var i;return(i=e.isActive)==null?void 0:i.value},i=>{e.isLink.value&&i&&t&&k2(()=>{t(!0)})},{immediate:!0})}const Gz1=k1({active:{type:Boolean,default:void 0},symbol:{type:null,default:ue1},flat:Boolean,icon:[Boolean,String,Function,Object],prependIcon:Ce,appendIcon:Ce,block:Boolean,slim:Boolean,stacked:Boolean,ripple:{type:[Boolean,Object],default:!0},text:String,...Pa(),...F2(),...fi(),...ar(),...Xi(),...RH(),...im(),...JC(),...HH(),...p0(),...nm(),...Po(),...T5({tag:"button"}),...p5(),...Ea({variant:"elevated"})},"VBtn"),re=h2()({name:"VBtn",directives:{Ripple:Fn},props:Gz1(),emits:{"group:selected":e=>!0},setup(e,t){let{attrs:i,slots:a}=t;const{themeClasses:r}=N5(e),{borderClasses:n}=nr(e),{colorClasses:o,colorStyles:s,variantClasses:l}=k8(e),{densityClasses:d}=I3(e),{dimensionStyles:C}=rr(e),{elevationClasses:m}=O3(e),{loaderClasses:u}=B8(e),{locationStyles:p}=em(e),{positionClasses:V}=MH(e),{roundedClasses:f}=F0(e),{sizeClasses:M,sizeStyles:H}=x8(e),g=bH(e,e.symbol,!1),_=rm(e,i),v=q(()=>{var N;return e.active!==void 0?e.active:_.isLink.value?(N=_.isActive)==null?void 0:N.value:g==null?void 0:g.isSelected.value}),S=q(()=>(g==null?void 0:g.disabled.value)||e.disabled),y=q(()=>e.variant==="elevated"&&!(e.disabled||e.flat||e.border)),D=q(()=>{if(!(e.value===void 0||typeof e.value=="symbol"))return Object(e.value)===e.value?JSON.stringify(e.value,null,0):e.value});function R(N){var w;S.value||_.isLink.value&&(N.metaKey||N.ctrlKey||N.shiftKey||N.button!==0||i.target==="_blank")||((w=_.navigate)==null||w.call(_,N),g==null||g.toggle())}return Zz1(_,g==null?void 0:g.select),M2(()=>{var O,z;const N=_.isLink.value?"a":e.tag,w=!!(e.prependIcon||a.prepend),x=!!(e.appendIcon||a.append),U=!!(e.icon&&e.icon!==!0),E=(g==null?void 0:g.isSelected.value)&&(!_.isLink.value||((O=_.isActive)==null?void 0:O.value))||!g||((z=_.isActive)==null?void 0:z.value);return N2(P(N,{type:N==="a"?void 0:"button",class:["v-btn",g==null?void 0:g.selectedClass.value,{"v-btn--active":v.value,"v-btn--block":e.block,"v-btn--disabled":S.value,"v-btn--elevated":y.value,"v-btn--flat":e.flat,"v-btn--icon":!!e.icon,"v-btn--loading":e.loading,"v-btn--slim":e.slim,"v-btn--stacked":e.stacked},r.value,n.value,E?o.value:void 0,d.value,m.value,u.value,V.value,f.value,M.value,l.value,e.class],style:[E?s.value:void 0,C.value,p.value,H.value,e.style],disabled:S.value||void 0,href:_.href.value,onClick:R,value:D.value},{default:()=>{var F,J;return[F8(!0,"v-btn"),!e.icon&&w&&P("span",{key:"prepend",class:"v-btn__prepend"},[a.prepend?P(ot,{key:"prepend-defaults",disabled:!e.prependIcon,defaults:{VIcon:{icon:e.prependIcon}}},a.prepend):P(Ze,{key:"prepend-icon",icon:e.prependIcon},null)]),P("span",{class:"v-btn__content","data-no-activator":""},[!a.default&&U?P(Ze,{key:"content-icon",icon:e.icon},null):P(ot,{key:"content-defaults",disabled:!U,defaults:{VIcon:{icon:e.icon}}},{default:()=>{var W,r1;return[(r1=(W=a.default)==null?void 0:W.call(a))!=null?r1:e.text]}})]),!e.icon&&x&&P("span",{key:"append",class:"v-btn__append"},[a.append?P(ot,{key:"append-defaults",disabled:!e.appendIcon,defaults:{VIcon:{icon:e.appendIcon}}},a.append):P(Ze,{key:"append-icon",icon:e.appendIcon},null)]),!!e.loading&&P("span",{key:"loader",class:"v-btn__loader"},[(J=(F=a.loader)==null?void 0:F.call(a))!=null?J:P(_H,{color:typeof e.loading=="boolean"?void 0:e.loading,indeterminate:!0,size:"23",width:"2"},null)])]}}),[[k5("ripple"),!S.value&&e.ripple,null]])}),{}}});function Wz1(){const e=i1([]);RV(()=>e.value=[]);function t(i,a){e.value[a]=i}return{refs:e,updateRef:t}}const Xz1=k1({activeColor:String,start:{type:[Number,String],default:1},modelValue:{type:Number,default:e=>e.start},disabled:Boolean,length:{type:[Number,String],default:1,validator:e=>e%1===0},totalVisible:[Number,String],firstIcon:{type:Ce,default:"$first"},prevIcon:{type:Ce,default:"$prev"},nextIcon:{type:Ce,default:"$next"},lastIcon:{type:Ce,default:"$last"},ariaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.root"},pageAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.page"},currentPageAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.currentPage"},firstAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.first"},previousAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.previous"},nextAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.next"},lastAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.last"},ellipsis:{type:String,default:"..."},showFirstLastPage:Boolean,...Pa(),...F2(),...fi(),...Xi(),...p0(),...Po(),...T5({tag:"nav"}),...p5(),...Ea({variant:"text"})},"VPagination"),Yz1=h2()({name:"VPagination",props:Xz1(),emits:{"update:modelValue":e=>!0,first:e=>!0,prev:e=>!0,next:e=>!0,last:e=>!0},setup(e,t){let{slots:i,emit:a}=t;const r=ue(e,"modelValue"),{t:n,n:o}=ir(),{isRtl:s}=pi(),{themeClasses:l}=N5(e),{width:d}=I8(),C=g2(-1);I0(void 0,{scoped:!0});const{resizeRef:m}=No(R=>{if(!R.length)return;const{target:N,contentRect:w}=R[0],x=N.querySelector(".v-pagination__list > *");if(!x)return;const U=w.width,E=x.offsetWidth+parseFloat(getComputedStyle(x).marginRight)*2;C.value=f(U,E)}),u=q(()=>parseInt(e.length,10)),p=q(()=>parseInt(e.start,10)),V=q(()=>e.totalVisible!=null?parseInt(e.totalVisible,10):C.value>=0?C.value:f(d.value,58));function f(R,N){const w=e.showFirstLastPage?5:3;return Math.max(0,Math.floor(+((R-N*w)/N).toFixed(2)))}const M=q(()=>{if(u.value<=0||isNaN(u.value)||u.value>Number.MAX_SAFE_INTEGER)return[];if(V.value<=0)return[];if(V.value===1)return[r.value];if(u.value<=V.value)return Yr(u.value,p.value);const R=V.value%2===0,N=R?V.value/2:Math.floor(V.value/2),w=R?N:N+1,x=u.value-N;if(w-r.value>=0)return[...Yr(Math.max(1,V.value-1),p.value),e.ellipsis,u.value];if(r.value-x>=(R?1:0)){const U=V.value-1,E=u.value-U+p.value;return[p.value,e.ellipsis,...Yr(U,E)]}else{const U=Math.max(1,V.value-3),E=U===1?r.value:r.value-Math.ceil(U/2)+p.value;return[p.value,e.ellipsis,...Yr(U,E),e.ellipsis,u.value]}});function H(R,N,w){R.preventDefault(),r.value=N,w&&a(w,N)}const{refs:g,updateRef:_}=Wz1();I0({VPaginationBtn:{color:t2(e,"color"),border:t2(e,"border"),density:t2(e,"density"),size:t2(e,"size"),variant:t2(e,"variant"),rounded:t2(e,"rounded"),elevation:t2(e,"elevation")}});const v=q(()=>M.value.map((R,N)=>{const w=x=>_(x,N);if(typeof R=="string")return{isActive:!1,key:`ellipsis-${N}`,page:R,props:{ref:w,ellipsis:!0,icon:!0,disabled:!0}};{const x=R===r.value;return{isActive:x,key:R,page:o(R),props:{ref:w,ellipsis:!1,icon:!0,disabled:!!e.disabled||+e.length<2,color:x?e.activeColor:e.color,ariaCurrent:x,ariaLabel:n(x?e.currentPageAriaLabel:e.pageAriaLabel,R),onClick:U=>H(U,R)}}}})),S=q(()=>{const R=!!e.disabled||r.value<=p.value,N=!!e.disabled||r.value>=p.value+u.value-1;return{first:e.showFirstLastPage?{icon:s.value?e.lastIcon:e.firstIcon,onClick:w=>H(w,p.value,"first"),disabled:R,ariaLabel:n(e.firstAriaLabel),ariaDisabled:R}:void 0,prev:{icon:s.value?e.nextIcon:e.prevIcon,onClick:w=>H(w,r.value-1,"prev"),disabled:R,ariaLabel:n(e.previousAriaLabel),ariaDisabled:R},next:{icon:s.value?e.prevIcon:e.nextIcon,onClick:w=>H(w,r.value+1,"next"),disabled:N,ariaLabel:n(e.nextAriaLabel),ariaDisabled:N},last:e.showFirstLastPage?{icon:s.value?e.firstIcon:e.lastIcon,onClick:w=>H(w,p.value+u.value-1,"last"),disabled:N,ariaLabel:n(e.lastAriaLabel),ariaDisabled:N}:void 0}});function y(){var N;const R=r.value-p.value;(N=g.value[R])==null||N.$el.focus()}function D(R){R.key===Ip.left&&!e.disabled&&r.value>+e.start?(r.value=r.value-1,k2(y)):R.key===Ip.right&&!e.disabled&&r.valueP(e.tag,{ref:m,class:["v-pagination",l.value,e.class],style:e.style,role:"navigation","aria-label":n(e.ariaLabel),onKeydown:D,"data-test":"v-pagination-root"},{default:()=>[P("ul",{class:"v-pagination__list"},[e.showFirstLastPage&&P("li",{key:"first",class:"v-pagination__first","data-test":"v-pagination-first"},[i.first?i.first(S.value.first):P(re,V2({_as:"VPaginationBtn"},S.value.first),null)]),P("li",{key:"prev",class:"v-pagination__prev","data-test":"v-pagination-prev"},[i.prev?i.prev(S.value.prev):P(re,V2({_as:"VPaginationBtn"},S.value.prev),null)]),v.value.map((R,N)=>P("li",{key:R.key,class:["v-pagination__item",{"v-pagination__item--is-active":R.isActive}],"data-test":"v-pagination-item"},[i.item?i.item(R):P(re,V2({_as:"VPaginationBtn"},R.props),{default:()=>[R.page]})])),P("li",{key:"next",class:"v-pagination__next","data-test":"v-pagination-next"},[i.next?i.next(S.value.next):P(re,V2({_as:"VPaginationBtn"},S.value.next),null)]),e.showFirstLastPage&&P("li",{key:"last",class:"v-pagination__last","data-test":"v-pagination-last"},[i.last?i.last(S.value.last):P(re,V2({_as:"VPaginationBtn"},S.value.last),null)])])]})),{}}});const he1=k1({indeterminate:Boolean,indeterminateIcon:{type:Ce,default:"$checkboxIndeterminate"},...DH({falseIcon:"$checkboxOff",trueIcon:"$checkboxOn"})},"VCheckboxBtn"),Dn=h2()({name:"VCheckboxBtn",props:he1(),emits:{"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,t){let{slots:i}=t;const a=ue(e,"indeterminate"),r=ue(e,"modelValue");function n(l){a.value&&(a.value=!1)}const o=q(()=>a.value?e.indeterminateIcon:e.falseIcon),s=q(()=>a.value?e.indeterminateIcon:e.trueIcon);return M2(()=>{const l=Ta(Vd.filterProps(e),["modelValue"]);return P(Vd,V2(l,{modelValue:r.value,"onUpdate:modelValue":[d=>r.value=d,n],class:["v-checkbox-btn",e.class],style:e.style,type:"checkbox",falseIcon:o.value,trueIcon:s.value,"aria-checked":a.value?"mixed":void 0}),i)}),{}}}),$z1=k1({...Z8(),...Ta(he1(),["inline"])},"VCheckbox"),A4=h2()({name:"VCheckbox",inheritAttrs:!1,props:$z1(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(e,t){let{attrs:i,slots:a}=t;const r=ue(e,"modelValue"),{isFocused:n,focus:o,blur:s}=z8(e),l=x0(),d=q(()=>e.id||`checkbox-${l}`);return M2(()=>{const[C,m]=$C(i),u=$4.filterProps(e),p=Dn.filterProps(e);return P($4,V2({class:["v-checkbox",e.class]},C,u,{modelValue:r.value,"onUpdate:modelValue":V=>r.value=V,id:d.value,focused:n.value,style:e.style}),{...a,default:V=>{let{id:f,messagesId:M,isDisabled:H,isReadonly:g}=V;return P(Dn,V2(p,{id:f.value,"aria-describedby":M.value,disabled:H.value,readonly:g.value},m,{modelValue:r.value,"onUpdate:modelValue":_=>r.value=_,onFocus:o,onBlur:s}),a)}})}),{}}});const pe1=Symbol.for("vuetify:v-chip-group"),qz1=k1({column:Boolean,filter:Boolean,valueComparator:{type:Function,default:wa},...F2(),...yH({selectedClass:"v-chip--selected"}),...T5(),...p5(),...Ea({variant:"tonal"})},"VChipGroup");h2()({name:"VChipGroup",props:qz1(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:i}=t;const{themeClasses:a}=N5(e),{isSelected:r,select:n,next:o,prev:s,selected:l}=NH(e,pe1);return I0({VChip:{color:t2(e,"color"),disabled:t2(e,"disabled"),filter:t2(e,"filter"),variant:t2(e,"variant")}}),M2(()=>P(e.tag,{class:["v-chip-group",{"v-chip-group--column":e.column},a.value,e.class],style:e.style},{default:()=>{var d;return[(d=i.default)==null?void 0:d.call(i,{isSelected:r,select:n,next:o,prev:s,selected:l.value})]}})),{}}});const Kz1=k1({activeClass:String,appendAvatar:String,appendIcon:Ce,closable:Boolean,closeIcon:{type:Ce,default:"$delete"},closeLabel:{type:String,default:"$vuetify.close"},draggable:Boolean,filter:Boolean,filterIcon:{type:String,default:"$complete"},label:Boolean,link:{type:Boolean,default:void 0},pill:Boolean,prependAvatar:String,prependIcon:Ce,ripple:{type:[Boolean,Object],default:!0},text:String,modelValue:{type:Boolean,default:!0},onClick:E0(),onClickOnce:E0(),...Pa(),...F2(),...fi(),...Xi(),...RH(),...p0(),...nm(),...Po(),...T5({tag:"span"}),...p5(),...Ea({variant:"tonal"})},"VChip"),fe1=h2()({name:"VChip",directives:{Ripple:Fn},props:Kz1(),emits:{"click:close":e=>!0,"update:modelValue":e=>!0,"group:selected":e=>!0,click:e=>!0},setup(e,t){let{attrs:i,emit:a,slots:r}=t;const{t:n}=ir(),{borderClasses:o}=nr(e),{colorClasses:s,colorStyles:l,variantClasses:d}=k8(e),{densityClasses:C}=I3(e),{elevationClasses:m}=O3(e),{roundedClasses:u}=F0(e),{sizeClasses:p}=x8(e),{themeClasses:V}=N5(e),f=ue(e,"modelValue"),M=bH(e,pe1,!1),H=rm(e,i),g=q(()=>e.link!==!1&&H.isLink.value),_=q(()=>!e.disabled&&e.link!==!1&&(!!M||e.link||H.isClickable.value)),v=q(()=>({"aria-label":n(e.closeLabel),onClick(D){D.stopPropagation(),f.value=!1,a("click:close",D)}}));function S(D){var R;a("click",D),_.value&&((R=H.navigate)==null||R.call(H,D),M==null||M.toggle())}function y(D){(D.key==="Enter"||D.key===" ")&&(D.preventDefault(),S(D))}return()=>{const D=H.isLink.value?"a":e.tag,R=!!(e.appendIcon||e.appendAvatar),N=!!(R||r.append),w=!!(r.close||e.closable),x=!!(r.filter||e.filter)&&M,U=!!(e.prependIcon||e.prependAvatar),E=!!(U||r.prepend),O=!M||M.isSelected.value;return f.value&&N2(P(D,{class:["v-chip",{"v-chip--disabled":e.disabled,"v-chip--label":e.label,"v-chip--link":_.value,"v-chip--filter":x,"v-chip--pill":e.pill},V.value,o.value,O?s.value:void 0,C.value,m.value,u.value,p.value,d.value,M==null?void 0:M.selectedClass.value,e.class],style:[O?l.value:void 0,e.style],disabled:e.disabled||void 0,draggable:e.draggable,href:H.href.value,tabindex:_.value?0:void 0,onClick:S,onKeydown:_.value&&!g.value&&y},{default:()=>{var z,F;return[F8(_.value,"v-chip"),x&&P(oe1,{key:"filter"},{default:()=>[N2(P("div",{class:"v-chip__filter"},[r.filter?P(ot,{key:"filter-defaults",disabled:!e.filterIcon,defaults:{VIcon:{icon:e.filterIcon}}},r.filter):P(Ze,{key:"filter-icon",icon:e.filterIcon},null)]),[[Ut,M.isSelected.value]])]}),E&&P("div",{key:"prepend",class:"v-chip__prepend"},[r.prepend?P(ot,{key:"prepend-defaults",disabled:!U,defaults:{VAvatar:{image:e.prependAvatar,start:!0},VIcon:{icon:e.prependIcon,start:!0}}},r.prepend):P(Y1,null,[e.prependIcon&&P(Ze,{key:"prepend-icon",icon:e.prependIcon,start:!0},null),e.prependAvatar&&P(ho,{key:"prepend-avatar",image:e.prependAvatar,start:!0},null)])]),P("div",{class:"v-chip__content"},[(F=(z=r.default)==null?void 0:z.call(r,{isSelected:M==null?void 0:M.isSelected.value,selectedClass:M==null?void 0:M.selectedClass.value,select:M==null?void 0:M.select,toggle:M==null?void 0:M.toggle,value:M==null?void 0:M.value.value,disabled:e.disabled}))!=null?F:e.text]),N&&P("div",{key:"append",class:"v-chip__append"},[r.append?P(ot,{key:"append-defaults",disabled:!R,defaults:{VAvatar:{end:!0,image:e.appendAvatar},VIcon:{end:!0,icon:e.appendIcon}}},r.append):P(Y1,null,[e.appendIcon&&P(Ze,{key:"append-icon",end:!0,icon:e.appendIcon},null),e.appendAvatar&&P(ho,{key:"append-avatar",end:!0,image:e.appendAvatar},null)])]),w&&P("button",V2({key:"close",class:"v-chip__close"},v.value),[r.close?P(ot,{key:"close-defaults",defaults:{VIcon:{icon:e.closeIcon,size:"x-small"}}},r.close):P(Ze,{key:"close-icon",icon:e.closeIcon,size:"x-small"},null)])]}}),[[k5("ripple"),_.value&&e.ripple,null]])}}});const Jp=Symbol.for("vuetify:list");function Ve1(){const e=H2(Jp,{hasPrepend:g2(!1),updateHasPrepend:()=>null}),t={hasPrepend:g2(!1),updateHasPrepend:i=>{i&&(t.hasPrepend.value=i)}};return X2(Jp,t),e}function Le1(){return H2(Jp,null)}const jz1={open:e=>{let{id:t,value:i,opened:a,parents:r}=e;if(i){const n=new Set;n.add(t);let o=r.get(t);for(;o!=null;)n.add(o),o=r.get(o);return n}else return a.delete(t),a},select:()=>null},He1={open:e=>{let{id:t,value:i,opened:a,parents:r}=e;if(i){let n=r.get(t);for(a.add(t);n!=null&&n!==t;)a.add(n),n=r.get(n);return a}else a.delete(t);return a},select:()=>null},Qz1={open:He1.open,select:e=>{let{id:t,value:i,opened:a,parents:r}=e;if(!i)return a;const n=[];let o=r.get(t);for(;o!=null;)n.push(o),o=r.get(o);return new Set(n)}},wH=e=>{const t={select:i=>{let{id:a,value:r,selected:n}=i;if(a=x2(a),e&&!r){const o=Array.from(n.entries()).reduce((s,l)=>{let[d,C]=l;return C==="on"?[...s,d]:s},[]);if(o.length===1&&o[0]===a)return n}return n.set(a,r?"on":"off"),n},in:(i,a,r)=>{let n=new Map;for(const o of i||[])n=t.select({id:o,value:!0,selected:new Map(n),children:a,parents:r});return n},out:i=>{const a=[];for(const[r,n]of i.entries())n==="on"&&a.push(r);return a}};return t},Me1=e=>{const t=wH(e);return{select:a=>{let{selected:r,id:n,...o}=a;n=x2(n);const s=r.has(n)?new Map([[n,r.get(n)]]):new Map;return t.select({...o,id:n,selected:s})},in:(a,r,n)=>{let o=new Map;return a!=null&&a.length&&(o=t.in(a.slice(0,1),r,n)),o},out:(a,r,n)=>t.out(a,r,n)}},Jz1=e=>{const t=wH(e);return{select:a=>{let{id:r,selected:n,children:o,...s}=a;return r=x2(r),o.has(r)?n:t.select({id:r,selected:n,children:o,...s})},in:t.in,out:t.out}},eZ1=e=>{const t=Me1(e);return{select:a=>{let{id:r,selected:n,children:o,...s}=a;return r=x2(r),o.has(r)?n:t.select({id:r,selected:n,children:o,...s})},in:t.in,out:t.out}},tZ1=e=>{const t={select:i=>{let{id:a,value:r,selected:n,children:o,parents:s}=i;a=x2(a);const l=new Map(n),d=[a];for(;d.length;){const m=d.shift();n.set(m,r?"on":"off"),o.has(m)&&d.push(...o.get(m))}let C=s.get(a);for(;C;){const m=o.get(C),u=m.every(V=>n.get(V)==="on"),p=m.every(V=>!n.has(V)||n.get(V)==="off");n.set(C,u?"on":p?"off":"indeterminate"),C=s.get(C)}return e&&!r&&Array.from(n.entries()).reduce((u,p)=>{let[V,f]=p;return f==="on"?[...u,V]:u},[]).length===0?l:n},in:(i,a,r)=>{let n=new Map;for(const o of i||[])n=t.select({id:o,value:!0,selected:new Map(n),children:a,parents:r});return n},out:(i,a)=>{const r=[];for(const[n,o]of i.entries())o==="on"&&!a.has(n)&&r.push(n);return r}};return t},Js=Symbol.for("vuetify:nested"),ge1={id:g2(),root:{register:()=>null,unregister:()=>null,parents:i1(new Map),children:i1(new Map),open:()=>null,openOnSelect:()=>null,select:()=>null,opened:i1(new Set),selected:i1(new Map),selectedValues:i1([])}},iZ1=k1({selectStrategy:[String,Function],openStrategy:[String,Object],opened:Array,selected:Array,mandatory:Boolean},"nested"),aZ1=e=>{let t=!1;const i=i1(new Map),a=i1(new Map),r=ue(e,"opened",e.opened,m=>new Set(m),m=>[...m.values()]),n=q(()=>{if(typeof e.selectStrategy=="object")return e.selectStrategy;switch(e.selectStrategy){case"single-leaf":return eZ1(e.mandatory);case"leaf":return Jz1(e.mandatory);case"independent":return wH(e.mandatory);case"single-independent":return Me1(e.mandatory);case"classic":default:return tZ1(e.mandatory)}}),o=q(()=>{if(typeof e.openStrategy=="object")return e.openStrategy;switch(e.openStrategy){case"list":return Qz1;case"single":return jz1;case"multiple":default:return He1}}),s=ue(e,"selected",e.selected,m=>n.value.in(m,i.value,a.value),m=>n.value.out(m,i.value,a.value));xe(()=>{t=!0});function l(m){const u=[];let p=m;for(;p!=null;)u.unshift(p),p=a.value.get(p);return u}const d=b5("nested"),C={id:g2(),root:{opened:r,selected:s,selectedValues:q(()=>{const m=[];for(const[u,p]of s.value.entries())p==="on"&&m.push(u);return m}),register:(m,u,p)=>{u&&m!==u&&a.value.set(m,u),p&&i.value.set(m,[]),u!=null&&i.value.set(u,[...i.value.get(u)||[],m])},unregister:m=>{var p;if(t)return;i.value.delete(m);const u=a.value.get(m);if(u){const V=(p=i.value.get(u))!=null?p:[];i.value.set(u,V.filter(f=>f!==m))}a.value.delete(m),r.value.delete(m)},open:(m,u,p)=>{d.emit("click:open",{id:m,value:u,path:l(m),event:p});const V=o.value.open({id:m,value:u,opened:new Set(r.value),children:i.value,parents:a.value,event:p});V&&(r.value=V)},openOnSelect:(m,u,p)=>{const V=o.value.select({id:m,value:u,selected:new Map(s.value),opened:new Set(r.value),children:i.value,parents:a.value,event:p});V&&(r.value=V)},select:(m,u,p)=>{d.emit("click:select",{id:m,value:u,path:l(m),event:p});const V=n.value.select({id:m,value:u,selected:new Map(s.value),children:i.value,parents:a.value,event:p});V&&(s.value=V),C.root.openOnSelect(m,u,p)},children:i,parents:a}};return X2(Js,C),C.root},Ae1=(e,t)=>{const i=H2(Js,ge1),a=Symbol(x0()),r=q(()=>e.value!==void 0?e.value:a),n={...i,id:r,open:(o,s)=>i.root.open(r.value,o,s),openOnSelect:(o,s)=>i.root.openOnSelect(r.value,o,s),isOpen:q(()=>i.root.opened.value.has(r.value)),parent:q(()=>i.root.parents.value.get(r.value)),select:(o,s)=>i.root.select(r.value,o,s),isSelected:q(()=>i.root.selected.value.get(x2(r.value))==="on"),isIndeterminate:q(()=>i.root.selected.value.get(r.value)==="indeterminate"),isLeaf:q(()=>!i.root.children.value.get(r.value)),isGroupActivator:i.isGroupActivator};return!i.isGroupActivator&&i.root.register(r.value,i.id.value,t),xe(()=>{!i.isGroupActivator&&i.root.unregister(r.value)}),t&&X2(Js,n),n},rZ1=()=>{const e=H2(Js,ge1);X2(Js,{...e,isGroupActivator:!0})};function TH(){const e=g2(!1);return ee(()=>{window.requestAnimationFrame(()=>{e.value=!0})}),{ssrBootStyles:q(()=>e.value?void 0:{transition:"none !important"}),isBooted:yo(e)}}const nZ1=Gi({name:"VListGroupActivator",setup(e,t){let{slots:i}=t;return rZ1(),()=>{var a;return(a=i.default)==null?void 0:a.call(i)}}}),oZ1=k1({activeColor:String,baseColor:String,color:String,collapseIcon:{type:Ce,default:"$collapse"},expandIcon:{type:Ce,default:"$expand"},prependIcon:Ce,appendIcon:Ce,fluid:Boolean,subgroup:Boolean,title:String,value:null,...F2(),...T5()},"VListGroup"),V_=h2()({name:"VListGroup",props:oZ1(),setup(e,t){let{slots:i}=t;const{isOpen:a,open:r,id:n}=Ae1(t2(e,"value"),!0),o=q(()=>`v-list-group--id-${String(n.value)}`),s=Le1(),{isBooted:l}=TH();function d(p){r(!a.value,p)}const C=q(()=>({onClick:d,class:"v-list-group__header",id:o.value})),m=q(()=>a.value?e.collapseIcon:e.expandIcon),u=q(()=>({VListItem:{active:a.value,activeColor:e.activeColor,baseColor:e.baseColor,color:e.color,prependIcon:e.prependIcon||e.subgroup&&m.value,appendIcon:e.appendIcon||!e.subgroup&&m.value,title:e.title,value:e.value}}));return M2(()=>P(e.tag,{class:["v-list-group",{"v-list-group--prepend":s==null?void 0:s.hasPrepend.value,"v-list-group--fluid":e.fluid,"v-list-group--subgroup":e.subgroup,"v-list-group--open":a.value},e.class],style:e.style},{default:()=>[i.activator&&P(ot,{defaults:u.value},{default:()=>[P(nZ1,null,{default:()=>[i.activator({props:C.value,isOpen:a.value})]})]}),P(g4,{transition:{component:ne1},disabled:!l.value},{default:()=>{var p;return[N2(P("div",{class:"v-list-group__items",role:"group","aria-labelledby":o.value},[(p=i.default)==null?void 0:p.call(i)]),[[Ut,a.value]])]}})]})),{}}});const sZ1=bo("v-list-item-subtitle"),lZ1=bo("v-list-item-title"),cZ1=k1({active:{type:Boolean,default:void 0},activeClass:String,activeColor:String,appendAvatar:String,appendIcon:Ce,baseColor:String,disabled:Boolean,lines:String,link:{type:Boolean,default:void 0},nav:Boolean,prependAvatar:String,prependIcon:Ce,ripple:{type:[Boolean,Object],default:!0},slim:Boolean,subtitle:[String,Number],title:[String,Number],value:null,onClick:E0(),onClickOnce:E0(),...Pa(),...F2(),...fi(),...ar(),...Xi(),...p0(),...nm(),...T5(),...p5(),...Ea({variant:"text"})},"VListItem"),ha=h2()({name:"VListItem",directives:{Ripple:Fn},props:cZ1(),emits:{click:e=>!0},setup(e,t){let{attrs:i,slots:a,emit:r}=t;const n=rm(e,i),o=q(()=>e.value===void 0?n.href.value:e.value),{select:s,isSelected:l,isIndeterminate:d,isGroupActivator:C,root:m,parent:u,openOnSelect:p}=Ae1(o,!1),V=Le1(),f=q(()=>{var W;return e.active!==!1&&(e.active||((W=n.isActive)==null?void 0:W.value)||l.value)}),M=q(()=>e.link!==!1&&n.isLink.value),H=q(()=>!e.disabled&&e.link!==!1&&(e.link||n.isClickable.value||e.value!=null&&!!V)),g=q(()=>e.rounded||e.nav),_=q(()=>{var W;return(W=e.color)!=null?W:e.activeColor}),v=q(()=>{var W;return{color:f.value&&(W=_.value)!=null?W:e.baseColor,variant:e.variant}});T1(()=>{var W;return(W=n.isActive)==null?void 0:W.value},W=>{W&&u.value!=null&&m.open(u.value,!0),W&&p(W)},{immediate:!0});const{themeClasses:S}=N5(e),{borderClasses:y}=nr(e),{colorClasses:D,colorStyles:R,variantClasses:N}=k8(v),{densityClasses:w}=I3(e),{dimensionStyles:x}=rr(e),{elevationClasses:U}=O3(e),{roundedClasses:E}=F0(g),O=q(()=>e.lines?`v-list-item--${e.lines}-line`:void 0),z=q(()=>({isActive:f.value,select:s,isSelected:l.value,isIndeterminate:d.value}));function F(W){var r1;r("click",W),!(C||!H.value)&&((r1=n.navigate)==null||r1.call(n,W),e.value!=null&&s(!l.value,W))}function J(W){(W.key==="Enter"||W.key===" ")&&(W.preventDefault(),F(W))}return M2(()=>{const W=M.value?"a":e.tag,r1=a.title||e.title!=null,$=a.subtitle||e.subtitle!=null,t1=!!(e.appendAvatar||e.appendIcon),l1=!!(t1||a.append),V1=!!(e.prependAvatar||e.prependIcon),A1=!!(V1||a.prepend);return V==null||V.updateHasPrepend(A1),e.activeColor&&eF1("active-color",["color","base-color"]),N2(P(W,{class:["v-list-item",{"v-list-item--active":f.value,"v-list-item--disabled":e.disabled,"v-list-item--link":H.value,"v-list-item--nav":e.nav,"v-list-item--prepend":!A1&&(V==null?void 0:V.hasPrepend.value),"v-list-item--slim":e.slim,[`${e.activeClass}`]:e.activeClass&&f.value},S.value,y.value,D.value,w.value,U.value,O.value,E.value,N.value,e.class],style:[R.value,x.value,e.style],href:n.href.value,tabindex:H.value?V?-2:0:void 0,onClick:F,onKeydown:H.value&&!M.value&&J},{default:()=>{var n1;return[F8(H.value||f.value,"v-list-item"),A1&&P("div",{key:"prepend",class:"v-list-item__prepend"},[a.prepend?P(ot,{key:"prepend-defaults",disabled:!V1,defaults:{VAvatar:{density:e.density,image:e.prependAvatar},VIcon:{density:e.density,icon:e.prependIcon},VListItemAction:{start:!0}}},{default:()=>{var M1;return[(M1=a.prepend)==null?void 0:M1.call(a,z.value)]}}):P(Y1,null,[e.prependAvatar&&P(ho,{key:"prepend-avatar",density:e.density,image:e.prependAvatar},null),e.prependIcon&&P(Ze,{key:"prepend-icon",density:e.density,icon:e.prependIcon},null)]),P("div",{class:"v-list-item__spacer"},null)]),P("div",{class:"v-list-item__content","data-no-activator":""},[r1&&P(lZ1,{key:"title"},{default:()=>{var M1,X;return[(X=(M1=a.title)==null?void 0:M1.call(a,{title:e.title}))!=null?X:e.title]}}),$&&P(sZ1,{key:"subtitle"},{default:()=>{var M1,X;return[(X=(M1=a.subtitle)==null?void 0:M1.call(a,{subtitle:e.subtitle}))!=null?X:e.subtitle]}}),(n1=a.default)==null?void 0:n1.call(a,z.value)]),l1&&P("div",{key:"append",class:"v-list-item__append"},[a.append?P(ot,{key:"append-defaults",disabled:!t1,defaults:{VAvatar:{density:e.density,image:e.appendAvatar},VIcon:{density:e.density,icon:e.appendIcon},VListItemAction:{end:!0}}},{default:()=>{var M1;return[(M1=a.append)==null?void 0:M1.call(a,z.value)]}}):P(Y1,null,[e.appendIcon&&P(Ze,{key:"append-icon",density:e.density,icon:e.appendIcon},null),e.appendAvatar&&P(ho,{key:"append-avatar",density:e.density,image:e.appendAvatar},null)]),P("div",{class:"v-list-item__spacer"},null)])]}}),[[k5("ripple"),H.value&&e.ripple]])}),{}}}),dZ1=k1({color:String,inset:Boolean,sticky:Boolean,title:String,...F2(),...T5()},"VListSubheader"),CZ1=h2()({name:"VListSubheader",props:dZ1(),setup(e,t){let{slots:i}=t;const{textColorClasses:a,textColorStyles:r}=Bi(t2(e,"color"));return M2(()=>{const n=!!(i.default||e.title);return P(e.tag,{class:["v-list-subheader",{"v-list-subheader--inset":e.inset,"v-list-subheader--sticky":e.sticky},a.value,e.class],style:[{textColorStyles:r},e.style]},{default:()=>{var o,s;return[n&&P("div",{class:"v-list-subheader__text"},[(s=(o=i.default)==null?void 0:o.call(i))!=null?s:e.title])]}})}),{}}}),mZ1=k1({items:Array,returnObject:Boolean},"VListChildren"),ve1=h2()({name:"VListChildren",props:mZ1(),setup(e,t){let{slots:i}=t;return Ve1(),()=>{var a,r,n;return(n=(a=i.default)==null?void 0:a.call(i))!=null?n:(r=e.items)==null?void 0:r.map(o=>{var p,V,f,M;let{children:s,props:l,type:d,raw:C}=o;if(d==="divider")return(V=(p=i.divider)==null?void 0:p.call(i,{props:l}))!=null?V:P(Qs,l,null);if(d==="subheader")return(M=(f=i.subheader)==null?void 0:f.call(i,{props:l}))!=null?M:P(CZ1,l,null);const m={subtitle:i.subtitle?H=>{var g;return(g=i.subtitle)==null?void 0:g.call(i,{...H,item:C})}:void 0,prepend:i.prepend?H=>{var g;return(g=i.prepend)==null?void 0:g.call(i,{...H,item:C})}:void 0,append:i.append?H=>{var g;return(g=i.append)==null?void 0:g.call(i,{...H,item:C})}:void 0,title:i.title?H=>{var g;return(g=i.title)==null?void 0:g.call(i,{...H,item:C})}:void 0},u=V_.filterProps(l);return s?P(V_,V2({value:l==null?void 0:l.value},u),{activator:H=>{let{props:g}=H;const _={...l,...g,value:e.returnObject?C:l.value};return i.header?i.header({props:_}):P(ha,_,m)},default:()=>P(ve1,{items:s},i)}):i.item?i.item({props:l}):P(ha,V2(l,{value:e.returnObject?C:l.value}),m)})}}}),_e1=k1({items:{type:Array,default:()=>[]},itemTitle:{type:[String,Array,Function],default:"title"},itemValue:{type:[String,Array,Function],default:"value"},itemChildren:{type:[Boolean,String,Array,Function],default:"children"},itemProps:{type:[Boolean,String,Array,Function],default:"props"},returnObject:Boolean,valueComparator:{type:Function,default:wa}},"list-items");function Kr(e,t){var s;const i=Jt(t,e.itemTitle,t),a=Jt(t,e.itemValue,i),r=Jt(t,e.itemChildren),n=e.itemProps===!0?typeof t=="object"&&t!=null&&!Array.isArray(t)?"children"in t?Ta(t,["children"]):t:void 0:Jt(t,e.itemProps),o={title:i,value:a,...n};return{title:String((s=o.title)!=null?s:""),value:o.value,props:o,children:Array.isArray(r)?Se1(e,r):void 0,raw:t}}function Se1(e,t){const i=[];for(const a of t)i.push(Kr(e,a));return i}function De1(e){const t=q(()=>Se1(e,e.items)),i=q(()=>t.value.some(n=>n.value===null));function a(n){return i.value||(n=n.filter(o=>o!==null)),n.map(o=>e.returnObject&&typeof o=="string"?Kr(e,o):t.value.find(s=>e.valueComparator(o,s.value))||Kr(e,o))}function r(n){return e.returnObject?n.map(o=>{let{raw:s}=o;return s}):n.map(o=>{let{value:s}=o;return s})}return{items:t,transformIn:a,transformOut:r}}function uZ1(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function hZ1(e,t){const i=Jt(t,e.itemType,"item"),a=uZ1(t)?t:Jt(t,e.itemTitle),r=Jt(t,e.itemValue,void 0),n=Jt(t,e.itemChildren),o=e.itemProps===!0?Ta(t,["children"]):Jt(t,e.itemProps),s={title:a,value:r,...o};return{type:i,title:s.title,value:s.value,props:s,children:i==="item"&&n?ye1(e,n):void 0,raw:t}}function ye1(e,t){const i=[];for(const a of t)i.push(hZ1(e,a));return i}function pZ1(e){return{items:q(()=>ye1(e,e.items))}}const fZ1=k1({baseColor:String,activeColor:String,activeClass:String,bgColor:String,disabled:Boolean,lines:{type:[Boolean,String],default:"one"},slim:Boolean,nav:Boolean,...iZ1({selectStrategy:"single-leaf",openStrategy:"list"}),...Pa(),...F2(),...fi(),...ar(),...Xi(),itemType:{type:String,default:"type"},..._e1(),...p0(),...T5(),...p5(),...Ea({variant:"text"})},"VList"),Ld=h2()({name:"VList",props:fZ1(),emits:{"update:selected":e=>!0,"update:opened":e=>!0,"click:open":e=>!0,"click:select":e=>!0},setup(e,t){let{slots:i}=t;const{items:a}=pZ1(e),{themeClasses:r}=N5(e),{backgroundColorClasses:n,backgroundColorStyles:o}=d0(t2(e,"bgColor")),{borderClasses:s}=nr(e),{densityClasses:l}=I3(e),{dimensionStyles:d}=rr(e),{elevationClasses:C}=O3(e),{roundedClasses:m}=F0(e),{open:u,select:p}=aZ1(e),V=q(()=>e.lines?`v-list--${e.lines}-line`:void 0),f=t2(e,"activeColor"),M=t2(e,"baseColor"),H=t2(e,"color");Ve1(),I0({VListGroup:{activeColor:f,baseColor:M,color:H},VListItem:{activeClass:t2(e,"activeClass"),activeColor:f,baseColor:M,color:H,density:t2(e,"density"),disabled:t2(e,"disabled"),lines:t2(e,"lines"),nav:t2(e,"nav"),slim:t2(e,"slim"),variant:t2(e,"variant")}});const g=g2(!1),_=i1();function v(N){g.value=!0}function S(N){g.value=!1}function y(N){var w;!g.value&&!(N.relatedTarget&&((w=_.value)==null?void 0:w.contains(N.relatedTarget)))&&R()}function D(N){if(!!_.value){if(N.key==="ArrowDown")R("next");else if(N.key==="ArrowUp")R("prev");else if(N.key==="Home")R("first");else if(N.key==="End")R("last");else return;N.preventDefault()}}function R(N){if(_.value)return td(_.value,N)}return M2(()=>P(e.tag,{ref:_,class:["v-list",{"v-list--disabled":e.disabled,"v-list--nav":e.nav},r.value,n.value,s.value,l.value,C.value,V.value,m.value,e.class],style:[o.value,d.value,e.style],tabindex:e.disabled||g.value?-1:0,role:"listbox","aria-activedescendant":void 0,onFocusin:v,onFocusout:S,onFocus:y,onKeydown:D},{default:()=>[P(ve1,{items:a.value,returnObject:e.returnObject},i)]})),{open:u,select:p,focus:R}}});function Ou(e,t){return{x:e.x+t.x,y:e.y+t.y}}function VZ1(e,t){return{x:e.x-t.x,y:e.y-t.y}}function L_(e,t){if(e.side==="top"||e.side==="bottom"){const{side:i,align:a}=e,r=a==="left"?0:a==="center"?t.width/2:a==="right"?t.width:a,n=i==="top"?0:i==="bottom"?t.height:i;return Ou({x:r,y:n},t)}else if(e.side==="left"||e.side==="right"){const{side:i,align:a}=e,r=i==="left"?0:i==="right"?t.width:i,n=a==="top"?0:a==="center"?t.height/2:a==="bottom"?t.height:a;return Ou({x:r,y:n},t)}return Ou({x:t.width/2,y:t.height/2},t)}const Re1={static:MZ1,connected:AZ1},LZ1=k1({locationStrategy:{type:[String,Function],default:"static",validator:e=>typeof e=="function"||e in Re1},location:{type:String,default:"bottom"},origin:{type:String,default:"auto"},offset:[Number,String,Array]},"VOverlay-location-strategies");function HZ1(e,t){const i=i1({}),a=i1();ze&&M3(()=>!!(t.isActive.value&&e.locationStrategy),n=>{var o,s;T1(()=>e.locationStrategy,n),j5(()=>{window.removeEventListener("resize",r),a.value=void 0}),window.addEventListener("resize",r,{passive:!0}),typeof e.locationStrategy=="function"?a.value=(o=e.locationStrategy(t,e,i))==null?void 0:o.updateLocation:a.value=(s=Re1[e.locationStrategy](t,e,i))==null?void 0:s.updateLocation});function r(n){var o;(o=a.value)==null||o.call(a,n)}return{contentStyles:i,updateLocation:a}}function MZ1(){}function gZ1(e,t){t?e.style.removeProperty("left"):e.style.removeProperty("right");const i=cH(e);return t?i.x+=parseFloat(e.style.right||0):i.x-=parseFloat(e.style.left||0),i.y-=parseFloat(e.style.top||0),i}function AZ1(e,t,i){(Array.isArray(e.target.value)||gF1(e.target.value))&&Object.assign(i.value,{position:"fixed",top:0,[e.isRtl.value?"right":"left"]:0});const{preferredAnchor:r,preferredOrigin:n}=sH(()=>{const V=Op(t.location,e.isRtl.value),f=t.origin==="overlap"?V:t.origin==="auto"?yu(V):Op(t.origin,e.isRtl.value);return V.side===f.side&&V.align===Ru(f).align?{preferredAnchor:bv(V),preferredOrigin:bv(f)}:{preferredAnchor:V,preferredOrigin:f}}),[o,s,l,d]=["minWidth","minHeight","maxWidth","maxHeight"].map(V=>q(()=>{const f=parseFloat(t[V]);return isNaN(f)?1/0:f})),C=q(()=>{if(Array.isArray(t.offset))return t.offset;if(typeof t.offset=="string"){const V=t.offset.split(" ").map(parseFloat);return V.length<2&&V.push(0),V}return typeof t.offset=="number"?[t.offset,0]:[0,0]});let m=!1;const u=new ResizeObserver(()=>{m&&p()});T1([e.target,e.contentEl],(V,f)=>{let[M,H]=V,[g,_]=f;g&&!Array.isArray(g)&&u.unobserve(g),M&&!Array.isArray(M)&&u.observe(M),_&&u.unobserve(_),H&&u.observe(H)},{immediate:!0}),j5(()=>{u.disconnect()});function p(){if(m=!1,requestAnimationFrame(()=>{requestAnimationFrame(()=>m=!0)}),!e.target.value||!e.contentEl.value)return;const V=Ck(e.target.value),f=gZ1(e.contentEl.value,e.isRtl.value),M=nd(e.contentEl.value),H=12;M.length||(M.push(document.documentElement),e.contentEl.value.style.top&&e.contentEl.value.style.left||(f.x-=parseFloat(document.documentElement.style.getPropertyValue("--v-body-scroll-x")||0),f.y-=parseFloat(document.documentElement.style.getPropertyValue("--v-body-scroll-y")||0)));const g=M.reduce((x,U)=>{const E=U.getBoundingClientRect(),O=new on({x:U===document.documentElement?0:E.x,y:U===document.documentElement?0:E.y,width:U.clientWidth,height:U.clientHeight});return x?new on({x:Math.max(x.left,O.left),y:Math.max(x.top,O.top),width:Math.min(x.right,O.right)-Math.max(x.left,O.left),height:Math.min(x.bottom,O.bottom)-Math.max(x.top,O.top)}):O},void 0);g.x+=H,g.y+=H,g.width-=H*2,g.height-=H*2;let _={anchor:r.value,origin:n.value};function v(x){const U=new on(f),E=L_(x.anchor,V),O=L_(x.origin,U);let{x:z,y:F}=VZ1(E,O);switch(x.anchor.side){case"top":F-=C.value[0];break;case"bottom":F+=C.value[0];break;case"left":z-=C.value[0];break;case"right":z+=C.value[0];break}switch(x.anchor.align){case"top":F-=C.value[1];break;case"bottom":F+=C.value[1];break;case"left":z-=C.value[1];break;case"right":z+=C.value[1];break}return U.x+=z,U.y+=F,U.width=Math.min(U.width,l.value),U.height=Math.min(U.height,d.value),{overflows:wv(U,g),x:z,y:F}}let S=0,y=0;const D={x:0,y:0},R={x:!1,y:!1};let N=-1;for(;!(N++>10);){const{x,y:U,overflows:E}=v(_);S+=x,y+=U,f.x+=x,f.y+=U;{const O=Nv(_.anchor),z=E.x.before||E.x.after,F=E.y.before||E.y.after;let J=!1;if(["x","y"].forEach(W=>{if(W==="x"&&z&&!R.x||W==="y"&&F&&!R.y){const r1={anchor:{..._.anchor},origin:{..._.origin}},$=W==="x"?O==="y"?Ru:yu:O==="y"?yu:Ru;r1.anchor=$(r1.anchor),r1.origin=$(r1.origin);const{overflows:t1}=v(r1);(t1[W].before<=E[W].before&&t1[W].after<=E[W].after||t1[W].before+t1[W].after<(E[W].before+E[W].after)/2)&&(_=r1,J=R[W]=!0)}}),J)continue}E.x.before&&(S+=E.x.before,f.x+=E.x.before),E.x.after&&(S-=E.x.after,f.x-=E.x.after),E.y.before&&(y+=E.y.before,f.y+=E.y.before),E.y.after&&(y-=E.y.after,f.y-=E.y.after);{const O=wv(f,g);D.x=g.width-O.x.before-O.x.after,D.y=g.height-O.y.before-O.y.after,S+=O.x.before,f.x+=O.x.before,y+=O.y.before,f.y+=O.y.before}break}const w=Nv(_.anchor);return Object.assign(i.value,{"--v-overlay-anchor-origin":`${_.anchor.side} ${_.anchor.align}`,transformOrigin:`${_.origin.side} ${_.origin.align}`,top:f2(Uu(y)),left:e.isRtl.value?void 0:f2(Uu(S)),right:e.isRtl.value?f2(Uu(-S)):void 0,minWidth:f2(w==="y"?Math.min(o.value,V.width):o.value),maxWidth:f2(H_(xt(D.x,o.value===1/0?0:o.value,l.value))),maxHeight:f2(H_(xt(D.y,s.value===1/0?0:s.value,d.value)))}),{available:D,contentBox:f}}return T1(()=>[r.value,n.value,t.offset,t.minWidth,t.minHeight,t.maxWidth,t.maxHeight],()=>p()),k2(()=>{const V=p();if(!V)return;const{available:f,contentBox:M}=V;M.height>f.y&&requestAnimationFrame(()=>{p(),requestAnimationFrame(()=>{p()})})}),{updateLocation:p}}function Uu(e){return Math.round(e*devicePixelRatio)/devicePixelRatio}function H_(e){return Math.ceil(e*devicePixelRatio)/devicePixelRatio}let ef=!0;const Hd=[];function vZ1(e){!ef||Hd.length?(Hd.push(e),tf()):(ef=!1,e(),tf())}let M_=-1;function tf(){cancelAnimationFrame(M_),M_=requestAnimationFrame(()=>{const e=Hd.shift();e&&e(),Hd.length?tf():ef=!0})}const ic={none:null,close:DZ1,block:yZ1,reposition:RZ1},_Z1=k1({scrollStrategy:{type:[String,Function],default:"block",validator:e=>typeof e=="function"||e in ic}},"VOverlay-scroll-strategies");function SZ1(e,t){if(!ze)return;let i;c0(async()=>{i==null||i.stop(),t.isActive.value&&e.scrollStrategy&&(i=_o(),await k2(),i.active&&i.run(()=>{var a;typeof e.scrollStrategy=="function"?e.scrollStrategy(t,e,i):(a=ic[e.scrollStrategy])==null||a.call(ic,t,e,i)}))}),j5(()=>{i==null||i.stop()})}function DZ1(e){var i;function t(a){e.isActive.value=!1}be1((i=e.targetEl.value)!=null?i:e.contentEl.value,t)}function yZ1(e,t){var o;const i=(o=e.root.value)==null?void 0:o.offsetParent,a=[...new Set([...nd(e.targetEl.value,t.contained?i:void 0),...nd(e.contentEl.value,t.contained?i:void 0)])].filter(s=>!s.classList.contains("v-overlay-scroll-blocked")),r=window.innerWidth-document.documentElement.offsetWidth,n=(s=>uH(s)&&s)(i||document.documentElement);n&&e.root.value.classList.add("v-overlay--scroll-blocked"),a.forEach((s,l)=>{s.style.setProperty("--v-body-scroll-x",f2(-s.scrollLeft)),s.style.setProperty("--v-body-scroll-y",f2(-s.scrollTop)),s!==document.documentElement&&s.style.setProperty("--v-scrollbar-offset",f2(r)),s.classList.add("v-overlay-scroll-blocked")}),j5(()=>{a.forEach((s,l)=>{const d=parseFloat(s.style.getPropertyValue("--v-body-scroll-x")),C=parseFloat(s.style.getPropertyValue("--v-body-scroll-y"));s.style.removeProperty("--v-body-scroll-x"),s.style.removeProperty("--v-body-scroll-y"),s.style.removeProperty("--v-scrollbar-offset"),s.classList.remove("v-overlay-scroll-blocked"),s.scrollLeft=-d,s.scrollTop=-C}),n&&e.root.value.classList.remove("v-overlay--scroll-blocked")})}function RZ1(e,t,i){let a=!1,r=-1,n=-1;function o(s){vZ1(()=>{var C,m;const l=performance.now();(m=(C=e.updateLocation).value)==null||m.call(C,s),a=(performance.now()-l)/(1e3/60)>2})}n=(typeof requestIdleCallback>"u"?s=>s():requestIdleCallback)(()=>{i.run(()=>{var s;be1((s=e.targetEl.value)!=null?s:e.contentEl.value,l=>{a?(cancelAnimationFrame(r),r=requestAnimationFrame(()=>{r=requestAnimationFrame(()=>{o(l)})})):o(l)})})}),j5(()=>{typeof cancelIdleCallback<"u"&&cancelIdleCallback(n),cancelAnimationFrame(r)})}function be1(e,t){const i=[document,...nd(e)];i.forEach(a=>{a.addEventListener("scroll",t,{passive:!0})}),j5(()=>{i.forEach(a=>{a.removeEventListener("scroll",t)})})}const af=Symbol.for("vuetify:v-menu"),bZ1=k1({closeDelay:[Number,String],openDelay:[Number,String]},"delay");function NZ1(e,t){const i={},a=r=>()=>{if(!ze)return Promise.resolve(!0);const n=r==="openDelay";return i.closeDelay&&window.clearTimeout(i.closeDelay),delete i.closeDelay,i.openDelay&&window.clearTimeout(i.openDelay),delete i.openDelay,new Promise(o=>{var l;const s=parseInt((l=e[r])!=null?l:0,10);i[r]=window.setTimeout(()=>{t==null||t(n),o(n)},s)})};return{runCloseDelay:a("closeDelay"),runOpenDelay:a("openDelay")}}const wZ1=k1({target:[String,Object],activator:[String,Object],activatorProps:{type:Object,default:()=>({})},openOnClick:{type:Boolean,default:void 0},openOnHover:Boolean,openOnFocus:{type:Boolean,default:void 0},closeOnContentClick:Boolean,...bZ1()},"VOverlay-activator");function TZ1(e,t){let{isActive:i,isTop:a}=t;const r=b5("useActivator"),n=i1();let o=!1,s=!1,l=!0;const d=q(()=>e.openOnFocus||e.openOnFocus==null&&e.openOnHover),C=q(()=>e.openOnClick||e.openOnClick==null&&!e.openOnHover&&!d.value),{runOpenDelay:m,runCloseDelay:u}=NZ1(e,D=>{D===(e.openOnHover&&o||d.value&&s)&&!(e.openOnHover&&i.value&&!a.value)&&(i.value!==D&&(l=!0),i.value=D)}),p=i1(),V={onClick:D=>{D.stopPropagation(),n.value=D.currentTarget||D.target,i.value||(p.value=[D.clientX,D.clientY]),i.value=!i.value},onMouseenter:D=>{var R;(R=D.sourceCapabilities)!=null&&R.firesTouchEvents||(o=!0,n.value=D.currentTarget||D.target,m())},onMouseleave:D=>{o=!1,u()},onFocus:D=>{id(D.target,":focus-visible")!==!1&&(s=!0,D.stopPropagation(),n.value=D.currentTarget||D.target,m())},onBlur:D=>{s=!1,D.stopPropagation(),u()}},f=q(()=>{const D={};return C.value&&(D.onClick=V.onClick),e.openOnHover&&(D.onMouseenter=V.onMouseenter,D.onMouseleave=V.onMouseleave),d.value&&(D.onFocus=V.onFocus,D.onBlur=V.onBlur),D}),M=q(()=>{const D={};if(e.openOnHover&&(D.onMouseenter=()=>{o=!0,m()},D.onMouseleave=()=>{o=!1,u()}),d.value&&(D.onFocusin=()=>{s=!0,m()},D.onFocusout=()=>{s=!1,u()}),e.closeOnContentClick){const R=H2(af,null);D.onClick=()=>{i.value=!1,R==null||R.closeParents()}}return D}),H=q(()=>{const D={};return e.openOnHover&&(D.onMouseenter=()=>{l&&(o=!0,l=!1,m())},D.onMouseleave=()=>{o=!1,u()}),D});T1(a,D=>{D&&(e.openOnHover&&!o&&(!d.value||!s)||d.value&&!s&&(!e.openOnHover||!o))&&(i.value=!1)}),T1(i,D=>{D||setTimeout(()=>{p.value=void 0})},{flush:"post"});const g=i1();c0(()=>{!g.value||k2(()=>{n.value=Qc(g.value)})});const _=i1(),v=q(()=>e.target==="cursor"&&p.value?p.value:_.value?Qc(_.value):Ne1(e.target,r)||n.value),S=q(()=>Array.isArray(v.value)?void 0:v.value);let y;return T1(()=>!!e.activator,D=>{D&&ze?(y=_o(),y.run(()=>{EZ1(e,r,{activatorEl:n,activatorEvents:f})})):y&&y.stop()},{flush:"post",immediate:!0}),j5(()=>{y==null||y.stop()}),{activatorEl:n,activatorRef:g,target:v,targetEl:S,targetRef:_,activatorEvents:f,contentEvents:M,scrimEvents:H}}function EZ1(e,t,i){let{activatorEl:a,activatorEvents:r}=i;T1(()=>e.activator,(l,d)=>{if(d&&l!==d){const C=s(d);C&&o(C)}l&&k2(()=>n())},{immediate:!0}),T1(()=>e.activatorProps,()=>{n()}),j5(()=>{o()});function n(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:s(),d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.activatorProps;!l||Wx1(l,V2(r.value,d))}function o(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:s(),d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.activatorProps;!l||Xx1(l,V2(r.value,d))}function s(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:e.activator;const d=Ne1(l,t);return a.value=(d==null?void 0:d.nodeType)===Node.ELEMENT_NODE?d:void 0,a.value}}function Ne1(e,t){var a,r;if(!e)return;let i;if(e==="parent"){let n=(r=(a=t==null?void 0:t.proxy)==null?void 0:a.$el)==null?void 0:r.parentNode;for(;n!=null&&n.hasAttribute("data-no-activator");)n=n.parentNode;i=n}else typeof e=="string"?i=document.querySelector(e):"$el"in e?i=e.$el:i=e;return i}function PZ1(){if(!ze)return g2(!1);const{ssr:e}=I8();if(e){const t=g2(!1);return ee(()=>{t.value=!0}),t}else return g2(!0)}const EH=k1({eager:Boolean},"lazy");function we1(e,t){const i=g2(!1),a=q(()=>i.value||e.eager||t.value);T1(t,()=>i.value=!0);function r(){e.eager||(i.value=!1)}return{isBooted:i,hasContent:a,onAfterLeave:r}}function om(){const t=b5("useScopeId").vnode.scopeId;return{scopeId:t?{[t]:""}:void 0}}const g_=Symbol.for("vuetify:stack"),H7=$2([]);function IZ1(e,t,i){const a=b5("useStack"),r=!i,n=H2(g_,void 0),o=$2({activeChildren:new Set});X2(g_,o);const s=g2(+t.value);M3(e,()=>{var m;const C=(m=H7.at(-1))==null?void 0:m[1];s.value=C?C+10:+t.value,r&&H7.push([a.uid,s.value]),n==null||n.activeChildren.add(a.uid),j5(()=>{if(r){const u=x2(H7).findIndex(p=>p[0]===a.uid);H7.splice(u,1)}n==null||n.activeChildren.delete(a.uid)})});const l=g2(!0);r&&c0(()=>{var m;const C=((m=H7.at(-1))==null?void 0:m[0])===a.uid;setTimeout(()=>l.value=C)});const d=q(()=>!o.activeChildren.size);return{globalTop:yo(l),localTop:d,stackStyles:q(()=>({zIndex:s.value}))}}function OZ1(e){return{teleportTarget:q(()=>{const i=e.value;if(i===!0||!ze)return;const a=i===!1?document.body:typeof i=="string"?document.querySelector(i):i;if(a==null)return;let r=a.querySelector(":scope > .v-overlay-container");return r||(r=document.createElement("div"),r.className="v-overlay-container",a.appendChild(r)),r})}}function UZ1(){return!0}function Te1(e,t,i){if(!e||Ee1(e,i)===!1)return!1;const a=vk(t);if(typeof ShadowRoot<"u"&&a instanceof ShadowRoot&&a.host===e.target)return!1;const r=(typeof i.value=="object"&&i.value.include||(()=>[]))();return r.push(t),!r.some(n=>n==null?void 0:n.contains(e.target))}function Ee1(e,t){return(typeof t.value=="object"&&t.value.closeConditional||UZ1)(e)}function xZ1(e,t,i){const a=typeof i.value=="function"?i.value:i.value.handler;t._clickOutside.lastMousedownWasOutside&&Te1(e,t,i)&&setTimeout(()=>{Ee1(e,i)&&a&&a(e)},0)}function A_(e,t){const i=vk(e);t(document),typeof ShadowRoot<"u"&&i instanceof ShadowRoot&&t(i)}const FZ1={mounted(e,t){const i=r=>xZ1(r,e,t),a=r=>{e._clickOutside.lastMousedownWasOutside=Te1(r,e,t)};A_(e,r=>{r.addEventListener("click",i,!0),r.addEventListener("mousedown",a,!0)}),e._clickOutside||(e._clickOutside={lastMousedownWasOutside:!1}),e._clickOutside[t.instance.$.uid]={onClick:i,onMousedown:a}},unmounted(e,t){!e._clickOutside||(A_(e,i=>{var n;if(!i||!((n=e._clickOutside)!=null&&n[t.instance.$.uid]))return;const{onClick:a,onMousedown:r}=e._clickOutside[t.instance.$.uid];i.removeEventListener("click",a,!0),i.removeEventListener("mousedown",r,!0)}),delete e._clickOutside[t.instance.$.uid])}};function kZ1(e){const{modelValue:t,color:i,...a}=e;return P(q5,{name:"fade-transition",appear:!0},{default:()=>[e.modelValue&&P("div",V2({class:["v-overlay__scrim",e.color.backgroundColorClasses.value],style:e.color.backgroundColorStyles.value},a),null)]})}const PH=k1({absolute:Boolean,attach:[Boolean,String,Object],closeOnBack:{type:Boolean,default:!0},contained:Boolean,contentClass:null,contentProps:null,disabled:Boolean,noClickAnimation:Boolean,modelValue:Boolean,persistent:Boolean,scrim:{type:[Boolean,String],default:!0},zIndex:{type:[Number,String],default:2e3},...wZ1(),...F2(),...ar(),...EH(),...LZ1(),..._Z1(),...p5(),...Io()},"VOverlay"),Md=h2()({name:"VOverlay",directives:{ClickOutside:FZ1},inheritAttrs:!1,props:{_disableGlobalStack:Boolean,...PH()},emits:{"click:outside":e=>!0,"update:modelValue":e=>!0,afterLeave:()=>!0},setup(e,t){let{slots:i,attrs:a,emit:r}=t;const n=ue(e,"modelValue"),o=q({get:()=>n.value,set:l1=>{l1&&e.disabled||(n.value=l1)}}),{teleportTarget:s}=OZ1(q(()=>e.attach||e.contained)),{themeClasses:l}=N5(e),{rtlClasses:d,isRtl:C}=pi(),{hasContent:m,onAfterLeave:u}=we1(e,o),p=d0(q(()=>typeof e.scrim=="string"?e.scrim:null)),{globalTop:V,localTop:f,stackStyles:M}=IZ1(o,t2(e,"zIndex"),e._disableGlobalStack),{activatorEl:H,activatorRef:g,target:_,targetEl:v,targetRef:S,activatorEvents:y,contentEvents:D,scrimEvents:R}=TZ1(e,{isActive:o,isTop:f}),{dimensionStyles:N}=rr(e),w=PZ1(),{scopeId:x}=om();T1(()=>e.disabled,l1=>{l1&&(o.value=!1)});const U=i1(),E=i1(),{contentStyles:O,updateLocation:z}=HZ1(e,{isRtl:C,contentEl:E,target:_,isActive:o});SZ1(e,{root:U,contentEl:E,targetEl:v,isActive:o,updateLocation:z});function F(l1){r("click:outside",l1),e.persistent?t1():o.value=!1}function J(){return o.value&&V.value}ze&&T1(o,l1=>{l1?window.addEventListener("keydown",W):window.removeEventListener("keydown",W)},{immediate:!0});function W(l1){var V1,A1;l1.key==="Escape"&&V.value&&(e.persistent?t1():(o.value=!1,(V1=E.value)!=null&&V1.contains(document.activeElement)&&((A1=H.value)==null||A1.focus())))}const r1=X21();M3(()=>e.closeOnBack,()=>{uz1(r1,l1=>{V.value&&o.value?(l1(!1),e.persistent?t1():o.value=!1):l1()})});const $=i1();T1(()=>o.value&&(e.absolute||e.contained)&&s.value==null,l1=>{if(l1){const V1=Sk(U.value);V1&&V1!==document.scrollingElement&&($.value=V1.scrollTop)}});function t1(){e.noClickAnimation||E.value&&P6(E.value,[{transformOrigin:"center"},{transform:"scale(1.03)"},{transformOrigin:"center"}],{duration:150,easing:rd})}return M2(()=>{var l1;return P(Y1,null,[(l1=i.activator)==null?void 0:l1.call(i,{isActive:o.value,props:V2({ref:g,targetRef:S},y.value,e.activatorProps)}),w.value&&m.value&&P(La,{disabled:!s.value,to:s.value},{default:()=>[P("div",V2({class:["v-overlay",{"v-overlay--absolute":e.absolute||e.contained,"v-overlay--active":o.value,"v-overlay--contained":e.contained},l.value,d.value,e.class],style:[M.value,{top:f2($.value)},e.style],ref:U},x,a),[P(kZ1,V2({color:p,modelValue:o.value&&!!e.scrim},R.value),null),P(g4,{appear:!0,persisted:!0,transition:e.transition,target:_.value,onAfterLeave:()=>{u(),r("afterLeave")}},{default:()=>{var V1;return[N2(P("div",V2({ref:E,class:["v-overlay__content",e.contentClass],style:[N.value,O.value]},D.value,e.contentProps),[(V1=i.default)==null?void 0:V1.call(i,{isActive:o})]),[[Ut,o.value],[k5("click-outside"),{handler:F,closeConditional:J,include:()=>[H.value]}]])]}})])]})])}),{activatorEl:H,target:_,animateClick:t1,contentEl:E,globalTop:V,localTop:f,updateLocation:z}}}),xu=Symbol("Forwarded refs");function Fu(e,t){let i=e;for(;i;){const a=Reflect.getOwnPropertyDescriptor(i,t);if(a)return a;i=Object.getPrototypeOf(i)}}function Oo(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),a=1;a!0},setup(e,t){let{slots:i}=t;const a=ue(e,"modelValue"),{scopeId:r}=om(),n=x0(),o=q(()=>e.id||`v-menu-${n}`),s=i1(),l=H2(af,null),d=g2(0);X2(af,{register(){++d.value},unregister(){--d.value},closeParents(){setTimeout(()=>{d.value||(a.value=!1,l==null||l.closeParents())},40)}});async function C(f){var g,_,v;const M=f.relatedTarget,H=f.target;await k2(),a.value&&M!==H&&((g=s.value)==null?void 0:g.contentEl)&&((_=s.value)==null?void 0:_.globalTop)&&![document,s.value.contentEl].includes(H)&&!s.value.contentEl.contains(H)&&((v=ed(s.value.contentEl)[0])==null||v.focus())}T1(a,f=>{f?(l==null||l.register(),document.addEventListener("focusin",C,{once:!0})):(l==null||l.unregister(),document.removeEventListener("focusin",C))});function m(){l==null||l.closeParents()}function u(f){var M,H,g;e.disabled||f.key==="Tab"&&(ck(ed((M=s.value)==null?void 0:M.contentEl,!1),f.shiftKey?"prev":"next",v=>v.tabIndex>=0)||(a.value=!1,(g=(H=s.value)==null?void 0:H.activatorEl)==null||g.focus()))}function p(f){var H;if(e.disabled)return;const M=(H=s.value)==null?void 0:H.contentEl;M&&a.value?f.key==="ArrowDown"?(f.preventDefault(),td(M,"next")):f.key==="ArrowUp"&&(f.preventDefault(),td(M,"prev")):["ArrowDown","ArrowUp"].includes(f.key)&&(a.value=!0,f.preventDefault(),setTimeout(()=>setTimeout(()=>p(f))))}const V=q(()=>V2({"aria-haspopup":"menu","aria-expanded":String(a.value),"aria-owns":o.value,onKeydown:p},e.activatorProps));return M2(()=>{const f=Md.filterProps(e);return P(Md,V2({ref:s,class:["v-menu",e.class],style:e.style},f,{modelValue:a.value,"onUpdate:modelValue":M=>a.value=M,absolute:!0,activatorProps:V.value,"onClick:outside":m,onKeydown:u},r),{activator:i.activator,default:function(){for(var M=arguments.length,H=new Array(M),g=0;g{var _;return[(_=i.default)==null?void 0:_.call(i,...H)]}})}})}),Oo({id:o,\u03A8openChildren:d},s)}});const zZ1=k1({active:Boolean,max:[Number,String],value:{type:[Number,String],default:0},...F2(),...Io({transition:{component:re1}})},"VCounter"),ZZ1=h2()({name:"VCounter",functional:!0,props:zZ1(),setup(e,t){let{slots:i}=t;const a=q(()=>e.max?`${e.value} / ${e.max}`:String(e.value));return M2(()=>P(g4,{transition:e.transition},{default:()=>[N2(P("div",{class:["v-counter",e.class],style:e.style},[i.default?i.default({counter:a.value,max:e.max,value:e.value}):a.value]),[[Ut,e.active]])]})),{}}});const GZ1=k1({floating:Boolean,...F2()},"VFieldLabel"),hl=h2()({name:"VFieldLabel",props:GZ1(),setup(e,t){let{slots:i}=t;return M2(()=>P(SH,{class:["v-field-label",{"v-field-label--floating":e.floating},e.class],style:e.style,"aria-hidden":e.floating||void 0},i)),{}}}),WZ1=["underlined","outlined","filled","solo","solo-inverted","solo-filled","plain"],Ie1=k1({appendInnerIcon:Ce,bgColor:String,clearable:Boolean,clearIcon:{type:Ce,default:"$clear"},active:Boolean,centerAffix:{type:Boolean,default:void 0},color:String,baseColor:String,dirty:Boolean,disabled:{type:Boolean,default:null},error:Boolean,flat:Boolean,label:String,persistentClear:Boolean,prependInnerIcon:Ce,reverse:Boolean,singleLine:Boolean,variant:{type:String,default:"filled",validator:e=>WZ1.includes(e)},"onClick:clear":E0(),"onClick:appendInner":E0(),"onClick:prependInner":E0(),...F2(),...im(),...p0(),...p5()},"VField"),Oe1=h2()({name:"VField",inheritAttrs:!1,props:{id:String,...AH(),...Ie1()},emits:{"update:focused":e=>!0,"update:modelValue":e=>!0},setup(e,t){let{attrs:i,emit:a,slots:r}=t;const{themeClasses:n}=N5(e),{loaderClasses:o}=B8(e),{focusClasses:s,isFocused:l,focus:d,blur:C}=z8(e),{InputIcon:m}=se1(e),{roundedClasses:u}=F0(e),{rtlClasses:p}=pi(),V=q(()=>e.dirty||e.active),f=q(()=>!e.singleLine&&!!(e.label||r.label)),M=x0(),H=q(()=>e.id||`input-${M}`),g=q(()=>`${H.value}-messages`),_=i1(),v=i1(),S=i1(),y=q(()=>["plain","underlined"].includes(e.variant)),{backgroundColorClasses:D,backgroundColorStyles:R}=d0(t2(e,"bgColor")),{textColorClasses:N,textColorStyles:w}=Bi(q(()=>e.error||e.disabled?void 0:V.value&&l.value?e.color:e.baseColor));T1(V,E=>{if(f.value){const O=_.value.$el,z=v.value.$el;requestAnimationFrame(()=>{const F=cH(O),J=z.getBoundingClientRect(),W=J.x-F.x,r1=J.y-F.y-(F.height/2-J.height/2),$=J.width/.75,t1=Math.abs($-F.width)>1?{maxWidth:f2($)}:void 0,l1=getComputedStyle(O),V1=getComputedStyle(z),A1=parseFloat(l1.transitionDuration)*1e3||150,n1=parseFloat(V1.getPropertyValue("--v-field-label-scale")),M1=V1.getPropertyValue("color");O.style.visibility="visible",z.style.visibility="hidden",P6(O,{transform:`translate(${W}px, ${r1}px) scale(${n1})`,color:M1,...t1},{duration:A1,easing:rd,direction:E?"normal":"reverse"}).finished.then(()=>{O.style.removeProperty("visibility"),z.style.removeProperty("visibility")})})}},{flush:"post"});const x=q(()=>({isActive:V,isFocused:l,controlRef:S,blur:C,focus:d}));function U(E){E.target!==document.activeElement&&E.preventDefault()}return M2(()=>{var W,r1,$,t1;const E=e.variant==="outlined",O=r["prepend-inner"]||e.prependInnerIcon,z=!!(e.clearable||r.clear),F=!!(r["append-inner"]||e.appendInnerIcon||z),J=()=>r.label?r.label({...x.value,label:e.label,props:{for:H.value}}):e.label;return P("div",V2({class:["v-field",{"v-field--active":V.value,"v-field--appended":F,"v-field--center-affix":(W=e.centerAffix)!=null?W:!y.value,"v-field--disabled":e.disabled,"v-field--dirty":e.dirty,"v-field--error":e.error,"v-field--flat":e.flat,"v-field--has-background":!!e.bgColor,"v-field--persistent-clear":e.persistentClear,"v-field--prepended":O,"v-field--reverse":e.reverse,"v-field--single-line":e.singleLine,"v-field--no-label":!J(),[`v-field--variant-${e.variant}`]:!0},n.value,D.value,s.value,o.value,u.value,p.value,e.class],style:[R.value,e.style],onClick:U},i),[P("div",{class:"v-field__overlay"},null),P(am,{name:"v-field",active:!!e.loading,color:e.error?"error":typeof e.loading=="string"?e.loading:e.color},{default:r.loader}),O&&P("div",{key:"prepend",class:"v-field__prepend-inner"},[e.prependInnerIcon&&P(m,{key:"prepend-icon",name:"prependInner"},null),(r1=r["prepend-inner"])==null?void 0:r1.call(r,x.value)]),P("div",{class:"v-field__field","data-no-activator":""},[["filled","solo","solo-inverted","solo-filled"].includes(e.variant)&&f.value&&P(hl,{key:"floating-label",ref:v,class:[N.value],floating:!0,for:H.value,style:w.value},{default:()=>[J()]}),P(hl,{ref:_,for:H.value},{default:()=>[J()]}),($=r.default)==null?void 0:$.call(r,{...x.value,props:{id:H.value,class:"v-field__input","aria-describedby":g.value},focus:d,blur:C})]),z&&P(oe1,{key:"clear"},{default:()=>[N2(P("div",{class:"v-field__clearable",onMousedown:l1=>{l1.preventDefault(),l1.stopPropagation()}},[r.clear?r.clear():P(m,{name:"clear"},null)]),[[Ut,e.dirty]])]}),F&&P("div",{key:"append",class:"v-field__append-inner"},[(t1=r["append-inner"])==null?void 0:t1.call(r,x.value),e.appendInnerIcon&&P(m,{key:"append-icon",name:"appendInner"},null)]),P("div",{class:["v-field__outline",N.value],style:w.value},[E&&P(Y1,null,[P("div",{class:"v-field__outline__start"},null),f.value&&P("div",{class:"v-field__outline__notch"},[P(hl,{ref:v,floating:!0,for:H.value},{default:()=>[J()]})]),P("div",{class:"v-field__outline__end"},null)]),y.value&&f.value&&P(hl,{ref:v,floating:!0,for:H.value},{default:()=>[J()]})])])}),{controlRef:S}}});function XZ1(e){const t=Object.keys(Oe1.props).filter(i=>!YC(i)&&i!=="class"&&i!=="style");return nk(e,t)}const YZ1=["color","file","time","date","datetime-local","week","month"],IH=k1({autofocus:Boolean,counter:[Boolean,Number,String],counterValue:[Number,Function],prefix:String,placeholder:String,persistentPlaceholder:Boolean,persistentCounter:Boolean,suffix:String,role:String,type:{type:String,default:"text"},modelModifiers:Object,...Z8(),...Ie1()},"VTextField"),kt=h2()({name:"VTextField",directives:{Intersect:Z21},inheritAttrs:!1,props:IH(),emits:{"click:control":e=>!0,"mousedown:control":e=>!0,"update:focused":e=>!0,"update:modelValue":e=>!0},setup(e,t){let{attrs:i,emit:a,slots:r}=t;const n=ue(e,"modelValue"),{isFocused:o,focus:s,blur:l}=z8(e),d=q(()=>{var y;return typeof e.counterValue=="function"?e.counterValue(n.value):typeof e.counterValue=="number"?e.counterValue:((y=n.value)!=null?y:"").toString().length}),C=q(()=>{if(i.maxlength)return i.maxlength;if(!(!e.counter||typeof e.counter!="number"&&typeof e.counter!="string"))return e.counter}),m=q(()=>["plain","underlined"].includes(e.variant));function u(y,D){var R,N;!e.autofocus||!y||(N=(R=D[0].target)==null?void 0:R.focus)==null||N.call(R)}const p=i1(),V=i1(),f=i1(),M=q(()=>YZ1.includes(e.type)||e.persistentPlaceholder||o.value||e.active);function H(){var y;f.value!==document.activeElement&&((y=f.value)==null||y.focus()),o.value||s()}function g(y){a("mousedown:control",y),y.target!==f.value&&(H(),y.preventDefault())}function _(y){H(),a("click:control",y)}function v(y){y.stopPropagation(),H(),k2(()=>{n.value=null,zx1(e["onClick:clear"],y)})}function S(y){var R;const D=y.target;if(n.value=D.value,((R=e.modelModifiers)==null?void 0:R.trim)&&["text","search","password","tel","url"].includes(e.type)){const N=[D.selectionStart,D.selectionEnd];k2(()=>{D.selectionStart=N[0],D.selectionEnd=N[1]})}}return M2(()=>{const y=!!(r.counter||e.counter!==!1&&e.counter!=null),D=!!(y||r.details),[R,N]=$C(i),{modelValue:w,...x}=$4.filterProps(e),U=XZ1(e);return P($4,V2({ref:p,modelValue:n.value,"onUpdate:modelValue":E=>n.value=E,class:["v-text-field",{"v-text-field--prefixed":e.prefix,"v-text-field--suffixed":e.suffix,"v-input--plain-underlined":m.value},e.class],style:e.style},R,x,{centerAffix:!m.value,focused:o.value}),{...r,default:E=>{let{id:O,isDisabled:z,isDirty:F,isReadonly:J,isValid:W}=E;return P(Oe1,V2({ref:V,onMousedown:g,onClick:_,"onClick:clear":v,"onClick:prependInner":e["onClick:prependInner"],"onClick:appendInner":e["onClick:appendInner"],role:e.role},U,{id:O.value,active:M.value||F.value,dirty:F.value||e.dirty,disabled:z.value,focused:o.value,error:W.value===!1}),{...r,default:r1=>{let{props:{class:$,...t1}}=r1;const l1=N2(P("input",V2({ref:f,value:n.value,onInput:S,autofocus:e.autofocus,readonly:J.value,disabled:z.value,name:e.name,placeholder:e.placeholder,size:1,type:e.type,onFocus:H,onBlur:l},t1,N),null),[[k5("intersect"),{handler:u},null,{once:!0}]]);return P(Y1,null,[e.prefix&&P("span",{class:"v-text-field__prefix"},[P("span",{class:"v-text-field__prefix__text"},[e.prefix])]),r.default?P("div",{class:$,"data-no-activator":""},[r.default(),l1]):Fi(l1,{class:$}),e.suffix&&P("span",{class:"v-text-field__suffix"},[P("span",{class:"v-text-field__suffix__text"},[e.suffix])])])}})},details:D?E=>{var O;return P(Y1,null,[(O=r.details)==null?void 0:O.call(r,E),y&&P(Y1,null,[P("span",null,null),P(ZZ1,{active:e.persistentCounter||o.value,value:d.value,max:C.value},r.counter)])])}:void 0})}),Oo({},p,V,f)}});const $Z1=k1({renderless:Boolean,...F2()},"VVirtualScrollItem"),qZ1=h2()({name:"VVirtualScrollItem",inheritAttrs:!1,props:$Z1(),emits:{"update:height":e=>!0},setup(e,t){let{attrs:i,emit:a,slots:r}=t;const{resizeRef:n,contentRect:o}=No(void 0,"border");T1(()=>{var s;return(s=o.value)==null?void 0:s.height},s=>{s!=null&&a("update:height",s)}),M2(()=>{var s,l;return e.renderless?P(Y1,null,[(s=r.default)==null?void 0:s.call(r,{itemRef:n})]):P("div",V2({ref:n,class:["v-virtual-scroll__item",e.class],style:e.style},i),[(l=r.default)==null?void 0:l.call(r)])})}}),KZ1=-1,jZ1=1,ku=100,QZ1=k1({itemHeight:{type:[Number,String],default:null},height:[Number,String]},"virtual");function JZ1(e,t){const i=I8(),a=g2(0);c0(()=>{a.value=parseFloat(e.itemHeight||0)});const r=g2(0),n=g2(Math.ceil((parseInt(e.height)||i.height.value)/(a.value||16))||1),o=g2(0),s=g2(0),l=i1(),d=i1();let C=0;const{resizeRef:m,contentRect:u}=No();c0(()=>{m.value=l.value});const p=q(()=>{var r1;return l.value===document.documentElement?i.height.value:((r1=u.value)==null?void 0:r1.height)||parseInt(e.height)||0}),V=q(()=>!!(l.value&&d.value&&p.value&&a.value));let f=Array.from({length:t.value.length}),M=Array.from({length:t.value.length});const H=g2(0);let g=-1;function _(r1){return f[r1]||a.value}const v=xx1(()=>{const r1=performance.now();M[0]=0;const $=t.value.length;for(let t1=1;t1<=$-1;t1++)M[t1]=(M[t1-1]||0)+_(t1-1);H.value=Math.max(H.value,performance.now()-r1)},H),S=T1(V,r1=>{!r1||(S(),C=d.value.offsetTop,v.immediate(),z(),~g&&k2(()=>{ze&&window.requestAnimationFrame(()=>{J(g),g=-1})}))});T1(p,(r1,$)=>{$&&z()}),j5(()=>{v.clear()});function y(r1,$){const t1=f[r1],l1=a.value;a.value=l1?Math.min(a.value,$):$,(t1!==$||l1!==a.value)&&(f[r1]=$,v())}function D(r1){return r1=xt(r1,0,t.value.length-1),M[r1]||0}function R(r1){return eG1(M,r1)}let N=0,w=0,x=0;function U(){if(!l.value||!d.value)return;const r1=l.value.scrollTop,$=performance.now();$-x>500?(w=Math.sign(r1-N),C=d.value.offsetTop):w=r1-N,N=r1,x=$,z()}function E(){!l.value||!d.value||(w=0,x=0,z())}let O=-1;function z(){cancelAnimationFrame(O),O=requestAnimationFrame(F)}function F(){if(!l.value||!p.value)return;const r1=N-C,$=Math.sign(w),t1=Math.max(0,r1-ku),l1=xt(R(t1),0,t.value.length),V1=r1+p.value+ku,A1=xt(R(V1)+1,l1+1,t.value.length);if(($!==KZ1||l1n.value)){const n1=D(r.value)-D(l1),M1=D(A1)-D(n.value);Math.max(n1,M1)>ku?(r.value=l1,n.value=A1):(l1<=0&&(r.value=l1),A1>=t.value.length&&(n.value=A1))}o.value=D(r.value),s.value=D(t.value.length)-D(n.value)}function J(r1){const $=D(r1);!l.value||r1&&!$?g=r1:l.value.scrollTop=$}const W=q(()=>t.value.slice(r.value,n.value).map((r1,$)=>({raw:r1,index:$+r.value})));return T1(t,()=>{f=Array.from({length:t.value.length}),M=Array.from({length:t.value.length}),v.immediate(),z()},{deep:!0}),{containerRef:l,markerRef:d,computedItems:W,paddingTop:o,paddingBottom:s,scrollToIndex:J,handleScroll:U,handleScrollend:E,handleItemResize:y}}function eG1(e,t){let i=e.length-1,a=0,r=0,n=null,o=-1;if(e[i]>1,n=e[r],n>t)i=r-1;else if(n[]},renderless:Boolean,...QZ1(),...F2(),...ar()},"VVirtualScroll"),Ue1=h2()({name:"VVirtualScroll",props:tG1(),setup(e,t){let{slots:i}=t;const a=b5("VVirtualScroll"),{dimensionStyles:r}=rr(e),{containerRef:n,markerRef:o,handleScroll:s,handleScrollend:l,handleItemResize:d,scrollToIndex:C,paddingTop:m,paddingBottom:u,computedItems:p}=JZ1(e,t2(e,"items"));return M3(()=>e.renderless,()=>{function V(){var H,g;const M=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1)?"addEventListener":"removeEventListener";n.value===document.documentElement?(document[M]("scroll",s,{passive:!0}),document[M]("scrollend",l)):((H=n.value)==null||H[M]("scroll",s,{passive:!0}),(g=n.value)==null||g[M]("scrollend",l))}ee(()=>{n.value=Sk(a.vnode.el,!0),V(!0)}),j5(V)}),M2(()=>{const V=p.value.map(f=>P(qZ1,{key:f.index,renderless:e.renderless,"onUpdate:height":M=>d(f.index,M)},{default:M=>{var H;return(H=i.default)==null?void 0:H.call(i,{item:f.raw,index:f.index,...M})}}));return e.renderless?P(Y1,null,[P("div",{ref:o,class:"v-virtual-scroll__spacer",style:{paddingTop:f2(m.value)}},null),V,P("div",{class:"v-virtual-scroll__spacer",style:{paddingBottom:f2(u.value)}},null)]):P("div",{ref:n,class:["v-virtual-scroll",e.class],onScrollPassive:s,onScrollend:l,style:[r.value,e.style]},[P("div",{ref:o,class:"v-virtual-scroll__container",style:{paddingTop:f2(m.value),paddingBottom:f2(u.value)}},[V])])}),{scrollToIndex:C}}});function xe1(e,t){const i=g2(!1);let a;function r(s){cancelAnimationFrame(a),i.value=!0,a=requestAnimationFrame(()=>{a=requestAnimationFrame(()=>{i.value=!1})})}async function n(){await new Promise(s=>requestAnimationFrame(s)),await new Promise(s=>requestAnimationFrame(s)),await new Promise(s=>requestAnimationFrame(s)),await new Promise(s=>{if(i.value){const l=T1(i,()=>{l(),s()})}else s()})}async function o(s){var C,m;if(s.key==="Tab"&&((C=t.value)==null||C.focus()),!["PageDown","PageUp","Home","End"].includes(s.key))return;const l=(m=e.value)==null?void 0:m.$el;if(!l)return;(s.key==="Home"||s.key==="End")&&l.scrollTo({top:s.key==="Home"?0:l.scrollHeight,behavior:"smooth"}),await n();const d=l.querySelectorAll(":scope > :not(.v-virtual-scroll__spacer)");if(s.key==="PageDown"||s.key==="Home"){const u=l.getBoundingClientRect().top;for(const p of d)if(p.getBoundingClientRect().top>=u){p.focus();break}}else{const u=l.getBoundingClientRect().bottom;for(const p of[...d].reverse())if(p.getBoundingClientRect().bottom<=u){p.focus();break}}}return{onListScroll:r,onListKeydown:o}}const Fe1=k1({chips:Boolean,closableChips:Boolean,closeText:{type:String,default:"$vuetify.close"},openText:{type:String,default:"$vuetify.open"},eager:Boolean,hideNoData:Boolean,hideSelected:Boolean,menu:Boolean,menuIcon:{type:Ce,default:"$dropdown"},menuProps:{type:Object},multiple:Boolean,noDataText:{type:String,default:"$vuetify.noDataText"},openOnClear:Boolean,itemColor:String,..._e1({itemChildren:!1})},"Select"),iG1=k1({...Fe1(),...Ta(IH({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...Io({transition:{component:gH}})},"VSelect"),e8=h2()({name:"VSelect",props:iG1(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:menu":e=>!0},setup(e,t){let{slots:i}=t;const{t:a}=ir(),r=i1(),n=i1(),o=i1(),s=ue(e,"menu"),l=q({get:()=>s.value,set:W=>{var r1;s.value&&!W&&((r1=n.value)==null?void 0:r1.\u03A8openChildren)||(s.value=W)}}),{items:d,transformIn:C,transformOut:m}=De1(e),u=ue(e,"modelValue",[],W=>C(W===null?[null]:Ft(W)),W=>{var $;const r1=m(W);return e.multiple?r1:($=r1[0])!=null?$:null}),p=q(()=>typeof e.counterValue=="function"?e.counterValue(u.value):typeof e.counterValue=="number"?e.counterValue:u.value.length),V=vH(),f=q(()=>u.value.map(W=>W.value)),M=g2(!1),H=q(()=>l.value?e.closeText:e.openText);let g="",_;const v=q(()=>e.hideSelected?d.value.filter(W=>!u.value.some(r1=>r1===W)):d.value),S=q(()=>e.hideNoData&&!d.value.length||e.readonly||(V==null?void 0:V.isReadonly.value)),y=q(()=>{var W;return{...e.menuProps,activatorProps:{...((W=e.menuProps)==null?void 0:W.activatorProps)||{},"aria-haspopup":"listbox"}}}),D=i1(),{onListScroll:R,onListKeydown:N}=xe1(D,r);function w(W){e.openOnClear&&(l.value=!0)}function x(){S.value||(l.value=!l.value)}function U(W){var V1,A1;if(!W.key||e.readonly||(V==null?void 0:V.isReadonly.value))return;["Enter"," ","ArrowDown","ArrowUp","Home","End"].includes(W.key)&&W.preventDefault(),["Enter","ArrowDown"," "].includes(W.key)&&(l.value=!0),["Escape","Tab"].includes(W.key)&&(l.value=!1),W.key==="Home"?(V1=D.value)==null||V1.focus("first"):W.key==="End"&&((A1=D.value)==null||A1.focus("last"));const r1=1e3;function $(n1){const M1=n1.key.length===1,X=!n1.ctrlKey&&!n1.metaKey&&!n1.altKey;return M1&&X}if(e.multiple||!$(W))return;const t1=performance.now();t1-_>r1&&(g=""),g+=W.key.toLowerCase(),_=t1;const l1=d.value.find(n1=>n1.title.toLowerCase().startsWith(g));l1!==void 0&&(u.value=[l1])}function E(W){if(e.multiple){const r1=u.value.findIndex($=>e.valueComparator($.value,W.value));if(r1===-1)u.value=[...u.value,W];else{const $=[...u.value];$.splice(r1,1),u.value=$}}else u.value=[W],l.value=!1}function O(W){var r1;(r1=D.value)!=null&&r1.$el.contains(W.relatedTarget)||(l.value=!1)}function z(){var W;M.value&&((W=r.value)==null||W.focus())}function F(W){M.value=!0}function J(W){if(W==null)u.value=[];else if(id(r.value,":autofill")||id(r.value,":-webkit-autofill")){const r1=d.value.find($=>$.title===W);r1&&E(r1)}else r.value&&(r.value.value="")}return T1(l,()=>{if(!e.hideSelected&&l.value&&u.value.length){const W=v.value.findIndex(r1=>u.value.some($=>e.valueComparator($.value,r1.value)));ze&&window.requestAnimationFrame(()=>{var r1;W>=0&&((r1=o.value)==null||r1.scrollToIndex(W))})}}),M2(()=>{const W=!!(e.chips||i.chip),r1=!!(!e.hideNoData||v.value.length||i["prepend-item"]||i["append-item"]||i["no-data"]),$=u.value.length>0,t1=kt.filterProps(e),l1=$||!M.value&&e.label&&!e.persistentPlaceholder?void 0:e.placeholder;return P(kt,V2({ref:r},t1,{modelValue:u.value.map(V1=>V1.props.value).join(", "),"onUpdate:modelValue":J,focused:M.value,"onUpdate:focused":V1=>M.value=V1,validationValue:u.externalValue,counterValue:p.value,dirty:$,class:["v-select",{"v-select--active-menu":l.value,"v-select--chips":!!e.chips,[`v-select--${e.multiple?"multiple":"single"}`]:!0,"v-select--selected":u.value.length,"v-select--selection-slot":!!i.selection},e.class],style:e.style,inputmode:"none",placeholder:l1,"onClick:clear":w,"onMousedown:control":x,onBlur:O,onKeydown:U,"aria-label":a(H.value),title:a(H.value)}),{...i,default:()=>P(Y1,null,[P(Pe1,V2({ref:n,modelValue:l.value,"onUpdate:modelValue":V1=>l.value=V1,activator:"parent",contentClass:"v-select__content",disabled:S.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterLeave:z},y.value),{default:()=>{var V1;return[r1&&P(Ld,{ref:D,selected:f.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:A1=>A1.preventDefault(),onKeydown:N,onFocusin:F,onScrollPassive:R,tabindex:"-1",color:(V1=e.itemColor)!=null?V1:e.color},{default:()=>{var A1,n1,M1,X;return[(A1=i["prepend-item"])==null?void 0:A1.call(i),!v.value.length&&!e.hideNoData&&((M1=(n1=i["no-data"])==null?void 0:n1.call(i))!=null?M1:P(ha,{title:a(e.noDataText)},null)),P(Ue1,{ref:o,renderless:!0,items:v.value},{default:s1=>{var Y,a1;let{item:m1,index:f1,itemRef:L1}=s1;const e1=V2(m1.props,{ref:L1,key:f1,onClick:()=>E(m1)});return(a1=(Y=i.item)==null?void 0:Y.call(i,{item:m1,index:f1,props:e1}))!=null?a1:P(ha,V2(e1,{role:"option"}),{prepend:c1=>{let{isSelected:H1}=c1;return P(Y1,null,[e.multiple&&!e.hideSelected?P(Dn,{key:m1.value,modelValue:H1,ripple:!1,tabindex:"-1"},null):void 0,m1.props.prependIcon&&P(Ze,{icon:m1.props.prependIcon},null)])}})}}),(X=i["append-item"])==null?void 0:X.call(i)]}})]}}),u.value.map((V1,A1)=>{function n1(m1){m1.stopPropagation(),m1.preventDefault(),E(V1)}const M1={"onClick:close":n1,onMousedown(m1){m1.preventDefault(),m1.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},X=W?!!i.chip:!!i.selection,s1=X?lH(W?i.chip({item:V1,index:A1,props:M1}):i.selection({item:V1,index:A1})):void 0;if(!(X&&!s1))return P("div",{key:V1.value,class:"v-select__selection"},[W?i.chip?P(ot,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:V1.title}}},{default:()=>[s1]}):P(fe1,V2({key:"chip",closable:e.closableChips,size:"small",text:V1.title,disabled:V1.props.disabled},M1),null):s1!=null?s1:P("span",{class:"v-select__selection-text"},[V1.title,e.multiple&&A1+(a!=null?a:1)),i=ue(e,"itemsPerPage",void 0,a=>+(a!=null?a:10));return{page:t,itemsPerPage:i}}function nG1(e){const{page:t,itemsPerPage:i,itemsLength:a}=e,r=q(()=>i.value===-1?0:i.value*(t.value-1)),n=q(()=>i.value===-1?a.value:Math.min(a.value,r.value+i.value)),o=q(()=>i.value===-1||a.value===0?1:Math.ceil(a.value/i.value));c0(()=>{t.value>o.value&&(t.value=o.value)});function s(u){i.value=u,t.value=1}function l(){t.value=xt(t.value+1,1,o.value)}function d(){t.value=xt(t.value-1,1,o.value)}function C(u){t.value=xt(u,1,o.value)}const m={page:t,itemsPerPage:i,startIndex:r,stopIndex:n,pageCount:o,itemsLength:a,nextPage:l,prevPage:d,setPage:C,setItemsPerPage:s};return X2(ke1,m),m}function oG1(){const e=H2(ke1);if(!e)throw new Error("Missing pagination!");return e}function sG1(e){const{items:t,startIndex:i,stopIndex:a,itemsPerPage:r}=e;return{paginatedItems:q(()=>r.value<=0?t.value:t.value.slice(i.value,a.value))}}const Be1=k1({prevIcon:{type:String,default:"$prev"},nextIcon:{type:String,default:"$next"},firstIcon:{type:String,default:"$first"},lastIcon:{type:String,default:"$last"},itemsPerPageText:{type:String,default:"$vuetify.dataFooter.itemsPerPageText"},pageText:{type:String,default:"$vuetify.dataFooter.pageText"},firstPageLabel:{type:String,default:"$vuetify.dataFooter.firstPage"},prevPageLabel:{type:String,default:"$vuetify.dataFooter.prevPage"},nextPageLabel:{type:String,default:"$vuetify.dataFooter.nextPage"},lastPageLabel:{type:String,default:"$vuetify.dataFooter.lastPage"},itemsPerPageOptions:{type:Array,default:()=>[{value:10,title:"10"},{value:25,title:"25"},{value:50,title:"50"},{value:100,title:"100"},{value:-1,title:"$vuetify.dataFooter.itemsPerPageAll"}]},showCurrentPage:Boolean},"VDataTableFooter"),v_=h2()({name:"VDataTableFooter",props:Be1(),setup(e,t){let{slots:i}=t;const{t:a}=ir(),{page:r,pageCount:n,startIndex:o,stopIndex:s,itemsLength:l,itemsPerPage:d,setItemsPerPage:C}=oG1(),m=q(()=>e.itemsPerPageOptions.map(u=>typeof u=="number"?{value:u,title:u===-1?a("$vuetify.dataFooter.itemsPerPageAll"):String(u)}:{...u,title:a(u.title)}));return M2(()=>{var u;return P("div",{class:"v-data-table-footer"},[(u=i.prepend)==null?void 0:u.call(i),P("div",{class:"v-data-table-footer__items-per-page"},[P("span",null,[a(e.itemsPerPageText)]),P(e8,{items:m.value,modelValue:d.value,"onUpdate:modelValue":p=>C(Number(p)),density:"compact",variant:"outlined","hide-details":!0},null)]),P("div",{class:"v-data-table-footer__info"},[P("div",null,[a(e.pageText,l.value?o.value+1:0,s.value,l.value)])]),P("div",{class:"v-data-table-footer__pagination"},[P(Yz1,{modelValue:r.value,"onUpdate:modelValue":p=>r.value=p,density:"comfortable","first-aria-label":e.firstPageLabel,"last-aria-label":e.lastPageLabel,length:n.value,"next-aria-label":e.nextPageLabel,"prev-aria-label":e.prevPageLabel,rounded:!0,"show-first-last-page":!0,"total-visible":e.showCurrentPage?1:0,variant:"plain"},null)])])}),{}}}),OH=fF1({align:{type:String,default:"start"},fixed:Boolean,fixedOffset:[Number,String],height:[Number,String],lastFixed:Boolean,noPadding:Boolean,tag:String,width:[Number,String]},(e,t)=>{var r;let{slots:i}=t;const a=(r=e.tag)!=null?r:"td";return P(a,{class:["v-data-table__td",{"v-data-table-column--fixed":e.fixed,"v-data-table-column--last-fixed":e.lastFixed,"v-data-table-column--no-padding":e.noPadding},`v-data-table-column--align-${e.align}`],style:{height:f2(e.height),width:f2(e.width),left:f2(e.fixedOffset||null)}},{default:()=>{var n;return[(n=i.default)==null?void 0:n.call(i)]}})}),lG1=k1({headers:Array},"DataTable-header"),ze1=Symbol.for("vuetify:data-table-headers"),Ze1={title:"",sortable:!1},cG1={...Ze1,width:48};function dG1(){const t=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).map(i=>({element:i,priority:0}));return{enqueue:(i,a)=>{let r=!1;for(let n=0;na){t.splice(n,0,{element:i,priority:a}),r=!0;break}r||t.push({element:i,priority:a})},size:()=>t.length,count:()=>{let i=0;if(!t.length)return 0;const a=Math.floor(t[0].priority);for(let r=0;rt.shift()}}function rf(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];if(!e.children)t.push(e);else for(const i of e.children)rf(i,t);return t}function Ge1(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:new Set;for(const i of e)i.key&&t.add(i.key),i.children&&Ge1(i.children,t);return t}function CG1(e){if(!!e.key){if(e.key==="data-table-group")return Ze1;if(["data-table-expand","data-table-select"].includes(e.key))return cG1}}function UH(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.children?Math.max(t,...e.children.map(i=>UH(i,t+1))):t}function mG1(e){let t=!1;function i(n){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(!!n)if(o&&(n.fixed=!0),n.fixed)if(n.children)for(let s=n.children.length-1;s>=0;s--)i(n.children[s],!0);else t?isNaN(+n.width)&&(`${n.key}`,void 0):n.lastFixed=!0,t=!0;else if(n.children)for(let s=n.children.length-1;s>=0;s--)i(n.children[s]);else t=!1}for(let n=e.length-1;n>=0;n--)i(e[n]);function a(n){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!n)return o;if(n.children){n.fixedOffset=o;for(const s of n.children)o=a(s,o)}else n.fixed&&(n.fixedOffset=o,o+=parseFloat(n.width||"0")||0);return o}let r=0;for(const n of e)r=a(n,r)}function uG1(e,t){const i=[];let a=0;const r=dG1(e);for(;r.size()>0;){let o=r.count();const s=[];let l=1;for(;o>0;){const{element:d,priority:C}=r.dequeue(),m=t-a-UH(d);if(s.push({...d,rowspan:m!=null?m:1,colspan:d.children?rf(d).length:1}),d.children)for(const u of d.children){const p=C%1+l/Math.pow(10,a+2);r.enqueue(u,a+m+p)}l+=1,o-=1}a+=1,i.push(s)}return{columns:e.map(o=>rf(o)).flat(),headers:i}}function We1(e){var i,a,r,n;const t=[];for(const o of e){const s={...CG1(o),...o},l=(i=s.key)!=null?i:typeof s.value=="string"?s.value:null,d=(r=(a=s.value)!=null?a:l)!=null?r:null,C={...s,key:l,value:d,sortable:(n=s.sortable)!=null?n:s.key!=null||!!s.sort,children:s.children?We1(s.children):void 0};t.push(C)}return t}function hG1(e,t){const i=i1([]),a=i1([]),r=i1(),n=i1();c0(()=>{var V,f,M,H;const l=(e.headers||Object.keys((V=e.items[0])!=null?V:{}).map(g=>({key:g,title:zi(g)}))).slice(),d=Ge1(l);((f=t==null?void 0:t.groupBy)==null?void 0:f.value.length)&&!d.has("data-table-group")&&l.unshift({key:"data-table-group",title:"Group"}),((M=t==null?void 0:t.showSelect)==null?void 0:M.value)&&!d.has("data-table-select")&&l.unshift({key:"data-table-select"}),((H=t==null?void 0:t.showExpand)==null?void 0:H.value)&&!d.has("data-table-expand")&&l.push({key:"data-table-expand"});const C=We1(l);mG1(C);const m=Math.max(...C.map(g=>UH(g)))+1,u=uG1(C,m);i.value=u.headers,a.value=u.columns;const p=u.headers.flat(1);r.value=p.reduce((g,_)=>(_.sortable&&_.key&&_.sort&&(g[_.key]=_.sort),g),{}),n.value=p.reduce((g,_)=>(_.key&&_.filter&&(g[_.key]=_.filter),g),{})});const o={headers:i,columns:a,sortFunctions:r,filterFunctions:n};return X2(ze1,o),o}function sm(){const e=H2(ze1);if(!e)throw new Error("Missing headers!");return e}const pG1={showSelectAll:!1,allSelected:()=>[],select:e=>{var a;let{items:t,value:i}=e;return new Set(i?[(a=t[0])==null?void 0:a.value]:[])},selectAll:e=>{let{selected:t}=e;return t}},Xe1={showSelectAll:!0,allSelected:e=>{let{currentPage:t}=e;return t},select:e=>{let{items:t,value:i,selected:a}=e;for(const r of t)i?a.add(r.value):a.delete(r.value);return a},selectAll:e=>{let{value:t,currentPage:i,selected:a}=e;return Xe1.select({items:i,value:t,selected:a})}},Ye1={showSelectAll:!0,allSelected:e=>{let{allItems:t}=e;return t},select:e=>{let{items:t,value:i,selected:a}=e;for(const r of t)i?a.add(r.value):a.delete(r.value);return a},selectAll:e=>{let{value:t,allItems:i,selected:a}=e;return Ye1.select({items:i,value:t,selected:a})}},fG1=k1({showSelect:Boolean,selectStrategy:{type:[String,Object],default:"page"},modelValue:{type:Array,default:()=>[]},valueComparator:{type:Function,default:wa}},"DataTable-select"),$e1=Symbol.for("vuetify:data-table-selection");function VG1(e,t){let{allItems:i,currentPage:a}=t;const r=ue(e,"modelValue",e.modelValue,M=>new Set(Ft(M).map(H=>{var g,_;return(_=(g=i.value.find(v=>e.valueComparator(H,v.value)))==null?void 0:g.value)!=null?_:H})),M=>[...M.values()]),n=q(()=>i.value.filter(M=>M.selectable)),o=q(()=>a.value.filter(M=>M.selectable)),s=q(()=>{if(typeof e.selectStrategy=="object")return e.selectStrategy;switch(e.selectStrategy){case"single":return pG1;case"all":return Ye1;case"page":default:return Xe1}});function l(M){return Ft(M).every(H=>r.value.has(H.value))}function d(M){return Ft(M).some(H=>r.value.has(H.value))}function C(M,H){const g=s.value.select({items:M,value:H,selected:new Set(r.value)});r.value=g}function m(M){C([M],!l([M]))}function u(M){const H=s.value.selectAll({value:M,allItems:n.value,currentPage:o.value,selected:new Set(r.value)});r.value=H}const p=q(()=>r.value.size>0),V=q(()=>{const M=s.value.allSelected({allItems:n.value,currentPage:o.value});return!!M.length&&l(M)}),f={toggleSelect:m,select:C,selectAll:u,isSelected:l,isSomeSelected:d,someSelected:p,allSelected:V,showSelectAll:s.value.showSelectAll};return X2($e1,f),f}function lm(){const e=H2($e1);if(!e)throw new Error("Missing selection!");return e}const LG1=k1({sortBy:{type:Array,default:()=>[]},customKeySort:Object,multiSort:Boolean,mustSort:Boolean},"DataTable-sort"),qe1=Symbol.for("vuetify:data-table-sort");function HG1(e){const t=ue(e,"sortBy"),i=t2(e,"mustSort"),a=t2(e,"multiSort");return{sortBy:t,mustSort:i,multiSort:a}}function MG1(e){const{sortBy:t,mustSort:i,multiSort:a,page:r}=e,n=l=>{var m;if(l.key==null)return;let d=(m=t.value.map(u=>({...u})))!=null?m:[];const C=d.find(u=>u.key===l.key);C?C.order==="desc"?i.value?C.order="asc":d=d.filter(u=>u.key!==l.key):C.order="desc":a.value?d=[...d,{key:l.key,order:"asc"}]:d=[{key:l.key,order:"asc"}],t.value=d,r&&(r.value=1)};function o(l){return!!t.value.find(d=>d.key===l.key)}const s={sortBy:t,toggleSort:n,isSorted:o};return X2(qe1,s),s}function gG1(){const e=H2(qe1);if(!e)throw new Error("Missing sort!");return e}function AG1(e,t,i,a){const r=ir();return{sortedItems:q(()=>i.value.length?vG1(t.value,i.value,r.current.value,{...e.customKeySort,...a==null?void 0:a.value}):t.value)}}function vG1(e,t,i,a){const r=new Intl.Collator(i,{sensitivity:"accent",usage:"sort"});return[...e].sort((n,o)=>{var s;for(let l=0;lp!=null?p.toString().toLocaleLowerCase():p),m!==u)return ll(m)&&ll(u)?0:ll(m)?-1:ll(u)?1:!isNaN(m)&&!isNaN(u)?Number(m)-Number(u):r.compare(m,u)}return 0})}const Ke1=k1({color:String,sticky:Boolean,multiSort:Boolean,sortAscIcon:{type:Ce,default:"$sortAsc"},sortDescIcon:{type:Ce,default:"$sortDesc"},...im()},"VDataTableHeaders"),__=h2()({name:"VDataTableHeaders",props:Ke1(),setup(e,t){let{slots:i}=t;const{toggleSort:a,sortBy:r,isSorted:n}=gG1(),{someSelected:o,allSelected:s,selectAll:l,showSelectAll:d}=lm(),{columns:C,headers:m}=sm(),{loaderClasses:u}=B8(e);function p(_,v){if(!(!e.sticky&&!_.fixed))return{position:"sticky",left:_.fixed?f2(_.fixedOffset):void 0,top:e.sticky?`calc(var(--v-table-header-height) * ${v})`:void 0}}function V(_){const v=r.value.find(S=>S.key===_.key);return v?v.order==="asc"?e.sortAscIcon:e.sortDescIcon:e.sortAscIcon}const{backgroundColorClasses:f,backgroundColorStyles:M}=d0(e,"color"),H=q(()=>({headers:m.value,columns:C.value,toggleSort:a,isSorted:n,sortBy:r.value,someSelected:o.value,allSelected:s.value,selectAll:l,getSortIcon:V})),g=_=>{let{column:v,x:S,y}=_;const D=v.key==="data-table-select"||v.key==="data-table-expand";return P(OH,V2({tag:"th",align:v.align,class:["v-data-table__th",{"v-data-table__th--sortable":v.sortable,"v-data-table__th--sorted":n(v),"v-data-table__th--fixed":v.fixed},u.value],style:{width:f2(v.width),minWidth:f2(v.minWidth),...p(v,y)},colspan:v.colspan,rowspan:v.rowspan,onClick:v.sortable?()=>a(v):void 0,fixed:v.fixed,lastFixed:v.lastFixed,noPadding:D},v.headerProps),{default:()=>{var w,x;const R=`header.${v.key}`,N={column:v,selectAll:l,isSorted:n,toggleSort:a,sortBy:r.value,someSelected:o.value,allSelected:s.value,getSortIcon:V};return i[R]?i[R](N):v.key==="data-table-select"?(x=(w=i["header.data-table-select"])==null?void 0:w.call(i,N))!=null?x:d&&P(Dn,{modelValue:s.value,indeterminate:o.value&&!s.value,"onUpdate:modelValue":l},null):P("div",{class:"v-data-table-header__content"},[P("span",null,[v.title]),v.sortable&&P(Ze,{key:"icon",class:"v-data-table-header__sort-icon",icon:V(v)},null),e.multiSort&&n(v)&&P("div",{key:"badge",class:["v-data-table-header__sort-badge",...f.value],style:M.value},[r.value.findIndex(U=>U.key===v.key)+1])])}})};M2(()=>P(Y1,null,[i.headers?i.headers(H.value):m.value.map((_,v)=>P("tr",null,[_.map((S,y)=>P(g,{column:S,x:y,y:v},null))])),e.loading&&P("tr",{class:"v-data-table-progress"},[P("th",{colspan:C.value.length},[P(am,{name:"v-data-table-progress",absolute:!0,active:!0,color:typeof e.loading=="boolean"?void 0:e.loading,indeterminate:!0},{default:i.loader})])])]))}}),_G1=k1({groupBy:{type:Array,default:()=>[]}},"DataTable-group"),je1=Symbol.for("vuetify:data-table-group");function SG1(e){return{groupBy:ue(e,"groupBy")}}function DG1(e){const{groupBy:t,sortBy:i}=e,a=i1(new Set),r=q(()=>t.value.map(d=>{var C;return{...d,order:(C=d.order)!=null?C:!1}}).concat(i.value));function n(d){return a.value.has(d.id)}function o(d){const C=new Set(a.value);n(d)?C.delete(d.id):C.add(d.id),a.value=C}function s(d){function C(m){const u=[];for(const p of m.items)"type"in p&&p.type==="group"?u.push(...C(p)):u.push(p);return u}return C({type:"group",items:d,id:"dummy",key:"dummy",value:"dummy",depth:0})}const l={sortByWithGroups:r,toggleGroup:o,opened:a,groupBy:t,extractRows:s,isGroupOpen:n};return X2(je1,l),l}function Qe1(){const e=H2(je1);if(!e)throw new Error("Missing group!");return e}function yG1(e,t){if(!e.length)return[];const i=new Map;for(const a of e){const r=vn(a.raw,t);i.has(r)||i.set(r,[]),i.get(r).push(a)}return i}function Je1(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"root";if(!t.length)return[];const r=yG1(e,t[0]),n=[],o=t.slice(1);return r.forEach((s,l)=>{const d=t[0],C=`${a}_${d}_${l}`;n.push({depth:i,id:C,key:d,value:l,items:o.length?Je1(s,o,i+1,C):s,type:"group"})}),n}function e51(e,t){const i=[];for(const a of e)"type"in a&&a.type==="group"?(a.value!=null&&i.push(a),(t.has(a.id)||a.value==null)&&i.push(...e51(a.items,t))):i.push(a);return i}function RG1(e,t,i){return{flatItems:q(()=>{if(!t.value.length)return e.value;const r=Je1(e.value,t.value.map(n=>n.key));return e51(r,i.value)})}}const bG1=k1({item:{type:Object,required:!0}},"VDataTableGroupHeaderRow"),NG1=h2()({name:"VDataTableGroupHeaderRow",props:bG1(),setup(e,t){let{slots:i}=t;const{isGroupOpen:a,toggleGroup:r,extractRows:n}=Qe1(),{isSelected:o,isSomeSelected:s,select:l}=lm(),{columns:d}=sm(),C=q(()=>n([e.item]));return()=>P("tr",{class:"v-data-table-group-header-row",style:{"--v-data-table-group-header-row-depth":e.item.depth}},[d.value.map(m=>{var u,p,V,f;if(m.key==="data-table-group"){const M=a(e.item)?"$expand":"$next",H=()=>r(e.item);return(p=(u=i["data-table-group"])==null?void 0:u.call(i,{item:e.item,count:C.value.length,props:{icon:M,onClick:H}}))!=null?p:P(OH,{class:"v-data-table-group-header-row__column"},{default:()=>[P(re,{size:"small",variant:"text",icon:M,onClick:H},null),P("span",null,[e.item.value]),P("span",null,[L2("("),C.value.length,L2(")")])]})}if(m.key==="data-table-select"){const M=o(C.value),H=s(C.value)&&!M,g=_=>l(C.value,_);return(f=(V=i["data-table-select"])==null?void 0:V.call(i,{props:{modelValue:M,indeterminate:H,"onUpdate:modelValue":g}}))!=null?f:P("td",null,[P(Dn,{modelValue:M,indeterminate:H,"onUpdate:modelValue":g},null)])}return P("td",null,null)})])}}),wG1=k1({expandOnClick:Boolean,showExpand:Boolean,expanded:{type:Array,default:()=>[]}},"DataTable-expand"),t51=Symbol.for("vuetify:datatable:expanded");function TG1(e){const t=t2(e,"expandOnClick"),i=ue(e,"expanded",e.expanded,s=>new Set(s),s=>[...s.values()]);function a(s,l){const d=new Set(i.value);l?d.add(s.value):d.delete(s.value),i.value=d}function r(s){return i.value.has(s.value)}function n(s){a(s,!r(s))}const o={expand:a,expanded:i,expandOnClick:t,isExpanded:r,toggleExpand:n};return X2(t51,o),o}function i51(){const e=H2(t51);if(!e)throw new Error("foo");return e}const EG1=k1({index:Number,item:Object,cellProps:[Object,Function],onClick:E0(),onContextmenu:E0(),onDblclick:E0()},"VDataTableRow"),PG1=h2()({name:"VDataTableRow",props:EG1(),setup(e,t){let{slots:i}=t;const{isSelected:a,toggleSelect:r}=lm(),{isExpanded:n,toggleExpand:o}=i51(),{columns:s}=sm();M2(()=>P("tr",{class:["v-data-table__tr",{"v-data-table__tr--clickable":!!(e.onClick||e.onContextmenu||e.onDblclick)}],onClick:e.onClick,onContextmenu:e.onContextmenu,onDblclick:e.onDblclick},[e.item&&s.value.map((l,d)=>{const C=e.item,m=`item.${l.key}`,u={index:e.index,item:C.raw,internalItem:C,value:vn(C.columns,l.key),column:l,isSelected:a,toggleSelect:r,isExpanded:n,toggleExpand:o},p=typeof e.cellProps=="function"?e.cellProps({index:u.index,item:u.item,internalItem:u.internalItem,value:u.value,column:l}):e.cellProps,V=typeof l.cellProps=="function"?l.cellProps({index:u.index,item:u.item,internalItem:u.internalItem,value:u.value}):l.cellProps;return P(OH,V2({align:l.align,fixed:l.fixed,fixedOffset:l.fixedOffset,lastFixed:l.lastFixed,noPadding:l.key==="data-table-select"||l.key==="data-table-expand",width:l.width},p,V),{default:()=>{var f,M,H,g;return i[m]?i[m](u):l.key==="data-table-select"?(M=(f=i["item.data-table-select"])==null?void 0:f.call(i,u))!=null?M:P(Dn,{disabled:!C.selectable,modelValue:a([C]),onClick:ht(()=>r(C),["stop"])},null):l.key==="data-table-expand"?(g=(H=i["item.data-table-expand"])==null?void 0:H.call(i,u))!=null?g:P(re,{icon:n(C)?"$collapse":"$expand",size:"small",variant:"text",onClick:ht(()=>o(C),["stop"])},null):q1(u.value)}})})]))}}),a51=k1({loading:[Boolean,String],loadingText:{type:String,default:"$vuetify.dataIterator.loadingText"},hideNoData:Boolean,items:{type:Array,default:()=>[]},noDataText:{type:String,default:"$vuetify.noDataText"},rowProps:[Object,Function],cellProps:[Object,Function]},"VDataTableRows"),S_=h2()({name:"VDataTableRows",inheritAttrs:!1,props:a51(),setup(e,t){let{attrs:i,slots:a}=t;const{columns:r}=sm(),{expandOnClick:n,toggleExpand:o,isExpanded:s}=i51(),{isSelected:l,toggleSelect:d}=lm(),{toggleGroup:C,isGroupOpen:m}=Qe1(),{t:u}=ir();return M2(()=>{var p,V,f,M;return e.loading&&(!e.items.length||a.loading)?P("tr",{class:"v-data-table-rows-loading",key:"loading"},[P("td",{colspan:r.value.length},[(V=(p=a.loading)==null?void 0:p.call(a))!=null?V:u(e.loadingText)])]):!e.loading&&!e.items.length&&!e.hideNoData?P("tr",{class:"v-data-table-rows-no-data",key:"no-data"},[P("td",{colspan:r.value.length},[(M=(f=a["no-data"])==null?void 0:f.call(a))!=null?M:u(e.noDataText)])]):P(Y1,null,[e.items.map((H,g)=>{var S,y;if(H.type==="group"){const D={index:g,item:H,columns:r.value,isExpanded:s,toggleExpand:o,isSelected:l,toggleSelect:d,toggleGroup:C,isGroupOpen:m};return a["group-header"]?a["group-header"](D):P(NG1,V2({key:`group-header_${H.id}`,item:H},zv(i,":group-header",()=>D)),a)}const _={index:g,item:H.raw,internalItem:H,columns:r.value,isExpanded:s,toggleExpand:o,isSelected:l,toggleSelect:d},v={..._,props:V2({key:`item_${(S=H.key)!=null?S:H.index}`,onClick:n.value?()=>{o(H)}:void 0,index:g,item:H,cellProps:e.cellProps},zv(i,":row",()=>_),typeof e.rowProps=="function"?e.rowProps({item:_.item,index:_.index,internalItem:_.internalItem}):e.rowProps)};return P(Y1,{key:v.props.key},[a.item?a.item(v):P(PG1,v.props,a),s(H)&&((y=a["expanded-row"])==null?void 0:y.call(a,_))])})])}),{}}});const r51=k1({fixedHeader:Boolean,fixedFooter:Boolean,height:[Number,String],hover:Boolean,...F2(),...fi(),...T5(),...p5()},"VTable"),D_=h2()({name:"VTable",props:r51(),setup(e,t){let{slots:i,emit:a}=t;const{themeClasses:r}=N5(e),{densityClasses:n}=I3(e);return M2(()=>P(e.tag,{class:["v-table",{"v-table--fixed-height":!!e.height,"v-table--fixed-header":e.fixedHeader,"v-table--fixed-footer":e.fixedFooter,"v-table--has-top":!!i.top,"v-table--has-bottom":!!i.bottom,"v-table--hover":e.hover},r.value,n.value,e.class],style:e.style},{default:()=>{var o,s,l;return[(o=i.top)==null?void 0:o.call(i),i.default?P("div",{class:"v-table__wrapper",style:{height:f2(e.height)}},[P("table",null,[i.default()])]):(s=i.wrapper)==null?void 0:s.call(i),(l=i.bottom)==null?void 0:l.call(i)]}})),{}}}),IG1=k1({items:{type:Array,default:()=>[]},itemValue:{type:[String,Array,Function],default:"id"},itemSelectable:{type:[String,Array,Function],default:null},rowProps:[Object,Function],cellProps:[Object,Function],returnObject:Boolean},"DataTable-items");function OG1(e,t,i,a){const r=e.returnObject?t:Jt(t,e.itemValue),n=Jt(t,e.itemSelectable,!0),o=a.reduce((s,l)=>(l.key!=null&&(s[l.key]=Jt(t,l.value)),s),{});return{type:"item",key:e.returnObject?Jt(t,e.itemValue):r,index:i,value:r,selectable:n,columns:o,raw:t}}function UG1(e,t,i){return t.map((a,r)=>OG1(e,a,r,i))}function xG1(e,t){return{items:q(()=>UG1(e,e.items,t.value))}}function FG1(e){let{page:t,itemsPerPage:i,sortBy:a,groupBy:r,search:n}=e;const o=b5("VDataTable"),s=q(()=>({page:t.value,itemsPerPage:i.value,sortBy:a.value,groupBy:r.value,search:n.value}));let l=null;T1(s,()=>{wa(l,s.value)||((l==null?void 0:l.search)!==s.value.search&&(t.value=1),o.emit("update:options",s.value),l=s.value)},{deep:!0,immediate:!0})}const kG1=(e,t,i)=>e==null||t==null?-1:e.toString().toLocaleLowerCase().indexOf(t.toString().toLocaleLowerCase()),n51=k1({customFilter:Function,customKeyFilter:Object,filterKeys:[Array,String],filterMode:{type:String,default:"intersection"},noFilter:Boolean},"filter");function BG1(e,t,i){var s,l,d;const a=[],r=(s=i==null?void 0:i.default)!=null?s:kG1,n=i!=null&&i.filterKeys?Ft(i.filterKeys):!1,o=Object.keys((l=i==null?void 0:i.customKeyFilter)!=null?l:{}).length;if(!(e!=null&&e.length))return a;e:for(let C=0;Ca!=null&&a.transform?B(t).map(l=>[l,a.transform(l)]):B(t));c0(()=>{const l=typeof i=="function"?i():B(i),d=typeof l!="string"&&typeof l!="number"?"":String(l),C=BG1(o.value,d,{customKeyFilter:{...e.customKeyFilter,...B(a==null?void 0:a.customKeyFilter)},default:e.customFilter,filterKeys:e.filterKeys,filterMode:e.filterMode,noFilter:e.noFilter}),m=B(t),u=[],p=new Map;C.forEach(V=>{let{index:f,matches:M}=V;const H=m[f];u.push(H),p.set(H.value,M)}),r.value=u,n.value=p});function s(l){return n.value.get(l.value)}return{filteredItems:r,filteredMatches:n,getMatches:s}}const zG1=k1({...a51(),width:[String,Number],search:String,...wG1(),..._G1(),...lG1(),...IG1(),...fG1(),...LG1(),...Ke1(),...r51()},"DataTable"),ZG1=k1({...aG1(),...zG1(),...n51(),...Be1()},"VDataTable"),GG1=h2()({name:"VDataTable",props:ZG1(),emits:{"update:modelValue":e=>!0,"update:page":e=>!0,"update:itemsPerPage":e=>!0,"update:sortBy":e=>!0,"update:options":e=>!0,"update:groupBy":e=>!0,"update:expanded":e=>!0},setup(e,t){let{attrs:i,slots:a}=t;const{groupBy:r}=SG1(e),{sortBy:n,multiSort:o,mustSort:s}=HG1(e),{page:l,itemsPerPage:d}=rG1(e),{columns:C,headers:m,sortFunctions:u,filterFunctions:p}=hG1(e,{groupBy:r,showSelect:t2(e,"showSelect"),showExpand:t2(e,"showExpand")}),{items:V}=xG1(e,C),f=t2(e,"search"),{filteredItems:M}=o51(e,V,f,{transform:n1=>n1.columns,customKeyFilter:p}),{toggleSort:H}=MG1({sortBy:n,multiSort:o,mustSort:s,page:l}),{sortByWithGroups:g,opened:_,extractRows:v,isGroupOpen:S,toggleGroup:y}=DG1({groupBy:r,sortBy:n}),{sortedItems:D}=AG1(e,M,g,u),{flatItems:R}=RG1(D,r,_),N=q(()=>R.value.length),{startIndex:w,stopIndex:x,pageCount:U,setItemsPerPage:E}=nG1({page:l,itemsPerPage:d,itemsLength:N}),{paginatedItems:O}=sG1({items:R,startIndex:w,stopIndex:x,itemsPerPage:d}),z=q(()=>v(O.value)),{isSelected:F,select:J,selectAll:W,toggleSelect:r1,someSelected:$,allSelected:t1}=VG1(e,{allItems:V,currentPage:z}),{isExpanded:l1,toggleExpand:V1}=TG1(e);FG1({page:l,itemsPerPage:d,sortBy:n,groupBy:r,search:f}),I0({VDataTableRows:{hideNoData:t2(e,"hideNoData"),noDataText:t2(e,"noDataText"),loading:t2(e,"loading"),loadingText:t2(e,"loadingText")}});const A1=q(()=>({page:l.value,itemsPerPage:d.value,sortBy:n.value,pageCount:U.value,toggleSort:H,setItemsPerPage:E,someSelected:$.value,allSelected:t1.value,isSelected:F,select:J,selectAll:W,toggleSelect:r1,isExpanded:l1,toggleExpand:V1,isGroupOpen:S,toggleGroup:y,items:z.value.map(n1=>n1.raw),internalItems:z.value,groupedItems:O.value,columns:C.value,headers:m.value}));return M2(()=>{const n1=v_.filterProps(e),M1=__.filterProps(e),X=S_.filterProps(e),s1=D_.filterProps(e);return P(D_,V2({class:["v-data-table",{"v-data-table--show-select":e.showSelect,"v-data-table--loading":e.loading},e.class],style:e.style},s1),{top:()=>{var m1;return(m1=a.top)==null?void 0:m1.call(a,A1.value)},default:()=>{var m1,f1,L1,e1,Y,a1;return a.default?a.default(A1.value):P(Y1,null,[(m1=a.colgroup)==null?void 0:m1.call(a,A1.value),P("thead",null,[P(__,M1,a)]),(f1=a.thead)==null?void 0:f1.call(a,A1.value),P("tbody",null,[(L1=a["body.prepend"])==null?void 0:L1.call(a,A1.value),a.body?a.body(A1.value):P(S_,V2(i,X,{items:O.value}),a),(e1=a["body.append"])==null?void 0:e1.call(a,A1.value)]),(Y=a.tbody)==null?void 0:Y.call(a,A1.value),(a1=a.tfoot)==null?void 0:a1.call(a,A1.value)])},bottom:()=>a.bottom?a.bottom(A1.value):P(Y1,null,[P(Qs,null,null),P(v_,n1,{prepend:a["footer.prepend"]})])})}),{}}});const xH=Symbol.for("vuetify:v-slider");function WG1(e,t,i){const a=i==="vertical",r=t.getBoundingClientRect(),n="touches"in e?e.touches[0]:e;return a?n.clientY-(r.top+r.height/2):n.clientX-(r.left+r.width/2)}function XG1(e,t){return"touches"in e&&e.touches.length?e.touches[0][t]:"changedTouches"in e&&e.changedTouches.length?e.changedTouches[0][t]:e[t]}const YG1=k1({disabled:{type:Boolean,default:null},error:Boolean,readonly:{type:Boolean,default:null},max:{type:[Number,String],default:100},min:{type:[Number,String],default:0},step:{type:[Number,String],default:0},thumbColor:String,thumbLabel:{type:[Boolean,String],default:void 0,validator:e=>typeof e=="boolean"||e==="always"},thumbSize:{type:[Number,String],default:20},showTicks:{type:[Boolean,String],default:!1,validator:e=>typeof e=="boolean"||e==="always"},ticks:{type:[Array,Object]},tickSize:{type:[Number,String],default:2},color:String,trackColor:String,trackFillColor:String,trackSize:{type:[Number,String],default:4},direction:{type:String,default:"horizontal",validator:e=>["vertical","horizontal"].includes(e)},reverse:Boolean,...p0(),...Xi({elevation:2}),ripple:{type:Boolean,default:!0}},"Slider"),$G1=e=>{const t=q(()=>parseFloat(e.min)),i=q(()=>parseFloat(e.max)),a=q(()=>+e.step>0?parseFloat(e.step):0),r=q(()=>Math.max(Sv(a.value),Sv(t.value)));function n(o){if(o=parseFloat(o),a.value<=0)return o;const s=xt(o,t.value,i.value),l=t.value%a.value,d=Math.round((s-l)/a.value)*a.value+l;return parseFloat(Math.min(d,i.value).toFixed(r.value))}return{min:t,max:i,step:a,decimals:r,roundValue:n}},qG1=e=>{let{props:t,steps:i,onSliderStart:a,onSliderMove:r,onSliderEnd:n,getActiveThumb:o}=e;const{isRtl:s}=pi(),l=t2(t,"reverse"),d=q(()=>t.direction==="vertical"),C=q(()=>d.value!==l.value),{min:m,max:u,step:p,decimals:V,roundValue:f}=i,M=q(()=>parseInt(t.thumbSize,10)),H=q(()=>parseInt(t.tickSize,10)),g=q(()=>parseInt(t.trackSize,10)),_=q(()=>(u.value-m.value)/p.value),v=t2(t,"disabled"),S=q(()=>{var M1;return t.error||t.disabled?void 0:(M1=t.thumbColor)!=null?M1:t.color}),y=q(()=>{var M1;return t.error||t.disabled?void 0:(M1=t.trackColor)!=null?M1:t.color}),D=q(()=>{var M1;return t.error||t.disabled?void 0:(M1=t.trackFillColor)!=null?M1:t.color}),R=g2(!1),N=g2(0),w=i1(),x=i1();function U(M1){var c1;const X=t.direction==="vertical",s1=X?"top":"left",m1=X?"height":"width",f1=X?"clientY":"clientX",{[s1]:L1,[m1]:e1}=(c1=w.value)==null?void 0:c1.$el.getBoundingClientRect(),Y=XG1(M1,f1);let a1=Math.min(Math.max((Y-L1-N.value)/e1,0),1)||0;return(X?C.value:C.value!==s.value)&&(a1=1-a1),f(m.value+a1*(u.value-m.value))}const E=M1=>{n({value:U(M1)}),R.value=!1,N.value=0},O=M1=>{x.value=o(M1),x.value&&(x.value.focus(),R.value=!0,x.value.contains(M1.target)?N.value=WG1(M1,x.value,t.direction):(N.value=0,r({value:U(M1)})),a({value:U(M1)}))},z={passive:!0,capture:!0};function F(M1){r({value:U(M1)})}function J(M1){M1.stopPropagation(),M1.preventDefault(),E(M1),window.removeEventListener("mousemove",F,z),window.removeEventListener("mouseup",J)}function W(M1){var X;E(M1),window.removeEventListener("touchmove",F,z),(X=M1.target)==null||X.removeEventListener("touchend",W)}function r1(M1){var X;O(M1),window.addEventListener("touchmove",F,z),(X=M1.target)==null||X.addEventListener("touchend",W,{passive:!1})}function $(M1){M1.preventDefault(),O(M1),window.addEventListener("mousemove",F,z),window.addEventListener("mouseup",J,{passive:!1})}const t1=M1=>{const X=(M1-m.value)/(u.value-m.value)*100;return xt(isNaN(X)?0:X,0,100)},l1=t2(t,"showTicks"),V1=q(()=>l1.value?t.ticks?Array.isArray(t.ticks)?t.ticks.map(M1=>({value:M1,position:t1(M1),label:M1.toString()})):Object.keys(t.ticks).map(M1=>({value:parseFloat(M1),position:t1(parseFloat(M1)),label:t.ticks[M1]})):_.value!==1/0?Yr(_.value+1).map(M1=>{const X=m.value+M1*p.value;return{value:X,position:t1(X)}}):[]:[]),A1=q(()=>V1.value.some(M1=>{let{label:X}=M1;return!!X})),n1={activeThumbRef:x,color:t2(t,"color"),decimals:V,disabled:v,direction:t2(t,"direction"),elevation:t2(t,"elevation"),hasLabels:A1,isReversed:l,indexFromEnd:C,min:m,max:u,mousePressed:R,numTicks:_,onSliderMousedown:$,onSliderTouchstart:r1,parsedTicks:V1,parseMouseMove:U,position:t1,readonly:t2(t,"readonly"),rounded:t2(t,"rounded"),roundValue:f,showTicks:l1,startOffset:N,step:p,thumbSize:M,thumbColor:S,thumbLabel:t2(t,"thumbLabel"),ticks:t2(t,"ticks"),tickSize:H,trackColor:y,trackContainerRef:w,trackFillColor:D,trackSize:g,vertical:d};return X2(xH,n1),n1},KG1=k1({focused:Boolean,max:{type:Number,required:!0},min:{type:Number,required:!0},modelValue:{type:Number,required:!0},position:{type:Number,required:!0},ripple:{type:[Boolean,Object],default:!0},...F2()},"VSliderThumb"),jG1=h2()({name:"VSliderThumb",directives:{Ripple:Fn},props:KG1(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:i,emit:a}=t;const r=H2(xH),{isRtl:n,rtlClasses:o}=pi();if(!r)throw new Error("[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider");const{thumbColor:s,step:l,disabled:d,thumbSize:C,thumbLabel:m,direction:u,isReversed:p,vertical:V,readonly:f,elevation:M,mousePressed:H,decimals:g,indexFromEnd:_}=r,{textColorClasses:v,textColorStyles:S}=Bi(s),{pageup:y,pagedown:D,end:R,home:N,left:w,right:x,down:U,up:E}=Ip,O=[y,D,R,N,w,x,U,E],z=q(()=>l.value?[1,2,3]:[1,5,10]);function F(W,r1){if(!O.includes(W.key))return;W.preventDefault();const $=l.value||.1,t1=(e.max-e.min)/$;if([w,x,U,E].includes(W.key)){const V1=(V.value?[n.value?w:x,p.value?U:E]:_.value!==n.value?[w,E]:[x,E]).includes(W.key)?1:-1,A1=W.shiftKey?2:W.ctrlKey?1:0;r1=r1+V1*$*z.value[A1]}else if(W.key===N)r1=e.min;else if(W.key===R)r1=e.max;else{const l1=W.key===D?1:-1;r1=r1-l1*$*(t1>100?t1/10:10)}return Math.max(e.min,Math.min(e.max,r1))}function J(W){const r1=F(W,e.modelValue);r1!=null&&a("update:modelValue",r1)}return M2(()=>{const W=f2(_.value?100-e.position:e.position,"%"),{elevationClasses:r1}=O3(q(()=>d.value?void 0:M.value));return P("div",{class:["v-slider-thumb",{"v-slider-thumb--focused":e.focused,"v-slider-thumb--pressed":e.focused&&H.value},e.class,o.value],style:[{"--v-slider-thumb-position":W,"--v-slider-thumb-size":f2(C.value)},e.style],role:"slider",tabindex:d.value?-1:0,"aria-valuemin":e.min,"aria-valuemax":e.max,"aria-valuenow":e.modelValue,"aria-readonly":!!f.value,"aria-orientation":u.value,onKeydown:f.value?void 0:J},[P("div",{class:["v-slider-thumb__surface",v.value,r1.value],style:{...S.value}},null),N2(P("div",{class:["v-slider-thumb__ripple",v.value],style:S.value},null),[[k5("ripple"),e.ripple,null,{circle:!0,center:!0}]]),P(ae1,{origin:"bottom center"},{default:()=>{var $,t1;return[N2(P("div",{class:"v-slider-thumb__label-container"},[P("div",{class:["v-slider-thumb__label"]},[P("div",null,[(t1=($=i["thumb-label"])==null?void 0:$.call(i,{modelValue:e.modelValue}))!=null?t1:e.modelValue.toFixed(l.value?g.value:1)])])]),[[Ut,m.value&&e.focused||m.value==="always"]])]}})])}),{}}});const QG1=k1({start:{type:Number,required:!0},stop:{type:Number,required:!0},...F2()},"VSliderTrack"),JG1=h2()({name:"VSliderTrack",props:QG1(),emits:{},setup(e,t){let{slots:i}=t;const a=H2(xH);if(!a)throw new Error("[Vuetify] v-slider-track must be inside v-slider or v-range-slider");const{color:r,parsedTicks:n,rounded:o,showTicks:s,tickSize:l,trackColor:d,trackFillColor:C,trackSize:m,vertical:u,min:p,max:V,indexFromEnd:f}=a,{roundedClasses:M}=F0(o),{backgroundColorClasses:H,backgroundColorStyles:g}=d0(C),{backgroundColorClasses:_,backgroundColorStyles:v}=d0(d),S=q(()=>`inset-${u.value?"block":"inline"}-${f.value?"end":"start"}`),y=q(()=>u.value?"height":"width"),D=q(()=>({[S.value]:"0%",[y.value]:"100%"})),R=q(()=>e.stop-e.start),N=q(()=>({[S.value]:f2(e.start,"%"),[y.value]:f2(R.value,"%")})),w=q(()=>s.value?(u.value?n.value.slice().reverse():n.value).map((U,E)=>{var z,F;const O=U.value!==p.value&&U.value!==V.value?f2(U.position,"%"):void 0;return P("div",{key:U.value,class:["v-slider-track__tick",{"v-slider-track__tick--filled":U.position>=e.start&&U.position<=e.stop,"v-slider-track__tick--first":U.value===p.value,"v-slider-track__tick--last":U.value===V.value}],style:{[S.value]:O}},[(U.label||i["tick-label"])&&P("div",{class:"v-slider-track__tick-label"},[(F=(z=i["tick-label"])==null?void 0:z.call(i,{tick:U,index:E}))!=null?F:U.label])])}):[]);return M2(()=>P("div",{class:["v-slider-track",M.value,e.class],style:[{"--v-slider-track-size":f2(m.value),"--v-slider-tick-size":f2(l.value)},e.style]},[P("div",{class:["v-slider-track__background",_.value,{"v-slider-track__background--opacity":!!r.value||!C.value}],style:{...D.value,...v.value}},null),P("div",{class:["v-slider-track__fill",H.value],style:{...N.value,...g.value}},null),s.value&&P("div",{class:["v-slider-track__ticks",{"v-slider-track__ticks--always-show":s.value==="always"}]},[w.value])])),{}}}),eW1=k1({...AH(),...YG1(),...Z8(),modelValue:{type:[Number,String],default:0}},"VSlider"),po=h2()({name:"VSlider",props:eW1(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,start:e=>!0,end:e=>!0},setup(e,t){let{slots:i,emit:a}=t;const r=i1(),{rtlClasses:n}=pi(),o=$G1(e),s=ue(e,"modelValue",void 0,y=>o.roundValue(y==null?o.min.value:y)),{min:l,max:d,mousePressed:C,roundValue:m,onSliderMousedown:u,onSliderTouchstart:p,trackContainerRef:V,position:f,hasLabels:M,readonly:H}=qG1({props:e,steps:o,onSliderStart:()=>{a("start",s.value)},onSliderEnd:y=>{let{value:D}=y;const R=m(D);s.value=R,a("end",R)},onSliderMove:y=>{let{value:D}=y;return s.value=m(D)},getActiveThumb:()=>{var y;return(y=r.value)==null?void 0:y.$el}}),{isFocused:g,focus:_,blur:v}=z8(e),S=q(()=>f(s.value));return M2(()=>{const y=$4.filterProps(e),D=!!(e.label||i.label||i.prepend);return P($4,V2({class:["v-slider",{"v-slider--has-labels":!!i["tick-label"]||M.value,"v-slider--focused":g.value,"v-slider--pressed":C.value,"v-slider--disabled":e.disabled},n.value,e.class],style:e.style},y,{focused:g.value}),{...i,prepend:D?R=>{var N,w,x;return P(Y1,null,[(w=(N=i.label)==null?void 0:N.call(i,R))!=null?w:e.label?P(SH,{id:R.id.value,class:"v-slider__label",text:e.label},null):void 0,(x=i.prepend)==null?void 0:x.call(i,R)])}:void 0,default:R=>{let{id:N,messagesId:w}=R;return P("div",{class:"v-slider__container",onMousedown:H.value?void 0:u,onTouchstartPassive:H.value?void 0:p},[P("input",{id:N.value,name:e.name||N.value,disabled:!!e.disabled,readonly:!!e.readonly,tabindex:"-1",value:s.value},null),P(JG1,{ref:V,start:0,stop:S.value},{"tick-label":i["tick-label"]}),P(jG1,{ref:r,"aria-describedby":w.value,focused:g.value,min:l.value,max:d.value,modelValue:s.value,"onUpdate:modelValue":x=>s.value=x,position:S.value,elevation:e.elevation,onFocus:_,onBlur:v,ripple:e.ripple},{"thumb-label":i["thumb-label"]})])}})}),{}}}),tW1=["onClick"],iW1=n2({__name:"ConfigurationDevelopmentView",setup(e){const t=xb(),i=i1([]),a=[{title:"Name",value:"name"},{title:"Time (initial)",value:"initialTime"},{title:"Date (initial)",value:"initialDate"},{title:"N. events",value:"nEvents"},{title:"Download",value:"actions"}];B5(async()=>{await lp.iterate((o,s)=>{i.value.push({name:s,initialTime:o.initialTime,initialDate:o.initialDate,nEvents:o.events.length})})});const r=async o=>{const s=await lp.getItem(o),l=JSON.stringify(s,null,2),d=new Blob([l],{type:"application/json"});_a.exports.saveAs(d,o)},n=()=>location.reload();return(o,s)=>(C1(),Q1(kn,null,{title:v1(()=>[L2("Development configuration")]),content:v1(()=>[P(At,{modelValue:B(t).developmentMode,"onUpdate:modelValue":s[0]||(s[0]=l=>B(t).developmentMode=l),label:"Development mode",class:"ma-2",color:"rgb(0, 20, 80)"},null,8,["modelValue"]),P(At,{modelValue:B(t).enableSystemLogging,"onUpdate:modelValue":[s[1]||(s[1]=l=>B(t).enableSystemLogging=l),n],label:"Enable system logging",class:"m-2",color:"rgb(0, 20, 80)"},null,8,["modelValue"]),P(po,{modelValue:B(t).widgetDevInfoBlurLevel,"onUpdate:modelValue":s[2]||(s[2]=l=>B(t).widgetDevInfoBlurLevel=l),label:"Dev info blur level",min:"0",max:"10",class:"ma-2 w-25",color:"rgb(0, 20, 80)",step:"1","thumb-label":"always"},null,8,["modelValue"]),P(GG1,{items:i.value,headers:a,class:"max-w-[80%] max-h-[60%]"},{"item.actions":v1(({item:l})=>[K("div",{class:"text-center cursor-pointer icon-btn mdi mdi-download",onClick:d=>r(l.name)},null,8,tW1)]),_:1},8,["items"])]),_:1}))}}),aW1=k1({...F2(),...yz1()},"VForm"),Bu=h2()({name:"VForm",props:aW1(),emits:{"update:modelValue":e=>!0,submit:e=>!0},setup(e,t){let{slots:i,emit:a}=t;const r=Rz1(e),n=i1();function o(l){l.preventDefault(),r.reset()}function s(l){const d=l,C=r.validate();d.then=C.then.bind(C),d.catch=C.catch.bind(C),d.finally=C.finally.bind(C),a("submit",d),d.defaultPrevented||C.then(m=>{var p;let{valid:u}=m;u&&((p=n.value)==null||p.submit())}),d.preventDefault()}return M2(()=>{var l;return P("form",{ref:n,class:["v-form",e.class],style:e.style,novalidate:!0,onReset:o,onSubmit:s},[(l=i.default)==null?void 0:l.call(i,r)])}),Oo(r,n)}}),Uo=e=>(Dt("data-v-a9389ce3"),e=e(),yt(),e),rW1=Uo(()=>K("span",{class:"text-h6"},"Global vehicle address",-1)),nW1=Uo(()=>K("br",null,null,-1)),oW1=Uo(()=>K("span",{class:"text-h6"},"Mavlink2Rest connection",-1)),sW1=Uo(()=>K("br",null,null,-1)),lW1=Uo(()=>K("span",{class:"text-h6"},"WebRTC connection",-1)),cW1=Uo(()=>K("br",null,null,-1)),dW1=n2({__name:"ConfigurationGeneralView",setup(e){const t=r5(),i=i1(),a=i1(!1),r=i1(t.globalAddress),n=i1(),o=i1(!1),s=i1(t.webRTCSignallingURI),l=i1(),d=i1(!1),C=i1(t.mainConnectionURI),m=i1(t.isVehicleOnline);T1(()=>t.isVehicleOnline,()=>m.value=t.isVehicleOnline);const u=v=>{var S;return(S=Fk1(v))!=null?S:"Invalid host address. Should be an IP address or a hostname"},p=v=>{try{if(new cd(v).type()!==mo.WebSocket)throw new Error("URI should be of type WebSocket")}catch(S){return`Invalid connection URI. ${S}.`}return!0},V=async()=>{r.value=Gp,await g()},f=async()=>{C.value.reset(),await H()},M=()=>{s.value.reset()},H=async()=>{await l.value.validate(),m.value=void 0,setTimeout(()=>{var v;return(v=m.value)!=null?v:m.value=!1},5e3);try{Pt.addConnection(new cd(C.value.val),pH.MAVLink)}catch(v){console.error(v),alert(`Could not update main connection. ${v}.`);return}console.debug(`New connection successfully configured to ${C.value.val}.`)},g=async()=>{await i.value.validate(),t.globalAddress=r.value,location.reload()},_=async()=>{await n.value.validate(),t.webRTCSignallingURI.val=s.value.val};return(v,S)=>{const y=x5("v-template"),D=k5("tooltip");return C1(),Q1(kn,null,{title:v1(()=>[L2("General configuration")]),content:v1(()=>[P(st,{class:"pb-2 pa-5 ma-4","max-width":"600px"},{default:v1(()=>[P(Ze,{icon:"mdi-earth",class:"mr-3"}),rW1,P(Bu,{ref_key:"globalAddressForm",ref:i,modelValue:a.value,"onUpdate:modelValue":S[1]||(S[1]=R=>a.value=R),class:"justify-center d-flex align-center",onSubmit:ht(g,["prevent"])},{default:v1(()=>[P(kt,{modelValue:r.value,"onUpdate:modelValue":S[0]||(S[0]=R=>r.value=R),variant:"underlined",type:"input",hint:"Address of the Vehicle. E.g: blueos.local",class:"uri-input",rules:[u]},null,8,["modelValue","rules"]),N2(P(re,{icon:"mdi-check",class:"mx-1 mb-5 pa-0",rounded:"lg",flat:"",type:"submit"},null,512),[[D,"Set",void 0,{bottom:!0}]]),P(y,null,{default:v1(()=>[N2(P(re,{disabled:r.value===B(Gp),icon:"mdi-refresh",class:"mx-1 mb-5 pa-0",rounded:"lg",flat:"",onClick:V},null,8,["disabled"]),[[D,"Reset to default",void 0,{bottom:!0}]])]),_:1})]),_:1},8,["modelValue"]),K("span",null,"Current address: "+q1(B(t).globalAddress),1),nW1]),_:1}),P(st,{class:"pb-2 pa-5 ma-4","max-width":"600px"},{default:v1(()=>{var R,N;return[m.value===void 0?(C1(),Q1(_H,{key:0,indeterminate:"",size:"24",class:"mr-3"})):(C1(),Q1(Ze,{key:1,icon:m.value?"mdi-lan-connect":"mdi-lan-disconnect",class:"mr-3"},null,8,["icon"])),oW1,P(Bu,{ref_key:"connectionForm",ref:l,modelValue:d.value,"onUpdate:modelValue":S[4]||(S[4]=w=>d.value=w),class:"justify-center d-flex align-center",onSubmit:ht(H,["prevent"])},{default:v1(()=>[N2(P(A4,{modelValue:C.value.isCustom,"onUpdate:modelValue":S[2]||(S[2]=w=>C.value.isCustom=w),class:"mx-1 mb-5 pa-0",rounded:"lg","hide-details":""},null,8,["modelValue"]),[[D,"Enable custom",void 0,{bottom:!0}]]),P(kt,{modelValue:C.value.val,"onUpdate:modelValue":S[3]||(S[3]=w=>C.value.val=w),disabled:!C.value.isCustom,label:"Mavlink2Rest URI",variant:"underlined",type:"input",hint:"URI of a Mavlink2Rest web-socket",class:"uri-input",rules:[p]},null,8,["modelValue","disabled","rules"]),N2(P(re,{icon:"mdi-check",class:"mx-1 mb-5 pa-0",rounded:"lg",flat:"",type:"submit"},null,512),[[D,"Set",void 0,{bottom:!0}]]),P(y,null,{default:v1(()=>[N2(P(re,{disabled:C.value.toString()===C.value.defaultValue.toString(),icon:"mdi-refresh",class:"mx-1 mb-5 pa-0",rounded:"lg",flat:"",onClick:f},null,8,["disabled"]),[[D,"Reset to default",void 0,{bottom:!0}]])]),_:1})]),_:1},8,["modelValue"]),K("span",null,"Current address: "+q1((N=(R=B(Pt).mainConnection())==null?void 0:R.uri().toString())!=null?N:"none"),1),sW1,K("span",null,"Status: "+q1(m.value?"connected":m.value===void 0?"connecting...":"failed to connect"),1)]}),_:1}),P(st,{class:"pb-2 pa-5 ma-4","max-width":"600px"},{default:v1(()=>[P(Ze,{icon:"mdi-lan-pending",class:"mr-3"}),lW1,P(Bu,{ref_key:"webRTCSignallingForm",ref:n,modelValue:o.value,"onUpdate:modelValue":S[7]||(S[7]=R=>o.value=R),class:"justify-center d-flex align-center",onSubmit:ht(_,["prevent"])},{default:v1(()=>[N2(P(A4,{modelValue:s.value.isCustom,"onUpdate:modelValue":S[5]||(S[5]=R=>s.value.isCustom=R),class:"mx-1 mb-5 pa-0",rounded:"lg","hide-details":""},null,8,["modelValue"]),[[D,"Enable custom",void 0,{bottom:!0}]]),P(kt,{modelValue:s.value.val,"onUpdate:modelValue":S[6]||(S[6]=R=>s.value.val=R),disabled:!s.value.isCustom,label:"WebRTC Signalling Server URI",variant:"underlined",type:"input",hint:"URI of a WebRTC Signalling Server URI",class:"uri-input",rules:[p]},null,8,["modelValue","disabled","rules"]),N2(P(re,{icon:"mdi-check",class:"mx-1 mb-5 pa-0",rounded:"lg",flat:"",type:"submit"},null,512),[[D,"Set",void 0,{bottom:!0}]]),P(y,null,{default:v1(()=>[N2(P(re,{disabled:s.value.val.toString()===s.value.defaultValue.toString(),icon:"mdi-refresh",class:"mx-1 mb-5 pa-0",rounded:"lg",flat:"",onClick:M},null,8,["disabled"]),[[D,"Reset to default",void 0,{bottom:!0}]])]),_:1})]),_:1},8,["modelValue"]),K("span",null,"Current address: "+q1(B(t).webRTCSignallingURI.val.toString()),1),cW1]),_:1})]),_:1})}}});const y_=w5(dW1,[["__scopeId","data-v-a9389ce3"]]);var yn={exports:{}};const CW1="2.0.0",s51=256,mW1=Number.MAX_SAFE_INTEGER||9007199254740991,uW1=16,hW1=s51-6,pW1=["major","premajor","minor","preminor","patch","prepatch","prerelease"];var cm={MAX_LENGTH:s51,MAX_SAFE_COMPONENT_LENGTH:uW1,MAX_SAFE_BUILD_LENGTH:hW1,MAX_SAFE_INTEGER:mW1,RELEASE_TYPES:pW1,SEMVER_SPEC_VERSION:CW1,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};const fW1=typeof process=="object"&&{}&&{}.NODE_DEBUG&&/\bsemver\b/i.test({}.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};var dm=fW1;(function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:i,MAX_SAFE_BUILD_LENGTH:a,MAX_LENGTH:r}=cm,n=dm;t=e.exports={};const o=t.re=[],s=t.safeRe=[],l=t.src=[],d=t.t={};let C=0;const m="[a-zA-Z0-9-]",u=[["\\s",1],["\\d",r],[m,a]],p=f=>{for(const[M,H]of u)f=f.split(`${M}*`).join(`${M}{0,${H}}`).split(`${M}+`).join(`${M}{1,${H}}`);return f},V=(f,M,H)=>{const g=p(M),_=C++;n(f,_,M),d[f]=_,l[_]=M,o[_]=new RegExp(M,H?"g":void 0),s[_]=new RegExp(g,H?"g":void 0)};V("NUMERICIDENTIFIER","0|[1-9]\\d*"),V("NUMERICIDENTIFIERLOOSE","\\d+"),V("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${m}*`),V("MAINVERSION",`(${l[d.NUMERICIDENTIFIER]})\\.(${l[d.NUMERICIDENTIFIER]})\\.(${l[d.NUMERICIDENTIFIER]})`),V("MAINVERSIONLOOSE",`(${l[d.NUMERICIDENTIFIERLOOSE]})\\.(${l[d.NUMERICIDENTIFIERLOOSE]})\\.(${l[d.NUMERICIDENTIFIERLOOSE]})`),V("PRERELEASEIDENTIFIER",`(?:${l[d.NUMERICIDENTIFIER]}|${l[d.NONNUMERICIDENTIFIER]})`),V("PRERELEASEIDENTIFIERLOOSE",`(?:${l[d.NUMERICIDENTIFIERLOOSE]}|${l[d.NONNUMERICIDENTIFIER]})`),V("PRERELEASE",`(?:-(${l[d.PRERELEASEIDENTIFIER]}(?:\\.${l[d.PRERELEASEIDENTIFIER]})*))`),V("PRERELEASELOOSE",`(?:-?(${l[d.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[d.PRERELEASEIDENTIFIERLOOSE]})*))`),V("BUILDIDENTIFIER",`${m}+`),V("BUILD",`(?:\\+(${l[d.BUILDIDENTIFIER]}(?:\\.${l[d.BUILDIDENTIFIER]})*))`),V("FULLPLAIN",`v?${l[d.MAINVERSION]}${l[d.PRERELEASE]}?${l[d.BUILD]}?`),V("FULL",`^${l[d.FULLPLAIN]}$`),V("LOOSEPLAIN",`[v=\\s]*${l[d.MAINVERSIONLOOSE]}${l[d.PRERELEASELOOSE]}?${l[d.BUILD]}?`),V("LOOSE",`^${l[d.LOOSEPLAIN]}$`),V("GTLT","((?:<|>)?=?)"),V("XRANGEIDENTIFIERLOOSE",`${l[d.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),V("XRANGEIDENTIFIER",`${l[d.NUMERICIDENTIFIER]}|x|X|\\*`),V("XRANGEPLAIN",`[v=\\s]*(${l[d.XRANGEIDENTIFIER]})(?:\\.(${l[d.XRANGEIDENTIFIER]})(?:\\.(${l[d.XRANGEIDENTIFIER]})(?:${l[d.PRERELEASE]})?${l[d.BUILD]}?)?)?`),V("XRANGEPLAINLOOSE",`[v=\\s]*(${l[d.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[d.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[d.XRANGEIDENTIFIERLOOSE]})(?:${l[d.PRERELEASELOOSE]})?${l[d.BUILD]}?)?)?`),V("XRANGE",`^${l[d.GTLT]}\\s*${l[d.XRANGEPLAIN]}$`),V("XRANGELOOSE",`^${l[d.GTLT]}\\s*${l[d.XRANGEPLAINLOOSE]}$`),V("COERCE",`(^|[^\\d])(\\d{1,${i}})(?:\\.(\\d{1,${i}}))?(?:\\.(\\d{1,${i}}))?(?:$|[^\\d])`),V("COERCERTL",l[d.COERCE],!0),V("LONETILDE","(?:~>?)"),V("TILDETRIM",`(\\s*)${l[d.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",V("TILDE",`^${l[d.LONETILDE]}${l[d.XRANGEPLAIN]}$`),V("TILDELOOSE",`^${l[d.LONETILDE]}${l[d.XRANGEPLAINLOOSE]}$`),V("LONECARET","(?:\\^)"),V("CARETTRIM",`(\\s*)${l[d.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",V("CARET",`^${l[d.LONECARET]}${l[d.XRANGEPLAIN]}$`),V("CARETLOOSE",`^${l[d.LONECARET]}${l[d.XRANGEPLAINLOOSE]}$`),V("COMPARATORLOOSE",`^${l[d.GTLT]}\\s*(${l[d.LOOSEPLAIN]})$|^$`),V("COMPARATOR",`^${l[d.GTLT]}\\s*(${l[d.FULLPLAIN]})$|^$`),V("COMPARATORTRIM",`(\\s*)${l[d.GTLT]}\\s*(${l[d.LOOSEPLAIN]}|${l[d.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",V("HYPHENRANGE",`^\\s*(${l[d.XRANGEPLAIN]})\\s+-\\s+(${l[d.XRANGEPLAIN]})\\s*$`),V("HYPHENRANGELOOSE",`^\\s*(${l[d.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[d.XRANGEPLAINLOOSE]})\\s*$`),V("STAR","(<|>)?=?\\s*\\*"),V("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),V("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(yn,yn.exports);const VW1=Object.freeze({loose:!0}),LW1=Object.freeze({}),HW1=e=>e?typeof e!="object"?VW1:e:LW1;var FH=HW1;const R_=/^[0-9]+$/,l51=(e,t)=>{const i=R_.test(e),a=R_.test(t);return i&&a&&(e=+e,t=+t),e===t?0:i&&!a?-1:a&&!i?1:el51(t,e);var c51={compareIdentifiers:l51,rcompareIdentifiers:MW1};const pl=dm,{MAX_LENGTH:b_,MAX_SAFE_INTEGER:fl}=cm,{safeRe:N_,t:w_}=yn.exports,gW1=FH,{compareIdentifiers:H6}=c51;class _i{constructor(t,i){if(i=gW1(i),t instanceof _i){if(t.loose===!!i.loose&&t.includePrerelease===!!i.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>b_)throw new TypeError(`version is longer than ${b_} characters`);pl("SemVer",t,i),this.options=i,this.loose=!!i.loose,this.includePrerelease=!!i.includePrerelease;const a=t.trim().match(i.loose?N_[w_.LOOSE]:N_[w_.FULL]);if(!a)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+a[1],this.minor=+a[2],this.patch=+a[3],this.major>fl||this.major<0)throw new TypeError("Invalid major version");if(this.minor>fl||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>fl||this.patch<0)throw new TypeError("Invalid patch version");a[4]?this.prerelease=a[4].split(".").map(r=>{if(/^[0-9]+$/.test(r)){const n=+r;if(n>=0&&n=0;)typeof this.prerelease[n]=="number"&&(this.prerelease[n]++,n=-2);if(n===-1){if(i===this.prerelease.join(".")&&a===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(r)}}if(i){let n=[i,r];a===!1&&(n=[i]),H6(this.prerelease[0],i)===0?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}var Bt=_i;const T_=Bt,AW1=(e,t,i=!1)=>{if(e instanceof T_)return e;try{return new T_(e,t)}catch(a){if(!i)return null;throw a}};var xo=AW1;const vW1=xo,_W1=(e,t)=>{const i=vW1(e,t);return i?i.version:null};var SW1=_W1;const DW1=xo,yW1=(e,t)=>{const i=DW1(e.trim().replace(/^[=v]+/,""),t);return i?i.version:null};var RW1=yW1;const E_=Bt,bW1=(e,t,i,a,r)=>{typeof i=="string"&&(r=a,a=i,i=void 0);try{return new E_(e instanceof E_?e.version:e,i).inc(t,a,r).version}catch{return null}};var NW1=bW1;const P_=xo,wW1=(e,t)=>{const i=P_(e,null,!0),a=P_(t,null,!0),r=i.compare(a);if(r===0)return null;const n=r>0,o=n?i:a,s=n?a:i,l=!!o.prerelease.length;if(!!s.prerelease.length&&!l)return!s.patch&&!s.minor?"major":o.patch?"patch":o.minor?"minor":"major";const C=l?"pre":"";return i.major!==a.major?C+"major":i.minor!==a.minor?C+"minor":i.patch!==a.patch?C+"patch":"prerelease"};var TW1=wW1;const EW1=Bt,PW1=(e,t)=>new EW1(e,t).major;var IW1=PW1;const OW1=Bt,UW1=(e,t)=>new OW1(e,t).minor;var xW1=UW1;const FW1=Bt,kW1=(e,t)=>new FW1(e,t).patch;var BW1=kW1;const zW1=xo,ZW1=(e,t)=>{const i=zW1(e,t);return i&&i.prerelease.length?i.prerelease:null};var GW1=ZW1;const I_=Bt,WW1=(e,t,i)=>new I_(e,i).compare(new I_(t,i));var Yi=WW1;const XW1=Yi,YW1=(e,t,i)=>XW1(t,e,i);var $W1=YW1;const qW1=Yi,KW1=(e,t)=>qW1(e,t,!0);var jW1=KW1;const O_=Bt,QW1=(e,t,i)=>{const a=new O_(e,i),r=new O_(t,i);return a.compare(r)||a.compareBuild(r)};var kH=QW1;const JW1=kH,eX1=(e,t)=>e.sort((i,a)=>JW1(i,a,t));var tX1=eX1;const iX1=kH,aX1=(e,t)=>e.sort((i,a)=>iX1(a,i,t));var rX1=aX1;const nX1=Yi,oX1=(e,t,i)=>nX1(e,t,i)>0;var Cm=oX1;const sX1=Yi,lX1=(e,t,i)=>sX1(e,t,i)<0;var BH=lX1;const cX1=Yi,dX1=(e,t,i)=>cX1(e,t,i)===0;var d51=dX1;const CX1=Yi,mX1=(e,t,i)=>CX1(e,t,i)!==0;var C51=mX1;const uX1=Yi,hX1=(e,t,i)=>uX1(e,t,i)>=0;var zH=hX1;const pX1=Yi,fX1=(e,t,i)=>pX1(e,t,i)<=0;var ZH=fX1;const VX1=d51,LX1=C51,HX1=Cm,MX1=zH,gX1=BH,AX1=ZH,vX1=(e,t,i,a)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof i=="object"&&(i=i.version),e===i;case"!==":return typeof e=="object"&&(e=e.version),typeof i=="object"&&(i=i.version),e!==i;case"":case"=":case"==":return VX1(e,i,a);case"!=":return LX1(e,i,a);case">":return HX1(e,i,a);case">=":return MX1(e,i,a);case"<":return gX1(e,i,a);case"<=":return AX1(e,i,a);default:throw new TypeError(`Invalid operator: ${t}`)}};var m51=vX1;const _X1=Bt,SX1=xo,{safeRe:Vl,t:Ll}=yn.exports,DX1=(e,t)=>{if(e instanceof _X1)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let i=null;if(!t.rtl)i=e.match(Vl[Ll.COERCE]);else{let a;for(;(a=Vl[Ll.COERCERTL].exec(e))&&(!i||i.index+i[0].length!==e.length);)(!i||a.index+a[0].length!==i.index+i[0].length)&&(i=a),Vl[Ll.COERCERTL].lastIndex=a.index+a[1].length+a[2].length;Vl[Ll.COERCERTL].lastIndex=-1}return i===null?null:SX1(`${i[2]}.${i[3]||"0"}.${i[4]||"0"}`,t)};var yX1=DX1,zu,U_;function RX1(){return U_||(U_=1,zu=function(e){e.prototype[Symbol.iterator]=function*(){for(let t=this.head;t;t=t.next)yield t.value}}),zu}var bX1=Ae;Ae.Node=Rn;Ae.create=Ae;function Ae(e){var t=this;if(t instanceof Ae||(t=new Ae),t.tail=null,t.head=null,t.length=0,e&&typeof e.forEach=="function")e.forEach(function(r){t.push(r)});else if(arguments.length>0)for(var i=0,a=arguments.length;i1)i=t;else if(this.head)a=this.head.next,i=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var r=0;a!==null;r++)i=e(i,a.value,r),a=a.next;return i};Ae.prototype.reduceReverse=function(e,t){var i,a=this.tail;if(arguments.length>1)i=t;else if(this.tail)a=this.tail.prev,i=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var r=this.length-1;a!==null;r--)i=e(i,a.value,r),a=a.prev;return i};Ae.prototype.toArray=function(){for(var e=new Array(this.length),t=0,i=this.head;i!==null;t++)e[t]=i.value,i=i.next;return e};Ae.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,i=this.tail;i!==null;t++)e[t]=i.value,i=i.prev;return e};Ae.prototype.slice=function(e,t){t=t||this.length,t<0&&(t+=this.length),e=e||0,e<0&&(e+=this.length);var i=new Ae;if(tthis.length&&(t=this.length);for(var a=0,r=this.head;r!==null&&athis.length&&(t=this.length);for(var a=this.length,r=this.tail;r!==null&&a>t;a--)r=r.prev;for(;r!==null&&a>e;a--,r=r.prev)i.push(r.value);return i};Ae.prototype.splice=function(e,t,...i){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var a=0,r=this.head;r!==null&&a1;class PX1{constructor(t){if(typeof t=="number"&&(t={max:t}),t||(t={}),t.max&&(typeof t.max!="number"||t.max<0))throw new TypeError("max must be a non-negative number");this[kr]=t.max||1/0;const i=t.length||Zu;if(this[M6]=typeof i!="function"?Zu:i,this[ds]=t.stale||!1,t.maxAge&&typeof t.maxAge!="number")throw new TypeError("maxAge must be a number");this[jr]=t.maxAge||0,this[ra]=t.dispose,this[x_]=t.noDisposeOnSet||!1,this[u51]=t.updateAgeOnGet||!1,this.reset()}set max(t){if(typeof t!="number"||t<0)throw new TypeError("max must be a non-negative number");this[kr]=t||1/0,M7(this)}get max(){return this[kr]}set allowStale(t){this[ds]=!!t}get allowStale(){return this[ds]}set maxAge(t){if(typeof t!="number")throw new TypeError("maxAge must be a non-negative number");this[jr]=t,M7(this)}get maxAge(){return this[jr]}set lengthCalculator(t){typeof t!="function"&&(t=Zu),t!==this[M6]&&(this[M6]=t,this[la]=0,this[z5].forEach(i=>{i.length=this[M6](i.value,i.key),this[la]+=i.length})),M7(this)}get lengthCalculator(){return this[M6]}get length(){return this[la]}get itemCount(){return this[z5].length}rforEach(t,i){i=i||this;for(let a=this[z5].tail;a!==null;){const r=a.prev;F_(this,t,a,i),a=r}}forEach(t,i){i=i||this;for(let a=this[z5].head;a!==null;){const r=a.next;F_(this,t,a,i),a=r}}keys(){return this[z5].toArray().map(t=>t.key)}values(){return this[z5].toArray().map(t=>t.value)}reset(){this[ra]&&this[z5]&&this[z5].length&&this[z5].forEach(t=>this[ra](t.key,t.value)),this[Si]=new Map,this[z5]=new EX1,this[la]=0}dump(){return this[z5].map(t=>gd(this,t)?!1:{k:t.key,v:t.value,e:t.now+(t.maxAge||0)}).toArray().filter(t=>t)}dumpLru(){return this[z5]}set(t,i,a){if(a=a||this[jr],a&&typeof a!="number")throw new TypeError("maxAge must be a number");const r=a?Date.now():0,n=this[M6](i,t);if(this[Si].has(t)){if(n>this[kr])return $6(this,this[Si].get(t)),!1;const l=this[Si].get(t).value;return this[ra]&&(this[x_]||this[ra](t,l.value)),l.now=r,l.maxAge=a,l.value=i,this[la]+=n-l.length,l.length=n,this.get(t),M7(this),!0}const o=new IX1(t,i,n,r,a);return o.length>this[kr]?(this[ra]&&this[ra](t,i),!1):(this[la]+=o.length,this[z5].unshift(o),this[Si].set(t,this[z5].head),M7(this),!0)}has(t){if(!this[Si].has(t))return!1;const i=this[Si].get(t).value;return!gd(this,i)}get(t){return Gu(this,t,!0)}peek(t){return Gu(this,t,!1)}pop(){const t=this[z5].tail;return t?($6(this,t),t.value):null}del(t){$6(this,this[Si].get(t))}load(t){this.reset();const i=Date.now();for(let a=t.length-1;a>=0;a--){const r=t[a],n=r.e||0;if(n===0)this.set(r.k,r.v);else{const o=n-i;o>0&&this.set(r.k,r.v,o)}}}prune(){this[Si].forEach((t,i)=>Gu(this,i,!1))}}const Gu=(e,t,i)=>{const a=e[Si].get(t);if(a){const r=a.value;if(gd(e,r)){if($6(e,a),!e[ds])return}else i&&(e[u51]&&(a.value.now=Date.now()),e[z5].unshiftNode(a));return r.value}},gd=(e,t)=>{if(!t||!t.maxAge&&!e[jr])return!1;const i=Date.now()-t.now;return t.maxAge?i>t.maxAge:e[jr]&&i>e[jr]},M7=e=>{if(e[la]>e[kr])for(let t=e[z5].tail;e[la]>e[kr]&&t!==null;){const i=t.prev;$6(e,t),t=i}},$6=(e,t)=>{if(t){const i=t.value;e[ra]&&e[ra](i.key,i.value),e[la]-=i.length,e[Si].delete(i.key),e[z5].removeNode(t)}};class IX1{constructor(t,i,a,r,n){this.key=t,this.value=i,this.length=a,this.now=r,this.maxAge=n||0}}const F_=(e,t,i,a)=>{let r=i.value;gd(e,r)&&($6(e,i),e[ds]||(r=void 0)),r&&t.call(a,r.value,r.key,e)};var OX1=PX1,Wu,k_;function $i(){if(k_)return Wu;k_=1;class e{constructor(O,z){if(z=a(z),O instanceof e)return O.loose===!!z.loose&&O.includePrerelease===!!z.includePrerelease?O:new e(O.raw,z);if(O instanceof r)return this.raw=O.value,this.set=[[O]],this.format(),this;if(this.options=z,this.loose=!!z.loose,this.includePrerelease=!!z.includePrerelease,this.raw=O.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(F=>this.parseRange(F.trim())).filter(F=>F.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const F=this.set[0];if(this.set=this.set.filter(J=>!V(J[0])),this.set.length===0)this.set=[F];else if(this.set.length>1){for(const J of this.set)if(J.length===1&&f(J[0])){this.set=[J];break}}}this.format()}format(){return this.range=this.set.map(O=>O.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(O){const F=((this.options.includePrerelease&&u)|(this.options.loose&&p))+":"+O,J=i.get(F);if(J)return J;const W=this.options.loose,r1=W?s[l.HYPHENRANGELOOSE]:s[l.HYPHENRANGE];O=O.replace(r1,x(this.options.includePrerelease)),n("hyphen replace",O),O=O.replace(s[l.COMPARATORTRIM],d),n("comparator trim",O),O=O.replace(s[l.TILDETRIM],C),n("tilde trim",O),O=O.replace(s[l.CARETTRIM],m),n("caret trim",O);let $=O.split(" ").map(A1=>H(A1,this.options)).join(" ").split(/\s+/).map(A1=>w(A1,this.options));W&&($=$.filter(A1=>(n("loose invalid filter",A1,this.options),!!A1.match(s[l.COMPARATORLOOSE])))),n("range list",$);const t1=new Map,l1=$.map(A1=>new r(A1,this.options));for(const A1 of l1){if(V(A1))return[A1];t1.set(A1.value,A1)}t1.size>1&&t1.has("")&&t1.delete("");const V1=[...t1.values()];return i.set(F,V1),V1}intersects(O,z){if(!(O instanceof e))throw new TypeError("a Range is required");return this.set.some(F=>M(F,z)&&O.set.some(J=>M(J,z)&&F.every(W=>J.every(r1=>W.intersects(r1,z)))))}test(O){if(!O)return!1;if(typeof O=="string")try{O=new o(O,this.options)}catch{return!1}for(let z=0;zE.value==="<0.0.0-0",f=E=>E.value==="",M=(E,O)=>{let z=!0;const F=E.slice();let J=F.pop();for(;z&&F.length;)z=F.every(W=>J.intersects(W,O)),J=F.pop();return z},H=(E,O)=>(n("comp",E,O),E=S(E,O),n("caret",E),E=_(E,O),n("tildes",E),E=D(E,O),n("xrange",E),E=N(E,O),n("stars",E),E),g=E=>!E||E.toLowerCase()==="x"||E==="*",_=(E,O)=>E.trim().split(/\s+/).map(z=>v(z,O)).join(" "),v=(E,O)=>{const z=O.loose?s[l.TILDELOOSE]:s[l.TILDE];return E.replace(z,(F,J,W,r1,$)=>{n("tilde",E,F,J,W,r1,$);let t1;return g(J)?t1="":g(W)?t1=`>=${J}.0.0 <${+J+1}.0.0-0`:g(r1)?t1=`>=${J}.${W}.0 <${J}.${+W+1}.0-0`:$?(n("replaceTilde pr",$),t1=`>=${J}.${W}.${r1}-${$} <${J}.${+W+1}.0-0`):t1=`>=${J}.${W}.${r1} <${J}.${+W+1}.0-0`,n("tilde return",t1),t1})},S=(E,O)=>E.trim().split(/\s+/).map(z=>y(z,O)).join(" "),y=(E,O)=>{n("caret",E,O);const z=O.loose?s[l.CARETLOOSE]:s[l.CARET],F=O.includePrerelease?"-0":"";return E.replace(z,(J,W,r1,$,t1)=>{n("caret",E,J,W,r1,$,t1);let l1;return g(W)?l1="":g(r1)?l1=`>=${W}.0.0${F} <${+W+1}.0.0-0`:g($)?W==="0"?l1=`>=${W}.${r1}.0${F} <${W}.${+r1+1}.0-0`:l1=`>=${W}.${r1}.0${F} <${+W+1}.0.0-0`:t1?(n("replaceCaret pr",t1),W==="0"?r1==="0"?l1=`>=${W}.${r1}.${$}-${t1} <${W}.${r1}.${+$+1}-0`:l1=`>=${W}.${r1}.${$}-${t1} <${W}.${+r1+1}.0-0`:l1=`>=${W}.${r1}.${$}-${t1} <${+W+1}.0.0-0`):(n("no pr"),W==="0"?r1==="0"?l1=`>=${W}.${r1}.${$}${F} <${W}.${r1}.${+$+1}-0`:l1=`>=${W}.${r1}.${$}${F} <${W}.${+r1+1}.0-0`:l1=`>=${W}.${r1}.${$} <${+W+1}.0.0-0`),n("caret return",l1),l1})},D=(E,O)=>(n("replaceXRanges",E,O),E.split(/\s+/).map(z=>R(z,O)).join(" ")),R=(E,O)=>{E=E.trim();const z=O.loose?s[l.XRANGELOOSE]:s[l.XRANGE];return E.replace(z,(F,J,W,r1,$,t1)=>{n("xRange",E,F,J,W,r1,$,t1);const l1=g(W),V1=l1||g(r1),A1=V1||g($),n1=A1;return J==="="&&n1&&(J=""),t1=O.includePrerelease?"-0":"",l1?J===">"||J==="<"?F="<0.0.0-0":F="*":J&&n1?(V1&&(r1=0),$=0,J===">"?(J=">=",V1?(W=+W+1,r1=0,$=0):(r1=+r1+1,$=0)):J==="<="&&(J="<",V1?W=+W+1:r1=+r1+1),J==="<"&&(t1="-0"),F=`${J+W}.${r1}.${$}${t1}`):V1?F=`>=${W}.0.0${t1} <${+W+1}.0.0-0`:A1&&(F=`>=${W}.${r1}.0${t1} <${W}.${+r1+1}.0-0`),n("xRange return",F),F})},N=(E,O)=>(n("replaceStars",E,O),E.trim().replace(s[l.STAR],"")),w=(E,O)=>(n("replaceGTE0",E,O),E.trim().replace(s[O.includePrerelease?l.GTE0PRE:l.GTE0],"")),x=E=>(O,z,F,J,W,r1,$,t1,l1,V1,A1,n1,M1)=>(g(F)?z="":g(J)?z=`>=${F}.0.0${E?"-0":""}`:g(W)?z=`>=${F}.${J}.0${E?"-0":""}`:r1?z=`>=${z}`:z=`>=${z}${E?"-0":""}`,g(l1)?t1="":g(V1)?t1=`<${+l1+1}.0.0-0`:g(A1)?t1=`<${l1}.${+V1+1}.0-0`:n1?t1=`<=${l1}.${V1}.${A1}-${n1}`:E?t1=`<${l1}.${V1}.${+A1+1}-0`:t1=`<=${t1}`,`${z} ${t1}`.trim()),U=(E,O,z)=>{for(let F=0;F0){const J=E[F].semver;if(J.major===O.major&&J.minor===O.minor&&J.patch===O.patch)return!0}return!1}return!0};return Wu}var Xu,B_;function mm(){if(B_)return Xu;B_=1;const e=Symbol("SemVer ANY");class t{static get ANY(){return e}constructor(C,m){if(m=i(m),C instanceof t){if(C.loose===!!m.loose)return C;C=C.value}C=C.trim().split(/\s+/).join(" "),o("comparator",C,m),this.options=m,this.loose=!!m.loose,this.parse(C),this.semver===e?this.value="":this.value=this.operator+this.semver.version,o("comp",this)}parse(C){const m=this.options.loose?a[r.COMPARATORLOOSE]:a[r.COMPARATOR],u=C.match(m);if(!u)throw new TypeError(`Invalid comparator: ${C}`);this.operator=u[1]!==void 0?u[1]:"",this.operator==="="&&(this.operator=""),u[2]?this.semver=new s(u[2],this.options.loose):this.semver=e}toString(){return this.value}test(C){if(o("Comparator.test",C,this.options.loose),this.semver===e||C===e)return!0;if(typeof C=="string")try{C=new s(C,this.options)}catch{return!1}return n(C,this.operator,this.semver,this.options)}intersects(C,m){if(!(C instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new l(C.value,m).test(this.value):C.operator===""?C.value===""?!0:new l(this.value,m).test(C.semver):(m=i(m),m.includePrerelease&&(this.value==="<0.0.0-0"||C.value==="<0.0.0-0")||!m.includePrerelease&&(this.value.startsWith("<0.0.0")||C.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&C.operator.startsWith(">")||this.operator.startsWith("<")&&C.operator.startsWith("<")||this.semver.version===C.semver.version&&this.operator.includes("=")&&C.operator.includes("=")||n(this.semver,"<",C.semver,m)&&this.operator.startsWith(">")&&C.operator.startsWith("<")||n(this.semver,">",C.semver,m)&&this.operator.startsWith("<")&&C.operator.startsWith(">")))}}Xu=t;const i=FH,{safeRe:a,t:r}=yn.exports,n=m51,o=dm,s=Bt,l=$i();return Xu}const UX1=$i(),xX1=(e,t,i)=>{try{t=new UX1(t,i)}catch{return!1}return t.test(e)};var um=xX1;const FX1=$i(),kX1=(e,t)=>new FX1(e,t).set.map(i=>i.map(a=>a.value).join(" ").trim().split(" "));var BX1=kX1;const zX1=Bt,ZX1=$i(),GX1=(e,t,i)=>{let a=null,r=null,n=null;try{n=new ZX1(t,i)}catch{return null}return e.forEach(o=>{n.test(o)&&(!a||r.compare(o)===-1)&&(a=o,r=new zX1(a,i))}),a};var WX1=GX1;const XX1=Bt,YX1=$i(),$X1=(e,t,i)=>{let a=null,r=null,n=null;try{n=new YX1(t,i)}catch{return null}return e.forEach(o=>{n.test(o)&&(!a||r.compare(o)===1)&&(a=o,r=new XX1(a,i))}),a};var qX1=$X1;const Yu=Bt,KX1=$i(),z_=Cm,jX1=(e,t)=>{e=new KX1(e,t);let i=new Yu("0.0.0");if(e.test(i)||(i=new Yu("0.0.0-0"),e.test(i)))return i;i=null;for(let a=0;a{const s=new Yu(o.semver.version);switch(o.operator){case">":s.prerelease.length===0?s.patch++:s.prerelease.push(0),s.raw=s.format();case"":case">=":(!n||z_(s,n))&&(n=s);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),n&&(!i||z_(i,n))&&(i=n)}return i&&e.test(i)?i:null};var QX1=jX1;const JX1=$i(),eY1=(e,t)=>{try{return new JX1(e,t).range||"*"}catch{return null}};var tY1=eY1;const iY1=Bt,h51=mm(),{ANY:aY1}=h51,rY1=$i(),nY1=um,Z_=Cm,G_=BH,oY1=ZH,sY1=zH,lY1=(e,t,i,a)=>{e=new iY1(e,a),t=new rY1(t,a);let r,n,o,s,l;switch(i){case">":r=Z_,n=oY1,o=G_,s=">",l=">=";break;case"<":r=G_,n=sY1,o=Z_,s="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(nY1(e,t,a))return!1;for(let d=0;d{p.semver===aY1&&(p=new h51(">=0.0.0")),m=m||p,u=u||p,r(p.semver,m.semver,a)?m=p:o(p.semver,u.semver,a)&&(u=p)}),m.operator===s||m.operator===l||(!u.operator||u.operator===s)&&n(e,u.semver))return!1;if(u.operator===l&&o(e,u.semver))return!1}return!0};var GH=lY1;const cY1=GH,dY1=(e,t,i)=>cY1(e,t,">",i);var CY1=dY1;const mY1=GH,uY1=(e,t,i)=>mY1(e,t,"<",i);var hY1=uY1;const W_=$i(),pY1=(e,t,i)=>(e=new W_(e,i),t=new W_(t,i),e.intersects(t,i));var fY1=pY1;const VY1=um,LY1=Yi;var HY1=(e,t,i)=>{const a=[];let r=null,n=null;const o=e.sort((C,m)=>LY1(C,m,i));for(const C of o)VY1(C,t,i)?(n=C,r||(r=C)):(n&&a.push([r,n]),n=null,r=null);r&&a.push([r,null]);const s=[];for(const[C,m]of a)C===m?s.push(C):!m&&C===o[0]?s.push("*"):m?C===o[0]?s.push(`<=${m}`):s.push(`${C} - ${m}`):s.push(`>=${C}`);const l=s.join(" || "),d=typeof t.raw=="string"?t.raw:String(t);return l.length{if(e===t)return!0;e=new X_(e,i),t=new X_(t,i);let a=!1;e:for(const r of e.set){for(const n of t.set){const o=AY1(r,n,i);if(a=a||o!==null,o)continue e}if(a)return!1}return!0},gY1=[new WH(">=0.0.0-0")],Y_=[new WH(">=0.0.0")],AY1=(e,t,i)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===$u){if(t.length===1&&t[0].semver===$u)return!0;i.includePrerelease?e=gY1:e=Y_}if(t.length===1&&t[0].semver===$u){if(i.includePrerelease)return!0;t=Y_}const a=new Set;let r,n;for(const p of e)p.operator===">"||p.operator===">="?r=$_(r,p,i):p.operator==="<"||p.operator==="<="?n=q_(n,p,i):a.add(p.semver);if(a.size>1)return null;let o;if(r&&n){if(o=XH(r.semver,n.semver,i),o>0)return null;if(o===0&&(r.operator!==">="||n.operator!=="<="))return null}for(const p of a){if(r&&!g7(p,String(r),i)||n&&!g7(p,String(n),i))return null;for(const V of t)if(!g7(p,String(V),i))return!1;return!0}let s,l,d,C,m=n&&!i.includePrerelease&&n.semver.prerelease.length?n.semver:!1,u=r&&!i.includePrerelease&&r.semver.prerelease.length?r.semver:!1;m&&m.prerelease.length===1&&n.operator==="<"&&m.prerelease[0]===0&&(m=!1);for(const p of t){if(C=C||p.operator===">"||p.operator===">=",d=d||p.operator==="<"||p.operator==="<=",r){if(u&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===u.major&&p.semver.minor===u.minor&&p.semver.patch===u.patch&&(u=!1),p.operator===">"||p.operator===">="){if(s=$_(r,p,i),s===p&&s!==r)return!1}else if(r.operator===">="&&!g7(r.semver,String(p),i))return!1}if(n){if(m&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===m.major&&p.semver.minor===m.minor&&p.semver.patch===m.patch&&(m=!1),p.operator==="<"||p.operator==="<="){if(l=q_(n,p,i),l===p&&l!==n)return!1}else if(n.operator==="<="&&!g7(n.semver,String(p),i))return!1}if(!p.operator&&(n||r)&&o!==0)return!1}return!(r&&d&&!n&&o!==0||n&&C&&!r&&o!==0||u||m)},$_=(e,t,i)=>{if(!e)return t;const a=XH(e.semver,t.semver,i);return a>0?e:a<0||t.operator===">"&&e.operator===">="?t:e},q_=(e,t,i)=>{if(!e)return t;const a=XH(e.semver,t.semver,i);return a<0?e:a>0||t.operator==="<"&&e.operator==="<="?t:e};var vY1=MY1;const qu=yn.exports,K_=cm,_Y1=Bt,j_=c51,SY1=xo,DY1=SW1,yY1=RW1,RY1=NW1,bY1=TW1,NY1=IW1,wY1=xW1,TY1=BW1,EY1=GW1,PY1=Yi,IY1=$W1,OY1=jW1,UY1=kH,xY1=tX1,FY1=rX1,kY1=Cm,BY1=BH,zY1=d51,ZY1=C51,GY1=zH,WY1=ZH,XY1=m51,YY1=yX1,$Y1=mm(),qY1=$i(),KY1=um,jY1=BX1,QY1=WX1,JY1=qX1,e$1=QX1,t$1=tY1,i$1=GH,a$1=CY1,r$1=hY1,n$1=fY1,o$1=HY1,s$1=vY1;var Q_={parse:SY1,valid:DY1,clean:yY1,inc:RY1,diff:bY1,major:NY1,minor:wY1,patch:TY1,prerelease:EY1,compare:PY1,rcompare:IY1,compareLoose:OY1,compareBuild:UY1,sort:xY1,rsort:FY1,gt:kY1,lt:BY1,eq:zY1,neq:ZY1,gte:GY1,lte:WY1,cmp:XY1,coerce:YY1,Comparator:$Y1,Range:qY1,satisfies:KY1,toComparators:jY1,maxSatisfying:QY1,minSatisfying:JY1,minVersion:e$1,validRange:t$1,outside:i$1,gtr:a$1,ltr:r$1,intersects:n$1,simplifyRange:o$1,subset:s$1,SemVer:_Y1,re:qu.re,src:qu.src,tokens:qu.t,SEMVER_SPEC_VERSION:K_.SEMVER_SPEC_VERSION,RELEASE_TYPES:K_.RELEASE_TYPES,compareIdentifiers:j_.compareIdentifiers,rcompareIdentifiers:j_.rcompareIdentifiers};const l$1={},c$1={class:"px-4 py-1 text-lg font-medium text-white uppercase transition-all rounded-md shadow-md action-button bg-slate-500 hover:bg-slate-400"};function d$1(e,t){return C1(),N1("button",c$1,[Se(e.$slots,"default")])}const V4=w5(l$1,[["render",d$1]]),C$1=["data"],J_="#747474",m$1=n2({__name:"JoystickPS",props:{model:{},b0:{},b1:{},b2:{},b3:{},b4:{},b5:{},b6:{},b7:{},b8:{},b9:{},b10:{},b11:{},b12:{},b13:{},b14:{},b15:{},b16:{},b17:{},leftAxisHoriz:{},leftAxisVert:{},rightAxisHoriz:{},rightAxisVert:{},buttonsActionsCorrespondency:{}},emits:["click"],setup(e,{emit:t}){const i=q(()=>{switch(p.value){case ut.LogitechExtreme3DPro:return"LogitechExtreme3DPro";case ut.IpegaPG9023:return"Ipega9023";default:return"PS4"}}),a={[B1.B0]:"path_b0",[B1.B1]:"path_b1",[B1.B2]:"path_b2",[B1.B3]:"path_b3",[B1.B4]:"path_b4",[B1.B5]:"path_b5",[B1.B6]:"path_b6",[B1.B7]:"path_b7",[B1.B8]:"path_b8",[B1.B9]:"path_b9",[B1.B10]:"path_b10",[B1.B11]:"path_b11",[B1.B12]:"path_b12",[B1.B13]:"path_b13",[B1.B14]:"path_b14",[B1.B15]:"path_b15",[B1.B16]:"path_b16",[B1.B17]:"path_b17"},r=q(()=>{switch(i.value){case"LogitechExtreme3DPro":return{[t5.A0]:"path_b14",[t5.A1]:"path_b14",[t5.A2]:"path_b13",[t5.A3]:"path_b12"};default:return{[t5.A0]:"path_b10",[t5.A1]:"path_b10",[t5.A2]:"path_b11",[t5.A3]:"path_b11"}}}),n=e,o=t,s=_=>{const v=[];return Object.entries(a).filter(([,S])=>S===_).forEach(S=>{v.push({type:$s.Button,id:S[0]})}),Object.entries(r.value).filter(([,S])=>S===_).forEach(S=>{v.push({type:$s.Axis,id:S[0]})}),v};let l,d;const C=i1(`joystick-${pt()}`),m=_=>_.id.includes("path_b");l=setInterval(()=>{var _;d||(d=(_=document==null?void 0:document.querySelector(`.${C.value}`))==null?void 0:_.getSVGDocument(),M(),f(),d==null||d.addEventListener("mouseover",v=>{const S=v.target;!m(S)||S.setAttribute("fill","#2699D0")}),d==null||d.addEventListener("mouseout",v=>{const S=v.target;!m(S)||(S.setAttribute("fill","transparent"),document.body.style.cursor="auto")}),d==null||d.addEventListener("mousedown",v=>{const S=v.target;!m(S)||o("click",s(S.id))}),d==null||d.addEventListener("mouseup",v=>{const S=v.target;!m(S)||S.setAttribute("fill","transparent")}))},100),xe(async()=>{clearInterval(l)}),T1(()=>[n.leftAxisHoriz,n.leftAxisVert,n.rightAxisHoriz,n.rightAxisVert],()=>{var _,v,S,y;g([t5.A0,t5.A1],[(_=n.leftAxisHoriz)!=null?_:0,(v=n.leftAxisVert)!=null?v:0]),g([t5.A2,t5.A3],[(S=n.rightAxisHoriz)!=null?S:0,(y=n.rightAxisVert)!=null?y:0])});const u=q(()=>`/images/${i.value}.svg`);T1(()=>[n.b0,n.b1,n.b2,n.b3,n.b4,n.b5,n.b6,n.b7,n.b8,n.b9,n.b10,n.b11,n.b12,n.b13,n.b14,n.b15,n.b16,n.b17],()=>M());const p=j2(n).model,V=j2(n).buttonsActionsCorrespondency;T1(V,()=>f());const f=()=>{Object.values(B1).forEach(_=>{var D;if(isNaN(Number(_)))return;const v=V.value[_]||void 0,S=v===void 0?"unassigned":v.action.name;if(!d)return;const y=a[_].replace("path","text");(d==null?void 0:d.getElementById(y))!==null&&(d.getElementById(y).textContent=S,(D=d.getElementById(y))==null||D.setAttribute("font-style",S==="unassigned"?"italic":"normal"))})},M=()=>{H(B1.B0,n.b0===void 0?!1:n.b0>.5),H(B1.B1,n.b1===void 0?!1:n.b1>.5),H(B1.B2,n.b2===void 0?!1:n.b2>.5),H(B1.B3,n.b3===void 0?!1:n.b3>.5),H(B1.B4,n.b4===void 0?!1:n.b4>.5),H(B1.B5,n.b5===void 0?!1:n.b5>.5),H(B1.B6,n.b6===void 0?!1:n.b6>.5),H(B1.B7,n.b7===void 0?!1:n.b7>.5),H(B1.B8,n.b8===void 0?!1:n.b8>.5),H(B1.B9,n.b9===void 0?!1:n.b9>.5),H(B1.B10,n.b10===void 0?!1:n.b10>.5),H(B1.B11,n.b11===void 0?!1:n.b11>.5),H(B1.B12,n.b12===void 0?!1:n.b12>.5),H(B1.B13,n.b13===void 0?!1:n.b13>.5),H(B1.B14,n.b14===void 0?!1:n.b14>.5),H(B1.B15,n.b15===void 0?!1:n.b15>.5),H(B1.B16,n.b16===void 0?!1:n.b16>.5),H(B1.B17,n.b17===void 0?!1:n.b17>.5)};function H(_,v){var S,y,D;(S=d==null?void 0:d.getElementById(a[_]))==null||S.setAttribute("fill",v?"red":"transparent"),(y=d==null?void 0:d.getElementById(a[_].replace("path","path_line")))==null||y.setAttribute("stroke",v?"red":J_),(D=d==null?void 0:d.getElementById(a[_].replace("path","text")))==null||D.setAttribute("fill",v?"red":J_)}function g(_,v){var D;let S,y;switch(p.value){case"PS5":{S=_[0]==t5.A0?_0(v[0],-1,1,-3920.9,-3882.1):_0(v[0],-1,1,-4144.8,-4106.1),y=_0(v[1],-1,1,-2192.7,-2153.9);break}case"LogitechExtreme3DPro":{S=_0(v[0],-1,1,-15,15),y=_0(v[1],-1,1,-15,15);break}default:{S=_0(v[0],-1,1,-15,15),y=_0(v[1],-1,1,-15,15);break}}(D=d==null?void 0:d.getElementById(r.value[_[0]]))==null||D.setAttribute("transform",`translate(${S} ${y})`)}return(_,v)=>(C1(),N1("object",{class:c2(C.value),type:"image/svg+xml",data:u.value},null,10,C$1))}});const u$1=k1({fullscreen:Boolean,retainFocus:{type:Boolean,default:!0},scrollable:Boolean,...PH({origin:"center center",scrollStrategy:"block",transition:{component:gH},zIndex:2400})},"VDialog"),m0=h2()({name:"VDialog",props:u$1(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:i}=t;const a=ue(e,"modelValue"),{scopeId:r}=om(),n=i1();function o(l){var m,u;const d=l.relatedTarget,C=l.target;if(d!==C&&((m=n.value)==null?void 0:m.contentEl)&&((u=n.value)==null?void 0:u.globalTop)&&![document,n.value.contentEl].includes(C)&&!n.value.contentEl.contains(C)){const p=ed(n.value.contentEl);if(!p.length)return;const V=p[0],f=p[p.length-1];d===V?f.focus():V.focus()}}ze&&T1(()=>a.value&&e.retainFocus,l=>{l?document.addEventListener("focusin",o):document.removeEventListener("focusin",o)},{immediate:!0}),T1(a,async l=>{var d,C;await k2(),l?(d=n.value.contentEl)==null||d.focus({preventScroll:!0}):(C=n.value.activatorEl)==null||C.focus({preventScroll:!0})});const s=q(()=>V2({"aria-haspopup":"dialog","aria-expanded":String(a.value)},e.activatorProps));return M2(()=>{const l=Md.filterProps(e);return P(Md,V2({ref:n,class:["v-dialog",{"v-dialog--fullscreen":e.fullscreen,"v-dialog--scrollable":e.scrollable},e.class],style:e.style},l,{modelValue:a.value,"onUpdate:modelValue":d=>a.value=d,"aria-modal":"true",activatorProps:s.value,role:"dialog"},r),{activator:i.activator,default:function(){for(var d=arguments.length,C=new Array(d),m=0;m{var u;return[(u=i.default)==null?void 0:u.call(i,...C)]}})}})}),Oo({},n)}}),h$1={key:0,class:"p-12 m-8 shadow-md rounded-2xl flex-centered flex-column position-relative"},p$1=K("p",{class:"text-2xl font-semibold"},"No joystick detected.",-1),f$1=K("br",null,null,-1),V$1=K("p",{class:"text-base text-center"},"Make sure that a joystick is connected.",-1),L$1=K("p",{class:"text-base text-center"},"You can hit any key to test the joystick connection.",-1),H$1=[p$1,f$1,V$1,L$1],M$1={key:1,class:"flex flex-col items-center"},g$1=K("div",{class:"flex flex-col items-center px-5 py-3 m-5 font-medium text-center border rounded-md text-grey-darken-1 bg-grey-lighten-5 w-fit"},[K("p",{class:"font-bold"}," This is the joystick configuration page. Here you can calibrate your joystick and map its buttons to functions in your drone. "),K("br"),K("p",null," Click the buttons in your physical controller and see them being activated here. If any button does not light up in this virtual joystick or is switched with another, click in it here and follow the instructions to remap it. "),K("br"),K("p",null," By clicking the virtual buttons and axis you are also able to choose the function in your drone that this button controls, as whel as set axis limits. ")],-1),A$1={key:0,class:"px-5 py-3 m-1 text-center border-yellow-300 bg-yellow-200/10 border-2 rounded-md max-w-[80%] text-slate-600"},v$1=K("p",{class:"font-semibold"},"System update is recommended",-1),_$1=K("br",null,null,-1),S$1=K("p",{class:"font-medium"}," It seems like you're running versions of Mavlink2Rest (BlueOS) and/or ArduPilot that do not support the extended MAVLink MANUAL_CONTROL message. We strongly suggest upgrading both so you can have support for additional buttons and axes on the joystick. This is especially important if you sometimes use other control station software, like QGroundControl, as Cockpit can preferentially use the extended buttons to reduce configuration clashes. We recommend using BlueOS \u2265 1.2.0, and \u2265 version 4.1.2 for ArduPilot-based autopilot firmware. ",-1),D$1=K("p",null,null,-1),y$1=[v$1,_$1,S$1,D$1],R$1={key:1,class:"flex flex-col items-center px-5 py-3 m-5 font-bold border rounded-md text-blue-grey-darken-1 bg-blue-lighten-5 w-fit"},b$1=K("p",null,"Could not stablish communication with the vehicle.",-1),N$1=K("p",null,"Button functions will appear as numbers. If connection is restablished, function names will appear.",-1),w$1=[b$1,N$1],T$1={key:2,class:"flex items-center px-5 py-3 m-5 font-bold border rounded-md"},E$1={class:"flex items-center px-5 py-3 m-5 font-bold border rounded-md"},P$1={class:"text-xl font-semibold text-grey-darken-3"},I$1={key:0,class:"flex flex-col items-center justify-center w-full"},O$1={class:"flex items-center justify-evenly"},U$1={class:"flex flex-col items-center max-w-[30%] mb-4"},x$1=K("span",{class:"mb-2 text-xl font-medium text-slate-500"},"Joystick mapping",-1),F$1={class:"flex flex-wrap items-center justify-evenly"},k$1=["onClick"],B$1={class:"p-2 m-1 font-medium border rounded-md cursor-pointer text-uppercase"},z$1=["onChange"],Z$1={class:"flex flex-col items-center max-w-[30%] mb-4"},G$1=K("span",{class:"mb-2 text-xl font-medium text-slate-500"},"Functions mapping",-1),W$1={class:"flex flex-wrap items-center justify-evenly"},X$1={class:"p-2 m-1 font-medium border rounded-md cursor-pointer text-uppercase"},Y$1=K("p",{class:"flex items-center justify-center w-full p-2 text-2xl font-bold text-slate-600"},"Input mapping",-1),$$1={class:"flex flex-col items-center justify-between"},q$1=K("div",{class:"w-[90%] h-[2px] my-5 bg-slate-900/20"},null,-1),K$1=K("p",{class:"flex items-center justify-center w-full text-xl font-bold text-slate-600"},"Button mapping",-1),j$1={class:"flex flex-col items-center justify-between my-2"},Q$1={key:0,class:"font-medium text-slate-400"},J$1={class:"flex flex-col items-center justify-between w-full my-2"},eq1={class:"flex w-[90%] justify-evenly"},tq1={class:"mx-auto text-xl font-bold"},iq1={class:"flex flex-col items-center px-2 py-1 overflow-y-auto"},aq1={key:0,class:"text-lg font-medium"},rq1=K("div",{class:"w-[90%] h-[2px] my-5 bg-slate-900/20"},null,-1),nq1=K("p",{class:"flex items-center justify-center w-full text-xl font-bold text-slate-600"},"Axis mapping",-1),oq1=n2({__name:"ConfigurationJoystickView",setup(e){const t=k21(),{globalAddress:i}=r5(),a=i1(),r=i1();ee(async()=>{t.enableForwarding=!1;const x=await BB1(i);a.value=Q_.gte(x,"0.11.19");const U=await zB1(i);r.value=Q_.gte(U,"4.1.2")}),Zi(()=>{t.enableForwarding=!0}),T1(()=>t.enableForwarding,()=>t.enableForwarding=!1);const n=i1(),o=i1([]),s=i1([]),l=i1(!1),d=i1(),C=i1(!1),m=i1(""),u=i1(!1),p=i1(),V=i1(!1),f=i1(ft.regular),M=Object.values(ft),H=i1(!0);T1(V,()=>p.value=void 0);const g=(x,U)=>{n.value=x,o.value=U.filter(E=>E.type===$s.Button).map(E=>new Ik1(E.id)),s.value=U.filter(E=>E.type===$s.Axis).map(E=>new Ok1(E.id)),V.value=!0},_=async()=>{try{await t.importFunctionsMappingFromVehicle(i),O2.fire({icon:"success",text:"Joystick functions mappings imported from the vehicle."})}catch(x){O2.fire({icon:"error",text:`${x}`})}},v=async(x,U)=>{p.value=void 0;let E,O=0;const z=5e3;for(l.value=!0,d.value=0,C.value=!0;[void 0,-1].includes(E)&&OF.value===1),await new Promise(F=>setTimeout(F,100)),O+=100,d.value=100*(O/z);if(l.value=!1,setTimeout(()=>C.value=!1,5e3),![void 0,-1].includes(E)){p.value=!0,t.cockpitStdMappings[x.model].buttons[U.id]=E;return}p.value=!1},S=q(()=>t.protocolMapping.buttonsCorrespondencies[f.value.id]),y=(x,U)=>{t.protocolMapping.buttonsCorrespondencies[f.value.id][x.id].action=U,setTimeout(()=>{H.value=!1,k2(()=>H.value=!0)},1e3),m.value=`Button ${x.id} remapped to function '${U.name}'.`,u.value=!0,setTimeout(()=>u.value=!1,5e3)};T1(t.joysticks,()=>{if(n.value===void 0){if(t.joysticks.size<=0)return;n.value=t.joysticks.entries().next().value[1]}const x=Object.values(ft).map(O=>O.id),U=t.protocolMapping.buttonsCorrespondencies[p3.regular],E=Object.entries(U).filter(O=>{var z;return(z=n.value)==null?void 0:z.state.buttons[Number(O[0])]}).map(O=>O[1].action).filter(O=>O.protocol===M5.CockpitModifierKey).filter(O=>x.includes(O.id)).filter(O=>O!==ft.regular);if(!E.isEmpty()){if(f.value.id===E[0].id){R(ft.regular.id);return}R(E[0].id)}});let D=new Date().getTime();const R=x=>{!Object.keys(ft).includes(x)||new Date().getTime()-D<200||(D=new Date().getTime(),f.value=ft[x])},N=q(()=>l.value?"Click the button you want to use for this input.":p.value===void 0?"":p.value?"Input remapped.":"No input detected."),w=q(()=>t.availableButtonActions.filter(x=>JSON.stringify(x)!==JSON.stringify(ft.regular)));return(x,U)=>(C1(),N1(Y1,null,[P(kn,null,{title:v1(()=>[L2("Joystick configuration")]),content:v1(()=>[B(t).joysticks&&!B(t).joysticks.size?(C1(),N1("div",h$1,H$1)):(C1(),N1("div",M$1,[g$1,!a.value||!r.value?(C1(),N1("div",A$1,y$1)):a2("",!0),B(t).availableButtonActions.every(E=>E.protocol===B(M5).CockpitAction)?(C1(),N1("div",R$1,w$1)):a2("",!0),B(M)?(C1(),N1("div",T$1,[(C1(!0),N1(Y1,null,fe(B(t).protocolMappings,E=>(C1(),Q1(V4,{key:E.name,class:c2(["m-2",{"bg-slate-700":B(t).protocolMapping.name===E.name}]),onClick:O=>B(t).loadProtocolMapping(E)},{default:v1(()=>[L2(q1(E.name),1)]),_:2},1032,["class","onClick"]))),128))])):a2("",!0),K("div",E$1,[(C1(!0),N1(Y1,null,fe(B(M),E=>(C1(),Q1(V4,{key:E.id,class:c2(["m-2",{"bg-slate-700":f.value.id===E.id}]),onClick:O=>R(E.id)},{default:v1(()=>[L2(q1(E.name),1)]),_:2},1032,["class","onClick"]))),128))])])),(C1(!0),N1(Y1,null,fe(B(t).joysticks,([E,O])=>(C1(),N1("div",{key:E,class:"w-[95%] p-4 shadow-md rounded-2xl flex-centered flex-column position-relative"},[K("p",P$1,q1(O.model)+" controller",1),H.value?(C1(),N1("div",I$1,[P(m$1,{class:"w-[70%]",model:O.model,"left-axis-horiz":O.state.axes[0],"left-axis-vert":O.state.axes[1],"right-axis-horiz":O.state.axes[2],"right-axis-vert":O.state.axes[3],b0:O.state.buttons[0],b1:O.state.buttons[1],b2:O.state.buttons[2],b3:O.state.buttons[3],b4:O.state.buttons[4],b5:O.state.buttons[5],b6:O.state.buttons[6],b7:O.state.buttons[7],b8:O.state.buttons[8],b9:O.state.buttons[9],b10:O.state.buttons[10],b11:O.state.buttons[11],b12:O.state.buttons[12],b13:O.state.buttons[13],b14:O.state.buttons[14],b15:O.state.buttons[15],b16:O.state.buttons[16],b17:O.state.buttons[17],"buttons-actions-correspondency":S.value,onClick:z=>g(O,z)},null,8,["model","left-axis-horiz","left-axis-vert","right-axis-horiz","right-axis-vert","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","b16","b17","buttons-actions-correspondency","onClick"])])):a2("",!0),K("div",O$1,[K("div",U$1,[x$1,K("div",F$1,[K("button",{class:"p-2 m-1 font-medium border rounded-md text-uppercase",onClick:z=>B(t).exportJoystickMapping(O)}," Export to computer ",8,k$1),K("label",B$1,[K("input",{type:"file",accept:"application/json",hidden:"",onChange:z=>B(t).importJoystickMapping(O,z)},null,40,z$1),L2(" Import from computer ")]),K("button",{class:"p-2 m-1 font-medium border rounded-md text-uppercase",onClick:U[0]||(U[0]=z=>B(t).exportJoysticksMappingsToVehicle(B(i),B(t).cockpitStdMappings))}," Export to vehicle "),K("button",{class:"p-2 m-1 font-medium border rounded-md text-uppercase",onClick:U[1]||(U[1]=z=>B(t).importJoysticksMappingsFromVehicle(B(i)))}," Import from vehicle ")])]),K("div",Z$1,[G$1,K("div",W$1,[K("button",{class:"p-2 m-1 font-medium border rounded-md text-uppercase",onClick:U[2]||(U[2]=z=>B(t).exportFunctionsMapping(B(t).protocolMapping))}," Export to computer "),K("label",X$1,[K("input",{type:"file",accept:"application/json",hidden:"",onChange:U[3]||(U[3]=z=>B(t).importFunctionsMapping(z))},null,32),L2(" Import from computer ")]),K("button",{class:"p-2 m-1 font-medium border rounded-md text-uppercase",onClick:U[4]||(U[4]=z=>B(t).exportFunctionsMappingToVehicle(B(i),B(t).protocolMappings))}," Export to vehicle "),K("button",{class:"p-2 m-1 font-medium border rounded-md text-uppercase",onClick:_}," Import from vehicle ")])])]),P(At,{modelValue:B(t).holdLastInputWhenWindowHidden,"onUpdate:modelValue":U[5]||(U[5]=z=>B(t).holdLastInputWhenWindowHidden=z),label:"Hold last joystick input when window is hidden (tab changed or window minimized)",class:"m-2 text-slate-800"},null,8,["modelValue"])]))),128))]),_:1}),(C1(),Q1(La,{to:"body"},[n.value?(C1(),Q1(m0,{key:0,modelValue:V.value,"onUpdate:modelValue":U[7]||(U[7]=E=>V.value=E),class:"w-[80%] max-h-[90%]"},{default:v1(()=>[P(st,{class:"p-6"},{default:v1(()=>[Y$1,K("div",$$1,[q$1,K$1,(C1(!0),N1(Y1,null,fe(o.value,E=>(C1(),N1("div",{key:E.id,class:"flex flex-col justify-between w-full p-3 align-center"},[K("div",j$1,[P(re,{class:"mx-auto my-1 w-fit",disabled:l.value,onClick:O=>v(n.value,E)},{default:v1(()=>[L2(q1(l.value?"Remapping":"Click to remap"),1)]),_:2},1032,["disabled","onClick"]),P(q5,null,{default:v1(()=>[C.value?(C1(),N1("p",Q$1,q1(N.value),1)):a2("",!0)]),_:1}),P(q5,null,{default:v1(()=>[l.value?(C1(),Q1(tm,{key:0,modelValue:d.value,"onUpdate:modelValue":U[6]||(U[6]=O=>d.value=O)},null,8,["modelValue"])):a2("",!0)]),_:1})]),K("div",J$1,[K("div",eq1,[(C1(!0),N1(Y1,null,fe(B(M5),O=>(C1(),N1("div",{key:O,class:"flex flex-col items-center h-40 mx-4"},[K("span",tq1,q1(O),1),K("div",iq1,[(C1(!0),N1(Y1,null,fe(w.value.filter(z=>z.protocol===O),z=>(C1(),Q1(V4,{key:z.name,class:c2(["w-full my-1 text-sm hover:bg-slate-700",{"bg-slate-700":S.value[E.id].action.protocol==z.protocol&&S.value[E.id].action.id==z.id}]),onClick:F=>y(E,z)},{default:v1(()=>[L2(q1(z.name),1)]),_:2},1032,["class","onClick"]))),128))])]))),128))])])]))),128)),P(q5,null,{default:v1(()=>[u.value?(C1(),N1("p",aq1,q1(m.value),1)):a2("",!0)]),_:1}),s.value.length>0?(C1(),N1(Y1,{key:0},[rq1,nq1],64)):a2("",!0),(C1(!0),N1(Y1,null,fe(s.value,E=>(C1(),N1("div",{key:E.id,class:"flex items-center justify-between p-2"},[P(Ze,{class:"mr-3"},{default:v1(()=>[L2(q1([B(t5).A0,B(t5).A2].includes(Number(E.id))?"mdi-pan-horizontal":"mdi-pan-vertical"),1)]),_:2},1024),P(kt,{modelValue:B(t).protocolMapping.axesCorrespondencies[E.id].min,"onUpdate:modelValue":O=>B(t).protocolMapping.axesCorrespondencies[E.id].min=O,modelModifiers:{number:!0},class:"w-24",label:"Min",type:"number",density:"compact",variant:"solo","hide-details":""},null,8,["modelValue","onUpdate:modelValue"]),P(e8,{modelValue:B(t).protocolMapping.axesCorrespondencies[E.id].action,"onUpdate:modelValue":O=>B(t).protocolMapping.axesCorrespondencies[E.id].action=O,items:B(t).availableAxesActions,"item-title":"name","hide-details":"",density:"compact",variant:"solo",class:"w-40 mx-2","return-object":""},null,8,["modelValue","onUpdate:modelValue","items"]),P(kt,{modelValue:B(t).protocolMapping.axesCorrespondencies[E.id].max,"onUpdate:modelValue":O=>B(t).protocolMapping.axesCorrespondencies[E.id].max=O,modelModifiers:{number:!0},class:"w-24",label:"Max",type:"number",density:"compact",variant:"solo","hide-details":""},null,8,["modelValue","onUpdate:modelValue"])]))),128))])]),_:1})]),_:1},8,["modelValue"])):a2("",!0)]))],64))}});var St=(e=>(e.roll="Roll",e.pitch="Pitch",e.heading="Heading",e.depth="Depth",e.mode="Mode",e.batteryVoltage="Battery voltage",e.batteryCurrent="Battery current",e.gpsVisibleSatellites="GPS satellites",e.gpsFixType="GPS status",e.latitude="Latitude",e.longitude="Longitude",e))(St||{});class sq1{constructor(){S1(this,"currentLoggerInterval");S1(this,"currentCockpitLog",[]);S1(this,"variablesBeingUsed",[]);S1(this,"selectedVariablesToShow",R5("cockpit-datalogger-overlay-variables",[]))}startLogging(t=1e3){if(this.logging()){O2.fire({title:"Error",text:"A log is already being generated.",icon:"error",timer:3e3});return}const i=r5(),a=H4.createInstance({driver:H4.INDEXEDDB,name:"Cockpit - Sensor Logs",storeName:"cockpit-sensor-logs-db",version:1,description:"Local backups of Cockpit sensor logs, to be retrieved in case of failure."}),r=new Date,n=`Cockpit (${hn(r,"LLL dd, yyyy - HH\uA789mm\uA789ss O")}).clog`;this.currentCockpitLog=[],this.currentLoggerInterval=setInterval(async()=>{var C,m,u,p,V,f,M,H,g;const o=new Date,s=Ds(o,r),l={lastChanged:o.getTime()},d={Roll:{value:`${(C=nt(i.attitude.roll))==null?void 0:C.toFixed(1)} \xB0`,...l},Pitch:{value:`${(m=nt(i.attitude.pitch))==null?void 0:m.toFixed(1)} \xB0`,...l},Heading:{value:`${(u=nt(i.attitude.yaw))==null?void 0:u.toFixed(1)} \xB0`,...l},Depth:{value:`${(p=i.altitude.msl)==null?void 0:p.toPrecision(4)} m`,...l},Mode:{value:i.mode||"Unknown",...l},["Battery voltage"]:{value:`${(V=i.powerSupply.voltage)==null?void 0:V.toFixed(2)} V`||"Unknown",...l},["Battery current"]:{value:`${(f=i.powerSupply.current)==null?void 0:f.toFixed(2)} A`||"Unknown",...l},["GPS satellites"]:{value:((M=i.statusGPS.visibleSatellites)==null?void 0:M.toFixed(0))||"Unknown",...l},["GPS status"]:{value:i.statusGPS.fixType,...l},Latitude:{value:`${(H=i.coordinates.latitude)==null?void 0:H.toFixed(6)} \xB0`||"Unknown",...l},Longitude:{value:`${(g=i.coordinates.longitude)==null?void 0:g.toFixed(6)} \xB0`||"Unknown",...l}};this.currentCockpitLog.push({epoch:o.getTime(),seconds:s,data:structuredClone(d)}),await a.setItem(n,this.currentCockpitLog)},t)}stopLogging(){if(!this.logging()){O2.fire({title:"Error",text:"No log is being generated.",icon:"error",timer:3e3});return}clearInterval(this.currentLoggerInterval)}logging(){return this.currentLoggerInterval!==void 0}registerUsage(t){this.variablesBeingUsed.includes(t)||this.variablesBeingUsed.push(t)}getSlice(t,i,a){return t.filter(r=>r.epoch>i.getTime()&&r.epoch({...r,seconds:Ds(new Date(r.epoch),i)}))}toAssOverlay(t,i,a,r){let n=`[Script Info] +`),this.onArm.register_caller(()=>this.isArmed()),this.onAltitude.register_caller(()=>this.altitude()),this.onAttitude.register_caller(()=>this.attitude()),this.onBatteries.register_caller(()=>this.batteries()),this.onCpuLoad.register_caller(()=>this.cpuLoad()),this.onGenericVariables.register_caller(()=>this.genericVariables()),this.onMode.register_caller(()=>this.mode()),this.onPosition.register_caller(()=>this.position()),this.onPowerSupply.register_caller(()=>this.powerSupply()),this.onParameter.register_caller(()=>[this.lastParameter(),this.totalParametersCount()]),this.onStatusText.register_caller(()=>this.statusText()),this.onStatusGPS.register_caller(()=>this.statusGPS()),this.onTakeoff.register_caller(()=>this.flying()),this.onVelocity.register_caller(()=>this.velocity())}firmware(){return this._firmware}type(){return this._type}genericVariables(){return this._genericVariables}icon(){switch(this.type()){case"antenna":return"mdi-satellite-uplink";case"blimp":return"mdi-airballoon";case"copter":return"mdi-quadcopter";case"plane":return"mdi-airplane";case"rover":return"mdi-car-wireless";case"sub":return"mdi-submarine"}}}const $k={ADSB_EMIT_TYPE:{Description:"ADSB classification for the type of vehicle emitting the transponder signal. Default value is 14 (UAV).",DisplayName:"Emitter type",User:"Advanced",Values:{0:"NoInfo",1:"Light",2:"Small",3:"Large",4:"HighVortexlarge",5:"Heavy",6:"HighlyManuv",7:"Rotocraft",8:"RESERVED",9:"Glider",10:"LightAir",11:"Parachute",12:"UltraLight",13:"RESERVED",14:"UAV",15:"Space",16:"RESERVED",17:"EmergencySurface",18:"ServiceSurface",19:"PointObstacle"}},ADSB_ICAO_ID:{Description:"ICAO_ID unique vehicle identification number of this aircraft. This is an integer limited to 24bits. If set to 0 then one will be randomly generated. If set to -1 then static information is not sent, transceiver is assumed pre-programmed.",DisplayName:"ICAO_ID vehicle identification number",Range:{high:"16777215",low:"-1"},User:"Advanced"},ADSB_ICAO_SPECL:{Description:"ICAO_ID of special vehicle that ignores ADSB_LIST_RADIUS and ADSB_LIST_ALT. The vehicle is always tracked. Use 0 to disable.",DisplayName:"ICAO_ID of special vehicle",User:"Advanced"},ADSB_LEN_WIDTH:{Description:"Aircraft length and width dimension options in Length and Width in meters. In most cases, use a value of 1 for smallest size.",DisplayName:"Aircraft length and width",User:"Advanced",Values:{0:"NO_DATA",1:"L15W23",2:"L25W28P5",3:"L25W34",4:"L35W33",5:"L35W38",6:"L45W39P5",7:"L45W45",8:"L55W45",9:"L55W52",10:"L65W59P5",11:"L65W67",12:"L75W72P5",13:"L75W80",14:"L85W80",15:"L85W90"}},ADSB_LIST_ALT:{Description:"ADSB vehicle list altitude filter. Vehicles detected above this altitude will be completely ignored. They will not show up in the SRx_ADSB stream to the GCS and will not be considered in any avoidance calculations. A value of 0 will disable this filter.",DisplayName:"ADSB vehicle list altitude filter",Range:{high:"32767",low:"0"},Units:"m",User:"Advanced"},ADSB_LIST_MAX:{Description:"ADSB list size of nearest vehicles. Longer lists take longer to refresh with lower SRx_ADSB values.",DisplayName:"ADSB vehicle list size",Range:{high:"100",low:"1"},RebootRequired:"True",User:"Advanced"},ADSB_LIST_RADIUS:{Description:"ADSB vehicle list radius filter. Vehicles detected outside this radius will be completely ignored. They will not show up in the SRx_ADSB stream to the GCS and will not be considered in any avoidance calculations. A value of 0 will disable this filter.",DisplayName:"ADSB vehicle list radius filter",Range:{high:"100000",low:"0"},Units:"m",User:"Advanced"},ADSB_LOG:{Description:"0: no logging, 1: log only special ID, 2:log all",DisplayName:"ADS-B logging",User:"Advanced",Values:{0:"no logging",1:"log only special ID",2:"log all"}},ADSB_OFFSET_LAT:{Description:"GPS antenna lateral offset. This describes the physical location offest from center of the GPS antenna on the aircraft.",DisplayName:"GPS antenna lateral offset",User:"Advanced",Values:{0:"NoData",1:"Left2m",2:"Left4m",3:"Left6m",4:"Center",5:"Right2m",6:"Right4m",7:"Right6m"}},ADSB_OFFSET_LON:{Description:"GPS antenna longitudinal offset. This is usually set to 1, Applied By Sensor",DisplayName:"GPS antenna longitudinal offset",User:"Advanced",Values:{0:"NO_DATA",1:"AppliedBySensor"}},ADSB_OPTIONS:{Bitmask:{0:"Ping200X Send GPS",1:"Squawk 7400 on RC failsafe",2:"Squawk 7400 on GCS failsafe",3:"Sagetech MXS use External Config"},Description:"Options for emergency failsafe codes and device capabilities",DisplayName:"ADS-B Options",User:"Advanced"},ADSB_RF_CAPABLE:{Bitmask:{0:"UAT_in",1:"1090ES_in",2:"UAT_out",3:"1090ES_out"},Description:"Describes your hardware RF In/Out capabilities.",DisplayName:"RF capabilities",User:"Advanced"},ADSB_RF_SELECT:{Bitmask:{0:"Rx",1:"Tx"},Description:"Transceiver RF selection for Rx enable and/or Tx enable. This only effects devices that can Tx and/or Rx. Rx-only devices should override this to always be Rx-only.",DisplayName:"Transceiver RF selection",User:"Advanced"},ADSB_SQUAWK:{Description:"VFR squawk (Mode 3/A) code is a pre-programmed default code when the pilot is flying VFR and not in contact with ATC. In the USA, the VFR squawk code is octal 1200 (hex 0x280, decimal 640) and in most parts of Europe the VFR squawk code is octal 7000. If an invalid octal number is set then it will be reset to 1200.",DisplayName:"Squawk code",Range:{high:"7777",low:"0"},Units:"octal",User:"Advanced"},ADSB_TYPE:{Description:"Type of ADS-B hardware for ADSB-in and ADSB-out configuration and operation. If any type is selected then MAVLink based ADSB-in messages will always be enabled",DisplayName:"ADSB Type",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"uAvionix-MAVLink",2:"Sagetech",3:"uAvionix-UCP",4:"Sagetech MX Series"}}},qk={AFS_AMSL_ERR_GPS:{Description:"This sets margin for error in GPS derived altitude limit. This error margin is only used if the barometer has failed. If the barometer fails then the GPS will be used to enforce the AMSL_LIMIT, but this margin will be subtracted from the AMSL_LIMIT first, to ensure that even with the given amount of GPS altitude error the pressure altitude is not breached. OBC users should set this to comply with their D2 safety case. A value of -1 will mean that barometer failure will lead to immediate termination.",DisplayName:"Error margin for GPS based AMSL limit",Units:"m",User:"Advanced"},AFS_AMSL_LIMIT:{Description:"This sets the AMSL (above mean sea level) altitude limit. If the pressure altitude determined by QNH exceeds this limit then flight termination will be forced. Note that this limit is in meters, whereas pressure altitude limits are often quoted in feet. A value of zero disables the pressure altitude limit.",DisplayName:"AMSL limit",Units:"m",User:"Advanced"},AFS_DUAL_LOSS:{Description:'This enables the dual loss termination part of the AFS system. If this parameter is 1 and both GPS and the ground control station fail simultaneously, this will be considered a "dual loss" and cause termination.',DisplayName:"Enable dual loss terminate due to failure of both GCS and GPS simultaneously",User:"Advanced"},AFS_ENABLE:{Description:"This enables the advanced failsafe system. If this is set to zero (disable) then all the other AFS options have no effect",DisplayName:"Enable Advanced Failsafe",User:"Advanced"},AFS_GEOFENCE:{Description:"This enables the geofence part of the AFS. Will only be in effect if AFS_ENABLE is also 1",DisplayName:"Enable geofence Advanced Failsafe",User:"Advanced"},AFS_HB_PIN:{Description:`This sets a digital output pin which is cycled at 10Hz when termination is not activated. Note that if a FS_TERM_PIN is set then the heartbeat pin will continue to cycle at 10Hz when termination is activated, to allow the termination board to distinguish between autopilot crash and termination. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Heartbeat Pin",User:"Advanced",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},AFS_MAN_PIN:{Description:`This sets a digital output pin to set high when in manual mode. See the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Manual Pin",User:"Advanced"},AFS_MAX_COM_LOSS:{Description:"Maximum number of comms loss events before the aircraft stops returning to mission on comms recovery. Use zero to allow for any number of comms loss events.",DisplayName:"Maximum number of comms loss events",User:"Advanced"},AFS_MAX_GPS_LOSS:{Description:"Maximum number of GPS loss events before the aircraft stops returning to mission on GPS recovery. Use zero to allow for any number of GPS loss events.",DisplayName:"Maximum number of GPS loss events",User:"Advanced"},AFS_MAX_RANGE:{Description:"This is the maximum range of the vehicle in kilometers from first arming. If the vehicle goes beyond this range then the TERM_ACTION is performed. A value of zero disables this feature.",DisplayName:"Max allowed range",Units:"km",User:"Advanced"},AFS_QNH_PRESSURE:{Description:"This sets the QNH pressure in millibars to be used for pressure altitude in the altitude limit. A value of zero disables the altitude limit.",DisplayName:"QNH pressure",Units:"hPa",User:"Advanced"},AFS_RC:{Description:"This enables the RC part of the AFS. Will only be in effect if AFS_ENABLE is also 1",DisplayName:"Enable RC Advanced Failsafe",User:"Advanced"},AFS_RC_FAIL_TIME:{Description:"This is the time in seconds in manual mode that failsafe termination will activate if RC input is lost. For the OBC rules this should be (1.5). Use 0 to disable.",DisplayName:"RC failure time",Units:"s",User:"Advanced"},AFS_RC_MAN_ONLY:{Description:"If this parameter is set to 1, then an RC loss will only cause the plane to terminate in manual control modes. If it is 0, then the plane will terminate in any flight mode.",DisplayName:"Enable RC Termination only in manual control modes",User:"Advanced"},AFS_TERMINATE:{Description:"Can be set in flight to force termination of the heartbeat signal",DisplayName:"Force Terminate",User:"Advanced"},AFS_TERM_ACTION:{Description:"This can be used to force an action on flight termination. Normally this is handled by an external failsafe board, but you can setup ArduPilot to handle it here. Please consult the wiki for more information on the possible values of the parameter",DisplayName:"Terminate action",User:"Advanced"},AFS_TERM_PIN:{Description:`This sets a digital output pin to set high on flight termination. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Terminate Pin",User:"Advanced",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},AFS_WP_COMMS:{Description:"Waypoint number to navigate to on comms loss",DisplayName:"Comms Waypoint",User:"Advanced"},AFS_WP_GPS_LOSS:{Description:"Waypoint number to navigate to on GPS lock loss",DisplayName:"GPS Loss Waypoint",User:"Advanced"}},Kk={AHRS_COMP_BETA:{Description:"This controls the time constant for the cross-over frequency used to fuse AHRS (airspeed and heading) and GPS data to estimate ground velocity. Time constant is 0.1/beta. A larger time constant will use GPS data less and a small time constant will use air data less.",DisplayName:"AHRS Velocity Complementary Filter Beta Coefficient",Increment:".01",Range:{high:"0.5",low:"0.001"},User:"Advanced"},AHRS_CUSTOM_PIT:{Description:"Autopilot mounting position pitch offset. Positive values = pitch up, negative values = pitch down. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation pitch offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_CUSTOM_ROLL:{Description:"Autopilot mounting position roll offset. Positive values = roll right, negative values = roll left. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation roll offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_CUSTOM_YAW:{Description:"Autopilot mounting position yaw offset. Positive values = yaw right, negative values = yaw left. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation yaw offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_EKF_TYPE:{Description:"This controls which NavEKF Kalman filter version is used for attitude and position estimation",DisplayName:"Use NavEKF Kalman filter for attitude and position estimation",User:"Advanced",Values:{0:"Disabled",2:"Enable EKF2",3:"Enable EKF3",11:"ExternalAHRS"}},AHRS_GPS_GAIN:{Description:"This controls how much to use the GPS to correct the attitude. This should never be set to zero for a plane as it would result in the plane losing control in turns. For a plane please use the default value of 1.0.",DisplayName:"AHRS GPS gain",Increment:".01",Range:{high:"1.0",low:"0.0"},User:"Advanced"},AHRS_GPS_MINSATS:{Description:"Minimum number of satellites visible to use GPS for velocity based corrections attitude correction. This defaults to 6, which is about the point at which the velocity numbers from a GPS become too unreliable for accurate correction of the accelerometers.",DisplayName:"AHRS GPS Minimum satellites",Increment:"1",Range:{high:"10",low:"0"},User:"Advanced"},AHRS_GPS_USE:{Description:"This controls whether to use dead-reckoning or GPS based navigation. If set to 0 then the GPS won't be used for navigation, and only dead reckoning will be used. A value of zero should never be used for normal flight. Currently this affects only the DCM-based AHRS: the EKF uses GPS according to its own parameters. A value of 2 means to use GPS for height as well as position - both in DCM estimation and when determining altitude-above-home.",DisplayName:"AHRS use GPS for DCM navigation and position-down",User:"Advanced",Values:{0:"Disabled",1:"Use GPS for DCM position",2:"Use GPS for DCM position and height"}},AHRS_ORIENTATION:{Description:"Overall board orientation relative to the standard orientation for the board type. This rotates the IMU and compass readings to allow the board to be oriented in your vehicle at any 90 or 45 degree angle. The label for each option is specified in the order of rotations for that orientation. This option takes affect on next boot. After changing you will need to re-level your vehicle. Firmware versions 4.2 and prior can use a CUSTOM (100) rotation to set the AHRS_CUSTOM_ROLL/PIT/YAW angles for AHRS orientation. Later versions provide two general custom rotations which can be used, Custom 1 and Custom 2, with CUST_ROT1_ROLL/PIT/YAW or CUST_ROT2_ROLL/PIT/YAW angles.",DisplayName:"Board Orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Yaw45Roll180",10:"Yaw90Roll180",11:"Yaw135Roll180",12:"Pitch180",13:"Yaw225Roll180",14:"Yaw270Roll180",15:"Yaw315Roll180",16:"Roll90",17:"Yaw45Roll90",18:"Yaw90Roll90",19:"Yaw135Roll90",20:"Roll270",21:"Yaw45Roll270",22:"Yaw90Roll270",23:"Yaw135Roll270",24:"Pitch90",25:"Pitch270",26:"Yaw90Pitch180",27:"Yaw270Pitch180",28:"Pitch90Roll90",29:"Pitch90Roll180",30:"Pitch90Roll270",31:"Pitch180Roll90",32:"Pitch180Roll270",33:"Pitch270Roll90",34:"Pitch270Roll180",35:"Pitch270Roll270",36:"Yaw90Pitch180Roll90",37:"Yaw270Roll90",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Pitch315Roll90",42:"Roll45",43:"Roll315",100:"Custom 4.1 and older",101:"Custom 1",102:"Custom 2"}},AHRS_RP_P:{Description:"This controls how fast the accelerometers correct the attitude",DisplayName:"AHRS RP_P",Increment:".01",Range:{high:"0.4",low:"0.1"},User:"Advanced"},AHRS_TRIM_X:{Description:"Compensates for the roll angle difference between the control board and the frame. Positive values make the vehicle roll right.",DisplayName:"AHRS Trim Roll",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Standard"},AHRS_TRIM_Y:{Description:"Compensates for the pitch angle difference between the control board and the frame. Positive values make the vehicle pitch up/back.",DisplayName:"AHRS Trim Pitch",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Standard"},AHRS_TRIM_Z:{Description:"Not Used",DisplayName:"AHRS Trim Yaw",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Advanced"},AHRS_WIND_MAX:{Description:"This sets the maximum allowable difference between ground speed and airspeed. This allows the plane to cope with a failing airspeed sensor. A value of zero means to use the airspeed as is. See ARSPD_OPTIONS and ARSPD_MAX_WIND to disable airspeed sensors.",DisplayName:"Maximum wind",Increment:"1",Range:{high:"127",low:"0"},Units:"m/s",User:"Advanced"},AHRS_YAW_P:{Description:"This controls the weight the compass or GPS has on the heading. A higher value means the heading will track the yaw source (GPS or compass) more rapidly.",DisplayName:"Yaw P",Increment:".01",Range:{high:"0.4",low:"0.1"},User:"Advanced"}},jk={AIS_LIST_MAX:{Description:"AIS list size of nearest vessels. Longer lists take longer to refresh with lower SRx_ADSB values.",DisplayName:"AIS vessel list size",Range:{high:"100",low:"1"},User:"Advanced"},AIS_LOGGING:{Bitmask:{0:"Log all AIVDM messages",1:"Log only unsupported AIVDM messages",2:"Log decoded messages"},Description:"Bitmask of AIS logging options",DisplayName:"AIS logging options",User:"Advanced"},AIS_TIME_OUT:{Description:"if no updates are received in this time a vessel will be removed from the list",DisplayName:"AIS vessel time out",Range:{high:"2000",low:"1"},Units:"s",User:"Advanced"},AIS_TYPE:{Description:"AIS receiver type",DisplayName:"AIS receiver type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"NMEA AIVDM message"}}},Qk={ARMING_ACCTHRESH:{Description:"Accelerometer error threshold used to determine inconsistent accelerometers. Compares this error range to other accelerometers to detect a hardware or calibration error. Lower value means tighter check and harder to pass arming check. Not all accelerometers are created equal.",DisplayName:"Accelerometer error threshold",Range:{high:"3.0",low:"0.25"},Units:"m/s/s",User:"Advanced"},ARMING_CHECK:{Bitmask:{0:"All",1:"Barometer",2:"Compass",3:"GPS lock",4:"INS",5:"Parameters",6:"RC Channels",7:"Board voltage",8:"Battery Level",10:"Logging Available",11:"Hardware safety switch",12:"GPS Configuration",13:"System",14:"Mission",15:"Rangefinder",16:"Camera",17:"AuxAuth",18:"VisualOdometry",19:"FFT"},Description:"Checks prior to arming motor. This is a bitmask of checks that will be performed before allowing arming. For most users it is recommended to leave this at the default of 1 (all checks enabled). You can select whatever checks you prefer by adding together the values of each check type to set this parameter. For example, to only allow arming when you have GPS lock and no RC failsafe you would set ARMING_CHECK to 72.",DisplayName:"Arm Checks to Perform (bitmask)",User:"Standard"},ARMING_MIS_ITEMS:{Bitmask:{0:"Land",1:"VTOL Land",2:"DO_LAND_START",3:"Takeoff",4:"VTOL Takeoff",5:"Rallypoint"},Description:"Bitmask of mission items that are required to be planned in order to arm the aircraft",DisplayName:"Required mission items",User:"Advanced"},ARMING_OPTIONS:{Description:"Options that can be applied to change arming behaviour",DisplayName:"Arming options",User:"Advanced",Values:{0:"None",1:"Disable prearm display"}},ARMING_RUDDER:{Description:"Allow arm/disarm by rudder input. When enabled arming can be done with right rudder, disarming with left rudder. Rudder arming only works in manual throttle modes with throttle at zero +- deadzone (RCx_DZ)",DisplayName:"Arming with Rudder enable/disable",User:"Advanced",Values:{0:"Disabled",1:"ArmingOnly",2:"ArmOrDisarm"}}},Jk={AROT_AS_ACC_MAX:{Description:"Maximum forward acceleration to apply in speed controller.",DisplayName:"Forward Acceleration Limit",Increment:"10",Range:{high:"60",low:"30"},Units:"cm/s/s",User:"Advanced"},AROT_BAIL_TIME:{Description:"Time in seconds from bail out initiated to the exit of autorotation flight mode.",DisplayName:"Bail Out Timer",Increment:"0.1",Range:{high:"4",low:"0.5"},Units:"s",User:"Advanced"},AROT_COL_FILT_E:{Description:"Cut-off frequency for collective low pass filter. For the entry phase. Acts as a following trim. Must be higher than AROT_COL_FILT_G.",DisplayName:"Entry Phase Collective Filter",Increment:"0.01",Range:{high:"0.5",low:"0.2"},Units:"Hz",User:"Advanced"},AROT_COL_FILT_G:{Description:"Cut-off frequency for collective low pass filter. For the glide phase. Acts as a following trim. Must be lower than AROT_COL_FILT_E.",DisplayName:"Glide Phase Collective Filter",Increment:"0.01",Range:{high:"0.15",low:"0.03"},Units:"Hz",User:"Advanced"},AROT_ENABLE:{Description:"Allows you to enable (1) or disable (0) the autonomous autorotation capability.",DisplayName:"Enable settings for RSC Setpoint",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},AROT_FW_V_FF:{Description:"Velocity (horizontal) input filter. Corrects the target acceleration proportionally to the desired velocity.",DisplayName:"Velocity (horizontal) feed forward",Increment:"0.01",Range:{high:"1",low:"0"},User:"Advanced"},AROT_FW_V_P:{Description:"Velocity (horizontal) P gain. Determines the propotion of the target acceleration based on the velocity error.",DisplayName:"Velocity (horizontal) P gain",Increment:"0.1",Range:{high:"6.0",low:"0.1"},User:"Advanced"},AROT_HS_P:{Description:"Increase value to increase sensitivity of head speed controller during autonomous autorotation.",DisplayName:"P gain for head speed controller",Increment:"0.01",Range:{high:"1",low:"0.3"},User:"Advanced"},AROT_HS_SENSOR:{Description:"Allocate the RPM sensor instance to use for measuring head speed. RPM1 = 0. RPM2 = 1.",DisplayName:"Main Rotor RPM Sensor ",Increment:"0.1",Range:{high:"3",low:"0.5"},Units:"s",User:"Advanced"},AROT_HS_SET_PT:{Description:"The target head speed in RPM during autorotation. Start by setting to desired hover speed and tune from there as necessary.",DisplayName:"Target Head Speed",Increment:"1",Range:{high:"2800",low:"1000"},Units:"RPM",User:"Advanced"},AROT_TARG_SP:{Description:"Target ground speed in cm/s for the autorotation controller to try and achieve/ maintain during the glide phase.",DisplayName:"Target Glide Ground Speed",Increment:"50",Range:{high:"2000",low:"800"},Units:"cm/s",User:"Advanced"}},eB={ARSPD2_AUTOCAL:{Description:"This parameter and function is not used by this vehicle. Always set to 0.",DisplayName:"Automatic airspeed ratio calibration for 2nd airspeed sensor",User:"Advanced"},ARSPD2_BUS:{Description:"The bus number of the I2C bus to look for the sensor on",DisplayName:"Airspeed I2C bus for 2nd sensor",User:"Advanced",Values:{0:"Bus0(internal)",1:"Bus1(external)",2:"Bus2(auxiliary)"}},ARSPD2_DEVID:{Description:"Airspeed2 sensor ID, taking into account its type, bus and instance",DisplayName:"Airspeed2 ID",ReadOnly:"True",User:"Advanced"},ARSPD2_OFFSET:{Description:"Airspeed calibration offset",DisplayName:"Airspeed offset for 2nd airspeed sensor",Increment:"0.1",User:"Advanced"},ARSPD2_PIN:{Description:"Pin number indicating location of analog airspeed sensors. Pixhawk/Cube if set to 15. ",DisplayName:"Airspeed pin for 2nd airspeed sensor",User:"Advanced"},ARSPD2_PSI_RANGE:{Description:"This parameter allows you to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",DisplayName:"The PSI range of the device for 2nd sensor",User:"Advanced"},ARSPD2_RATIO:{Description:"Airspeed calibration ratio",DisplayName:"Airspeed ratio for 2nd airspeed sensor",Increment:"0.1",User:"Advanced"},ARSPD2_SKIP_CAL:{Description:"This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",DisplayName:"Skip airspeed offset calibration on startup for 2nd sensor",User:"Advanced",Values:{0:"Disable",1:"Enable"}},ARSPD2_TUBE_ORDR:{Description:"This parameter allows you to control whether the order in which the tubes are attached to your pitot tube matters. If you set this to 0 then the first (often the top) connector on the sensor needs to be the stagnation pressure (the pressure at the tip of the pitot tube). If set to 1 then the second (often the bottom) connector needs to be the stagnation pressure. If set to 2 (the default) then the airspeed driver will accept either order. The reason you may wish to specify the order is it will allow your airspeed sensor to detect if the aircraft is receiving excessive pressure on the static port compared to the stagnation port such as during a stall, which would otherwise be seen as a positive airspeed.",DisplayName:"Control pitot tube order of 2nd airspeed sensor",User:"Advanced",Values:{0:"Normal",1:"Swapped",2:"Auto Detect"}},ARSPD2_TYPE:{Description:"Type of 2nd airspeed sensor",DisplayName:"Second Airspeed type",User:"Standard",Values:{0:"None",1:"I2C-MS4525D0",2:"Analog",3:"I2C-MS5525",4:"I2C-MS5525 (0x76)",5:"I2C-MS5525 (0x77)",6:"I2C-SDP3X",7:"I2C-DLVR-5in",8:"DroneCAN",9:"I2C-DLVR-10in",10:"I2C-DLVR-20in",11:"I2C-DLVR-30in",12:"I2C-DLVR-60in",13:"NMEA water speed",14:"MSP",15:"ASP5033"}},ARSPD2_USE:{Description:"This parameter and function is not used by this vehicle. Always set to 0.",DisplayName:"Enable use of 2nd airspeed sensor",User:"Standard",Values:{0:"Don't Use",1:"use",2:"UseWhenZeroThrottle"}},ARSPD_AUTOCAL:{Description:"Enables automatic adjustment of ARSPD_RATIO during a calibration flight based on estimation of ground speed and true airspeed. New ratio saved every 2 minutes if change is > 5%. Should not be left enabled.",DisplayName:"This parameter and function is not used by this vehicle. Always set to 0.",User:"Advanced"},ARSPD_BUS:{Description:"Bus number of the I2C bus where the airspeed sensor is connected",DisplayName:"Airspeed I2C bus",User:"Advanced",Values:{0:"Bus0(internal)",1:"Bus1(external)",2:"Bus2(auxiliary)"}},ARSPD_DEVID:{Description:"Airspeed sensor ID, taking into account its type, bus and instance",DisplayName:"Airspeed ID",ReadOnly:"True",User:"Advanced"},ARSPD_OFFSET:{Description:"Airspeed calibration offset",DisplayName:"Airspeed offset",Increment:"0.1",User:"Advanced"},ARSPD_OPTIONS:{Bitmask:{0:"SpeedMismatchDisable",1:"AllowSpeedMismatchRecovery",2:"DisableVoltageCorrection",3:"UseEkf3Consistency"},Description:"This parameter and function is not used by this vehicle. Always set to 0.",DisplayName:"Airspeed options bitmask",User:"Advanced"},ARSPD_PIN:{Description:"The pin number that the airspeed sensor is connected to for analog sensors. Set to 15 on the Pixhawk for the analog airspeed port. ",DisplayName:"Airspeed pin",User:"Advanced"},ARSPD_PRIMARY:{Description:"This selects which airspeed sensor will be the primary if multiple sensors are found",DisplayName:"Primary airspeed sensor",User:"Advanced",Values:{0:"FirstSensor",1:"2ndSensor"}},ARSPD_PSI_RANGE:{Description:"This parameter allows you to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",DisplayName:"The PSI range of the device",User:"Advanced"},ARSPD_RATIO:{Description:"Calibrates pitot tube pressure to velocity. Increasing this value will indicate a higher airspeed at any given dynamic pressure.",DisplayName:"Airspeed ratio",Increment:"0.1",User:"Advanced"},ARSPD_SKIP_CAL:{Description:"This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",DisplayName:"Skip airspeed offset calibration on startup",User:"Advanced",Values:{0:"Disable",1:"Enable"}},ARSPD_TUBE_ORDER:{Description:"This parameter allows you to control whether the order in which the tubes are attached to your pitot tube matters. If you set this to 0 then the first (often the top) connector on the sensor needs to be the stagnation pressure (the pressure at the tip of the pitot tube). If set to 1 then the second (often the bottom) connector needs to be the stagnation pressure. If set to 2 (the default) then the airspeed driver will accept either order. The reason you may wish to specify the order is it will allow your airspeed sensor to detect if the aircraft is receiving excessive pressure on the static port compared to the stagnation port such as during a stall, which would otherwise be seen as a positive airspeed.",DisplayName:"Control pitot tube order",User:"Advanced",Values:{0:"Normal",1:"Swapped",2:"Auto Detect"}},ARSPD_TYPE:{Description:"Type of airspeed sensor",DisplayName:"Airspeed type",User:"Standard",Values:{0:"None",1:"I2C-MS4525D0",2:"Analog",3:"I2C-MS5525",4:"I2C-MS5525 (0x76)",5:"I2C-MS5525 (0x77)",6:"I2C-SDP3X",7:"I2C-DLVR-5in",8:"DroneCAN",9:"I2C-DLVR-10in",10:"I2C-DLVR-20in",11:"I2C-DLVR-30in",12:"I2C-DLVR-60in",13:"NMEA water speed",14:"MSP",15:"ASP5033",100:"SITL"}},ARSPD_USE:{Description:"This parameter is not used by this vehicle. Always set to 0.",DisplayName:"Airspeed use",User:"Standard",Values:{0:"DoNotUse",1:"Use",2:"UseWhenZeroThrottle"}},ARSPD_WIND_GATE:{Description:"This parameter and function is not used by this vehicle.",DisplayName:"Re-enable Consistency Check Gate Size",Range:{high:"10.0",low:"0.0"},User:"Advanced"},ARSPD_WIND_MAX:{Description:"This parameter and function is not used by this vehicle. Always set to 0.",DisplayName:"Maximum airspeed and ground speed difference",Units:"m/s",User:"Advanced"},ARSPD_WIND_WARN:{Description:"This parameter and function is not used by this vehicle. Always set to 0.",DisplayName:"Airspeed and ground speed difference that gives a warning",Units:"m/s",User:"Advanced"}},tB={ATC_ACCEL_P_MAX:{Description:"Maximum acceleration in pitch axis",DisplayName:"Acceleration Max for Pitch",Increment:"1000",Range:{high:"180000",low:"0"},Units:"cdeg/s/s",User:"Advanced",Values:{0:"Disabled",3e4:"VerySlow",72e3:"Slow",108e3:"Medium",162e3:"Fast"}},ATC_ACCEL_R_MAX:{Description:"Maximum acceleration in roll axis",DisplayName:"Acceleration Max for Roll",Increment:"1000",Range:{high:"180000",low:"0"},Units:"cdeg/s/s",User:"Advanced",Values:{0:"Disabled",3e4:"VerySlow",72e3:"Slow",108e3:"Medium",162e3:"Fast"}},ATC_ACCEL_Y_MAX:{Description:"Maximum acceleration in yaw axis",DisplayName:"Acceleration Max for Yaw",Increment:"1000",Range:{high:"72000",low:"0"},Units:"cdeg/s/s",User:"Advanced",Values:{0:"Disabled",9e3:"VerySlow",18e3:"Slow",36e3:"Medium",54e3:"Fast"}},ATC_ANGLE_BOOST:{Description:"Angle Boost increases output throttle as the vehicle leans to reduce loss of altitude",DisplayName:"Angle Boost",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},ATC_ANG_LIM_TC:{Description:"Angle Limit (to maintain altitude) Time Constant",DisplayName:"Angle Limit (to maintain altitude) Time Constant",Range:{high:"10.0",low:"0.5"},User:"Advanced"},ATC_ANG_PIT_P:{Description:"Pitch axis angle controller P gain. Converts the error between the desired pitch angle and actual angle to a desired pitch rate",DisplayName:"Pitch axis angle controller P gain",Range:{high:"12.000",low:"3.000"},User:"Standard"},ATC_ANG_RLL_P:{Description:"Roll axis angle controller P gain. Converts the error between the desired roll angle and actual angle to a desired roll rate",DisplayName:"Roll axis angle controller P gain",Range:{high:"12.000",low:"3.000"},User:"Standard"},ATC_ANG_YAW_P:{Description:"Yaw axis angle controller P gain. Converts the error between the desired yaw angle and actual angle to a desired yaw rate",DisplayName:"Yaw axis angle controller P gain",Range:{high:"12.000",low:"3.000"},User:"Standard"},ATC_HOVR_ROL_TRM:{Description:"Trim the hover roll angle to counter tail rotor thrust in a hover",DisplayName:"Hover Roll Trim",Increment:"10",Range:{high:"1000",low:"0"},Units:"cdeg",User:"Advanced"},ATC_INPUT_TC:{Description:"Attitude control input time constant. Low numbers lead to sharper response, higher numbers to softer response",DisplayName:"Attitude control input time constant",Increment:"0.01",Range:{high:"1",low:"0"},Units:"s",User:"Standard",Values:{"0.05":"Very Crisp","0.1":"Crisp","0.15":"Medium","0.2":"Soft","0.5":"Very Soft"}},ATC_PIRO_COMP:{Description:"Pirouette compensation enabled",DisplayName:"Piro Comp Enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},ATC_RATE_FF_ENAB:{Description:"Controls whether body-frame rate feedfoward is enabled or disabled",DisplayName:"Rate Feedforward Enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},ATC_RATE_P_MAX:{Description:"Maximum angular velocity in pitch axis",DisplayName:"Angular Velocity Max for Pitch",Increment:"1",Range:{high:"1080",low:"0"},Units:"deg/s",User:"Advanced",Values:{0:"Disabled",60:"Slow",180:"Medium",360:"Fast"}},ATC_RATE_R_MAX:{Description:"Maximum angular velocity in roll axis",DisplayName:"Angular Velocity Max for Roll",Increment:"1",Range:{high:"1080",low:"0"},Units:"deg/s",User:"Advanced",Values:{0:"Disabled",60:"Slow",180:"Medium",360:"Fast"}},ATC_RATE_Y_MAX:{Description:"Maximum angular velocity in yaw axis",DisplayName:"Angular Velocity Max for Yaw",Increment:"1",Range:{high:"1080",low:"0"},Units:"deg/s",User:"Advanced",Values:{0:"Disabled",60:"Slow",180:"Medium",360:"Fast"}},ATC_RAT_PIT_D:{Description:"Pitch axis rate controller D gain. Compensates for short-term change in desired pitch rate vs actual pitch rate",DisplayName:"Pitch axis rate controller D gain",Increment:"0.001",Range:{high:"0.03",low:"0.0"},User:"Standard"},ATC_RAT_PIT_FF:{Description:"Pitch axis rate controller feed forward",DisplayName:"Pitch axis rate controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0.05"},User:"Standard"},ATC_RAT_PIT_FLTD:{Description:"Pitch axis rate controller derivative frequency in Hz",DisplayName:"Pitch axis rate controller derivative frequency in Hz",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Standard"},ATC_RAT_PIT_FLTE:{Description:"Pitch axis rate controller error frequency in Hz",DisplayName:"Pitch axis rate controller error frequency in Hz",Increment:"1",Range:{high:"50",low:"5"},Units:"Hz",User:"Standard"},ATC_RAT_PIT_FLTT:{Description:"Pitch axis rate controller target frequency in Hz",DisplayName:"Pitch axis rate controller target frequency in Hz",Increment:"1",Range:{high:"50",low:"5"},Units:"Hz",User:"Standard"},ATC_RAT_PIT_I:{Description:"Pitch axis rate controller I gain. Corrects long-term difference in desired pitch rate vs actual pitch rate",DisplayName:"Pitch axis rate controller I gain",Increment:"0.01",Range:{high:"0.6",low:"0.0"},User:"Standard"},ATC_RAT_PIT_ILMI:{Description:"Point below which I-term will not leak down",DisplayName:"Pitch axis rate controller I-term leak minimum",Range:{high:"1",low:"0"},User:"Advanced"},ATC_RAT_PIT_IMAX:{Description:"Pitch axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Pitch axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},ATC_RAT_PIT_P:{Description:"Pitch axis rate controller P gain. Converts the difference between desired pitch rate and actual pitch rate into a motor speed output",DisplayName:"Pitch axis rate controller P gain",Increment:"0.005",Range:{high:"0.35",low:"0.0"},User:"Standard"},ATC_RAT_PIT_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Pitch slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},ATC_RAT_RLL_D:{Description:"Roll axis rate controller D gain. Compensates for short-term change in desired roll rate vs actual roll rate",DisplayName:"Roll axis rate controller D gain",Increment:"0.001",Range:{high:"0.03",low:"0.0"},User:"Standard"},ATC_RAT_RLL_FF:{Description:"Roll axis rate controller feed forward",DisplayName:"Roll axis rate controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0.05"},User:"Standard"},ATC_RAT_RLL_FLTD:{Description:"Roll axis rate controller derivative frequency in Hz",DisplayName:"Roll axis rate controller derivative frequency in Hz",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Standard"},ATC_RAT_RLL_FLTE:{Description:"Roll axis rate controller error frequency in Hz",DisplayName:"Roll axis rate controller error frequency in Hz",Increment:"1",Range:{high:"50",low:"5"},Units:"Hz",User:"Standard"},ATC_RAT_RLL_FLTT:{Description:"Roll axis rate controller target frequency in Hz",DisplayName:"Roll axis rate controller target frequency in Hz",Increment:"1",Range:{high:"50",low:"5"},Units:"Hz",User:"Standard"},ATC_RAT_RLL_I:{Description:"Roll axis rate controller I gain. Corrects long-term difference in desired roll rate vs actual roll rate",DisplayName:"Roll axis rate controller I gain",Increment:"0.01",Range:{high:"0.6",low:"0.0"},User:"Standard"},ATC_RAT_RLL_ILMI:{Description:"Point below which I-term will not leak down",DisplayName:"Roll axis rate controller I-term leak minimum",Range:{high:"1",low:"0"},User:"Advanced"},ATC_RAT_RLL_IMAX:{Description:"Roll axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Roll axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},ATC_RAT_RLL_P:{Description:"Roll axis rate controller P gain. Converts the difference between desired roll rate and actual roll rate into a motor speed output",DisplayName:"Roll axis rate controller P gain",Increment:"0.005",Range:{high:"0.35",low:"0.0"},User:"Standard"},ATC_RAT_RLL_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Roll slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},ATC_RAT_YAW_D:{Description:"Yaw axis rate controller D gain. Compensates for short-term change in desired yaw rate vs actual yaw rate",DisplayName:"Yaw axis rate controller D gain",Increment:"0.001",Range:{high:"0.02",low:"0.000"},User:"Standard"},ATC_RAT_YAW_FF:{Description:"Yaw axis rate controller feed forward",DisplayName:"Yaw axis rate controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0"},User:"Standard"},ATC_RAT_YAW_FLTD:{Description:"Yaw axis rate controller derivative frequency in Hz",DisplayName:"Yaw axis rate controller derivative frequency in Hz",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Standard"},ATC_RAT_YAW_FLTE:{Description:"Yaw axis rate controller error frequency in Hz",DisplayName:"Yaw axis rate controller error frequency in Hz",Increment:"1",Range:{high:"50",low:"5"},Units:"Hz",User:"Standard"},ATC_RAT_YAW_FLTT:{Description:"Yaw axis rate controller target frequency in Hz",DisplayName:"Yaw axis rate controller target frequency in Hz",Increment:"1",Range:{high:"50",low:"5"},Units:"Hz",User:"Standard"},ATC_RAT_YAW_I:{Description:"Yaw axis rate controller I gain. Corrects long-term difference in desired yaw rate vs actual yaw rate",DisplayName:"Yaw axis rate controller I gain",Increment:"0.01",Range:{high:"0.2",low:"0.01"},User:"Standard"},ATC_RAT_YAW_ILMI:{Description:"Point below which I-term will not leak down",DisplayName:"Yaw axis rate controller I-term leak minimum",Range:{high:"1",low:"0"},User:"Advanced"},ATC_RAT_YAW_IMAX:{Description:"Yaw axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Yaw axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},ATC_RAT_YAW_P:{Description:"Yaw axis rate controller P gain. Converts the difference between desired yaw rate and actual yaw rate into a motor speed output",DisplayName:"Yaw axis rate controller P gain",Increment:"0.005",Range:{high:"0.60",low:"0.180"},User:"Standard"},ATC_RAT_YAW_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Yaw slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},ATC_SLEW_YAW:{Description:"Maximum rate the yaw target can be updated in Loiter, RTL, Auto flight modes",DisplayName:"Yaw target slew rate",Increment:"100",Range:{high:"18000",low:"500"},Units:"cdeg/s",User:"Advanced"},ATC_THR_MIX_MAN:{Description:"Throttle vs attitude control prioritisation used during manual flight (higher values mean we prioritise attitude control over throttle)",DisplayName:"Throttle Mix Manual",Range:{high:"0.9",low:"0.1"},User:"Advanced"},ATC_THR_MIX_MAX:{Description:"Throttle vs attitude control prioritisation used during active flight (higher values mean we prioritise attitude control over throttle)",DisplayName:"Throttle Mix Maximum",Range:{high:"0.9",low:"0.5"},User:"Advanced"},ATC_THR_MIX_MIN:{Description:"Throttle vs attitude control prioritisation used when landing (higher values mean we prioritise attitude control over throttle)",DisplayName:"Throttle Mix Minimum",Range:{high:"0.25",low:"0.1"},User:"Advanced"}},iB={AUTOTUNE_AGGR:{Description:"Autotune aggressiveness. Defines the bounce back used to detect size of the D term.",DisplayName:"Autotune aggressiveness",Range:{high:"0.10",low:"0.05"},User:"Standard"},AUTOTUNE_AXES:{Bitmask:{0:"Roll",1:"Pitch",2:"Yaw"},Description:"1-byte bitmap of axes to autotune",DisplayName:"Autotune axis bitmask",User:"Standard"},AUTOTUNE_FRQ_MAX:{Description:"Defines the end frequency for sweeps and dwells",DisplayName:"AutoTune maximum sweep frequency",Range:{high:"120",low:"50"},User:"Standard"},AUTOTUNE_FRQ_MIN:{Description:"Defines the start frequency for sweeps and dwells",DisplayName:"AutoTune minimum sweep frequency",Range:{high:"30",low:"10"},User:"Standard"},AUTOTUNE_GN_MAX:{Description:"Defines the response gain (output/input) to tune",DisplayName:"AutoTune maximum response gain",Range:{high:"2.5",low:"1"},User:"Standard"},AUTOTUNE_MIN_D:{Description:"Defines the minimum D gain",DisplayName:"AutoTune minimum D",Range:{high:"0.006",low:"0.001"},User:"Standard"},AUTOTUNE_SEQ:{Bitmask:{0:"VFF",1:"Rate D/Rate P(incl max gain)",2:"Angle P",3:"Max Gain Only"},Description:"2-byte bitmask to select what tuning should be performed. Max gain automatically performed if Rate D is selected. Values: 7:All,1:VFF Only,2:Rate D/Rate P Only(incl max gain),4:Angle P Only,8:Max Gain Only,3:VFF and Rate D/Rate P(incl max gain),5:VFF and Angle P,6:Rate D/Rate P(incl max gain) and angle P",DisplayName:"AutoTune Sequence Bitmask",User:"Standard"},AUTOTUNE_VELXY_P:{Description:"Velocity xy P gain used to hold position during Max Gain, Rate P, and Rate D frequency sweeps",DisplayName:"AutoTune velocity xy P gain",Range:{high:"1",low:"0"},User:"Standard"}},aB={AVD_ENABLE:{Description:"Enable Avoidance using ADSB",DisplayName:"Enable Avoidance using ADSB",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},AVD_F_ACTION:{Description:"Specifies aircraft behaviour when a collision is imminent",DisplayName:"Collision Avoidance Behavior",User:"Advanced",Values:{0:"None",1:"Report",2:"Climb Or Descend",3:"Move Horizontally",4:"Move Perpendicularly in 3D",5:"RTL",6:"Hover"}},AVD_F_ALT_MIN:{Description:"Minimum AMSL (above mean sea level) altitude for ADS-B avoidance. If the vehicle is below this altitude, no avoidance action will take place. Useful to prevent ADS-B avoidance from activating while below the tree line or around structures. Default of 0 is no minimum.",DisplayName:"ADS-B avoidance minimum altitude",Units:"m",User:"Advanced"},AVD_F_DIST_XY:{Description:"Closest allowed projected distance before F_ACTION is undertaken",DisplayName:"Distance Fail XY",Units:"m",User:"Advanced"},AVD_F_DIST_Z:{Description:"Closest allowed projected distance before BEHAVIOUR_F is undertaken",DisplayName:"Distance Fail Z",Units:"m",User:"Advanced"},AVD_F_RCVRY:{Description:"Determines what the aircraft will do after a fail event is resolved",DisplayName:"Recovery behaviour after a fail event",User:"Advanced",Values:{0:"Remain in AVOID_ADSB",1:"Resume previous flight mode",2:"RTL",3:"Resume if AUTO else Loiter"}},AVD_F_TIME:{Description:"Aircraft velocity vectors are multiplied by this time to determine closest approach. If this results in an approach closer than F_DIST_XY or F_DIST_Z then F_ACTION is undertaken",DisplayName:"Time Horizon Fail",Units:"s",User:"Advanced"},AVD_OBS_MAX:{Description:"Maximum number of obstacles to track",DisplayName:"Maximum number of obstacles to track",User:"Advanced"},AVD_W_ACTION:{Description:"Specifies aircraft behaviour when a collision may occur",DisplayName:"Collision Avoidance Behavior - Warn",User:"Advanced",Values:{0:"None",1:"Report"}},AVD_W_DIST_XY:{Description:"Closest allowed projected distance before W_ACTION is undertaken",DisplayName:"Distance Warn XY",Units:"m",User:"Advanced"},AVD_W_DIST_Z:{Description:"Closest allowed projected distance before BEHAVIOUR_W is undertaken",DisplayName:"Distance Warn Z",Units:"m",User:"Advanced"},AVD_W_TIME:{Description:"Aircraft velocity vectors are multiplied by this time to determine closest approach. If this results in an approach closer than W_DIST_XY or W_DIST_Z then W_ACTION is undertaken (assuming F_ACTION is not undertaken)",DisplayName:"Time Horizon Warn",Units:"s",User:"Advanced"}},rB={AVOID_ACCEL_MAX:{Description:"Maximum acceleration with which obstacles will be avoided with. Set zero to disable acceleration limits",DisplayName:"Avoidance maximum acceleration",Range:{high:"9",low:"0"},Units:"m/s/s",User:"Standard"},AVOID_ALT_MIN:{Description:"Minimum altitude above which proximity based avoidance will start working. This requires a valid downward facing rangefinder reading to work. Set zero to disable",DisplayName:"Avoidance minimum altitude",Range:{high:"6",low:"0"},Units:"m",User:"Standard"},AVOID_ANGLE_MAX:{Description:"Max lean angle used to avoid obstacles while in non-GPS modes",DisplayName:"Avoidance max lean angle in non-GPS flight modes",Increment:"10",Range:{high:"4500",low:"0"},Units:"cdeg",User:"Standard"},AVOID_BACKUP_DZ:{Description:"Distance beyond AVOID_MARGIN parameter, after which vehicle will backaway from obstacles. Increase this parameter if you see vehicle going back and forth in front of obstacle.",DisplayName:"Avoidance deadzone between stopping and backing away from obstacle",Range:{high:"2",low:"0"},Units:"m",User:"Standard"},AVOID_BACKUP_SPD:{Description:"Maximum speed that will be used to back away from obstacles in GPS modes (m/s). Set zero to disable",DisplayName:"Avoidance maximum backup speed",Range:{high:"2",low:"0"},Units:"m/s",User:"Standard"},AVOID_BEHAVE:{Description:"Avoidance behaviour (slide or stop)",DisplayName:"Avoidance behaviour",User:"Standard",Values:{0:"Slide",1:"Stop"}},AVOID_DIST_MAX:{Description:"Distance from object at which obstacle avoidance will begin in non-GPS modes",DisplayName:"Avoidance distance maximum in non-GPS flight modes",Range:{high:"30",low:"1"},Units:"m",User:"Standard"},AVOID_ENABLE:{Bitmask:{0:"UseFence",1:"UseProximitySensor",2:"UseBeaconFence"},Description:"Enabled/disable avoidance input sources",DisplayName:"Avoidance control enable/disable",User:"Standard"},AVOID_MARGIN:{Description:"Vehicle will attempt to stay at least this distance (in meters) from objects while in GPS modes",DisplayName:"Avoidance distance margin in GPS modes",Range:{high:"10",low:"1"},Units:"m",User:"Standard"}},nB={BARO1_DEVID:{Description:"Barometer sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID",ReadOnly:"True",User:"Advanced"},BARO1_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Ground Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO2_DEVID:{Description:"Barometer2 sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID2",ReadOnly:"True",User:"Advanced"},BARO2_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Ground Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO3_DEVID:{Description:"Barometer3 sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID3",ReadOnly:"True",User:"Advanced"},BARO3_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Absolute Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO_ALT_OFFSET:{Description:"altitude offset in meters added to barometric altitude. This is used to allow for automatic adjustment of the base barometric altitude by a ground station equipped with a barometer. The value is added to the barometric altitude read by the aircraft. It is automatically reset to 0 when the barometer is calibrated on each reboot or when a preflight calibration is performed.",DisplayName:"altitude offset",Increment:"0.1",Units:"m",User:"Advanced"},BARO_EXT_BUS:{Description:"This selects the bus number for looking for an I2C barometer. When set to -1 it will probe all external i2c buses based on the GND_PROBE_EXT parameter.",DisplayName:"External baro bus",User:"Advanced",Values:{0:"Bus0",1:"Bus1","-1":"Disabled"}},BARO_FIELD_ELV:{Description:"User provided field elevation in meters. This is used to improve the calculation of the altitude the vehicle is at. This parameter is not persistent and will be reset to 0 every time the vehicle is rebooted. A value of 0 means no correction for takeoff height above sea level is performed.",DisplayName:"field elevation",Increment:"0.1",Units:"m",User:"Advanced",Volatile:"True"},BARO_FLTR_RNG:{Description:"This sets the range around the average value that new samples must be within to be accepted. This can help reduce the impact of noise on sensors that are on long I2C cables. The value is a percentage from the average value. A value of zero disables this filter.",DisplayName:"Range in which sample is accepted",Increment:"1",Range:{high:"100",low:"0"},Units:"%"},BARO_GND_TEMP:{Description:"User provided ambient ground temperature in degrees Celsius. This is used to improve the calculation of the altitude the vehicle is at. This parameter is not persistent and will be reset to 0 every time the vehicle is rebooted. A value of 0 means use the internal measurement ambient temperature.",DisplayName:"ground temperature",Increment:"1",Units:"degC",User:"Advanced",Volatile:"True"},BARO_PRIMARY:{Description:"This selects which barometer will be the primary if multiple barometers are found",DisplayName:"Primary barometer",User:"Advanced",Values:{0:"FirstBaro",1:"2ndBaro",2:"3rdBaro"}},BARO_PROBE_EXT:{Bitmask:{0:"BMP085",1:"BMP280",2:"MS5611",3:"MS5607",4:"MS5637",5:"FBM320",6:"DPS280",7:"LPS25H",8:"Keller",9:"MS5837",10:"BMP388",11:"SPL06",12:"MSP"},Description:"This sets which types of external i2c barometer to look for. It is a bitmask of barometer types. The I2C buses to probe is based on GND_EXT_BUS. If BARO_EXT_BUS is -1 then it will probe all external buses, otherwise it will probe just the bus number given in GND_EXT_BUS.",DisplayName:"External barometers to probe",User:"Advanced"}},oB={BARO1_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO1_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},sB={BARO2_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO2_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},lB={BARO3_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO3_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},cB={BATT2_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT2_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT2_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT2__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT2_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT2_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT2__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT2_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT2_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT2_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT2_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT2_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT2_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT2_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT2_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT2_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT2_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT2_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT2_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT2_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT2_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT2_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT2_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT2_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT2_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT2_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT2_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT2_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT2_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT2_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT2_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT2_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT2_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},dB={BATT3_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT3_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT3_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT3__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT3_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT3_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT3__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT3_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT3_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT3_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT3_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT3_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT3_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT3_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT3_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT3_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT3_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT3_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT3_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT3_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT3_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT3_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT3_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT3_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT3_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT3_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT3_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT3_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT3_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT3_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT3_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT3_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT3_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},CB={BATT4_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT4_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT4_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT4__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT4_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT4_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT4__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT4_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT4_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT4_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT4_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT4_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT4_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT4_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT4_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT4_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT4_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT4_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT4_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT4_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT4_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT4_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT4_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT4_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT4_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT4_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT4_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT4_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT4_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT4_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT4_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT4_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT4_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},mB={BATT5_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT5_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT5_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT5__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT5_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT5_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT5__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT5_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT5_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT5_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT5_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT5_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT5_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT5_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT5_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT5_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT5_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT5_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT5_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT5_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT5_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT5_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT5_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT5_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT5_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT5_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT5_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT5_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT5_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT5_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT5_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT5_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT5_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},uB={BATT6_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT6_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT6_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT6__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT6_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT6_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT6__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT6_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT6_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT6_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT6_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT6_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT6_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT6_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT6_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT6_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT6_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT6_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT6_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT6_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT6_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT6_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT6_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT6_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT6_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT6_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT6_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT6_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT6_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT6_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT6_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT6_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT6_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},hB={BATT7_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT7_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT7_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT7__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT7_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT7_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT7__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT7_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT7_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT7_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT7_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT7_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT7_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT7_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT7_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT7_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT7_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT7_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT7_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT7_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT7_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT7_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT7_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT7_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT7_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT7_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT7_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT7_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT7_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT7_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT7_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT7_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT7_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},pB={BATT8_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT8_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT8_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT8__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT8_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT8_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT8__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT8_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT8_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT8_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT8_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT8_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT8_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT8_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT8_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT8_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT8_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT8_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT8_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT8_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT8_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT8_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT8_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT8_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT8_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT8_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT8_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT8_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT8_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT8_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT8_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT8_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT8_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},fB={BATT9_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT9_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT9_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT9__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT9_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT9_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT9__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT9_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT9_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT9_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT9_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT9_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT9_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT9_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT9_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT9_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT9_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT9_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT9_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT9_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT9_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT9_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT9_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT9_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT9_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT9_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT9_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT9_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT9_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT9_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT9_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT9_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT9_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},VB={BATT_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Terminate",6:"Auto DO_LAND_START or RTL"}},BATT_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},LB={BCN_ALT:{Description:"Beacon origin's altitude above sealevel in meters",DisplayName:"Beacon origin's altitude above sealevel in meters",Increment:"1",Range:{high:"10000",low:"0"},Units:"m",User:"Advanced"},BCN_LATITUDE:{Description:"Beacon origin's latitude",DisplayName:"Beacon origin's latitude",Increment:"0.000001",Range:{high:"90",low:"-90"},Units:"deg",User:"Advanced"},BCN_LONGITUDE:{Description:"Beacon origin's longitude",DisplayName:"Beacon origin's longitude",Increment:"0.000001",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},BCN_ORIENT_YAW:{Description:"Beacon systems rotation from north in degrees",DisplayName:"Beacon systems rotation from north in degrees",Increment:"1",Range:{high:"+180",low:"-180"},Units:"deg",User:"Advanced"},BCN_TYPE:{Description:"What type of beacon based position estimation device is connected",DisplayName:"Beacon based position estimation device type",User:"Advanced",Values:{0:"None",1:"Pozyx",2:"Marvelmind",3:"Nooploop",10:"SITL"}}},HB={BRD_ALT_CONFIG:{Description:"Select an alternative hardware configuration. A value of zero selects the default configuration for this board. Other values are board specific. Please see the documentation for your board for details on any alternative configuration values that may be available.",DisplayName:"Alternative HW config",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},BRD_BOOT_DELAY:{Description:"This adds a delay in milliseconds to boot to ensure peripherals initialise fully",DisplayName:"Boot delay",Range:{high:"10000",low:"0"},Units:"ms",User:"Advanced"},BRD_HEAT_I:{Description:"Board Heater integrator gain",DisplayName:"Board Heater I gain",Increment:"0.1",Range:{high:"1",low:"0"},User:"Advanced"},BRD_HEAT_IMAX:{Description:"Board Heater integrator maximum",DisplayName:"Board Heater IMAX",Increment:"1",Range:{high:"100",low:"0"},User:"Advanced"},BRD_HEAT_LOWMGN:{Description:"Arming check will fail if temp is lower than this margin below BRD_HEAT_TARG. 0 disables the low temperature check",DisplayName:"Board heater temp lower margin",Range:{high:"20",low:"0"},Units:"degC",User:"Advanced"},BRD_HEAT_P:{Description:"Board Heater P gain",DisplayName:"Board Heater P gain",Increment:"1",Range:{high:"500",low:"1"},User:"Advanced"},BRD_HEAT_TARG:{Description:"Board heater target temperature for boards with controllable heating units. DO NOT SET to -1 on the Cube. Set to -1 to disable the heater, please reboot after setting to -1.",DisplayName:"Board heater temperature target",Range:{high:"80",low:"-1"},Units:"degC",User:"Advanced"},BRD_IO_ENABLE:{Description:"This allows for the IO co-processor on FMUv1 and FMUv2 to be disabled",DisplayName:"Enable IO co-processor",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BRD_OPTIONS:{Bitmask:{0:"Enable hardware watchdog",1:"Disable MAVftp",2:"Enable set of internal parameters",3:"Enable Debug Pins",4:"Unlock flash on reboot",5:"Write protect firmware flash on reboot",6:"Write protect bootloader flash on reboot"},Description:"Board specific option flags",DisplayName:"Board options",User:"Advanced"},BRD_PWM_VOLT_SEL:{Description:"This sets the voltage max for PWM output pulses. 0 for 3.3V and 1 for 5V output.",DisplayName:"Set PWM Out Voltage",User:"Advanced",Values:{0:"3.3V",1:"5V"}},BRD_SAFETYENABLE:{Description:"This controls the default state of the safety switch at startup. When set to 1 the safety switch will start in the safe state (flashing) at boot. When set to zero the safety switch will start in the unsafe state (solid) at startup. Note that if a safety switch is fitted the user can still control the safety state after startup using the switch. The safety state can also be controlled in software using a MAVLink message.",DisplayName:"Enable use of safety arming switch",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},BRD_SAFETYOPTION:{Bitmask:{0:"ActiveForSafetyEnable",1:"ActiveForSafetyDisable",2:"ActiveWhenArmed",3:"Force safety on when the aircraft disarms"},Description:"This controls the activation of the safety button. It allows you to control if the safety button can be used for safety enable and/or disable, and whether the button is only active when disarmed",DisplayName:"Options for safety button behavior",User:"Standard"},BRD_SAFETY_MASK:{Bitmask:{0:"Output1",1:"Output2",2:"Output3",3:"Output4",4:"Output5",5:"Output6",6:"Output7",7:"Output8",8:"Output9",9:"Output10",10:"Output11",11:"Output12",12:"Output13",13:"Output14"},Description:"A bitmask which controls what outputs can move while the safety switch has not been pressed",DisplayName:"Outputs which ignore the safety switch state",RebootRequired:"True",User:"Advanced"},BRD_SBUS_OUT:{Description:"This sets the SBUS output frame rate in Hz",DisplayName:" SBUS output rate",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"50Hz",2:"75Hz",3:"100Hz",4:"150Hz",5:"200Hz",6:"250Hz",7:"300Hz"}},BRD_SD_SLOWDOWN:{Description:"This is a scaling factor to slow down microSD operation. It can be used on flight board and microSD card combinations where full speed is not reliable. For normal full speed operation a value of 0 should be used.",DisplayName:"microSD slowdown",Increment:"1",Range:{high:"32",low:"0"},User:"Advanced"},BRD_SER1_RTSCTS:{Description:"Enable flow control on serial 1 (telemetry 1). You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup. Note that the PX4v1 does not have hardware flow control pins on this port, so you should leave this disabled.",DisplayName:"Serial 1 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER2_RTSCTS:{Description:"Enable flow control on serial 2 (telemetry 2). You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 2 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER3_RTSCTS:{Description:"Enable flow control on serial 3. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 3 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER4_RTSCTS:{Description:"Enable flow control on serial 4. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 4 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER5_RTSCTS:{Description:"Enable flow control on serial 5. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 5 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SERIAL_NUM:{Description:"User-defined serial number of this vehicle, it can be any arbitrary number you want and has no effect on the autopilot",DisplayName:"User-defined serial number",Range:{high:"8388607",low:"-8388608"},User:"Standard"},BRD_TYPE:{Description:"This allows selection of a PX4 or VRBRAIN board type. If set to zero then the board type is auto-detected (PX4)",DisplayName:"Board type",RebootRequired:"True",User:"Advanced",Values:{0:"AUTO",1:"PX4V1",2:"Pixhawk",3:"Cube/Pixhawk2",4:"Pixracer",5:"PixhawkMini",6:"Pixhawk2Slim",13:"Intel Aero FC",14:"Pixhawk Pro",20:"AUAV2.1",21:"PCNC1",22:"MINDPXV2",23:"SP01",24:"CUAVv5/FMUV5",30:"VRX BRAIN51",32:"VRX BRAIN52",33:"VRX BRAIN52E",34:"VRX UBRAIN51",35:"VRX UBRAIN52",36:"VRX CORE10",38:"VRX BRAIN54",39:"PX4 FMUV6",100:"PX4 OLDDRIVERS"}},BRD_VBUS_MIN:{Description:"Minimum voltage on the autopilot power rail to allow the aircraft to arm. 0 to disable the check.",DisplayName:"Autopilot board voltage requirement",Increment:"0.1",Range:{high:"5.5",low:"4.0"},Units:"V",User:"Advanced"},BRD_VSERVO_MIN:{Description:"Minimum voltage on the servo rail to allow the aircraft to arm. 0 to disable the check.",DisplayName:"Servo voltage requirement",Increment:"0.1",Range:{high:"12.0",low:"3.3"},Units:"V",User:"Advanced"}},MB={BRD_RADIO_ABLVL:{Description:"This sets the minimum RSSI of an auto-bind packet for it to be accepted. This should be set so that auto-bind will only happen at short range to minimise the change of an auto-bind happening accidentially",DisplayName:"Auto-bind level",Range:{high:"31",low:"0"},User:"Advanced"},BRD_RADIO_ABTIME:{Description:"When non-zero this sets the time with no transmitter packets before we start looking for auto-bind packets.",DisplayName:"Auto-bind time",Range:{high:"120",low:"0"},User:"Advanced"},BRD_RADIO_BZOFS:{Description:"Set transmitter buzzer note adjustment (adjust frequency up)",DisplayName:"Transmitter buzzer adjustment",Range:{high:"40",low:"0"},User:"Advanced"},BRD_RADIO_DEBUG:{Description:"radio debug level",DisplayName:"debug level",Range:{high:"4",low:"0"},User:"Advanced"},BRD_RADIO_DISCRC:{Description:"disable receive CRC (for debug)",DisplayName:"disable receive CRC",User:"Advanced",Values:{0:"NotDisabled",1:"Disabled"}},BRD_RADIO_FCCTST:{Description:"If this is enabled then the radio will continuously transmit as required for FCC testing. The transmit channel is set by the value of the parameter. The radio will not work for RC input while this is enabled",DisplayName:"Put radio into FCC test mode",User:"Advanced",Values:{0:"Disabled",1:"MinChannel",2:"MidChannel",3:"MaxChannel",4:"MinChannelCW",5:"MidChannelCW",6:"MaxChannelCW"}},BRD_RADIO_PPSCH:{Description:"Channel to show received packet-per-second rate, or zero for disabled",DisplayName:"Packet rate channel",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_PROT:{Description:"Select air protocol",DisplayName:"protocol",User:"Advanced",Values:{0:"Auto",1:"DSM2",2:"DSMX"}},BRD_RADIO_SIGCH:{Description:"Channel to show receive RSSI signal strength, or zero for disabled",DisplayName:"RSSI signal strength",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_STKMD:{Description:"This selects between different stick input modes. The default is mode2, which has throttle on the left stick and pitch on the right stick. You can instead set mode1, which has throttle on the right stick and pitch on the left stick.",DisplayName:"Stick input mode",User:"Advanced",Values:{1:"Mode1",2:"Mode2"}},BRD_RADIO_TELEM:{Description:"If this is non-zero then telemetry packets will be sent over DSM",DisplayName:"Enable telemetry",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BRD_RADIO_TESTCH:{Description:"This sets the radio to a fixed test channel for factory testing. Using a fixed channel avoids the need for binding in factory testing.",DisplayName:"Set radio to factory test channel",User:"Advanced",Values:{0:"Disabled",1:"TestChan1",2:"TestChan2",3:"TestChan3",4:"TestChan4",5:"TestChan5",6:"TestChan6",7:"TestChan7",8:"TestChan8"}},BRD_RADIO_TPPSCH:{Description:"Channel to show telemetry packets-per-second value, as received at TX",DisplayName:"Telemetry PPS channel",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_TSIGCH:{Description:"Channel to show telemetry RSSI value as received by TX",DisplayName:"RSSI value channel for telemetry data on transmitter",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_TXMAX:{Description:"Set transmitter maximum transmit power (from 1 to 8)",DisplayName:"Transmitter transmit power",Range:{high:"8",low:"1"},User:"Advanced"},BRD_RADIO_TXPOW:{Description:"Set telemetry transmit power. This is the power level (from 1 to 8) for telemetry packets sent from the RX to the TX",DisplayName:"Telemetry Transmit power",Range:{high:"8",low:"1"},User:"Advanced"},BRD_RADIO_TYPE:{Description:"This enables support for direct attached radio receivers",DisplayName:"Set type of direct attached radio",Values:{0:"None",1:"CYRF6936",2:"CC2500",3:"BK2425"}}},gB={BRD_RTC_TYPES:{Bitmask:{0:"GPS",1:"MAVLINK_SYSTEM_TIME",2:"HW"},Description:"Specifies which sources of UTC time will be accepted",DisplayName:"Allowed sources of RTC time",User:"Advanced"},BRD_RTC_TZ_MIN:{Description:"Adds offset in +- minutes from UTC to calculate local time",DisplayName:"Timezone offset from UTC",Range:{high:"+840",low:"-720"},User:"Advanced"}},AB={BTN_ENABLE:{Description:"This enables the button checking module. When this is disabled the parameters for setting button inputs are not visible",DisplayName:"Enable button reporting",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BTN_FUNC1:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 1 RC Channel function",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_FUNC2:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 2 RC Channel function",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_FUNC3:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 3 RC Channel function",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_FUNC4:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 4 RC Channel function",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_OPTIONS1:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 1. PWM input detects PWM above or below 1800/1200us instead of logic level. If PWM is not detected or is less than 800us or above 2200us the button will interpreted as low. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 1 Options",User:"Standard"},BTN_OPTIONS2:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 2. PWM input detects PWM above or below 1800/1200us instead of logic level. If PWM is not detected or is less than 800us or above 2200us the button will interpreted as low. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 2 Options",User:"Standard"},BTN_OPTIONS3:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 3. PWM input detects PWM above or below 1800/1200us instead of logic level. If PWM is not detected or is less than 800us or above 2200us the button will interpreted as low. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 3 Options"},BTN_OPTIONS4:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 4. PWM input detects PWM above or below 1800/1200us instead of logic level. If PWM is not detected or is less than 800us or above 2200us the button will interpreted as low. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 4 Options",User:"Standard"},BTN_PIN1:{Description:`Digital pin number for first button input. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"First button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_PIN2:{Description:`Digital pin number for second button input. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Second button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_PIN3:{Description:`Digital pin number for third button input. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Third button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_PIN4:{Description:`Digital pin number for fourth button input. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Fourth button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_REPORT_SEND:{Description:"The duration in seconds that a BUTTON_CHANGE report is repeatedly sent to the GCS regarding a button changing state. Note that the BUTTON_CHANGE message is MAVLink2 only.",DisplayName:"Report send time",Range:{high:"3600",low:"0"},User:"Standard"}},vB={CAM_AUTO_ONLY:{Description:"When enabled, trigging by distance is done in AUTO mode only.",DisplayName:"Distance-trigging in AUTO mode only",User:"Standard",Values:{0:"Always",1:"Only when in AUTO"}},CAM_DURATION:{Description:"How long the shutter will be held open in 10ths of a second (i.e. enter 10 for 1second, 50 for 5seconds)",DisplayName:"Duration that shutter is held open",Range:{high:"50",low:"0"},Units:"ds",User:"Standard"},CAM_FEEDBACK_PIN:{Description:`pin number to use for save accurate camera feedback messages. If set to -1 then don't use a pin flag for this, otherwise this is a pin number which if held high after a picture trigger order, will save camera messages when camera really takes a picture. A universal camera hot shoe is needed. The pin should be held high for at least 2 milliseconds for reliable trigger detection. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot. See also the CAM_FEEDBACK_POL option.`,DisplayName:"Camera feedback pin",RebootRequired:"True",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},CAM_FEEDBACK_POL:{Description:"Polarity for feedback pin. If this is 1 then the feedback pin should go high on trigger. If set to 0 then it should go low",DisplayName:"Camera feedback pin polarity",User:"Standard",Values:{0:"TriggerLow",1:"TriggerHigh"}},CAM_MAX_ROLL:{Description:"Postpone shooting if roll is greater than limit. (0=Disable, will shoot regardless of roll).",DisplayName:"Maximum photo roll angle.",Range:{high:"180",low:"0"},Units:"deg",User:"Standard"},CAM_MIN_INTERVAL:{Description:"Postpone shooting if previous picture was taken less than preset time(ms) ago.",DisplayName:"Minimum time between photos",Range:{high:"10000",low:"0"},Units:"ms",User:"Standard"},CAM_RELAY_ON:{Description:"This sets whether the relay goes high or low when it triggers. Note that you should also set RELAY_DEFAULT appropriately for your camera",DisplayName:"Relay ON value",User:"Standard",Values:{0:"Low",1:"High"}},CAM_SERVO_OFF:{Description:"PWM value in microseconds to move servo to when shutter is deactivated",DisplayName:"Servo OFF PWM value",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CAM_SERVO_ON:{Description:"PWM value in microseconds to move servo to when shutter is activated",DisplayName:"Servo ON PWM value",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CAM_TRIGG_DIST:{Description:"Distance in meters between camera triggers. If this value is non-zero then the camera will trigger whenever the position changes by this number of meters regardless of what mode the APM is in. Note that this parameter can also be set in an auto mission using the DO_SET_CAM_TRIGG_DIST command, allowing you to enable/disable the triggering of the camera during the flight.",DisplayName:"Camera trigger distance",Range:{high:"1000",low:"0"},Units:"m",User:"Standard"},CAM_TRIGG_TYPE:{Description:"how to trigger the camera to take a picture",DisplayName:"Camera shutter (trigger) type",User:"Standard",Values:{0:"Servo",1:"Relay",2:"GoPro in Solo Gimbal"}},CAM_TYPE:{Description:"Set the camera type that is being used, certain cameras have custom functions that need further configuration, this enables that.",DisplayName:"Type of camera (0: None, 1: BMMCC)",User:"Standard",Values:{0:"Default",1:"BMMCC"}}},_B={CAM_RC_BTN_DELAY:{Description:"Time it takes for the a RunCam button press to be actived in ms. If this is too short then commands can get out of sync.",DisplayName:"RunCam button delay before allowing further button presses",User:"Advanced"},CAM_RC_BT_DELAY:{Description:"Time it takes for the RunCam to become fully ready in ms. If this is too short then commands can get out of sync.",DisplayName:"RunCam boot delay before allowing updates",User:"Advanced"},CAM_RC_CONTROL:{Bitmask:{0:"Stick yaw right",1:"Stick roll right",2:"3-position switch",3:"2-position switch",4:"Autorecording enabled"},Description:"Specifies the allowed actions required to enter the OSD menu",DisplayName:"RunCam control option",User:"Advanced"},CAM_RC_FEATURES:{Bitmask:{0:"Power Button",1:"WiFi Button",2:"Change Mode",3:"5-Key OSD",4:"Settings Access",5:"DisplayPort",6:"Start Recording",7:"Stop Recording"},Description:"The available features of the attached RunCam device. If 0 then the RunCam device will be queried for the features it supports, otherwise this setting is used.",DisplayName:"RunCam features available",User:"Advanced"},CAM_RC_MDE_DELAY:{Description:"Time it takes for the a RunCam mode button press to be actived in ms. If a mode change first requires a video recording change then double this value is used. If this is too short then commands can get out of sync.",DisplayName:"RunCam mode delay before allowing further button presses",User:"Advanced"},CAM_RC_TYPE:{Description:"RunCam deviee type used to determine OSD menu structure and shutter options.",DisplayName:"RunCam device type",Values:{0:"Disabled",1:"RunCam Split Micro/RunCam with UART",2:"RunCam Split",3:"RunCam Split4 4k",4:"RunCam Hybrid"}}},SB={CAN_LOGLEVEL:{Description:"Loglevel for recording initialisation and debug information from CAN Interface",DisplayName:"Loglevel",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Log None",1:"Log Error",2:"Log Warning and below",3:"Log Info and below",4:"Log Everything"}}},DB={CAN_D1_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"DroneCAN",4:"PiccoloCAN",5:"CANTester",6:"EFI_NWPMU",7:"USD1",8:"KDECAN",10:"Scripting",11:"Benewake",12:"Scripting2"}}},yB={CAN_D1_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},RB={CAN_D1_PC_ECU_ID:{Description:"Node ID to send ECU throttle messages to. Set to zero to disable ECU throttle messages. Set to 255 to broadcast to all ECUs.",DisplayName:"ECU Node ID",Range:{high:"255",low:"0"},User:"Advanced"},CAN_D1_PC_ECU_RT:{Description:"Output rate of ECU command messages",DisplayName:"ECU command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D1_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D1_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D1_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D1_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},bB={CAN_D1_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC",7:"TEST_UAVCAN_FD_ESC"}},CAN_D1_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},NB={CAN_D1_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"Output channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D1_UC_ESC_OF:{Description:"Offset for ESC numbering in DroneCAN ESC RawCommand messages. This allows for more efficient packing of ESC command messages. If your ESCs are on servo functions 5 to 8 and you set this parameter to 4 then the ESC RawCommand will be sent with the first 4 slots filled. This can be used for more efficint usage of CAN bandwidth",DisplayName:"ESC Output channels offset",Range:{high:"18",low:"0"},User:"Advanced"},CAN_D1_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D1_UC_NTF_RT:{Description:"Maximum transmit rate for Notify State Message",DisplayName:"Notify State rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"},CAN_D1_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts",2:"EnableCanfd",3:"IgnoreDNANodeUnhealthy"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D1_UC_POOL:{Description:"Amount of memory in bytes to allocate for the DroneCAN memory pool. More memory is needed for higher CAN bus loads",DisplayName:"CAN pool size",Range:{high:"16384",low:"1024"},User:"Advanced"},CAN_D1_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16",16:"Servo 17",17:"Servo 18",18:"Servo 19",19:"Servo 20",20:"Servo 21",21:"Servo 22",22:"Servo 23",23:"Servo 24",24:"Servo 25",25:"Servo 26",26:"Servo 27",27:"Servo 28",28:"Servo 29",29:"Servo 30",30:"Servo 31",31:"Servo 32"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"Output channels to be transmitted as servo over UAVCAN"},CAN_D1_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},wB={CAN_D2_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"DroneCAN",4:"PiccoloCAN",5:"CANTester",6:"EFI_NWPMU",7:"USD1",8:"KDECAN",10:"Scripting",11:"Benewake",12:"Scripting2"}}},TB={CAN_D2_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},EB={CAN_D2_PC_ECU_ID:{Description:"Node ID to send ECU throttle messages to. Set to zero to disable ECU throttle messages. Set to 255 to broadcast to all ECUs.",DisplayName:"ECU Node ID",Range:{high:"255",low:"0"},User:"Advanced"},CAN_D2_PC_ECU_RT:{Description:"Output rate of ECU command messages",DisplayName:"ECU command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D2_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D2_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D2_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D2_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},PB={CAN_D2_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC",7:"TEST_UAVCAN_FD_ESC"}},CAN_D2_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},IB={CAN_D2_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"Output channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D2_UC_ESC_OF:{Description:"Offset for ESC numbering in DroneCAN ESC RawCommand messages. This allows for more efficient packing of ESC command messages. If your ESCs are on servo functions 5 to 8 and you set this parameter to 4 then the ESC RawCommand will be sent with the first 4 slots filled. This can be used for more efficint usage of CAN bandwidth",DisplayName:"ESC Output channels offset",Range:{high:"18",low:"0"},User:"Advanced"},CAN_D2_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D2_UC_NTF_RT:{Description:"Maximum transmit rate for Notify State Message",DisplayName:"Notify State rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"},CAN_D2_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts",2:"EnableCanfd",3:"IgnoreDNANodeUnhealthy"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D2_UC_POOL:{Description:"Amount of memory in bytes to allocate for the DroneCAN memory pool. More memory is needed for higher CAN bus loads",DisplayName:"CAN pool size",Range:{high:"16384",low:"1024"},User:"Advanced"},CAN_D2_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16",16:"Servo 17",17:"Servo 18",18:"Servo 19",19:"Servo 20",20:"Servo 21",21:"Servo 22",22:"Servo 23",23:"Servo 24",24:"Servo 25",25:"Servo 26",26:"Servo 27",27:"Servo 28",28:"Servo 29",29:"Servo 30",30:"Servo 31",31:"Servo 32"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"Output channels to be transmitted as servo over UAVCAN"},CAN_D2_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},OB={CAN_D3_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"DroneCAN",4:"PiccoloCAN",5:"CANTester",6:"EFI_NWPMU",7:"USD1",8:"KDECAN",10:"Scripting",11:"Benewake",12:"Scripting2"}}},UB={CAN_D3_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},xB={CAN_D3_PC_ECU_ID:{Description:"Node ID to send ECU throttle messages to. Set to zero to disable ECU throttle messages. Set to 255 to broadcast to all ECUs.",DisplayName:"ECU Node ID",Range:{high:"255",low:"0"},User:"Advanced"},CAN_D3_PC_ECU_RT:{Description:"Output rate of ECU command messages",DisplayName:"ECU command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D3_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D3_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D3_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D3_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},FB={CAN_D3_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC",7:"TEST_UAVCAN_FD_ESC"}},CAN_D3_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},kB={CAN_D3_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"Output channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D3_UC_ESC_OF:{Description:"Offset for ESC numbering in DroneCAN ESC RawCommand messages. This allows for more efficient packing of ESC command messages. If your ESCs are on servo functions 5 to 8 and you set this parameter to 4 then the ESC RawCommand will be sent with the first 4 slots filled. This can be used for more efficint usage of CAN bandwidth",DisplayName:"ESC Output channels offset",Range:{high:"18",low:"0"},User:"Advanced"},CAN_D3_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D3_UC_NTF_RT:{Description:"Maximum transmit rate for Notify State Message",DisplayName:"Notify State rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"},CAN_D3_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts",2:"EnableCanfd",3:"IgnoreDNANodeUnhealthy"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D3_UC_POOL:{Description:"Amount of memory in bytes to allocate for the DroneCAN memory pool. More memory is needed for higher CAN bus loads",DisplayName:"CAN pool size",Range:{high:"16384",low:"1024"},User:"Advanced"},CAN_D3_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16",16:"Servo 17",17:"Servo 18",18:"Servo 19",19:"Servo 20",20:"Servo 21",21:"Servo 22",22:"Servo 23",23:"Servo 24",24:"Servo 25",25:"Servo 26",26:"Servo 27",27:"Servo 28",28:"Servo 29",29:"Servo 30",30:"Servo 31",31:"Servo 32"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"Output channels to be transmitted as servo over UAVCAN"},CAN_D3_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},BB={CAN_P1_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P1_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver",3:"Third driver"}},CAN_P1_FDBITRATE:{Description:"Bit rate can be set up to from 1000000 to 8000000",DisplayName:"Bitrate of CANFD interface",User:"Advanced",Values:{1:"1M",2:"2M",4:"4M",5:"5M",8:"8M"}}},zB={CAN_P2_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P2_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver",3:"Third driver"}},CAN_P2_FDBITRATE:{Description:"Bit rate can be set up to from 1000000 to 8000000",DisplayName:"Bitrate of CANFD interface",User:"Advanced",Values:{1:"1M",2:"2M",4:"4M",5:"5M",8:"8M"}}},ZB={CAN_P3_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P3_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver",3:"Third driver"}},CAN_P3_FDBITRATE:{Description:"Bit rate can be set up to from 1000000 to 8000000",DisplayName:"Bitrate of CANFD interface",User:"Advanced",Values:{1:"1M",2:"2M",4:"4M",5:"5M",8:"8M"}}},GB={CAN_SLCAN_CPORT:{Description:"CAN Interface ID to be routed to SLCAN, 0 means no routing",DisplayName:"SLCAN Route",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First interface",2:"Second interface"}},CAN_SLCAN_SDELAY:{Description:"Duration after which slcan starts after setting SERNUM in seconds.",DisplayName:"SLCAN Start Delay",Range:{high:"127",low:"0"},User:"Standard"},CAN_SLCAN_SERNUM:{Description:"Serial Port ID to be used for temporary SLCAN iface, -1 means no temporary serial. This parameter is automatically reset on reboot or on timeout. See CAN_SLCAN_TIMOUT for timeout details",DisplayName:"SLCAN Serial Port",User:"Standard",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},CAN_SLCAN_TIMOUT:{Description:"Duration of inactivity after which SLCAN is switched back to original driver in seconds.",DisplayName:"SLCAN Timeout",Range:{high:"127",low:"0"},User:"Standard"}},WB={CC_AXIS_MASK:{Bitmask:{0:"Roll",1:"Pitch",2:"Yaw"},Description:"Custom Controller bitmask to chose which axis to run",DisplayName:"Custom Controller bitmask",User:"Advanced"},CC_TYPE:{Description:"Custom control type to be used",DisplayName:"Custom control type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Empty",2:"PID"}}},XB={CHUTE_ALT_MIN:{Description:"Parachute min altitude above home. Parachute will not be released below this altitude. 0 to disable alt check.",DisplayName:"Parachute min altitude in meters above home",Increment:"1",Range:{high:"32000",low:"0"},Units:"m",User:"Standard"},CHUTE_CRT_SINK:{Description:"Release parachute when critical sink rate is reached",DisplayName:"Critical sink speed rate in m/s to trigger emergency parachute",Increment:"1",Range:{high:"15",low:"0"},Units:"m/s",User:"Standard"},CHUTE_DELAY_MS:{Description:"Delay in millseconds between motor stop and chute release",DisplayName:"Parachute release delay",Increment:"1",Range:{high:"5000",low:"0"},Units:"ms",User:"Standard"},CHUTE_ENABLED:{Description:"Parachute release enabled or disabled",DisplayName:"Parachute release enabled or disabled",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},CHUTE_OPTIONS:{Bitmask:{0:"hold open forever after release"},Description:"Optional behaviour for parachute",DisplayName:"Parachute options",User:"Standard"},CHUTE_SERVO_OFF:{Description:"Parachute Servo PWM value in microseconds when parachute is not released",DisplayName:"Servo OFF PWM value",Increment:"1",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CHUTE_SERVO_ON:{Description:"Parachute Servo PWM value in microseconds when parachute is released",DisplayName:"Parachute Servo ON PWM value",Increment:"1",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CHUTE_TYPE:{Description:"Parachute release mechanism type (relay or servo)",DisplayName:"Parachute release mechanism type (relay or servo)",User:"Standard",Values:{0:"First Relay",1:"Second Relay",2:"Third Relay",3:"Fourth Relay",10:"Servo"}}},YB={CIRCLE_OPTIONS:{Bitmask:{0:"manual control",1:"face direction of travel",2:"Start at center rather than on perimeter"},Description:"0:Enable or disable using the pitch/roll stick control circle mode's radius and rate",DisplayName:"Circle options",User:"Standard"},CIRCLE_RADIUS:{Description:"Defines the radius of the circle the vehicle will fly when in Circle flight mode",DisplayName:"Circle Radius",Increment:"100",Range:{high:"200000",low:"0"},Units:"cm",User:"Standard"},CIRCLE_RATE:{Description:"Circle mode's turn rate in deg/sec. Positive to turn clockwise, negative for counter clockwise",DisplayName:"Circle rate",Increment:"1",Range:{high:"90",low:"-90"},Units:"deg/s",User:"Standard"}},$B={COMPASS_AUTODEC:{Description:"Enable or disable the automatic calculation of the declination based on gps location",DisplayName:"Auto Declination",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_AUTO_ROT:{Description:"When enabled this will automatically check the orientation of compasses on successful completion of compass calibration. If set to 2 then external compasses will have their orientation automatically corrected.",DisplayName:"Automatically check orientation",Values:{0:"Disabled",1:"CheckOnly",2:"CheckAndFix",3:"use same tolerance to auto rotate 45 deg rotations"}},COMPASS_CAL_FIT:{Description:"This controls the fitness level required for a successful compass calibration. A lower value makes for a stricter fit (less likely to pass). This is the value used for the primary magnetometer. Other magnetometers get double the value.",DisplayName:"Compass calibration fitness",Increment:"0.1",Range:{high:"32",low:"4"},User:"Advanced",Values:{4:"Very Strict",8:"Strict",16:"Default",32:"Relaxed"}},COMPASS_CUS_PIT:{Description:"Compass mounting position pitch offset. Positive values = pitch up, negative values = pitch down. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation pitch offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_CUS_ROLL:{Description:"Compass mounting position roll offset. Positive values = roll right, negative values = roll left. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation roll offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_CUS_YAW:{Description:"Compass mounting position yaw offset. Positive values = yaw right, negative values = yaw left. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation yaw offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_DEC:{Description:"An angle to compensate between the true north and magnetic north",DisplayName:"Compass declination",Increment:"0.01",Range:{high:"3.142",low:"-3.142"},Units:"rad",User:"Standard"},COMPASS_DEV_ID:{Description:"Compass device id. Automatically detected, do not set manually",DisplayName:"Compass device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID2:{Description:"Second compass's device id. Automatically detected, do not set manually",DisplayName:"Compass2 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID3:{Description:"Third compass's device id. Automatically detected, do not set manually",DisplayName:"Compass3 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID4:{Description:"Extra 4th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass4 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID5:{Description:"Extra 5th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass5 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID6:{Description:"Extra 6th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass6 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID7:{Description:"Extra 7th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass7 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID8:{Description:"Extra 8th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass8 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DIA2_X:{Calibration:"1",Description:"DIA_X in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA2_Y:{Calibration:"1",Description:"DIA_Y in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA2_Z:{Description:"DIA_Z in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal Z component",User:"Advanced"},COMPASS_DIA3_X:{Calibration:"1",Description:"DIA_X in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA3_Y:{Calibration:"1",Description:"DIA_Y in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA3_Z:{Description:"DIA_Z in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal Z component",User:"Advanced"},COMPASS_DIA_X:{Calibration:"1",Description:"DIA_X in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA_Y:{Calibration:"1",Description:"DIA_Y in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA_Z:{Description:"DIA_Z in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal Z component",User:"Advanced"},COMPASS_ENABLE:{Description:"Setting this to Enabled(1) will enable the compass. Setting this to Disabled(0) will disable the compass. Note that this is separate from COMPASS_USE. This will enable the low level senor, and will enable logging of magnetometer data. To use the compass for navigation you must also set COMPASS_USE to 1.",DisplayName:"Enable Compass",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},COMPASS_EXTERN2:{Description:"Configure second compass so it is attached externally. This is auto-detected on most boards. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass2 is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_EXTERN3:{Description:"Configure third compass so it is attached externally. This is auto-detected on most boards. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass3 is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_EXTERNAL:{Description:"Configure compass so it is attached externally. This is auto-detected on most boards. Set to 1 if the compass is externally connected. When externally connected the COMPASS_ORIENT option operates independently of the AHRS_ORIENTATION board orientation option. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_FLTR_RNG:{Description:"This sets the range around the average value that new samples must be within to be accepted. This can help reduce the impact of noise on sensors that are on long I2C cables. The value is a percentage from the average value. A value of zero disables this filter.",DisplayName:"Range in which sample is accepted",Increment:"1",Range:{high:"100",low:"0"},Units:"%"},COMPASS_LEARN:{Description:"Enable or disable the automatic learning of compass offsets. You can enable learning either using a compass-only method that is suitable only for fixed wing aircraft or using the offsets learnt by the active EKF state estimator. If this option is enabled then the learnt offsets are saved when you disarm the vehicle. If InFlight learning is enabled then the compass with automatically start learning once a flight starts (must be armed). While InFlight learning is running you cannot use position control modes.",DisplayName:"Learn compass offsets automatically",User:"Advanced",Values:{0:"Disabled",1:"Internal-Learning",2:"EKF-Learning",3:"InFlight-Learning"}},COMPASS_MOT2_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass2's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT2_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass2's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT2_Z:{Description:"Multiplied by the current throttle and added to compass2's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass3's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass3's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_Z:{Description:"Multiplied by the current throttle and added to compass3's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOTCT:{Calibration:"1",Description:"Set motor interference compensation type to disabled, throttle or current. Do not change manually.",DisplayName:"Motor interference compensation type",User:"Advanced",Values:{0:"Disabled",1:"Use Throttle",2:"Use Current"}},COMPASS_MOT_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to the compass's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to the compass's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT_Z:{Description:"Multiplied by the current throttle and added to the compass's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_ODI2_X:{Calibration:"1",Description:"ODI_X in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI2_Y:{Calibration:"1",Description:"ODI_Y in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI2_Z:{Description:"ODI_Z in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_ODI3_X:{Calibration:"1",Description:"ODI_X in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI3_Y:{Calibration:"1",Description:"ODI_Y in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI3_Z:{Description:"ODI_Z in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_ODI_X:{Calibration:"1",Description:"ODI_X in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI_Y:{Calibration:"1",Description:"ODI_Y in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI_Z:{Description:"ODI_Z in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_OFFS_MAX:{Description:"This sets the maximum allowed compass offset in calibration and arming checks",DisplayName:"Compass maximum offset",Increment:"1",Range:{high:"3000",low:"500"},User:"Advanced"},COMPASS_OFS2_X:{Calibration:"1",Description:"Offset to be added to compass2's x-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS2_Y:{Calibration:"1",Description:"Offset to be added to compass2's y-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS2_Z:{Description:"Offset to be added to compass2's z-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_X:{Calibration:"1",Description:"Offset to be added to compass3's x-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_Y:{Calibration:"1",Description:"Offset to be added to compass3's y-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_Z:{Description:"Offset to be added to compass3's z-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_X:{Calibration:"1",Description:"Offset to be added to the compass x-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_Y:{Calibration:"1",Description:"Offset to be added to the compass y-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_Z:{Description:"Offset to be added to the compass z-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OPTIONS:{Bitmask:{0:"CalRequireGPS"},Description:"This sets options to change the behaviour of the compass",DisplayName:"Compass options",User:"Advanced"},COMPASS_ORIENT:{Description:"The orientation of the first external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used. The label for each option is specified in the order of rotations for that orientation. Firmware versions 4.2 and prior can use a CUSTOM (100) rotation to set the COMPASS_CUS_ROLL/PIT/YAW angles for Compass orientation. Later versions provide two general custom rotations which can be used, Custom 1 and Custom 2, with CUST_1_ROLL/PIT/YAW or CUST_2_ROLL/PIT/YAW angles.",DisplayName:"Compass orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Yaw45Roll180",10:"Yaw90Roll180",11:"Yaw135Roll180",12:"Pitch180",13:"Yaw225Roll180",14:"Yaw270Roll180",15:"Yaw315Roll180",16:"Roll90",17:"Yaw45Roll90",18:"Yaw90Roll90",19:"Yaw135Roll90",20:"Roll270",21:"Yaw45Roll270",22:"Yaw90Roll270",23:"Yaw135Roll270",24:"Pitch90",25:"Pitch270",26:"Yaw90Pitch180",27:"Yaw270Pitch180",28:"Pitch90Roll90",29:"Pitch90Roll180",30:"Pitch90Roll270",31:"Pitch180Roll90",32:"Pitch180Roll270",33:"Pitch270Roll90",34:"Pitch270Roll180",35:"Pitch270Roll270",36:"Yaw90Pitch180Roll90",37:"Yaw270Roll90",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Pitch315Roll90",42:"Roll45",43:"Roll315",100:"Custom 4.1 and older",101:"Custom 1",102:"Custom 2"}},COMPASS_ORIENT2:{Description:"The orientation of a second external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used. The label for each option is specified in the order of rotations for that orientation. Firmware versions 4.2 and prior can use a CUSTOM (100) rotation to set the COMPASS_CUS_ROLL/PIT/YAW angles for Compass orientation. Later versions provide two general custom rotations which can be used, Custom 1 and Custom 2, with CUST_1_ROLL/PIT/YAW or CUST_2_ROLL/PIT/YAW angles.",DisplayName:"Compass2 orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Yaw45Roll180",10:"Yaw90Roll180",11:"Yaw135Roll180",12:"Pitch180",13:"Yaw225Roll180",14:"Yaw270Roll180",15:"Yaw315Roll180",16:"Roll90",17:"Yaw45Roll90",18:"Yaw90Roll90",19:"Yaw135Roll90",20:"Roll270",21:"Yaw45Roll270",22:"Yaw90Roll270",23:"Yaw135Roll270",24:"Pitch90",25:"Pitch270",26:"Yaw90Pitch180",27:"Yaw270Pitch180",28:"Pitch90Roll90",29:"Pitch90Roll180",30:"Pitch90Roll270",31:"Pitch180Roll90",32:"Pitch180Roll270",33:"Pitch270Roll90",34:"Pitch270Roll180",35:"Pitch270Roll270",36:"Yaw90Pitch180Roll90",37:"Yaw270Roll90",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Pitch315Roll90",42:"Roll45",43:"Roll315",100:"Custom 4.1 and older",101:"Custom 1",102:"Custom 2"}},COMPASS_ORIENT3:{Description:"The orientation of a third external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used. The label for each option is specified in the order of rotations for that orientation. Firmware versions 4.2 and prior can use a CUSTOM (100) rotation to set the COMPASS_CUS_ROLL/PIT/YAW angles for Compass orientation. Later versions provide two general custom rotations which can be used, Custom 1 and Custom 2, with CUST_1_ROLL/PIT/YAW or CUST_2_ROLL/PIT/YAW angles.",DisplayName:"Compass3 orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Yaw45Roll180",10:"Yaw90Roll180",11:"Yaw135Roll180",12:"Pitch180",13:"Yaw225Roll180",14:"Yaw270Roll180",15:"Yaw315Roll180",16:"Roll90",17:"Yaw45Roll90",18:"Yaw90Roll90",19:"Yaw135Roll90",20:"Roll270",21:"Yaw45Roll270",22:"Yaw90Roll270",23:"Yaw135Roll270",24:"Pitch90",25:"Pitch270",26:"Yaw90Pitch180",27:"Yaw270Pitch180",28:"Pitch90Roll90",29:"Pitch90Roll180",30:"Pitch90Roll270",31:"Pitch180Roll90",32:"Pitch180Roll270",33:"Pitch270Roll90",34:"Pitch270Roll180",35:"Pitch270Roll270",36:"Yaw90Pitch180Roll90",37:"Yaw270Roll90",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Pitch315Roll90",42:"Roll45",43:"Roll315",100:"Custom 4.1 and older",101:"Custom 1",102:"Custom 2"}},COMPASS_PRIO1_ID:{Description:"Compass device id with 1st order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 1st order priority",RebootRequired:"True",User:"Advanced"},COMPASS_PRIO2_ID:{Description:"Compass device id with 2nd order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 2nd order priority",RebootRequired:"True",User:"Advanced"},COMPASS_PRIO3_ID:{Description:"Compass device id with 3rd order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 3rd order priority",RebootRequired:"True",User:"Advanced"},COMPASS_SCALE:{Description:"Scaling factor for first compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass1 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_SCALE2:{Description:"Scaling factor for 2nd compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass2 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_SCALE3:{Description:"Scaling factor for 3rd compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass3 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_TYPEMASK:{Bitmask:{0:"HMC5883",1:"LSM303D",2:"AK8963",3:"BMM150",4:"LSM9DS1",5:"LIS3MDL",6:"AK09916",7:"IST8310",8:"ICM20948",9:"MMC3416",11:"DroneCAN",12:"QMC5883",14:"MAG3110",15:"IST8308",16:"RM3100",17:"MSP",18:"ExternalAHRS"},Description:"This is a bitmask of driver types to disable. If a driver type is set in this mask then that driver will not try to find a sensor at startup",DisplayName:"Compass disable driver type mask",User:"Advanced"},COMPASS_USE:{Description:"Enable or disable the use of the compass (instead of the GPS) for determining heading",DisplayName:"Use compass for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_USE2:{Description:"Enable or disable the secondary compass for determining heading.",DisplayName:"Compass2 used for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_USE3:{Description:"Enable or disable the tertiary compass for determining heading.",DisplayName:"Compass3 used for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}}},qB={COMPASS_PMOT1_X:{Description:"Compensation for X axis of motor1",DisplayName:"Compass per-motor1 X",User:"Advanced"},COMPASS_PMOT1_Y:{Description:"Compensation for Y axis of motor1",DisplayName:"Compass per-motor1 Y",User:"Advanced"},COMPASS_PMOT1_Z:{Description:"Compensation for Z axis of motor1",DisplayName:"Compass per-motor1 Z",User:"Advanced"},COMPASS_PMOT2_X:{Description:"Compensation for X axis of motor2",DisplayName:"Compass per-motor2 X",User:"Advanced"},COMPASS_PMOT2_Y:{Description:"Compensation for Y axis of motor2",DisplayName:"Compass per-motor2 Y",User:"Advanced"},COMPASS_PMOT2_Z:{Description:"Compensation for Z axis of motor2",DisplayName:"Compass per-motor2 Z",User:"Advanced"},COMPASS_PMOT3_X:{Description:"Compensation for X axis of motor3",DisplayName:"Compass per-motor3 X",User:"Advanced"},COMPASS_PMOT3_Y:{Description:"Compensation for Y axis of motor3",DisplayName:"Compass per-motor3 Y",User:"Advanced"},COMPASS_PMOT3_Z:{Description:"Compensation for Z axis of motor3",DisplayName:"Compass per-motor3 Z",User:"Advanced"},COMPASS_PMOT4_X:{Description:"Compensation for X axis of motor4",DisplayName:"Compass per-motor4 X",User:"Advanced"},COMPASS_PMOT4_Y:{Description:"Compensation for Y axis of motor4",DisplayName:"Compass per-motor4 Y",User:"Advanced"},COMPASS_PMOT4_Z:{Description:"Compensation for Z axis of motor4",DisplayName:"Compass per-motor4 Z",User:"Advanced"},COMPASS_PMOT_EN:{Description:"This enables per-motor compass corrections",DisplayName:"per-motor compass correction enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_PMOT_EXP:{Description:"This is the exponential correction for the power output of the motor for per-motor compass correction",DisplayName:"per-motor exponential correction",Increment:"0.01",Range:{high:"2",low:"0"},User:"Advanced"}},KB={CUST_ROT_ENABLE:{Description:"This enables custom rotations",DisplayName:"Enable Custom rotations",RebootRequired:"True",User:"Standard",Values:{0:"Disable",1:"Enable"}}},jB={CUST_ROT1_PITCH:{Description:"Custom euler pitch, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom pitch",RebootRequired:"True",Units:"deg"},CUST_ROT1_ROLL:{Description:"Custom euler roll, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom roll",RebootRequired:"True",Units:"deg"},CUST_ROT1_YAW:{Description:"Custom euler yaw, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom yaw",RebootRequired:"True",Units:"deg"}},QB={CUST_ROT2_PITCH:{Description:"Custom euler pitch, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom pitch",RebootRequired:"True",Units:"deg"},CUST_ROT2_ROLL:{Description:"Custom euler roll, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom roll",RebootRequired:"True",Units:"deg"},CUST_ROT2_YAW:{Description:"Custom euler yaw, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom yaw",RebootRequired:"True",Units:"deg"}},JB={ACRO_BAL_PITCH:{Description:"rate at which pitch angle returns to level in acro and sport mode. A higher value causes the vehicle to return to level faster. For helicopter sets the decay rate of the virtual flybar in the pitch axis. A higher value causes faster decay of desired to actual attitude.",DisplayName:"Acro Balance Pitch",Increment:"0.1",Range:{high:"3",low:"0"},User:"Advanced"},ACRO_BAL_ROLL:{Description:"rate at which roll angle returns to level in acro and sport mode. A higher value causes the vehicle to return to level faster. For helicopter sets the decay rate of the virtual flybar in the roll axis. A higher value causes faster decay of desired to actual attitude.",DisplayName:"Acro Balance Roll",Increment:"0.1",Range:{high:"3",low:"0"},User:"Advanced"},ACRO_OPTIONS:{Bitmask:{0:"Air-mode",1:"Rate Loop Only"},Description:"A range of options that can be applied to change acro mode behaviour. Air-mode enables ATC_THR_MIX_MAN at all times (air-mode has no effect on helicopters). Rate Loop Only disables the use of angle stabilization and uses angular rate stabilization only.",DisplayName:"Acro mode options",User:"Advanced"},ACRO_RP_EXPO:{Description:"Acro roll/pitch Expo to allow faster rotation when stick at edges",DisplayName:"Acro Roll/Pitch Expo",Range:{high:"0.95",low:"-0.5"},User:"Advanced",Values:{0:"Disabled","0.1":"Very Low","0.2":"Low","0.3":"Medium","0.4":"High","0.5":"Very High"}},ACRO_RP_RATE:{Description:"Acro mode maximum roll and pitch rate. Higher values mean faster rate of rotation",DisplayName:"Acro Roll and Pitch Rate",Range:{high:"1080",low:"1"},Units:"deg/s",User:"Standard"},ACRO_RP_RATE_TC:{Description:"Acro roll and pitch rate control input time constant. Low numbers lead to sharper response, higher numbers to softer response",DisplayName:"Acro roll/pitch rate control input time constant",Increment:"0.01",Range:{high:"1",low:"0"},Units:"s",User:"Standard",Values:{"0.05":"Very Crisp","0.1":"Crisp","0.15":"Medium","0.2":"Soft","0.5":"Very Soft"}},ACRO_THR_MID:{Description:"Acro Throttle Mid",DisplayName:"Acro Thr Mid",Range:{high:"1",low:"0"},User:"Advanced"},ACRO_TRAINER:{Description:"Type of trainer used in acro mode",DisplayName:"Acro Trainer",User:"Advanced",Values:{0:"Disabled",1:"Leveling",2:"Leveling and Limited"}},ACRO_Y_EXPO:{Description:"Acro yaw expo to allow faster rotation when stick at edges",DisplayName:"Acro Yaw Expo",Range:{high:"0.95",low:"-1.0"},User:"Advanced",Values:{0:"Disabled","0.1":"Very Low","0.2":"Low","0.3":"Medium","0.4":"High","0.5":"Very High"}},ACRO_Y_RATE:{Description:"Acro mode maximum yaw rate. Higher value means faster rate of rotation",DisplayName:"Acro Yaw Rate",Range:{high:"360",low:"1"},Units:"deg/s",User:"Standard"},ACRO_Y_RATE_TC:{Description:"Acro yaw rate control input time constant. Low numbers lead to sharper response, higher numbers to softer response",DisplayName:"Acro yaw rate control input time constant",Increment:"0.01",Range:{high:"1",low:"0"},Units:"s",User:"Standard",Values:{"0.05":"Very Crisp","0.1":"Crisp","0.15":"Medium","0.2":"Soft","0.5":"Very Soft"}},ANGLE_MAX:{Description:"Maximum lean angle in all flight modes",DisplayName:"Angle Max",Increment:"10",Range:{high:"8000",low:"1000"},Units:"cdeg",User:"Advanced"},AUTO_OPTIONS:{Bitmask:{0:"Allow Arming",1:"Allow Takeoff Without Raising Throttle",2:"Ignore pilot yaw"},Description:"A range of options that can be applied to change auto mode behaviour. Allow Arming allows the copter to be armed in Auto. Allow Takeoff Without Raising Throttle allows takeoff without the pilot having to raise the throttle. Ignore pilot yaw overrides the pilot's yaw stick being used while in auto.",DisplayName:"Auto mode options",User:"Advanced"},DEV_OPTIONS:{Bitmask:{0:"ADSBMavlinkProcessing",1:"DevOptionVFR_HUDRelativeAlt"},Description:"Bitmask of developer options. The meanings of the bit fields in this parameter may vary at any time. Developers should check the source code for current meaning",DisplayName:"Development options",User:"Advanced"},DISARM_DELAY:{Description:"Delay before automatic disarm in seconds after landing touchdown detection. A value of zero disables auto disarm. If Emergency Motor stop active, delay time is half this value.",DisplayName:"Disarm delay",Range:{high:"127",low:"0"},Units:"s",User:"Advanced"},ESC_CALIBRATION:{Description:"Controls whether ArduCopter will enter ESC calibration on the next restart. Do not adjust this parameter manually.",DisplayName:"ESC Calibration",User:"Advanced",Values:{0:"Normal Start-up",1:"Start-up in ESC Calibration mode if throttle high",2:"Start-up in ESC Calibration mode regardless of throttle",3:"Start-up and automatically calibrate ESCs",9:"Disabled"}},FLIGHT_OPTIONS:{Bitmask:{0:"Disable thrust loss check",1:"Disable yaw imbalance warning",2:"Release gripper on thrust loss"},Description:"Flight mode specific options",DisplayName:"Flight mode options",User:"Advanced"},FLTMODE1:{Description:"Flight mode when pwm of Flightmode channel(FLTMODE_CH) is <= 1230",DisplayName:"Flight Mode 1",User:"Standard",Values:{0:"Stabilize",1:"Acro",2:"AltHold",3:"Auto",4:"Guided",5:"Loiter",6:"RTL",7:"Circle",9:"Land",11:"Drift",13:"Sport",14:"Flip",15:"AutoTune",16:"PosHold",17:"Brake",18:"Throw",19:"Avoid_ADSB",20:"Guided_NoGPS",21:"Smart_RTL",22:"FlowHold",23:"Follow",24:"ZigZag",25:"SystemID",26:"Heli_Autorotate",27:"Auto RTL"}},FLTMODE2:{Description:"Flight mode when pwm of Flightmode channel(FLTMODE_CH) is >1230, <= 1360",DisplayName:"Flight Mode 2",User:"Standard",Values:{0:"Stabilize",1:"Acro",2:"AltHold",3:"Auto",4:"Guided",5:"Loiter",6:"RTL",7:"Circle",9:"Land",11:"Drift",13:"Sport",14:"Flip",15:"AutoTune",16:"PosHold",17:"Brake",18:"Throw",19:"Avoid_ADSB",20:"Guided_NoGPS",21:"Smart_RTL",22:"FlowHold",23:"Follow",24:"ZigZag",25:"SystemID",26:"Heli_Autorotate",27:"Auto RTL"}},FLTMODE3:{Description:"Flight mode when pwm of Flightmode channel(FLTMODE_CH) is >1360, <= 1490",DisplayName:"Flight Mode 3",User:"Standard",Values:{0:"Stabilize",1:"Acro",2:"AltHold",3:"Auto",4:"Guided",5:"Loiter",6:"RTL",7:"Circle",9:"Land",11:"Drift",13:"Sport",14:"Flip",15:"AutoTune",16:"PosHold",17:"Brake",18:"Throw",19:"Avoid_ADSB",20:"Guided_NoGPS",21:"Smart_RTL",22:"FlowHold",23:"Follow",24:"ZigZag",25:"SystemID",26:"Heli_Autorotate",27:"Auto RTL"}},FLTMODE4:{Description:"Flight mode when pwm of Flightmode channel(FLTMODE_CH) is >1490, <= 1620",DisplayName:"Flight Mode 4",User:"Standard",Values:{0:"Stabilize",1:"Acro",2:"AltHold",3:"Auto",4:"Guided",5:"Loiter",6:"RTL",7:"Circle",9:"Land",11:"Drift",13:"Sport",14:"Flip",15:"AutoTune",16:"PosHold",17:"Brake",18:"Throw",19:"Avoid_ADSB",20:"Guided_NoGPS",21:"Smart_RTL",22:"FlowHold",23:"Follow",24:"ZigZag",25:"SystemID",26:"Heli_Autorotate",27:"Auto RTL"}},FLTMODE5:{Description:"Flight mode when pwm of Flightmode channel(FLTMODE_CH) is >1620, <= 1749",DisplayName:"Flight Mode 5",User:"Standard",Values:{0:"Stabilize",1:"Acro",2:"AltHold",3:"Auto",4:"Guided",5:"Loiter",6:"RTL",7:"Circle",9:"Land",11:"Drift",13:"Sport",14:"Flip",15:"AutoTune",16:"PosHold",17:"Brake",18:"Throw",19:"Avoid_ADSB",20:"Guided_NoGPS",21:"Smart_RTL",22:"FlowHold",23:"Follow",24:"ZigZag",25:"SystemID",26:"Heli_Autorotate",27:"Auto RTL"}},FLTMODE6:{Description:"Flight mode when pwm of Flightmode channel(FLTMODE_CH) is >=1750",DisplayName:"Flight Mode 6",User:"Standard",Values:{0:"Stabilize",1:"Acro",2:"AltHold",3:"Auto",4:"Guided",5:"Loiter",6:"RTL",7:"Circle",9:"Land",11:"Drift",13:"Sport",14:"Flip",15:"AutoTune",16:"PosHold",17:"Brake",18:"Throw",19:"Avoid_ADSB",20:"Guided_NoGPS",21:"Smart_RTL",22:"FlowHold",23:"Follow",24:"ZigZag",25:"SystemID",26:"Heli_Autorotate",27:"Auto RTL"}},FLTMODE_CH:{Description:"RC Channel to use for flight mode control",DisplayName:"Flightmode channel",User:"Advanced",Values:{0:"Disabled",5:"Channel5",6:"Channel6",7:"Channel7",8:"Channel8",9:"Channel9",10:"Channel 10",11:"Channel 11",12:"Channel 12",13:"Channel 13",14:"Channel 14",15:"Channel 15"}},FORMAT_VERSION:{Description:"This value is incremented when changes are made to the eeprom format",DisplayName:"Eeprom format version number",ReadOnly:"True",User:"Advanced"},FRAME_CLASS:{Description:"Controls major frame class for multicopter component",DisplayName:"Frame Class",RebootRequired:"True",User:"Standard",Values:{0:"Undefined",1:"Quad",2:"Hexa",3:"Octa",4:"OctaQuad",5:"Y6",6:"Heli",7:"Tri",8:"SingleCopter",9:"CoaxCopter",10:"BiCopter",11:"Heli_Dual",12:"DodecaHexa",13:"HeliQuad",14:"Deca",15:"Scripting Matrix",16:"6DoF Scripting",17:"Dynamic Scripting Matrix"}},FRAME_TYPE:{Description:"Controls motor mixing for multicopters. Not used for Tri or Traditional Helicopters.",DisplayName:"Frame Type (+, X, V, etc)",RebootRequired:"True",User:"Standard",Values:{0:"Plus",1:"X",2:"V",3:"H",4:"V-Tail",5:"A-Tail",10:"Y6B",11:"Y6F",12:"BetaFlightX",13:"DJIX",14:"ClockwiseX",15:"I",18:"BetaFlightXReversed",19:"Y4"}},FS_CRASH_CHECK:{Description:"This enables automatic crash checking. When enabled the motors will disarm if a crash is detected.",DisplayName:"Crash check enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},FS_DR_ENABLE:{Description:"Failsafe action taken immediately as deadreckoning starts. Deadreckoning starts when EKF loses position and velocity source and relies only on wind estimates",DisplayName:"DeadReckon Failsafe Action",User:"Standard",Values:{0:"Disabled/NoAction",1:"Land",2:"RTL",3:"SmartRTL or RTL",4:"SmartRTL or Land",6:"Auto DO_LAND_START or RTL"}},FS_DR_TIMEOUT:{Description:"DeadReckoning is available for this many seconds after losing position and/or velocity source. After this timeout elapses the EKF failsafe will trigger in modes requiring a position estimate",DisplayName:"DeadReckon Failsafe Timeout",Range:{high:"120",low:"0"},User:"Standard"},FS_EKF_ACTION:{Description:"Controls the action that will be taken when an EKF failsafe is invoked",DisplayName:"EKF Failsafe Action",User:"Advanced",Values:{1:"Land",2:"AltHold",3:"Land even in Stabilize"}},FS_EKF_THRESH:{Description:"Allows setting the maximum acceptable compass, velocity, position and height variances. Used in arming check and EKF failsafe.",DisplayName:"EKF failsafe variance threshold",User:"Advanced",Values:{"0.6":"Strict","0.8":"Default","1.0":"Relaxed"}},FS_GCS_ENABLE:{Description:"Controls whether failsafe will be invoked (and what action to take) when connection with Ground station is lost for at least 5 seconds. See FS_OPTIONS param for additional actions, or for cases allowing Mission continuation, when GCS failsafe is enabled.",DisplayName:"Ground Station Failsafe Enable",User:"Standard",Values:{0:"Disabled/NoAction",1:"RTL",2:"RTL or Continue with Mission in Auto Mode (Removed in 4.0+-see FS_OPTIONS)",3:"SmartRTL or RTL",4:"SmartRTL or Land",5:"Land",6:"Auto DO_LAND_START or RTL"}},FS_GCS_TIMEOUT:{Description:"Timeout before triggering the GCS failsafe",DisplayName:"GCS failsafe timeout",Increment:"1",Range:{high:"120",low:"2"},Units:"s",User:"Standard"},FS_OPTIONS:{Bitmask:{0:"Continue if in Auto on RC failsafe",1:"Continue if in Auto on GCS failsafe",2:"Continue if in Guided on RC failsafe",3:"Continue if landing on any failsafe",4:"Continue if in pilot controlled modes on GCS failsafe",5:"Release Gripper"},Description:"Bitmask of additional options for battery, radio, & GCS failsafes. 0 (default) disables all options.",DisplayName:"Failsafe options bitmask",User:"Advanced",Values:{0:"Disabled",1:"Continue if in Auto on RC failsafe only",2:"Continue if in Auto on GCS failsafe only",3:"Continue if in Auto on RC and/or GCS failsafe",4:"Continue if in Guided on RC failsafe only",8:"Continue if landing on any failsafe",16:"Continue if in pilot controlled modes on GCS failsafe",19:"Continue if in Auto on RC and/or GCS failsafe and continue if in pilot controlled modes on GCS failsafe"}},FS_THR_ENABLE:{Description:"The throttle failsafe allows you to configure a software failsafe activated by a setting on the throttle input channel",DisplayName:"Throttle Failsafe Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled always RTL",2:"Enabled Continue with Mission in Auto Mode (Removed in 4.0+)",3:"Enabled always Land",4:"Enabled always SmartRTL or RTL",5:"Enabled always SmartRTL or Land",6:"Enabled Auto DO_LAND_START or RTL"}},FS_THR_VALUE:{Description:"The PWM level in microseconds on channel 3 below which throttle failsafe triggers",DisplayName:"Throttle Failsafe Value",Increment:"1",Range:{high:"1100",low:"910"},Units:"PWM",User:"Standard"},FS_VIBE_ENABLE:{Description:"This enables the vibration failsafe which will use modified altitude estimation and control during high vibrations",DisplayName:"Vibration Failsafe enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},GCS_PID_MASK:{Bitmask:{0:"Roll",1:"Pitch",2:"Yaw",3:"AccelZ"},Description:"bitmask of PIDs to send MAVLink PID_TUNING messages for",DisplayName:"GCS PID tuning mask",User:"Advanced",Values:{0:"None",1:"Roll",2:"Pitch",4:"Yaw",8:"AccelZ"}},GND_EFFECT_COMP:{Description:"Ground Effect Compensation Enable/Disable",DisplayName:"Ground Effect Compensation Enable/Disable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},GPS_HDOP_GOOD:{Description:"GPS Hdop value at or below this value represent a good position. Used for pre-arm checks",DisplayName:"GPS Hdop Good",Range:{high:"900",low:"100"},User:"Advanced"},GUID_OPTIONS:{Bitmask:{0:"Allow Arming from Transmitter",2:"Ignore pilot yaw",3:"SetAttitudeTarget interprets Thrust As Thrust",4:"Do not stabilize PositionXY",5:"Do not stabilize VelocityXY",6:"Waypoint navigation used for position targets"},Description:"Options that can be applied to change guided mode behaviour",DisplayName:"Guided mode options",User:"Advanced"},GUID_TIMEOUT:{Description:"Guided mode timeout after which vehicle will stop or return to level if no updates are received from caller. Only applicable during any combination of velocity, acceleration, angle control, and/or angular rate control",DisplayName:"Guided mode timeout",Range:{high:"5",low:"0.1"},Units:"s",User:"Advanced"},INITIAL_MODE:{Description:"This selects the mode to start in on boot. This is useful for when you want to start in AUTO mode on boot without a receiver.",DisplayName:"Initial flight mode",User:"Advanced",Values:{0:"Stabilize",1:"Acro",2:"AltHold",3:"Auto",4:"Guided",5:"Loiter",6:"RTL",7:"Circle",9:"Land",11:"Drift",13:"Sport",14:"Flip",15:"AutoTune",16:"PosHold",17:"Brake",18:"Throw",19:"Avoid_ADSB",20:"Guided_NoGPS",21:"Smart_RTL",22:"FlowHold",23:"Follow",24:"ZigZag",25:"SystemID",26:"Heli_Autorotate"}},LAND_ALT_LOW:{Description:"Altitude during Landing at which vehicle slows to LAND_SPEED",DisplayName:"Land alt low",Increment:"10",Range:{high:"10000",low:"100"},Units:"cm",User:"Advanced"},LAND_REPOSITION:{Description:"Enables user input during LAND mode, the landing phase of RTL, and auto mode landings.",DisplayName:"Land repositioning",User:"Advanced",Values:{0:"No repositioning",1:"Repositioning"}},LAND_SPEED:{Description:"The descent speed for the final stage of landing in cm/s",DisplayName:"Land speed",Increment:"10",Range:{high:"200",low:"30"},Units:"cm/s",User:"Standard"},LAND_SPEED_HIGH:{Description:"The descent speed for the first stage of landing in cm/s. If this is zero then WPNAV_SPEED_DN is used",DisplayName:"Land speed high",Increment:"10",Range:{high:"500",low:"0"},Units:"cm/s",User:"Standard"},LOG_BITMASK:{Bitmask:{0:"Fast Attitude",1:"Medium Attitude",2:"GPS",3:"System Performance",4:"Control Tuning",5:"Navigation Tuning",6:"RC input",7:"IMU",8:"Mission Commands",9:"Battery Monitor",10:"RC output",11:"Optical Flow",12:"PID",13:"Compass",15:"Camera",17:"Motors",18:"Fast IMU",19:"Raw IMU",20:"Video Stabilization",21:"Fast harmonic notch logging"},Description:"Bitmap of what on-board log types to enable. This value is made up of the sum of each of the log types you want to be saved. It is usually best just to enable all basiclog types by setting this to 65535.",DisplayName:"Log bitmask",User:"Standard"},PHLD_BRAKE_ANGLE:{Description:"PosHold flight mode's max lean angle during braking in centi-degrees",DisplayName:"PosHold braking angle max",Increment:"10",Range:{high:"4500",low:"2000"},Units:"cdeg",User:"Advanced"},PHLD_BRAKE_RATE:{Description:"PosHold flight mode's rotation rate during braking in deg/sec",DisplayName:"PosHold braking rate",Range:{high:"12",low:"4"},Units:"deg/s",User:"Advanced"},PILOT_ACCEL_Z:{Description:"The vertical acceleration used when pilot is controlling the altitude",DisplayName:"Pilot vertical acceleration",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s/s",User:"Standard"},PILOT_SPEED_DN:{Description:"The maximum vertical descending velocity the pilot may request in cm/s. If 0 PILOT_SPEED_UP value is used.",DisplayName:"Pilot maximum vertical speed descending",Increment:"10",Range:{high:"500",low:"0"},Units:"cm/s",User:"Standard"},PILOT_SPEED_UP:{Description:"The maximum vertical ascending velocity the pilot may request in cm/s",DisplayName:"Pilot maximum vertical speed ascending",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s",User:"Standard"},PILOT_THR_BHV:{Bitmask:{0:"Feedback from mid stick",1:"High throttle cancels landing",2:"Disarm on land detection"},Description:'Bitmask containing various throttle stick options. TX with sprung throttle can set PILOT_THR_BHV to "1" so motor feedback when landed starts from mid-stick instead of bottom of stick.',DisplayName:"Throttle stick behavior",User:"Standard",Values:{0:"None",1:"Feedback from mid stick",2:"High throttle cancels landing",4:"Disarm on land detection"}},PILOT_THR_FILT:{Description:"Throttle filter cutoff (Hz) - active whenever altitude control is inactive - 0 to disable",DisplayName:"Throttle filter cutoff",Increment:".5",Range:{high:"10",low:"0"},Units:"Hz",User:"Advanced"},PILOT_TKOFF_ALT:{Description:"Altitude that altitude control modes will climb to when a takeoff is triggered with the throttle stick.",DisplayName:"Pilot takeoff altitude",Increment:"10",Range:{high:"1000.0",low:"0.0"},Units:"cm",User:"Standard"},PILOT_Y_EXPO:{Description:"Pilot controlled yaw expo to allow faster rotation when stick at edges",DisplayName:"Pilot controlled yaw expo",Range:{high:"1.0",low:"-0.5"},User:"Advanced",Values:{0:"Disabled","0.1":"Very Low","0.2":"Low","0.3":"Medium","0.4":"High","0.5":"Very High"}},PILOT_Y_RATE:{Description:"Pilot controlled yaw rate max. Used in all pilot controlled modes except Acro",DisplayName:"Pilot controlled yaw rate",Range:{high:"360",low:"1"},Units:"deg/s",User:"Standard"},PILOT_Y_RATE_TC:{Description:"Pilot yaw rate control input time constant. Low numbers lead to sharper response, higher numbers to softer response",DisplayName:"Pilot yaw rate control input time constant",Increment:"0.01",Range:{high:"1",low:"0"},Units:"s",User:"Standard",Values:{"0.05":"Very Crisp","0.1":"Crisp","0.15":"Medium","0.2":"Soft","0.5":"Very Soft"}},RC_SPEED:{Description:"This is the speed in Hertz that your ESCs will receive updates",DisplayName:"ESC Update Speed",Increment:"1",Range:{high:"490",low:"50"},Units:"Hz",User:"Advanced"},RNGFND_FILT:{Description:"Rangefinder filter to smooth distance. Set to zero to disable filtering",DisplayName:"Rangefinder filter",Increment:"0.05",Range:{high:"5",low:"0"},RebootRequired:"True",Units:"Hz",User:"Standard"},RTL_ALT:{Description:"The minimum alt above home the vehicle will climb to before returning. If the vehicle is flying higher than this value it will return at its current altitude.",DisplayName:"RTL Altitude",Increment:"1",Range:{high:"300000",low:"200"},Units:"cm",User:"Standard"},RTL_ALT_FINAL:{Description:"This is the altitude the vehicle will move to as the final stage of Returning to Launch or after completing a mission. Set to zero to land.",DisplayName:"RTL Final Altitude",Increment:"1",Range:{high:"1000",low:"0"},Units:"cm",User:"Standard"},RTL_ALT_TYPE:{Description:"RTL altitude type. Set to 1 for Terrain following during RTL and then set WPNAV_RFND_USE=1 to use rangefinder or WPNAV_RFND_USE=0 to use Terrain database",DisplayName:"RTL mode altitude type",User:"Standard",Values:{0:"Relative to Home",1:"Terrain"}},RTL_CLIMB_MIN:{Description:"The vehicle will climb this many cm during the initial climb portion of the RTL",DisplayName:"RTL minimum climb",Increment:"10",Range:{high:"3000",low:"0"},Units:"cm",User:"Standard"},RTL_CONE_SLOPE:{Description:"Defines a cone above home which determines maximum climb",DisplayName:"RTL cone slope",Increment:".1",Range:{high:"10.0",low:"0.5"},User:"Standard",Values:{0:"Disabled",1:"Shallow",3:"Steep"}},RTL_LOIT_TIME:{Description:"Time (in milliseconds) to loiter above home before beginning final descent",DisplayName:"RTL loiter time",Increment:"1000",Range:{high:"60000",low:"0"},Units:"ms",User:"Standard"},RTL_OPTIONS:{Bitmask:{2:"Ignore pilot yaw"},Description:"Options that can be applied to change RTL mode behaviour",DisplayName:"RTL mode options",User:"Advanced"},RTL_SPEED:{Description:"Defines the speed in cm/s which the aircraft will attempt to maintain horizontally while flying home. If this is set to zero, WPNAV_SPEED will be used instead.",DisplayName:"RTL speed",Increment:"50",Range:{high:"2000",low:"0"},Units:"cm/s",User:"Standard"},SIMPLE:{Bitmask:{0:"SwitchPos1",1:"SwitchPos2",2:"SwitchPos3",3:"SwitchPos4",4:"SwitchPos5",5:"SwitchPos6"},Description:"Bitmask which holds which flight modes use simple heading mode (eg bit 0 = 1 means Flight Mode 0 uses simple mode). The bitmask is for flightmode switch positions.",DisplayName:"Simple mode bitmask",User:"Advanced"},SUPER_SIMPLE:{Bitmask:{0:"SwitchPos1",1:"SwitchPos2",2:"SwitchPos3",3:"SwitchPos4",4:"SwitchPos5",5:"SwitchPos6"},Description:"Bitmask to enable Super Simple mode for some flight modes. Setting this to Disabled(0) will disable Super Simple Mode. The bitmask is for flight mode switch positions",DisplayName:"Super Simple Mode",User:"Standard"},SURFTRAK_MODE:{Description:"set which surface to track in surface tracking",DisplayName:"Surface Tracking Mode",User:"Advanced",Values:{0:"Do not track",1:"Ground",2:"Ceiling"}},SYSID_ENFORCE:{Description:"This controls whether packets from other than the expected GCS system ID will be accepted",DisplayName:"GCS sysid enforcement",User:"Advanced",Values:{0:"NotEnforced",1:"Enforced"}},SYSID_MYGCS:{Description:"Allows restricting radio overrides to only come from my ground station",DisplayName:"My ground station number",Range:{high:"255",low:"1"},User:"Advanced"},SYSID_THISMAV:{Description:"Allows setting an individual MAVLink system id for this vehicle to distinguish it from others on the same network",DisplayName:"MAVLink system ID of this vehicle",Range:{high:"255",low:"1"},User:"Advanced"},TELEM_DELAY:{Description:"The amount of time (in seconds) to delay radio telemetry to prevent an Xbee bricking on power up",DisplayName:"Telemetry startup delay",Increment:"1",Range:{high:"30",low:"0"},Units:"s",User:"Advanced"},THROW_MOT_START:{Description:"Used by Throw mode. Controls whether motors will run at the speed set by MOT_SPIN_MIN or will be stopped when armed and waiting for the throw.",DisplayName:"Start motors before throwing is detected",User:"Standard",Values:{0:"Stopped",1:"Running"}},THROW_NEXTMODE:{Description:"Vehicle will switch to this mode after the throw is successfully completed. Default is to stay in throw mode (18)",DisplayName:"Throw mode's follow up mode",User:"Standard",Values:{3:"Auto",4:"Guided",5:"LOITER",6:"RTL",9:"Land",17:"Brake",18:"Throw"}},THROW_TYPE:{Description:"Used by Throw mode. Specifies whether Copter is thrown upward or dropped.",DisplayName:"Type of Type",User:"Standard",Values:{0:"Upward Throw",1:"Drop"}},THR_DZ:{Description:"The deadzone above and below mid throttle in PWM microseconds. Used in AltHold, Loiter, PosHold flight modes",DisplayName:"Throttle deadzone",Increment:"1",Range:{high:"300",low:"0"},Units:"PWM",User:"Standard"},TKOFF_RPM_MIN:{Description:"Takeoff is not permitted until motors report at least this RPM. Set to zero to disable check",DisplayName:"Takeoff Check RPM minimum",Range:{high:"10000",low:"0"},User:"Standard"},TKOFF_SLEW_TIME:{Description:"Time to slew the throttle from minimum to maximum while checking for a succsessful takeoff.",DisplayName:"Slew time of throttle during take-off",Range:{high:"5.0",low:"0.25"},Units:"s",User:"Standard"},TUNE:{Description:"Controls which parameters (normally PID gains) are being tuned with transmitter's channel 6 knob",DisplayName:"Channel 6 Tuning",User:"Standard",Values:{0:"None",1:"Stab Roll/Pitch kP",3:"Stab Yaw kP",4:"Rate Roll/Pitch kP",5:"Rate Roll/Pitch kI",6:"Rate Yaw kP",7:"Throttle Rate kP",10:"WP Speed",12:"Loiter Pos kP",13:"Heli Ext Gyro",14:"AltHold kP",21:"Rate Roll/Pitch kD",22:"Velocity XY kP",25:"Acro Roll/Pitch deg/s",26:"Rate Yaw kD",28:"Velocity XY kI",34:"Throttle Accel kP",35:"Throttle Accel kI",36:"Throttle Accel kD",38:"Declination",39:"Circle Rate",40:"Acro Yaw deg/s",45:"RC Feel",46:"Rate Pitch kP",47:"Rate Pitch kI",48:"Rate Pitch kD",49:"Rate Roll kP",50:"Rate Roll kI",51:"Rate Roll kD",52:"Rate Pitch FF",53:"Rate Roll FF",54:"Rate Yaw FF",55:"Motor Yaw Headroom",56:"Rate Yaw Filter",58:"SysID Magnitude"}},TUNE_MAX:{Description:"Maximum value that the parameter currently being tuned with the transmitter's channel 6 knob will be set to",DisplayName:"Tuning maximum",User:"Standard"},TUNE_MIN:{Description:"Minimum value that the parameter currently being tuned with the transmitter's channel 6 knob will be set to",DisplayName:"Tuning minimum",User:"Standard"},WP_NAVALT_MIN:{Description:"This is the altitude in meters above which for navigation can begin. This applies in auto takeoff and auto landing.",DisplayName:"Minimum navigation altitude",Range:{high:"5",low:"0"},User:"Standard"},WP_YAW_BEHAVIOR:{Description:"Determines how the autopilot controls the yaw during missions and RTL",DisplayName:"Yaw behaviour during missions",User:"Standard",Values:{0:"Never change yaw",1:"Face next waypoint",2:"Face next waypoint except RTL",3:"Face along GPS course"}}},ez={DID_BARO_ACC:{Description:"Barometer Vertical Accuracy when installed in the vehicle. Note this is dependent upon installation conditions and thus disabled by default",DisplayName:"Barometer vertical accuraacy",Units:"m",User:"Advanced"},DID_CANDRIVER:{Description:"DroneCAN driver index, 0 to disable DroneCAN",DisplayName:"DroneCAN driver number",Values:{0:"Disabled",1:"Driver1",2:"Driver2"}},DID_ENABLE:{Description:"Enable ODID subsystem",DisplayName:"Enable ODID subsystem",Values:{0:"Disabled",1:"Enabled"}},DID_MAVPORT:{Description:"Serial port number to send OpenDroneID MAVLink messages to. Can be -1 if using DroneCAN.",DisplayName:"MAVLink serial port",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},DID_OPTIONS:{Bitmask:{0:"EnforceArming"},Description:"Options for OpenDroneID subsystem. Bit 0 means to enforce arming checks",DisplayName:"OpenDroneID options"}},tz={EAHRS_RATE:{Description:"Requested rate for AHRS device",DisplayName:"AHRS data rate",Units:"Hz",User:"Standard"},EAHRS_TYPE:{Description:"Type of AHRS device",DisplayName:"AHRS type",User:"Standard",Values:{0:"None",1:"VectorNav",2:"LORD"}}},iz={EFI_COEF1:{Description:"Used to calibrate fuel flow for MS protocol (Slope). This should be calculated from a log at constant fuel usage rate. Plot (ECYL[0].InjT*EFI.Rpm)/600.0 to get the duty_cycle. Measure actual fuel usage in cm^3/min, and set EFI_COEF1 = fuel_usage_cm3permin / duty_cycle",DisplayName:"EFI Calibration Coefficient 1",Range:{high:"1",low:"0"},User:"Advanced"},EFI_COEF2:{Description:"Used to calibrate fuel flow for MS protocol (Offset). This can be used to correct for a non-zero offset in the fuel consumption calculation of EFI_COEF1",DisplayName:"EFI Calibration Coefficient 2",Range:{high:"10",low:"0"},User:"Advanced"},EFI_FUEL_DENS:{Description:"Used to calculate fuel consumption",DisplayName:"ECU Fuel Density",Range:{high:"10000",low:"0"},Units:"kg/m/m/m",User:"Advanced"},EFI_TYPE:{Description:"What method of communication is used for EFI #1",DisplayName:"EFI communication type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Serial-MS",2:"NWPMU",3:"Serial-Lutan",5:"DroneCAN",6:"Currawong-ECU",7:"Scripting"}}},az={EK2_ABIAS_P_NSE:{Description:"This noise controls the growth of the vertical accelerometer delta velocity bias state error estimate. Increasing it makes accelerometer bias estimation faster and noisier.",DisplayName:"Accelerometer bias stability (m/s^3)",Range:{high:"0.005",low:"0.00001"},Units:"m/s/s/s",User:"Advanced"},EK2_ACC_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to accelerometer measurement errors excluding bias. Increasing it makes the flter trust the accelerometer measurements less and other measurements more.",DisplayName:"Accelerometer noise (m/s^2)",Increment:"0.01",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK2_ALT_M_NSE:{Description:"This is the RMS value of noise in the altitude measurement. Increasing it reduces the weighting of the baro measurement and will make the filter respond more slowly to baro measurement errors, but will make it more sensitive to GPS and accelerometer errors.",DisplayName:"Altitude measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_ALT_SOURCE:{Description:"Primary height sensor used by the EKF. If a sensor other than Baro is selected and becomes unavailable, then the Baro sensor will be used as a fallback. NOTE: The EK2_RNG_USE_HGT parameter can be used to switch to range-finder when close to the ground in conjunction with EK2_ALT_SOURCE = 0 or 2 (Baro or GPS).",DisplayName:"Primary altitude sensor source",RebootRequired:"True",User:"Advanced",Values:{0:"Use Baro",1:"Use Range Finder",2:"Use GPS",3:"Use Range Beacon"}},EK2_BCN_DELAY:{Description:"This is the number of msec that the range beacon measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Range beacon measurement delay (msec)",Increment:"10",Range:{high:"127",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_BCN_I_GTE:{Description:"This sets the percentage number of standard deviations applied to the range beacon measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range beacon measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_BCN_M_NSE:{Description:"This is the RMS value of noise in the range beacon measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range beacon measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_CHECK_SCALE:{Description:"This scales the thresholds that are used to check GPS accuracy before it is used by the EKF. A value of 100 is the default. Values greater than 100 increase and values less than 100 reduce the maximum GPS error the EKF will accept. A value of 200 will double the allowable GPS error.",DisplayName:"GPS accuracy check scaler (%)",Range:{high:"200",low:"50"},Units:"%",User:"Advanced"},EK2_EAS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the airspeed measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Airspeed measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_EAS_M_NSE:{Description:"This is the RMS value of noise in equivalent airspeed measurements used by planes. Increasing it reduces the weighting of airspeed measurements and will make wind speed estimates less noisy and slower to converge. Increasing also increases navigation errors when dead-reckoning without GPS measurements.",DisplayName:"Equivalent airspeed measurement noise (m/s)",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK2_ENABLE:{Description:"This enables EKF2. Enabling EKF2 only makes the maths run, it does not mean it will be used for flight control. To use it for flight control set AHRS_EKF_TYPE=2. A reboot or restart will need to be performed after changing the value of EK2_ENABLE for it to take effect.",DisplayName:"Enable EKF2",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},EK2_FLOW_DELAY:{Description:"This is the number of msec that the optical flow measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Optical Flow measurement delay (msec)",Increment:"10",Range:{high:"127",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_FLOW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the optical flow innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Optical Flow measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_FLOW_M_NSE:{Description:"This is the RMS value of noise and errors in optical flow measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Optical flow measurement noise (rad/s)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad/s",User:"Advanced"},EK2_FLOW_USE:{Description:"Controls if the optical flow data is fused into the 24-state navigation estimator OR the 1-state terrain height estimator.",DisplayName:"Optical flow use bitmask",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Navigation",2:"Terrain"}},EK2_GBIAS_P_NSE:{Description:"This state process noise controls growth of the gyro delta angle bias state error estimate. Increasing it makes rate gyro bias estimation faster and noisier.",DisplayName:"Rate gyro bias stability (rad/s/s)",Range:{high:"0.001",low:"0.00001"},Units:"rad/s/s",User:"Advanced"},EK2_GLITCH_RAD:{Description:"This controls the maximum radial uncertainty in position between the value predicted by the filter and the value measured by the GPS before the filter position and velocity states are reset to the GPS. Making this value larger allows the filter to ignore larger GPS glitches but also means that non-GPS errors such as IMU and compass can create a larger error in position before the filter is forced back to the GPS position.",DisplayName:"GPS glitch radius gate size (m)",Increment:"5",Range:{high:"100",low:"10"},Units:"m",User:"Advanced"},EK2_GPS_CHECK:{Bitmask:{0:"NSats",1:"HDoP",2:"speed error",3:"position error",4:"yaw error",5:"pos drift",6:"vert speed",7:"horiz speed"},Description:"This is a 1 byte bitmap controlling which GPS preflight checks are performed. Set to 0 to bypass all checks. Set to 255 perform all checks. Set to 3 to check just the number of satellites and HDoP. Set to 31 for the most rigorous checks that will still allow checks to pass when the copter is moving, eg launch from a boat.",DisplayName:"GPS preflight check",User:"Advanced"},EK2_GPS_TYPE:{Description:"This controls use of GPS measurements : 0 = use 3D velocity & 2D position, 1 = use 2D velocity and 2D position, 2 = use 2D position, 3 = Inhibit GPS use - this can be useful when flying with an optical flow sensor in an environment where GPS quality is poor and subject to large multipath errors.",DisplayName:"GPS mode control",User:"Advanced",Values:{0:"GPS 3D Vel and 2D Pos",1:"GPS 2D vel and 2D pos",2:"GPS 2D pos",3:"No GPS"}},EK2_GSCL_P_NSE:{Description:"This noise controls the rate of gyro scale factor learning. Increasing it makes rate gyro scale factor estimation faster and noisier.",DisplayName:"Rate gyro scale factor stability (1/s)",Range:{high:"0.001",low:"0.000001"},Units:"Hz",User:"Advanced"},EK2_GSF_RST_MAX:{Description:"Sets the maximum number of times the EKF2 will be allowed to reset its yaw to the estimate from the EKF-GSF yaw estimator. No resets will be allowed unless the use of the EKF-GSF yaw estimate is enabled via the EK2_GSF_USE_MASK parameter.",DisplayName:"Maximum number of resets to the EKF-GSF yaw estimate allowed",Increment:"1",Range:{high:"10",low:"1"},RebootRequired:"True",User:"Advanced"},EK2_GSF_RUN_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"A bitmask of which EKF2 instances run an independant EKF-GSF yaw estimator to provide a backup yaw estimate that doesn't rely on magnetometer data. This estimator uses IMU, GPS and, if available, airspeed data. EKF-GSF yaw estimator data for the primary EKF2 instance will be logged as GSF0 and GSF1 messages. Use of the yaw estimate generated by this algorithm is controlled by the EK2_GSF_USE_MASK and EK2_GSF_RST_MAX parameters. To run the EKF-GSF yaw estimator in ride-along and logging only, set EK2_GSF_USE_MASK to 0. ",DisplayName:"Bitmask of which EKF-GSF yaw estimators run",RebootRequired:"True",User:"Advanced"},EK2_GSF_USE_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of which EKF2 instances will use the output from the EKF-GSF yaw estimator that has been turned on by the EK2_GSF_RUN_MASK parameter. If the inertial navigation calculation stops following the GPS, then the vehicle code can request EKF2 to attempt to resolve the issue, either by performing a yaw reset if enabled by this parameter by switching to another EKF2 instance.",DisplayName:"Bitmask of which EKF-GSF yaw estimators are used",RebootRequired:"True",User:"Advanced"},EK2_GYRO_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to gyro measurement errors excluding bias. Increasing it makes the flter trust the gyro measurements less and other measurements more.",DisplayName:"Rate gyro noise (rad/s)",Increment:"0.0001",Range:{high:"0.1",low:"0.0001"},Units:"rad/s",User:"Advanced"},EK2_HGT_DELAY:{Description:"This is the number of msec that the Height measurements lag behind the inertial measurements.",DisplayName:"Height measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_HGT_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the height measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Height measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_HRT_FILT:{Description:"Specifies the crossover frequency of the complementary filter used to calculate the output predictor height rate derivative.",DisplayName:"Height rate filter crossover frequency",Range:{high:"30.0",low:"0.1"},Units:"Hz"},EK2_IMU_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU"},Description:"1 byte bitmap of IMUs to use in EKF2. A separate instance of EKF2 will be started for each IMU selected. Set to 1 to use the first IMU only (default), set to 2 to use the second IMU only, set to 3 to use the first and second IMU. Additional IMU's can be used up to a maximum of 6 if memory and processing resources permit. There may be insufficient memory and processing resources to run multiple instances. If this occurs EKF2 will fail to start.",DisplayName:"Bitmask of active IMUs",RebootRequired:"True",User:"Advanced"},EK2_MAGB_P_NSE:{Description:"This state process noise controls the growth of body magnetic field state error estimates. Increasing it makes magnetometer bias error estimation faster and noisier.",DisplayName:"Body magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK2_MAGE_P_NSE:{Description:"This state process noise controls the growth of earth magnetic field state error estimates. Increasing it makes earth magnetic field estimation faster and noisier.",DisplayName:"Earth magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK2_MAG_CAL:{Description:"This determines when the filter will use the 3-axis magnetometer fusion model that estimates both earth and body fixed magnetic field states, when it will use a simpler magnetic heading fusion model that does not use magnetic field states and when it will use an alternative method of yaw determination to the magnetometer. The 3-axis magnetometer fusion is only suitable for use when the external magnetic field environment is stable. EK2_MAG_CAL = 0 uses heading fusion on ground, 3-axis fusion in-flight, and is the default setting for Plane users. EK2_MAG_CAL = 1 uses 3-axis fusion only when manoeuvring. EK2_MAG_CAL = 2 uses heading fusion at all times, is recommended if the external magnetic field is varying and is the default for rovers. EK2_MAG_CAL = 3 uses heading fusion on the ground and 3-axis fusion after the first in-air field and yaw reset has completed, and is the default for copters. EK2_MAG_CAL = 4 uses 3-axis fusion at all times. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK2_MAG_MASK parameter. NOTE: limited operation without a magnetometer or any other yaw sensor is possible by setting all COMPASS_USE, COMPASS_USE2, COMPASS_USE3, etc parameters to 0 with COMPASS_ENABLE set to 1. If this is done, the EK2_GSF_RUN and EK2_GSF_USE masks must be set to the same as EK2_IMU_MASK.",DisplayName:"Magnetometer default fusion mode",User:"Advanced",Values:{0:"When flying",1:"When manoeuvring",2:"Never",3:"After first climb yaw reset",4:"Always"}},EK2_MAG_EF_LIM:{Description:"This limits the difference between the learned earth magnetic field and the earth field from the world magnetic model tables. A value of zero means to disable the use of the WMM tables.",DisplayName:"EarthField error limit",Range:{high:"500",low:"0"},Units:"mGauss",User:"Advanced"},EK2_MAG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Magnetometer measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_MAG_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of EKF cores that will disable magnetic field states and use simple magnetic heading fusion at all times. This parameter enables specified cores to be used as a backup for flight into an environment with high levels of external magnetic interference which may degrade the EKF attitude estimate when using 3-axis magnetometer fusion. NOTE : Use of a different magnetometer fusion algorithm on different cores makes unwanted EKF core switches due to magnetometer errors more likely.",DisplayName:"Bitmask of active EKF cores that will always use heading fusion",RebootRequired:"True",User:"Advanced"},EK2_MAG_M_NSE:{Description:"This is the RMS value of noise in magnetometer measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Magnetometer measurement noise (Gauss)",Increment:"0.01",Range:{high:"0.5",low:"0.01"},Units:"Gauss",User:"Advanced"},EK2_MAX_FLOW:{Description:"This sets the magnitude maximum optical flow rate in rad/sec that will be accepted by the filter",DisplayName:"Maximum valid optical flow rate",Increment:"0.1",Range:{high:"4.0",low:"1.0"},Units:"rad/s",User:"Advanced"},EK2_NOAID_M_NSE:{Description:"This sets the amount of position variation that the EKF allows for when operating without external measurements (eg GPS or optical flow). Increasing this parameter makes the EKF attitude estimate less sensitive to vehicle manoeuvres but more sensitive to IMU errors.",DisplayName:"Non-GPS operation position uncertainty (m)",Range:{high:"50.0",low:"0.5"},Units:"m",User:"Advanced"},EK2_OGN_HGT_MASK:{Bitmask:{0:"Correct when using Baro height",1:"Correct when using range finder height",2:"Apply corrections to local position"},Description:"When a height sensor other than GPS is used as the primary height source by the EKF, the position of the zero height datum is defined by that sensor and its frame of reference. If a GPS height measurement is also available, then the height of the WGS-84 height datum used by the EKF can be corrected so that the height returned by the getLLH() function is compensated for primary height sensor drift and change in datum over time. The first two bit positions control when the height datum will be corrected. Correction is performed using a Bayes filter and only operates when GPS quality permits. The third bit position controls where the corrections to the GPS reference datum are applied. Corrections can be applied to the local vertical position or to the reported EKF origin height (default).",DisplayName:"Bitmask control of EKF reference height correction",RebootRequired:"True",User:"Advanced"},EK2_POSNE_M_NSE:{Description:"This sets the GPS horizontal position observation noise. Increasing it reduces the weighting of GPS horizontal position measurements.",DisplayName:"GPS horizontal position measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_POS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS position measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS position measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_RNG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the range finder innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range finder measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_RNG_M_NSE:{Description:"This is the RMS value of noise in the range finder measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range finder measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_RNG_USE_HGT:{Description:"Range finder can be used as the primary height source when below this percentage of its maximum range (see RNGFND_MAX_CM). This will not work unless Baro or GPS height is selected as the primary height source vis EK2_ALT_SOURCE = 0 or 2 respectively. This feature should not be used for terrain following as it is designed for vertical takeoff and landing with climb above the range finder use height before commencing the mission, and with horizontal position changes below that height being limited to a flat region around the takeoff and landing point.",DisplayName:"Range finder switch height percentage",Increment:"1",Range:{high:"70",low:"-1"},Units:"%",User:"Advanced"},EK2_RNG_USE_SPD:{Description:"The range finder will not be used as the primary height source when the horizontal ground speed is greater than this value.",DisplayName:"Range finder max ground speed",Increment:"0.5",Range:{high:"6.0",low:"2.0"},Units:"m/s",User:"Advanced"},EK2_TAU_OUTPUT:{Description:"Sets the time constant of the output complementary filter/predictor in centi-seconds.",DisplayName:"Output complementary filter time constant (centi-sec)",Increment:"5",Range:{high:"50",low:"10"},Units:"cs",User:"Advanced"},EK2_TERR_GRAD:{Description:"Specifies the maximum gradient of the terrain below the vehicle assumed when it is fusing range finder or optical flow to estimate terrain height.",DisplayName:"Maximum terrain gradient",Increment:"0.01",Range:{high:"0.2",low:"0"},User:"Advanced"},EK2_VELD_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set vertical velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS vertical velocity measurements.",DisplayName:"GPS vertical velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK2_VELNE_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set horizontal velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS horizontal velocity measurements.",DisplayName:"GPS horizontal velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK2_VEL_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS velocity measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS velocity innovation gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_WIND_PSCALE:{Description:"This controls how much the process noise on the wind states is increased when gaining or losing altitude to take into account changes in wind speed and direction with altitude. Increasing this parameter increases how rapidly the wind states adapt when changing altitude, but does make wind velocity estimation noiser.",DisplayName:"Height rate to wind process noise scaler",Increment:"0.1",Range:{high:"1.0",low:"0.0"},User:"Advanced"},EK2_WIND_P_NSE:{Description:"This state process noise controls the growth of wind state error estimates. Increasing it makes wind estimation faster and noisier.",DisplayName:"Wind velocity process noise (m/s^2)",Increment:"0.1",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK2_YAW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer yaw measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Yaw measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_YAW_M_NSE:{Description:"This is the RMS value of noise in yaw measurements from the magnetometer. Increasing it reduces the weighting on these measurements.",DisplayName:"Yaw measurement noise (rad)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},rz={EK3_ABIAS_P_NSE:{Description:"This noise controls the growth of the vertical accelerometer delta velocity bias state error estimate. Increasing it makes accelerometer bias estimation faster and noisier.",DisplayName:"Accelerometer bias stability (m/s^3)",Range:{high:"0.005",low:"0.00001"},Units:"m/s/s/s",User:"Advanced"},EK3_ACC_BIAS_LIM:{Description:"The accelerometer bias state will be limited to +- this value",DisplayName:"Accelerometer bias limit",Increment:"0.1",Range:{high:"2.5",low:"0.5"},Units:"m/s/s",User:"Advanced"},EK3_ACC_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to accelerometer measurement errors excluding bias. Increasing it makes the flter trust the accelerometer measurements less and other measurements more.",DisplayName:"Accelerometer noise (m/s^2)",Increment:"0.01",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK3_AFFINITY:{Bitmask:{0:"EnableGPSAffinity",1:"EnableBaroAffinity",2:"EnableCompassAffinity",3:"EnableAirspeedAffinity"},Description:"These options control the affinity between sensor instances and EKF cores",DisplayName:"EKF3 Sensor Affinity Options",RebootRequired:"True",User:"Advanced"},EK3_ALT_M_NSE:{Description:"This is the RMS value of noise in the altitude measurement. Increasing it reduces the weighting of the baro measurement and will make the filter respond more slowly to baro measurement errors, but will make it more sensitive to GPS and accelerometer errors.",DisplayName:"Altitude measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_BCN_DELAY:{Description:"This is the number of msec that the range beacon measurements lag behind the inertial measurements.",DisplayName:"Range beacon measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_BCN_I_GTE:{Description:"This sets the percentage number of standard deviations applied to the range beacon measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range beacon measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_BCN_M_NSE:{Description:"This is the RMS value of noise in the range beacon measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range beacon measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_BETA_MASK:{Bitmask:{0:"Always",1:"WhenNoYawSensor"},Description:"1 byte bitmap controlling use of sideslip angle fusion for estimation of non wind states during operation of 'fly forward' vehicle types such as fixed wing planes. By assuming that the angle of sideslip is small, the wind velocity state estimates are corrected whenever the EKF is not dead reckoning (e.g. has an independent velocity or position sensor such as GPS). This behaviour is on by default and cannot be disabled. When the EKF is dead reckoning, the wind states are used as a reference, enabling use of the small angle of sideslip assumption to correct non wind velocity states (eg attitude, velocity, position, etc) and improve navigation accuracy. This behaviour is on by default and cannot be disabled. The behaviour controlled by this parameter is the use of the small angle of sideslip assumption to correct non wind velocity states when the EKF is NOT dead reckoning. This is primarily of benefit to reduce the buildup of yaw angle errors during straight and level flight without a yaw sensor (e.g. magnetometer or dual antenna GPS yaw) provided aerobatic flight maneuvers with large sideslip angles are not performed. The 'always' option might be used where the yaw sensor is intentionally not fitted or disabled. The 'WhenNoYawSensor' option might be used if a yaw sensor is fitted, but protection against in-flight failure and continual rejection by the EKF is desired. For vehicles operated within visual range of the operator performing frequent turning maneuvers, setting this parameter is unnecessary.",DisplayName:"Bitmask controlling sidelip angle fusion",RebootRequired:"True",User:"Advanced"},EK3_CHECK_SCALE:{Description:"This scales the thresholds that are used to check GPS accuracy before it is used by the EKF. A value of 100 is the default. Values greater than 100 increase and values less than 100 reduce the maximum GPS error the EKF will accept. A value of 200 will double the allowable GPS error.",DisplayName:"GPS accuracy check scaler (%)",Range:{high:"200",low:"50"},Units:"%",User:"Advanced"},EK3_DRAG_BCOEF_X:{Description:"Ratio of mass to drag coefficient measured along the X body axis. This parameter enables estimation of wind drift for vehicles with bluff bodies and without propulsion forces in the X and Y direction (eg multicopters). The drag produced by this effect scales with speed squared. Set to a postive value > 1.0 to enable. A starting value is the mass in Kg divided by the frontal area. The predicted drag from the rotors is specified separately by the EK3_DRAG_MCOEF parameter.",DisplayName:"Ballistic coefficient for X axis drag",Range:{high:"1000.0",low:"0.0"},Units:"kg/m/m",User:"Advanced"},EK3_DRAG_BCOEF_Y:{Description:"Ratio of mass to drag coefficient measured along the Y body axis. This parameter enables estimation of wind drift for vehicles with bluff bodies and without propulsion forces in the X and Y direction (eg multicopters). The drag produced by this effect scales with speed squared. Set to a postive value > 1.0 to enable. A starting value is the mass in Kg divided by the side area. The predicted drag from the rotors is specified separately by the EK3_DRAG_MCOEF parameter.",DisplayName:"Ballistic coefficient for Y axis drag",Range:{high:"1000.0",low:"50.0"},Units:"kg/m/m",User:"Advanced"},EK3_DRAG_MCOEF:{Description:"This parameter is used to predict the drag produced by the rotors when flying a multi-copter, enabling estimation of wind drift. The drag produced by this effect scales with speed not speed squared and is produced because some of the air velocity normal to the rotors axis of rotation is lost when passing through the rotor disc which changes the momentum of the airflow causing drag. For unducted rotors the effect is roughly proportional to the area of the propeller blades when viewed side on and changes with different propellers. It is higher for ducted rotors. For example if flying at 15 m/s at sea level conditions produces a rotor induced drag acceleration of 1.5 m/s/s, then EK3_DRAG_MCOEF would be set to 0.1 = (1.5/15.0). Set EK3_MCOEF to a postive value to enable wind estimation using this drag effect. To account for the drag produced by the body which scales with speed squared, see documentation for the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters.",DisplayName:"Momentum coefficient for propeller drag",Increment:"0.01",Range:{high:"1.0",low:"0.0"},Units:"1/s",User:"Advanced"},EK3_DRAG_M_NSE:{Description:"This sets the amount of noise used when fusing X and Y acceleration as an observation that enables esitmation of wind velocity for multi-rotor vehicles. This feature is enabled by the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters",DisplayName:"Observation noise for drag acceleration",Increment:"0.1",Range:{high:"2.0",low:"0.1"},Units:"m/s/s",User:"Advanced"},EK3_EAS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the airspeed measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Airspeed measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_EAS_M_NSE:{Description:"This is the RMS value of noise in equivalent airspeed measurements used by planes. Increasing it reduces the weighting of airspeed measurements and will make wind speed estimates less noisy and slower to converge. Increasing also increases navigation errors when dead-reckoning without GPS measurements.",DisplayName:"Equivalent airspeed measurement noise (m/s)",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK3_ENABLE:{Description:"This enables EKF3. Enabling EKF3 only makes the maths run, it does not mean it will be used for flight control. To use it for flight control set AHRS_EKF_TYPE=3. A reboot or restart will need to be performed after changing the value of EK3_ENABLE for it to take effect.",DisplayName:"Enable EKF3",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},EK3_ERR_THRESH:{Description:"lanes have to be consistently better than the primary by at least this threshold to reduce their overall relativeCoreError, lowering this makes lane switching more sensitive to smaller error differences",DisplayName:"EKF3 Lane Relative Error Sensitivity Threshold",Increment:"0.05",Range:{high:"1",low:"0.05"},User:"Advanced"},EK3_FLOW_DELAY:{Description:"This is the number of msec that the optical flow measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Optical Flow measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_FLOW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the optical flow innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Optical Flow measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_FLOW_M_NSE:{Description:"This is the RMS value of noise and errors in optical flow measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Optical flow measurement noise (rad/s)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad/s",User:"Advanced"},EK3_FLOW_USE:{Description:"Controls if the optical flow data is fused into the 24-state navigation estimator OR the 1-state terrain height estimator.",DisplayName:"Optical flow use bitmask",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Navigation",2:"Terrain"}},EK3_GBIAS_P_NSE:{Description:"This state process noise controls growth of the gyro delta angle bias state error estimate. Increasing it makes rate gyro bias estimation faster and noisier.",DisplayName:"Rate gyro bias stability (rad/s/s)",Range:{high:"0.001",low:"0.00001"},Units:"rad/s/s",User:"Advanced"},EK3_GLITCH_RAD:{Description:"This controls the maximum radial uncertainty in position between the value predicted by the filter and the value measured by the GPS before the filter position and velocity states are reset to the GPS. Making this value larger allows the filter to ignore larger GPS glitches but also means that non-GPS errors such as IMU and compass can create a larger error in position before the filter is forced back to the GPS position.",DisplayName:"GPS glitch radius gate size (m)",Increment:"5",Range:{high:"100",low:"10"},Units:"m",User:"Advanced"},EK3_GND_EFF_DZ:{Description:"This parameter sets the size of the dead zone that is applied to negative baro height spikes that can occur when taking off or landing when a vehicle with lift rotors is operating in ground effect ground effect. Set to about 0.5m less than the amount of negative offset in baro height that occurs just prior to takeoff when lift motors are spooling up. Set to 0 if no ground effect is present.",DisplayName:"Baro height ground effect dead zone",Increment:"0.5",Range:{high:"10.0",low:"0.0"},User:"Advanced"},EK3_GPS_CHECK:{Bitmask:{0:"NSats",1:"HDoP",2:"speed error",3:"position error",4:"yaw error",5:"pos drift",6:"vert speed",7:"horiz speed"},Description:"This is a 1 byte bitmap controlling which GPS preflight checks are performed. Set to 0 to bypass all checks. Set to 255 perform all checks. Set to 3 to check just the number of satellites and HDoP. Set to 31 for the most rigorous checks that will still allow checks to pass when the copter is moving, eg launch from a boat.",DisplayName:"GPS preflight check",User:"Advanced"},EK3_GPS_VACC_MAX:{Description:"Vertical accuracy threshold for GPS as the altitude source. The GPS will not be used as an altitude source if the reported vertical accuracy of the GPS is larger than this threshold, falling back to baro instead. Set to zero to deactivate the threshold check.",DisplayName:"GPS vertical accuracy threshold",Increment:"0.1",Range:{high:"10.0",low:"0.0"},Units:"m",User:"Advanced"},EK3_GSF_RST_MAX:{Description:"Sets the maximum number of times the EKF3 will be allowed to reset its yaw to the estimate from the EKF-GSF yaw estimator. No resets will be allowed unless the use of the EKF-GSF yaw estimate is enabled via the EK3_GSF_USE_MASK parameter.",DisplayName:"Maximum number of resets to the EKF-GSF yaw estimate allowed",Increment:"1",Range:{high:"10",low:"1"},RebootRequired:"True",User:"Advanced"},EK3_GSF_RUN_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of which EKF3 instances run an independant EKF-GSF yaw estimator to provide a backup yaw estimate that doesn't rely on magnetometer data. This estimator uses IMU, GPS and, if available, airspeed data. EKF-GSF yaw estimator data for the primary EKF3 instance will be logged as GSF0 and GSF1 messages. Use of the yaw estimate generated by this algorithm is controlled by the EK3_GSF_USE_MASK and EK3_GSF_RST_MAX parameters. To run the EKF-GSF yaw estimator in ride-along and logging only, set EK3_GSF_USE to 0. ",DisplayName:"Bitmask of which EKF-GSF yaw estimators run",RebootRequired:"True",User:"Advanced"},EK3_GSF_USE_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"A bitmask of which EKF3 instances will use the output from the EKF-GSF yaw estimator that has been turned on by the EK3_GSF_RUN_MASK parameter. If the inertial navigation calculation stops following the GPS, then the vehicle code can request EKF3 to attempt to resolve the issue, either by performing a yaw reset if enabled by this parameter by switching to another EKF3 instance.",DisplayName:"Bitmask of which EKF-GSF yaw estimators are used",RebootRequired:"True",User:"Advanced"},EK3_GYRO_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to gyro measurement errors excluding bias. Increasing it makes the flter trust the gyro measurements less and other measurements more.",DisplayName:"Rate gyro noise (rad/s)",Increment:"0.0001",Range:{high:"0.1",low:"0.0001"},Units:"rad/s",User:"Advanced"},EK3_HGT_DELAY:{Description:"This is the number of msec that the Height measurements lag behind the inertial measurements.",DisplayName:"Height measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_HGT_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the height measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Height measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_HRT_FILT:{Description:"Specifies the crossover frequency of the complementary filter used to calculate the output predictor height rate derivative.",DisplayName:"Height rate filter crossover frequency",Range:{high:"30.0",low:"0.1"},Units:"Hz"},EK3_IMU_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU"},Description:"1 byte bitmap of IMUs to use in EKF3. A separate instance of EKF3 will be started for each IMU selected. Set to 1 to use the first IMU only (default), set to 2 to use the second IMU only, set to 3 to use the first and second IMU. Additional IMU's can be used up to a maximum of 6 if memory and processing resources permit. There may be insufficient memory and processing resources to run multiple instances. If this occurs EKF3 will fail to start.",DisplayName:"Bitmask of active IMUs",RebootRequired:"True",User:"Advanced"},EK3_LOG_LEVEL:{Description:"Determines how verbose the EKF3 streaming logging is. A value of 0 provides full logging(default), a value of 1 only XKF4 scaled innovations are logged, a value of 2 both XKF4 and GSF are logged, and a value of 3 disables all streaming logging of EKF3.",DisplayName:"Logging Level",Increment:"1",Range:{high:"3",low:"0"},User:"Advanced"},EK3_MAGB_P_NSE:{Description:"This state process noise controls the growth of body magnetic field state error estimates. Increasing it makes magnetometer bias error estimation faster and noisier.",DisplayName:"Body magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK3_MAGE_P_NSE:{Description:"This state process noise controls the growth of earth magnetic field state error estimates. Increasing it makes earth magnetic field estimation faster and noisier.",DisplayName:"Earth magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK3_MAG_CAL:{Description:"This determines when the filter will use the 3-axis magnetometer fusion model that estimates both earth and body fixed magnetic field states and when it will use a simpler magnetic heading fusion model that does not use magnetic field states. The 3-axis magnetometer fusion is only suitable for use when the external magnetic field environment is stable. EK3_MAG_CAL = 0 uses heading fusion on ground, 3-axis fusion in-flight, and is the default setting for Plane users. EK3_MAG_CAL = 1 uses 3-axis fusion only when manoeuvring. EK3_MAG_CAL = 2 uses heading fusion at all times, is recommended if the external magnetic field is varying and is the default for rovers. EK3_MAG_CAL = 3 uses heading fusion on the ground and 3-axis fusion after the first in-air field and yaw reset has completed, and is the default for copters. EK3_MAG_CAL = 4 uses 3-axis fusion at all times. EK3_MAG_CAL = 5 uses an external yaw sensor with simple heading fusion. NOTE : Use of simple heading magnetometer fusion makes vehicle compass calibration and alignment errors harder for the EKF to detect which reduces the sensitivity of the Copter EKF failsafe algorithm. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK3_MAG_MASK parameter. EK3_MAG_CAL = 6 uses an external yaw sensor with fallback to compass when the external sensor is not available if we are flying. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK3_MAG_MASK parameter. NOTE: limited operation without a magnetometer or any other yaw sensor is possible by setting all COMPASS_USE, COMPASS_USE2, COMPASS_USE3, etc parameters to 0 and setting COMPASS_ENABLE to 0. If this is done, the EK3_GSF_RUN and EK3_GSF_USE masks must be set to the same as EK3_IMU_MASK. A yaw angle derived from IMU and GPS velocity data using a Gaussian Sum Filter (GSF) will then be used to align the yaw when flight commences and there is sufficient movement.",DisplayName:"Magnetometer default fusion mode",RebootRequired:"True",User:"Advanced",Values:{0:"When flying",1:"When manoeuvring",2:"Never",3:"After first climb yaw reset",4:"Always",5:"Use external yaw sensor (Deprecated in 4.1+ see EK3_SRCn_YAW)",6:"External yaw sensor with compass fallback (Deprecated in 4.1+ see EK3_SRCn_YAW)"}},EK3_MAG_EF_LIM:{Description:"This limits the difference between the learned earth magnetic field and the earth field from the world magnetic model tables. A value of zero means to disable the use of the WMM tables.",DisplayName:"EarthField error limit",Range:{high:"500",low:"0"},Units:"mGauss",User:"Advanced"},EK3_MAG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Magnetometer measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_MAG_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of EKF cores that will disable magnetic field states and use simple magnetic heading fusion at all times. This parameter enables specified cores to be used as a backup for flight into an environment with high levels of external magnetic interference which may degrade the EKF attitude estimate when using 3-axis magnetometer fusion. NOTE : Use of a different magnetometer fusion algorithm on different cores makes unwanted EKF core switches due to magnetometer errors more likely.",DisplayName:"Bitmask of active EKF cores that will always use heading fusion",RebootRequired:"True",User:"Advanced"},EK3_MAG_M_NSE:{Description:"This is the RMS value of noise in magnetometer measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Magnetometer measurement noise (Gauss)",Increment:"0.01",Range:{high:"0.5",low:"0.01"},Units:"Gauss",User:"Advanced"},EK3_MAX_FLOW:{Description:"This sets the magnitude maximum optical flow rate in rad/sec that will be accepted by the filter",DisplayName:"Maximum valid optical flow rate",Increment:"0.1",Range:{high:"4.0",low:"1.0"},Units:"rad/s",User:"Advanced"},EK3_NOAID_M_NSE:{Description:"This sets the amount of position variation that the EKF allows for when operating without external measurements (eg GPS or optical flow). Increasing this parameter makes the EKF attitude estimate less sensitive to vehicle manoeuvres but more sensitive to IMU errors.",DisplayName:"Non-GPS operation position uncertainty (m)",Range:{high:"50.0",low:"0.5"},Units:"m",User:"Advanced"},EK3_OGNM_TEST_SF:{Description:"This parameter is adjust the sensitivity of the on ground not moving test which is used to assist with learning the yaw gyro bias and stopping yaw drift before flight when operating without a yaw sensor. Bigger values allow the detection of a not moving condition with noiser IMU data. Check the XKFM data logged when the vehicle is on ground not moving and adjust the value of OGNM_TEST_SF to be slightly higher than the maximum value of the XKFM.ADR, XKFM.ALR, XKFM.GDR and XKFM.GLR test levels.",DisplayName:"On ground not moving test scale factor",Increment:"0.5",Range:{high:"10.0",low:"1.0"},User:"Advanced"},EK3_OGN_HGT_MASK:{Bitmask:{0:"Correct when using Baro height",1:"Correct when using range finder height",2:"Apply corrections to local position"},Description:"When a height sensor other than GPS is used as the primary height source by the EKF, the position of the zero height datum is defined by that sensor and its frame of reference. If a GPS height measurement is also available, then the height of the WGS-84 height datum used by the EKF can be corrected so that the height returned by the getLLH() function is compensated for primary height sensor drift and change in datum over time. The first two bit positions control when the height datum will be corrected. Correction is performed using a Bayes filter and only operates when GPS quality permits. The third bit position controls where the corrections to the GPS reference datum are applied. Corrections can be applied to the local vertical position or to the reported EKF origin height (default).",DisplayName:"Bitmask control of EKF reference height correction",RebootRequired:"True",User:"Advanced"},EK3_POSNE_M_NSE:{Description:"This sets the GPS horizontal position observation noise. Increasing it reduces the weighting of GPS horizontal position measurements.",DisplayName:"GPS horizontal position measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_POS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS position measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS position measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_PRIMARY:{Description:"The core number (index in IMU mask) that will be used as the primary EKF core on startup. While disarmed the EKF will force the use of this core. A value of 0 corresponds to the first IMU in EK3_IMU_MASK.",DisplayName:"Primary core number",Increment:"1",Range:{high:"2",low:"0"},User:"Advanced"},EK3_RNG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the range finder innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range finder measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_RNG_M_NSE:{Description:"This is the RMS value of noise in the range finder measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range finder measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_RNG_USE_HGT:{Description:"Range finder can be used as the primary height source when below this percentage of its maximum range (see RNGFNDx_MAX_CM) and the primary height source is Baro or GPS (see EK3_SRCx_POSZ). This feature should not be used for terrain following as it is designed for vertical takeoff and landing with climb above the range finder use height before commencing the mission, and with horizontal position changes below that height being limited to a flat region around the takeoff and landing point.",DisplayName:"Range finder switch height percentage",Increment:"1",Range:{high:"70",low:"-1"},Units:"%",User:"Advanced"},EK3_RNG_USE_SPD:{Description:"The range finder will not be used as the primary height source when the horizontal ground speed is greater than this value.",DisplayName:"Range finder max ground speed",Increment:"0.5",Range:{high:"6.0",low:"2.0"},Units:"m/s",User:"Advanced"},EK3_TAU_OUTPUT:{Description:"Sets the time constant of the output complementary filter/predictor in centi-seconds.",DisplayName:"Output complementary filter time constant (centi-sec)",Increment:"5",Range:{high:"50",low:"10"},Units:"cs",User:"Advanced"},EK3_TERR_GRAD:{Description:"Specifies the maximum gradient of the terrain below the vehicle when it is using range finder as a height reference",DisplayName:"Maximum terrain gradient",Increment:"0.01",Range:{high:"0.2",low:"0"},User:"Advanced"},EK3_VELD_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set vertical velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS vertical velocity measurements.",DisplayName:"GPS vertical velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_VELNE_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set horizontal velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS horizontal velocity measurements.",DisplayName:"GPS horizontal velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_VEL_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS velocity measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS velocity innovation gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_VIS_VERR_MAX:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when minimum quality is reported by the sensor. When quality is between max and min, the error will be calculated using linear interpolation between VIS_VERR_MIN and VIS_VERR_MAX.",DisplayName:"Visual odometry maximum velocity error",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK3_VIS_VERR_MIN:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when maximum quality is reported by the sensor. When quality is between max and min, the error will be calculated using linear interpolation between VIS_VERR_MIN and VIS_VERR_MAX.",DisplayName:"Visual odometry minimum velocity error",Increment:"0.05",Range:{high:"0.5",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_WENC_VERR:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when wheel encoder data is being fused.",DisplayName:"Wheel odometry velocity error",Increment:"0.1",Range:{high:"1.0",low:"0.01"},Units:"m/s",User:"Advanced"},EK3_WIND_PSCALE:{Description:"This controls how much the process noise on the wind states is increased when gaining or losing altitude to take into account changes in wind speed and direction with altitude. Increasing this parameter increases how rapidly the wind states adapt when changing altitude, but does make wind velocity estimation noiser.",DisplayName:"Height rate to wind process noise scaler",Increment:"0.1",Range:{high:"2.0",low:"0.0"},User:"Advanced"},EK3_WIND_P_NSE:{Description:"This state process noise controls the growth of wind state error estimates. Increasing it makes wind estimation faster and noisier.",DisplayName:"Wind velocity process noise (m/s^2)",Increment:"0.1",Range:{high:"2.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK3_YAW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer yaw measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Yaw measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_YAW_M_NSE:{Description:"This is the RMS value of noise in yaw measurements from the magnetometer. Increasing it reduces the weighting on these measurements.",DisplayName:"Yaw measurement noise (rad)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},nz={EK3_SRC1_POSXY:{Description:"Position Horizontal Source (Primary)",DisplayName:"Position Horizontal Source (Primary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_POSZ:{Description:"Position Vertical Source",DisplayName:"Position Vertical Source",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_VELXY:{Description:"Velocity Horizontal Source",DisplayName:"Velocity Horizontal Source",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC1_VELZ:{Description:"Velocity Vertical Source",DisplayName:"Velocity Vertical Source",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_YAW:{Description:"Yaw Source",DisplayName:"Yaw Source",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC2_POSXY:{Description:"Position Horizontal Source (Secondary)",DisplayName:"Position Horizontal Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_POSZ:{Description:"Position Vertical Source (Secondary)",DisplayName:"Position Vertical Source (Secondary)",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_VELXY:{Description:"Velocity Horizontal Source (Secondary)",DisplayName:"Velocity Horizontal Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC2_VELZ:{Description:"Velocity Vertical Source (Secondary)",DisplayName:"Velocity Vertical Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_YAW:{Description:"Yaw Source (Secondary)",DisplayName:"Yaw Source (Secondary)",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC3_POSXY:{Description:"Position Horizontal Source (Tertiary)",DisplayName:"Position Horizontal Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_POSZ:{Description:"Position Vertical Source (Tertiary)",DisplayName:"Position Vertical Source (Tertiary)",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_VELXY:{Description:"Velocity Horizontal Source (Tertiary)",DisplayName:"Velocity Horizontal Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC3_VELZ:{Description:"Velocity Vertical Source (Tertiary)",DisplayName:"Velocity Vertical Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_YAW:{Description:"Yaw Source (Tertiary)",DisplayName:"Yaw Source (Tertiary)",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC_OPTIONS:{Bitmask:{0:"FuseAllVelocities"},Description:"EKF Source Options",DisplayName:"EKF Source Options",User:"Advanced"}},oz={ESC_TLM_MAV_OFS:{Description:"Offset to apply to ESC numbers when reporting as ESC_TELEMETRY packets over MAVLink. This allows high numbered motors to be displayed as low numbered ESCs for convenience on GCS displays. A value of 4 would send ESC on output 5 as ESC number 1 in ESC_TELEMETRY packets",DisplayName:"ESC Telemetry mavlink offset",Increment:"1",Range:{high:"31",low:"0"},User:"Standard"}},sz={FENCE_ACTION:{Description:"What action should be taken when fence is breached",DisplayName:"Fence Action",User:"Standard",Values:{0:"Report Only",1:"RTL or Land",2:"Always Land",3:"SmartRTL or RTL or Land",4:"Brake or Land",5:"SmartRTL or Land"}},FENCE_ALT_MAX:{Description:"Maximum altitude allowed before geofence triggers",DisplayName:"Fence Maximum Altitude",Increment:"1",Range:{high:"1000",low:"10"},Units:"m",User:"Standard"},FENCE_ALT_MIN:{Description:"Minimum altitude allowed before geofence triggers",DisplayName:"Fence Minimum Altitude",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FENCE_ENABLE:{Description:"Allows you to enable (1) or disable (0) the fence functionality",DisplayName:"Fence enable/disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},FENCE_MARGIN:{Description:"Distance that autopilot's should maintain from the fence to avoid a breach",DisplayName:"Fence Margin",Range:{high:"10",low:"1"},Units:"m",User:"Standard"},FENCE_RADIUS:{Description:"Circle fence radius which when breached will cause an RTL",DisplayName:"Circular Fence Radius",Range:{high:"10000",low:"30"},Units:"m",User:"Standard"},FENCE_TOTAL:{Description:"Number of polygon points saved in eeprom (do not update manually)",DisplayName:"Fence polygon point total",Range:{high:"20",low:"1"},User:"Standard"},FENCE_TYPE:{Bitmask:{0:"Max altitude",1:"Circle",2:"Polygon",3:"Min altitude"},Description:"Enabled fence types held as bitmask",DisplayName:"Fence Type",User:"Standard"}},lz={FFT_ATT_REF:{Description:"FFT attenuation level in dB for bandwidth calculation and peak detection. The bandwidth is calculated by comparing peak power output with the attenuated version. The default of 15 has shown to be a good compromise in both simulations and real flight.",DisplayName:"FFT attenuation for bandwidth calculation",Range:{high:"100",low:"0"},User:"Advanced"},FFT_BW_HOVER:{Description:"FFT learned bandwidth at hover for the attenuation frequencies.",DisplayName:"FFT learned bandwidth at hover",Range:{high:"200",low:"0"},User:"Advanced"},FFT_ENABLE:{Description:"Enable Gyro FFT analyser",DisplayName:"Enable",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},FFT_FREQ_HOVER:{Description:"The learned hover noise frequency",DisplayName:"FFT learned hover frequency",Range:{high:"250",low:"0"},User:"Advanced"},FFT_HMNC_FIT:{Description:"FFT harmonic fit frequency threshold percentage at which a signal of the appropriate frequency is determined to be the harmonic of another. Signals that have a harmonic relationship that varies at most by this percentage are considered harmonics of each other for the purpose of selecting the harmonic notch frequency. If a match is found then the lower frequency harmonic is always used as the basis for the dynamic harmonic notch. A value of zero completely disables harmonic matching.",DisplayName:"FFT harmonic fit frequency threshold",Range:{high:"100",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_HMNC_PEAK:{Description:"The FFT harmonic peak target that should be returned by FTN1.PkAvg. The resulting value will be used by the harmonic notch if configured to track the FFT frequency. By default the appropriate peak is auto-detected based on the harmonic fit between peaks and the energy-weighted average frequency on roll on pitch is used. Setting this to 1 will always target the highest energy peak. Setting this to 2 will target the highest energy peak that is lower in frequency than the highest energy peak. Setting this to 3 will target the highest energy peak that is higher in frequency than the highest energy peak. Setting this to 4 will target the highest energy peak on the roll axis only and only the roll frequency will be used (some vehicles have a much more pronounced peak on roll). Setting this to 5 will target the highest energy peak on the pitch axis only and only the pitch frequency will be used (some vehicles have a much more pronounced peak on roll).",DisplayName:"FFT harmonic peak target",User:"Advanced",Values:{0:"Auto",1:"Center Frequency",2:"Lower-Shoulder Frequency",3:"Upper-Shoulder Frequency",4:"Roll-Axis",5:"Pitch-Axis"}},FFT_MAXHZ:{Description:"Upper bound of FFT frequency detection in Hz. On smaller vehicles the maximum motor frequency is likely to be significantly higher than for larger vehicles.",DisplayName:"Maximum Frequency",Range:{high:"495",low:"20"},Units:"Hz",User:"Advanced"},FFT_MINHZ:{Description:"Lower bound of FFT frequency detection in Hz. On larger vehicles the minimum motor frequency is likely to be significantly lower than for smaller vehicles.",DisplayName:"Minimum Frequency",Range:{high:"400",low:"20"},Units:"Hz",User:"Advanced"},FFT_NUM_FRAMES:{Description:"Number of output frequency frames to retain and average in order to calculate final frequencies. Averaging output frames can drastically reduce noise and jitter at the cost of latency as long as the input is stable. The default is to perform no averaging. For rapidly changing frequencies (e.g. smaller aircraft) fewer frames should be averaged.",DisplayName:"FFT output frames to retain and average",Range:{high:"8",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_SAMPLE_MODE:{Description:"Sampling mode (and therefore rate). 0: Gyro rate sampling, 1: Fast loop rate sampling, 2: Fast loop rate / 2 sampling, 3: Fast loop rate / 3 sampling. Takes effect on reboot.",DisplayName:"Sample Mode",Range:{high:"4",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_SNR_REF:{Description:"FFT SNR reference threshold in dB at which a signal is determined to be present.",DisplayName:"FFT SNR reference threshold",Range:{high:"100.0",low:"0.0"},User:"Advanced"},FFT_THR_REF:{Description:"FFT learned thrust reference for the hover frequency and FFT minimum frequency.",DisplayName:"FFT learned thrust reference",Range:{high:"0.9",low:"0.01"},User:"Advanced"},FFT_WINDOW_OLAP:{Description:"Percentage of window to be overlapped before another frame is process. Takes effect on reboot. A good default is 50% overlap. Higher overlap results in more processed frames but not necessarily more temporal resolution. Lower overlap results in lost information at the frame edges.",DisplayName:"FFT window overlap",Range:{high:"0.9",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_WINDOW_SIZE:{Description:"Size of window to be used in FFT calculations. Takes effect on reboot. Must be a power of 2 and between 32 and 512. Larger windows give greater frequency resolution but poorer time resolution, consume more CPU time and may not be appropriate for all vehicles. Time and frequency resolution are given by the sample-rate / window-size. Windows of 256 are only really recommended for F7 class boards, windows of 512 or more H7 class.",DisplayName:"FFT window size",Range:{high:"1024",low:"32"},RebootRequired:"True",User:"Advanced"}},cz={FHLD_BRAKE_RATE:{Description:"Controls deceleration rate on stick release",DisplayName:"FlowHold Braking rate",Range:{high:"30",low:"1"},Units:"deg/s",User:"Standard"},FHLD_FILT_HZ:{Description:"Filter frequency for flow data",DisplayName:"FlowHold Filter Frequency",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},FHLD_FLOW_MAX:{Description:"Controls maximum apparent flow rate in flowhold",DisplayName:"FlowHold Flow Rate Max",Range:{high:"2.5",low:"0.1"},User:"Standard"},FHLD_QUAL_MIN:{Description:"Minimum flow quality to use flow position hold",DisplayName:"FlowHold Flow quality minimum",Range:{high:"255",low:"0"},User:"Standard"},FHLD_XY_FILT_HZ:{Description:"FlowHold (horizontal) filter on input to control",DisplayName:"FlowHold filter on input to control",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},FHLD_XY_I:{Description:"FlowHold (horizontal) I gain",DisplayName:"FlowHold I gain",Increment:"0.01",Range:{high:"1.00",low:"0.02"},User:"Advanced"},FHLD_XY_IMAX:{Description:"FlowHold (horizontal) integrator maximum",DisplayName:"FlowHold Integrator Max",Increment:"10",Range:{high:"4500",low:"0"},Units:"cdeg",User:"Advanced"},FHLD_XY_P:{Description:"FlowHold (horizontal) P gain.",DisplayName:"FlowHold P gain",Increment:"0.1",Range:{high:"6.0",low:"0.1"},User:"Advanced"}},dz={FLOW_ADDR:{Description:"This is used to select between multiple possible I2C addresses for some sensor types. For PX4Flow you can choose 0 to 7 for the 8 possible addresses on the I2C bus.",DisplayName:"Address on the bus",Range:{high:"127",low:"0"},User:"Advanced"},FLOW_FXSCALER:{Description:"This sets the parts per thousand scale factor correction applied to the flow sensor X axis optical rate. It can be used to correct for variations in effective focal length. Each positive increment of 1 increases the scale factor applied to the X axis optical flow reading by 0.1%. Negative values reduce the scale factor.",DisplayName:"X axis optical flow scale factor correction",Increment:"1",Range:{high:"+200",low:"-200"},User:"Standard"},FLOW_FYSCALER:{Description:"This sets the parts per thousand scale factor correction applied to the flow sensor Y axis optical rate. It can be used to correct for variations in effective focal length. Each positive increment of 1 increases the scale factor applied to the Y axis optical flow reading by 0.1%. Negative values reduce the scale factor.",DisplayName:"Y axis optical flow scale factor correction",Increment:"1",Range:{high:"+200",low:"-200"},User:"Standard"},FLOW_ORIENT_YAW:{Description:"Specifies the number of centi-degrees that the flow sensor is yawed relative to the vehicle. A sensor with its X-axis pointing to the right of the vehicle X axis has a positive yaw angle.",DisplayName:"Flow sensor yaw alignment",Increment:"10",Range:{high:"+18000",low:"-17999"},Units:"cdeg",User:"Standard"},FLOW_POS_X:{Description:"X position of the optical flow sensor focal point in body frame. Positive X is forward of the origin.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},FLOW_POS_Y:{Description:"Y position of the optical flow sensor focal point in body frame. Positive Y is to the right of the origin.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},FLOW_POS_Z:{Description:"Z position of the optical flow sensor focal point in body frame. Positive Z is down from the origin.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},FLOW_TYPE:{Description:"Optical flow sensor type",DisplayName:"Optical flow sensor type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"PX4Flow",2:"Pixart",3:"Bebop",4:"CXOF",5:"MAVLink",6:"DroneCAN",7:"MSP",8:"UPFLOW"}}},Cz={FOLL_ALT_TYPE:{Description:"Follow altitude type",DisplayName:"Follow altitude type",User:"Standard",Values:{0:"absolute",1:"relative"}},FOLL_DIST_MAX:{Description:"Follow distance maximum. targets further than this will be ignored",DisplayName:"Follow distance maximum",Range:{high:"1000",low:"1"},Units:"m",User:"Standard"},FOLL_ENABLE:{Description:"Enabled/disable following a target",DisplayName:"Follow enable/disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},FOLL_OFS_TYPE:{Description:"Follow offset type",DisplayName:"Follow offset type",User:"Standard",Values:{0:"North-East-Down",1:"Relative to lead vehicle heading"}},FOLL_OFS_X:{Description:"Follow offsets in meters north/forward. If positive, this vehicle fly ahead or north of lead vehicle. Depends on FOLL_OFS_TYPE",DisplayName:"Follow offsets in meters north/forward",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FOLL_OFS_Y:{Description:"Follow offsets in meters east/right. If positive, this vehicle will fly to the right or east of lead vehicle. Depends on FOLL_OFS_TYPE",DisplayName:"Follow offsets in meters east/right",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FOLL_OFS_Z:{Description:"Follow offsets in meters down. If positive, this vehicle will fly below the lead vehicle",DisplayName:"Follow offsets in meters down",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FOLL_POS_P:{Description:"Follow position error P gain. Converts the difference between desired vertical speed and actual speed into a desired acceleration that is passed to the throttle acceleration controller",DisplayName:"Follow position error P gain",Increment:"0.01",Range:{high:"1.00",low:"0.01"},User:"Standard"},FOLL_SYSID:{Description:"Follow target's mavlink system id",DisplayName:"Follow target's mavlink system id",Range:{high:"255",low:"0"},User:"Standard"},FOLL_YAW_BEHAVE:{Description:"Follow yaw behaviour",DisplayName:"Follow yaw behaviour",User:"Standard",Values:{0:"None",1:"Face Lead Vehicle",2:"Same as Lead vehicle",3:"Direction of Flight"}}},mz={FRSKY_DNLINK1_ID:{Description:"Change the first extra downlink sensor id (SPort only)",DisplayName:"First downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}},FRSKY_DNLINK2_ID:{Description:"Change the second extra downlink sensor id (SPort only)",DisplayName:"Second downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}},FRSKY_DNLINK_ID:{Description:"Change the default downlink sensor id (SPort only)",DisplayName:"Default downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26",27:"27","-1":"Disable"}},FRSKY_OPTIONS:{Bitmask:{0:"EnableAirspeedAndGroundspeed"},Description:"A bitmask to set some FRSky Telemetry specific options",DisplayName:"FRSky Telemetry Options",User:"Standard"},FRSKY_UPLINK_ID:{Description:"Change the uplink sensor id (SPort only)",DisplayName:"Uplink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}}},uz={GEN_OPTIONS:{Bitmask:{0:"Supress Maintenance-Required Warnings"},Description:"Bitmask of options for generators",DisplayName:"Generator Options",User:"Standard"},GEN_TYPE:{Description:"Generator type",DisplayName:"Generator type",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"IE 650w 800w Fuel Cell",2:"IE 2.4kW Fuel Cell",3:"Richenpower"}}},hz={GPS1_CAN_OVRIDE:{Description:"GPS Node id for first GPS. If 0 the gps will be automatically selected on a first-come-first-GPS basis.",DisplayName:"First DroneCAN GPS NODE ID",User:"Advanced"},GPS2_CAN_OVRIDE:{Description:"GPS Node id for second GPS. If 0 the gps will be automatically selected on a second-come-second-GPS basis.",DisplayName:"Second DroneCAN GPS NODE ID",User:"Advanced"},GPS_AUTO_CONFIG:{Description:"Controls if the autopilot should automatically configure the GPS based on the parameters and default settings",DisplayName:"Automatic GPS configuration",User:"Advanced",Values:{0:"Disables automatic configuration",1:"Enable automatic configuration for Serial GPSes only",2:"Enable automatic configuration for DroneCAN as well"}},GPS_AUTO_SWITCH:{Description:"Automatic switchover to GPS reporting best lock, 1:UseBest selects the GPS with highest status, if both are equal the GPS with highest satellite count is used 4:Use primary if 3D fix or better, will revert to 'UseBest' behaviour if 3D fix is lost on primary",DisplayName:"Automatic Switchover Setting",User:"Advanced",Values:{0:"Use primary",1:"UseBest",2:"Blend",4:"Use primary if 3D fix or better"}},GPS_BLEND_MASK:{Bitmask:{0:"Horiz Pos",1:"Vert Pos",2:"Speed"},Description:"Determines which of the accuracy measures Horizontal position, Vertical Position and Speed are used to calculate the weighting on each GPS receiver when soft switching has been selected by setting GPS_AUTO_SWITCH to 2(Blend)",DisplayName:"Multi GPS Blending Mask",User:"Advanced"},GPS_BLEND_TC:{Description:"Controls the slowest time constant applied to the calculation of GPS position and height offsets used to adjust different GPS receivers for steady state position differences.",DisplayName:"Blending time constant",Range:{high:"30.0",low:"5.0"},Units:"s",User:"Advanced"},GPS_CAN_NODEID1:{Description:"GPS Node id for first-discovered GPS.",DisplayName:"GPS Node ID 1",ReadOnly:"True",User:"Advanced"},GPS_CAN_NODEID2:{Description:"GPS Node id for second-discovered GPS.",DisplayName:"GPS Node ID 2",ReadOnly:"True",User:"Advanced"},GPS_COM_PORT:{Description:"The physical COM port on the connected device, currently only applies to SBF GPS",DisplayName:"GPS physical COM port",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},GPS_COM_PORT2:{Description:"The physical COM port on the connected device, currently only applies to SBF GPS",DisplayName:"GPS physical COM port",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},GPS_DELAY_MS:{Description:"Controls the amount of GPS measurement delay that the autopilot compensates for. Set to zero to use the default delay for the detected GPS type.",DisplayName:"GPS delay in milliseconds",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},GPS_DELAY_MS2:{Description:"Controls the amount of GPS measurement delay that the autopilot compensates for. Set to zero to use the default delay for the detected GPS type.",DisplayName:"GPS 2 delay in milliseconds",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},GPS_DRV_OPTIONS:{Bitmask:{0:"Use UART2 for moving baseline on ublox",1:"Use base station for GPS yaw on SBF",2:"Use baudrate 115200",3:"Use dedicated CAN port b/w GPSes for moving baseline",4:"Use ellipsoid height instead of AMSL for uBlox driver"},Description:"Additional backend specific options",DisplayName:"driver options",User:"Advanced"},GPS_GNSS_MODE:{Bitmask:{0:"GPS",1:"SBAS",2:"Galileo",3:"Beidou",4:"IMES",5:"QZSS",6:"GLONASS"},Description:"Bitmask for what GNSS system to use on the first GPS (all unchecked or zero to leave GPS as configured)",DisplayName:"GNSS system configuration",User:"Advanced"},GPS_GNSS_MODE2:{Bitmask:{0:"GPS",1:"SBAS",2:"Galileo",3:"Beidou",4:"IMES",5:"QZSS",6:"GLONASS"},Description:"Bitmask for what GNSS system to use on the second GPS (all unchecked or zero to leave GPS as configured)",DisplayName:"GNSS system configuration",User:"Advanced"},GPS_INJECT_TO:{Description:"The GGS can send raw serial packets to inject data to multiple GPSes.",DisplayName:"Destination for GPS_INJECT_DATA MAVLink packets",User:"Advanced",Values:{0:"send to first GPS",1:"send to 2nd GPS",127:"send to all"}},GPS_MIN_DGPS:{Description:"Sets the minimum type of differential GPS corrections required before allowing to switch into DGPS mode.",DisplayName:"Minimum Lock Type Accepted for DGPS",RebootRequired:"True",User:"Advanced",Values:{0:"Any",50:"FloatRTK",100:"IntegerRTK"}},GPS_MIN_ELEV:{Description:"This sets the minimum elevation of satellites above the horizon for them to be used for navigation. Setting this to -100 leaves the minimum elevation set to the GPS modules default.",DisplayName:"Minimum elevation",Range:{high:"90",low:"-100"},Units:"deg",User:"Advanced"},GPS_NAVFILTER:{Description:"Navigation filter engine setting",DisplayName:"Navigation filter setting",User:"Advanced",Values:{0:"Portable",2:"Stationary",3:"Pedestrian",4:"Automotive",5:"Sea",6:"Airborne1G",7:"Airborne2G",8:"Airborne4G"}},GPS_POS1_X:{Description:"X position of the first GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS1_Y:{Description:"Y position of the first GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS1_Z:{Description:"Z position of the first GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_X:{Description:"X position of the second GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_Y:{Description:"Y position of the second GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_Z:{Description:"Z position of the second GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_PRIMARY:{Description:"This GPS will be used when GPS_AUTO_SWITCH is 0 and used preferentially with GPS_AUTO_SWITCH = 4.",DisplayName:"Primary GPS",Increment:"1",User:"Advanced",Values:{0:"FirstGPS",1:"SecondGPS"}},GPS_RATE_MS:{Description:"Controls how often the GPS should provide a position update. Lowering below 5Hz(default) is not allowed. Raising the rate above 5Hz usually provides little benefit and for some GPS (eg Ublox M9N) can severely impact performance.",DisplayName:"GPS update rate in milliseconds",Range:{high:"200",low:"50"},Units:"ms",User:"Advanced",Values:{100:"10Hz",125:"8Hz",200:"5Hz"}},GPS_RATE_MS2:{Description:"Controls how often the GPS should provide a position update. Lowering below 5Hz(default) is not allowed. Raising the rate above 5Hz usually provides little benefit and for some GPS (eg Ublox M9N) can severely impact performance.",DisplayName:"GPS 2 update rate in milliseconds",Range:{high:"200",low:"50"},Units:"ms",User:"Advanced",Values:{100:"10Hz",125:"8Hz",200:"5Hz"}},GPS_RAW_DATA:{Description:"Handles logging raw data; on uBlox chips that support raw data this will log RXM messages into logger; on Septentrio this will log on the equipment's SD card and when set to 2, the autopilot will try to stop logging after disarming and restart after arming",DisplayName:"Raw data logging",RebootRequired:"True",User:"Advanced",Values:{0:"Ignore",1:"Always log",2:"Stop logging when disarmed (SBF only)",5:"Only log every five samples (uBlox only)"}},GPS_SAVE_CFG:{Description:"Determines whether the configuration for this GPS should be written to non-volatile memory on the GPS. Currently working for UBlox 6 series and above.",DisplayName:"Save GPS configuration",User:"Advanced",Values:{0:"Do not save config",1:"Save config",2:"Save only when needed"}},GPS_SBAS_MODE:{Description:"This sets the SBAS (satellite based augmentation system) mode if available on this GPS. If set to 2 then the SBAS mode is not changed in the GPS. Otherwise the GPS will be reconfigured to enable/disable SBAS. Disabling SBAS may be worthwhile in some parts of the world where an SBAS signal is available but the baseline is too long to be useful.",DisplayName:"SBAS Mode",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"NoChange"}},GPS_SBP_LOGMASK:{Description:"Masked with the SBP msg_type field to determine whether SBR1/SBR2 data is logged",DisplayName:"Swift Binary Protocol Logging Mask",User:"Advanced",Values:{0:"None (0x0000)","-1":"All (0xFFFF)","-256":"External only (0xFF00)"}},GPS_TYPE:{Description:"GPS type of 1st GPS",DisplayName:"1st GPS type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"AUTO",2:"uBlox",5:"NMEA",6:"SiRF",7:"HIL",8:"SwiftNav",9:"DroneCAN",10:"SBF",11:"GSOF",13:"ERB",14:"MAV",15:"NOVA",16:"HemisphereNMEA",17:"uBlox-MovingBaseline-Base",18:"uBlox-MovingBaseline-Rover",19:"MSP",20:"AllyStar",21:"ExternalAHRS",22:"DroneCAN-MovingBaseline-Base",23:"DroneCAN-MovingBaseline-Rover"}},GPS_TYPE2:{Description:"GPS type of 2nd GPS",DisplayName:"2nd GPS type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"AUTO",2:"uBlox",5:"NMEA",6:"SiRF",7:"HIL",8:"SwiftNav",9:"DroneCAN",10:"SBF",11:"GSOF",13:"ERB",14:"MAV",15:"NOVA",16:"HemisphereNMEA",17:"uBlox-MovingBaseline-Base",18:"uBlox-MovingBaseline-Rover",19:"MSP",20:"AllyStar",21:"ExternalAHRS",22:"DroneCAN-MovingBaseline-Base",23:"DroneCAN-MovingBaseline-Rover"}}},pz={GPS_MB1_OFS_X:{Description:"X position of the base GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_OFS_Y:{Description:"Y position of the base GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Y position offset ",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_OFS_Z:{Description:"Z position of the base GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_TYPE:{Description:"Controls the type of moving base used if using moving base.",DisplayName:"Moving base type",RebootRequired:"True",User:"Advanced",Values:{0:"Relative to alternate GPS instance",1:"RelativeToCustomBase"}}},fz={GPS_MB2_OFS_X:{Description:"X position of the base GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_OFS_Y:{Description:"Y position of the base GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Y position offset ",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_OFS_Z:{Description:"Z position of the base GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_TYPE:{Description:"Controls the type of moving base used if using moving base.",DisplayName:"Moving base type",RebootRequired:"True",User:"Advanced",Values:{0:"Relative to alternate GPS instance",1:"RelativeToCustomBase"}}},Vz={GRIP_AUTOCLOSE:{Description:"Time in seconds that gripper close the gripper after opening; 0 to disable",DisplayName:"Gripper Autoclose time",Range:{high:"255",low:"0.25"},Units:"s",User:"Advanced"},GRIP_CAN_ID:{Description:"Refer to https://docs.zubax.com/opengrab_epm_v3#UAVCAN_interface",DisplayName:"EPM UAVCAN Hardpoint ID",Range:{high:"255",low:"0"},User:"Standard"},GRIP_ENABLE:{Description:"Gripper enable/disable",DisplayName:"Gripper Enable/Disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},GRIP_GRAB:{Description:"PWM value in microseconds sent to Gripper to initiate grabbing the cargo",DisplayName:"Gripper Grab PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_NEUTRAL:{Description:"PWM value in microseconds sent to grabber when not grabbing or releasing",DisplayName:"Neutral PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_REGRAB:{Description:"Time in seconds that EPM gripper will regrab the cargo to ensure grip has not weakened; 0 to disable",DisplayName:"EPM Gripper Regrab interval",Range:{high:"255",low:"0"},Units:"s",User:"Advanced"},GRIP_RELEASE:{Description:"PWM value in microseconds sent to Gripper to release the cargo",DisplayName:"Gripper Release PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_TYPE:{Description:"Gripper enable/disable",DisplayName:"Gripper Type",User:"Standard",Values:{0:"None",1:"Servo",2:"EPM"}}},Lz={H_COL2_MAX:{Description:"Highest possible servo position in PWM microseconds for swashplate 2",DisplayName:"Swash 2 Maximum Collective Pitch",Increment:"1",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},H_COL2_MIN:{Description:"Lowest possible servo position in PWM microseconds for swashplate 2",DisplayName:"Swash 2 Minimum Collective Pitch",Increment:"1",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},H_COLYAW:{Description:"Feed-forward compensation to automatically add rudder input when collective pitch is increased. Can be positive or negative depending on mechanics.",DisplayName:"Collective-Yaw Mixing",Increment:"0.1",Range:{high:"10",low:"-10"},User:"Standard"},H_COL_ANG_MAX:{Description:"Maximum collective blade pitch angle in deg that corresponds to the PWM set for maximum collective pitch (H_COL_MAX).",DisplayName:"Collective Blade Pitch Angle Maximum",Increment:"0.1",Range:{high:"20",low:"5"},Units:"deg",User:"Standard"},H_COL_ANG_MIN:{Description:"Minimum collective blade pitch angle in deg that corresponds to the PWM set for minimum collective pitch (H_COL_MIN).",DisplayName:"Collective Blade Pitch Angle Minimum",Increment:"0.1",Range:{high:"0",low:"-20"},Units:"deg",User:"Standard"},H_COL_HOVER:{Description:"Collective needed to hover expressed as a number from 0 to 1 where 0 is H_COL_MIN and 1 is H_COL_MAX",DisplayName:"Collective Hover Value",Range:{high:"0.8",low:"0.3"},User:"Advanced"},H_COL_LAND_MIN:{Description:"Minimum collective blade pitch angle when landed in degrees for non-manual collective modes (i.e. modes that use altitude hold).",DisplayName:"Collective Blade Pitch Minimum when Landed",Increment:"0.1",Range:{high:"0",low:"-5"},Units:"deg",User:"Standard"},H_COL_MAX:{Description:"Highest possible servo position in PWM microseconds for the swashplate",DisplayName:"Maximum Collective Pitch",Increment:"1",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},H_COL_MIN:{Description:"Lowest possible servo position in PWM microseconds for the swashplate",DisplayName:"Minimum Collective Pitch",Increment:"1",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},H_COL_ZERO_THRST:{Description:"Collective blade pitch angle at zero thrust in degrees. For symetric airfoil blades this value is zero deg. For chambered airfoil blades this value is typically negative.",DisplayName:"Collective Blade Pitch at Zero Thrust",Increment:"0.1",Range:{high:"0",low:"-5"},Units:"deg",User:"Standard"},H_CYC_MAX:{Description:"Maximum cyclic pitch angle of the swash plate. There are no units to this parameter. This should be adjusted to get the desired cyclic blade pitch for the pitch and roll axes. Typically this should be 6-7 deg (measured blade pitch angle difference between stick centered and stick max deflection.",DisplayName:"Maximum Cyclic Pitch Angle",Increment:"100",Range:{high:"4500",low:"0"},User:"Standard"},H_DCP_SCALER:{Description:"Scaling factor applied to the differential-collective-pitch",DisplayName:"Differential-Collective-Pitch Scaler",Range:{high:"1",low:"0"},User:"Standard"},H_DCP_TRIM:{Description:"Removes I term bias due to center of gravity offsets or discrepancies between rotors in swashplate setup. If DCP axis has I term bias while hovering in calm winds, use value of bias in DCP_TRIM to re-center I term.",DisplayName:"Differential Collective Pitch Trim",Increment:"0.01",Range:{high:"0.2",low:"-0.2"},User:"Standard"},H_DCP_YAW:{Description:"Feed-forward compensation to automatically add yaw input when differential collective pitch is applied. Disabled for intermeshing mode.",DisplayName:"Differential-Collective-Pitch Yaw Mixing",Increment:"0.1",Range:{high:"10",low:"-10"},User:"Standard"},H_DUAL_MODE:{Description:"Sets the dual mode of the heli, either as tandem or as transverse.",DisplayName:"Dual Mode",User:"Standard",Values:{0:"Longitudinal",1:"Transverse",2:"Intermeshing"}},H_FLYBAR_MODE:{Description:"Flybar present or not. Affects attitude controller used during ACRO flight mode",DisplayName:"Flybar Mode Selector",User:"Standard",Values:{0:"NoFlybar",1:"Flybar"}},H_GYR_GAIN:{Description:"PWM in microseconds sent to external gyro on ch7 when tail type is Servo w/ ExtGyro",DisplayName:"External Gyro Gain",Increment:"1",Range:{high:"1000",low:"0"},Units:"PWM",User:"Standard"},H_GYR_GAIN_ACRO:{Description:"PWM in microseconds sent to external gyro on ch7 when tail type is Servo w/ ExtGyro. A value of zero means to use H_GYR_GAIN",DisplayName:"ACRO External Gyro Gain",Increment:"1",Range:{high:"1000",low:"0"},Units:"PWM",User:"Standard"},H_HOVER_LEARN:{Description:"Enable/Disable automatic learning of hover collective",DisplayName:"Hover Value Learning",User:"Advanced",Values:{0:"Disabled",1:"Learn",2:"Learn and Save"}},H_OPTIONS:{Bitmask:{0:"Use Leaky I"},Description:"Bitmask of heli options. Bit 0 changes how the pitch, roll, and yaw axis integrator term is managed for low speed and takeoff/landing. In AC 4.0 and earlier, scheme uses a leaky integrator for ground speeds less than 5 m/s and won't let the steady state integrator build above ILMI. The integrator is allowed to build to the ILMI value when it is landed. The other integrator management scheme bases integrator limiting on takeoff and landing. Whenever the aircraft is landed the integrator is set to zero. When the aicraft is airborne, the integrator is only limited by IMAX. ",DisplayName:"Heli_Options",User:"Standard"},H_SV_MAN:{Description:"Manual servo override for swash set-up. Must be 0 (Disabled) for flight!",DisplayName:"Manual Servo Mode",User:"Standard",Values:{0:"Disabled",1:"Passthrough",2:"Max collective",3:"Zero thrust collective",4:"Min collective"}},H_SV_TEST:{Description:"Number of cycles to run servo test on boot-up",DisplayName:"Boot-up Servo Test Cycles",Increment:"1",Range:{high:"10",low:"0"},User:"Standard"},H_SW2_COL_DIR:{Description:"Direction collective moves for positive pitch. 0 for Normal, 1 for Reversed",DisplayName:"Swash 2 Collective Direction",User:"Standard",Values:{0:"Normal",1:"Reversed"}},H_SW2_H3_ENABLE:{Description:"Automatically set when H3 generic swash type is selected for swashplate 2. Do not set manually.",DisplayName:"Swash 2 H3 Generic Enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},H_SW2_H3_PHANG:{Description:"Only for H3 swashplate. If pitching the swash forward induces a roll, this can be correct the problem",DisplayName:"Swash 2 H3 Generic Phase Angle Comp",Increment:"1",Range:{high:"30",low:"-30"},Units:"deg",User:"Advanced"},H_SW2_H3_SV1_POS:{Description:"Azimuth position on swashplate for servo 1 with the front of the heli being 0 deg",DisplayName:"Swash 2 H3 Generic Servo 1 Position",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},H_SW2_H3_SV2_POS:{Description:"Azimuth position on swashplate 2 for servo 2 with the front of the heli being 0 deg",DisplayName:"Swash 2 H3 Generic Servo 2 Position",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},H_SW2_H3_SV3_POS:{Description:"Azimuth position on swashplate 2 for servo 3 with the front of the heli being 0 deg",DisplayName:"Swash 2 H3 Generic Servo 3 Position",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},H_SW2_LIN_SVO:{Description:"This linearizes the swashplate 2 servo's mechanical output to account for nonlinear output due to arm rotation. This requires a specific setup procedure to work properly. The servo arm must be centered on the mechanical throw at the servo trim position and the servo trim position kept as close to 1500 as possible. Leveling the swashplate can only be done through the pitch links. See the ardupilot wiki for more details on setup.",DisplayName:"Linearize Swash 2 Servos",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},H_SW2_TYPE:{Description:"H3 is generic, three-servo only. H3_120/H3_140 plates have Motor1 left side, Motor2 right side, Motor3 elevator in rear. HR3_120/HR3_140 have Motor1 right side, Motor2 left side, Motor3 elevator in front - use H3_120/H3_140 and reverse servo and collective directions as necessary. For all H3_90 swashplates use H4_90 and don't use servo output for the missing servo. For H4-90 Motors1&2 are left/right respectively, Motors3&4 are rear/front respectively. For H4-45 Motors1&2 are LF/RF, Motors3&4 are LR/RR ",DisplayName:"Swash 2 Type",User:"Standard",Values:{0:"H3 Generic",1:"H1 non-CPPM",2:"H3_140",3:"H3_120",4:"H4_90",5:"H4_45"}},H_SW_COL_DIR:{Description:"Direction collective moves for positive pitch. 0 for Normal, 1 for Reversed",DisplayName:"Swash 1 Collective Direction",User:"Standard",Values:{0:"Normal",1:"Reversed"}},H_SW_H3_ENABLE:{Description:"Automatically set when H3 generic swash type is selected for swashplate 1. Do not set manually.",DisplayName:"Swash 1 H3 Generic Enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},H_SW_H3_PHANG:{Description:"Only for H3 swashplate. If pitching the swash forward induces a roll, this can be correct the problem",DisplayName:"Swash 1 H3 Generic Phase Angle Comp",Increment:"1",Range:{high:"30",low:"-30"},Units:"deg",User:"Advanced"},H_SW_H3_SV1_POS:{Description:"Azimuth position on swashplate for servo 1 with the front of the heli being 0 deg",DisplayName:"Swash 1 H3 Generic Servo 1 Position",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},H_SW_H3_SV2_POS:{Description:"Azimuth position on swashplate 1 for servo 2 with the front of the heli being 0 deg",DisplayName:"Swash 1 H3 Generic Servo 2 Position",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},H_SW_H3_SV3_POS:{Description:"Azimuth position on swashplate 1 for servo 3 with the front of the heli being 0 deg",DisplayName:"Swash 1 H3 Generic Servo 3 Position",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},H_SW_LIN_SVO:{Description:"This linearizes the swashplate 1 servo's mechanical output to account for nonlinear output due to arm rotation. This requires a specific setup procedure to work properly. The servo arm must be centered on the mechanical throw at the servo trim position and the servo trim position kept as close to 1500 as possible. Leveling the swashplate can only be done through the pitch links. See the ardupilot wiki for more details on setup.",DisplayName:"Linearize Swash 1 Servos",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},H_SW_TYPE:{Description:"H3 is generic, three-servo only. H3_120/H3_140 plates have Motor1 left side, Motor2 right side, Motor3 elevator in rear. HR3_120/HR3_140 have Motor1 right side, Motor2 left side, Motor3 elevator in front - use H3_120/H3_140 and reverse servo and collective directions as necessary. For all H3_90 swashplates use H4_90 and don't use servo output for the missing servo. For H4-90 Motors1&2 are left/right respectively, Motors3&4 are rear/front respectively. For H4-45 Motors1&2 are LF/RF, Motors3&4 are LR/RR ",DisplayName:"Swash 1 Type",User:"Standard",Values:{0:"H3 Generic",1:"H1 non-CPPM",2:"H3_140",3:"H3_120",4:"H4_90",5:"H4_45"}},H_TAIL_SPEED:{Description:"Direct drive, variable pitch tail ESC speed in percent output to the tail motor esc (HeliTailRSC Servo) when motor interlock enabled (throttle hold off).",DisplayName:"DDVP Tail ESC speed",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},H_TAIL_TYPE:{Description:"Tail type selection. Simpler yaw controller used if external gyro is selected. Direct Drive Variable Pitch is used for tails that have a motor that is governed at constant speed by an ESC. Tail pitch is still accomplished with a servo. Direct Drive Fixed Pitch (DDFP) CW is used for helicopters with a rotor that spins clockwise when viewed from above. Direct Drive Fixed Pitch (DDFP) CCW is used for helicopters with a rotor that spins counter clockwise when viewed from above. In both DDFP cases, no servo is used for the tail and the tail motor esc is controlled by the yaw axis.",DisplayName:"Tail Type",User:"Standard",Values:{0:"Servo only",1:"Servo with ExtGyro",2:"DirectDrive VarPitch",3:"DirectDrive FixedPitch CW",4:"DirectDrive FixedPitch CCW",5:"DDVP with external governor"}},H_YAW_REV_EXPO:{Description:"For intermeshing mode only. Yaw revereser smoothing exponent, smoothen transition near zero collective region. Increase this parameter to shink smoothing range. Set to -1 to disable reverser. ",DisplayName:"Yaw reverser expo",Increment:"1.0",Range:{high:"1000",low:"-1"},User:"Standard"},H_YAW_SCALER:{Description:"Scaler for mixing yaw into roll or pitch.",DisplayName:"Scaler for yaw mixing",Increment:"0.1",Range:{high:"10",low:"-10"},User:"Standard"}},Hz={H_RSC_AROT_PCT:{Description:"The throttle percentage sent to external governors, signaling to enable fast spool-up, when bailing out of an autorotation. Set 0 to disable. If also using a tail rotor of type DDVP with external governor then this value must lie within the autorotation window of both governors.",DisplayName:"Autorotation Throttle Percentage for External Governor",Increment:"1",Range:{high:"40",low:"0"},Units:"%",User:"Standard"},H_RSC_CLDWN_TIME:{Description:"Will provide a fast idle for engine cooldown by raising the Ground Idle speed setting by 50% for the number of seconds the timer is set for. A setting of zero disables the fast idle. This feature will only apply after the runup complete has been declared. This will not extend the time before ground idle is declared, which triggers engine shutdown for autonomous landings.",DisplayName:"Cooldown Time",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Standard"},H_RSC_CRITICAL:{Description:"Percentage of normal rotor speed where flight is no longer possible. However currently the rotor runup/rundown is estimated using the RSC_RUNUP_TIME parameter. Estimated rotor speed increases/decreases between 0 (rotor stopped) to 1 (rotor at normal speed) in the RSC_RUNUP_TIME in seconds. This parameter should be set so that the estimated rotor speed goes below critical in approximately 3 seconds. So if you had a 10 second runup time then set RSC_CRITICAL to 70%.",DisplayName:"Critical Rotor Speed",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},H_RSC_GOV_COMP:{Description:'Adjusts the autothrottle governor torque compensator that determines how fast the governor will adjust the base torque reference to compensate for changes in density altitude. If RPM is low or high by more than 2-5 RPM, increase this setting by 1% at a time until the governor speed matches your RPM setting. Setting the compensator too high can result in surging and throttle "hunting". Do not make large adjustments at one time',DisplayName:"Governor Torque Compensator",Increment:"0.1",Range:{high:"70",low:"0"},Units:"%",User:"Standard"},H_RSC_GOV_DROOP:{Description:"AutoThrottle governor droop response under load, normal settings of 0-50%. Higher value is quicker response to large speed changes due to load but may cause surging. Adjust this to be as aggressive as possible without getting surging or RPM over-run when the governor responds to large load changes on the rotor system",DisplayName:"Governor Droop Compensator",Increment:"0.1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},H_RSC_GOV_FF:{Description:"Feedforward governor gain to throttle response during sudden loading/unloading of the rotor system. If RPM drops excessively during full collective climb with the droop response set correctly, increase the governor feedforward.",DisplayName:"Governor Feedforward",Increment:"0.1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},H_RSC_GOV_RANGE:{Description:"RPM range +/- governor rpm reference setting where governor is operational. If speed sensor fails or rpm falls outside of this range, the governor will disengage and return to throttle curve. Recommended range is 100",DisplayName:"Governor Operational Range",Increment:"10",Range:{high:"200",low:"50"},Units:"RPM",User:"Standard"},H_RSC_GOV_RPM:{Description:"Main rotor RPM that governor maintains when engaged",DisplayName:"Rotor RPM Setting",Increment:"10",Range:{high:"3500",low:"800"},Units:"RPM",User:"Standard"},H_RSC_GOV_TORQUE:{Description:"Adjusts the engine's percentage of torque rise on autothrottle during ramp-up to governor speed. The torque rise will determine how fast the rotor speed will ramp up when rotor speed reaches 50% of the rotor RPM setting. The sequence of events engaging the governor is as follows: Throttle ramp time will engage the clutch and start the main rotor turning. The collective should be at flat pitch and the throttle curve set to provide at least 50% of normal RPM at flat pitch. The autothrottle torque limiter will automatically activate and start accelerating the main rotor. If the autothrottle consistently fails to accelerate the main rotor during ramp-in due to engine tune or other factors, then increase the torque limiter setting. NOTE: throttle ramp time and throttle curve should be tuned using RSC_MODE Throttle Curve before using RSC_MODE AutoThrottle",DisplayName:"Governor Torque Limiter",Increment:"1",Range:{high:"60",low:"10"},Units:"%",User:"Standard"},H_RSC_IDLE:{Description:"Throttle output (HeliRSC Servo) in percent while armed but motor interlock is disabled (throttle hold on). FOR COMBUSTION ENGINES. Sets the engine ground idle throttle percentage with clutch disengaged. This must be set to zero for electric helicopters under most situations. If the ESC has an autorotation window this can be set to keep the autorotation window open in the ESC. Consult the operating manual for your ESC to set it properly for this purpose",DisplayName:"Throttle Output at Idle",Increment:"1",Range:{high:"50",low:"0"},Units:"%",User:"Standard"},H_RSC_MODE:{Description:"Selects the type of rotor speed control used to determine throttle output to the HeliRSC servo channel when motor interlock is enabled (throttle hold off). RC Passthrough sends the input from the RC Motor Interlock channel as throttle output. External Gov SetPoint sends the RSC SetPoint parameter value as throttle output. Throttle Curve uses the 5 point throttle curve to determine throttle output based on the collective output. AutoThrottle requires a rotor speed sensor, contains an advanced autothrottle governor and is primarily for piston and turbine engines. WARNING: Throttle ramp time and throttle curve MUST be tuned properly using Throttle Curve mode before using AutoThrottle",DisplayName:"Rotor Speed Control Mode",User:"Standard",Values:{1:"RC Passthrough",2:"External Gov SetPoint",3:"Throttle Curve",4:"AutoThrottle"}},H_RSC_RAMP_TIME:{Description:"Time in seconds for throttle output (HeliRSC servo) to ramp from ground idle (RSC_IDLE) to flight idle throttle setting when motor interlock is enabled (throttle hold off).",DisplayName:"Throttle Ramp Time",Range:{high:"60",low:"0"},Units:"s",User:"Standard"},H_RSC_RUNUP_TIME:{Description:"Actual time in seconds for the main rotor to reach full speed after motor interlock is enabled (throttle hold off). Must be at least one second longer than the Throttle Ramp Time that is set with RSC_RAMP_TIME. WARNING: For AutoThrottle users with piston and turbine engines it is VERY important to know how long it takes to warm up your engine and reach full rotor speed when throttle switch is turned ON. This timer should be set for at least the amount of time it takes to get your helicopter to full flight power, ready for takeoff. Failure to heed this warning could result in the auto-takeoff mode attempting to lift up into hover before the engine has reached full power, and subsequent loss of control",DisplayName:"Rotor Runup Time",Range:{high:"60",low:"0"},Units:"s",User:"Standard"},H_RSC_SETPOINT:{Description:"Throttle (HeliRSC Servo) output in percent to the external motor governor when motor interlock enabled (throttle hold off).",DisplayName:"External Motor Governor Setpoint",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},H_RSC_SLEWRATE:{Description:"This controls the maximum rate at which the throttle output (HeliRSC servo) can change, as a percentage per second. A value of 100 means the throttle can change over its full range in one second. A value of zero gives unlimited slew rate.",DisplayName:"Throttle Slew Rate",Increment:"10",Range:{high:"500",low:"0"},User:"Standard"},H_RSC_THRCRV_0:{Description:"Sets the throttle output (HeliRSC servo) in percent for the throttle curve at the minimum collective pitch position. The 0 percent collective is defined by H_COL_MIN. Example: if the setup has -2 degree to +10 degree collective pitch setup, this setting would correspond to -2 degree of pitch.",DisplayName:"Throttle Curve at 0% Coll",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},H_RSC_THRCRV_100:{Description:"Sets the throttle output (HeliRSC servo) in percent for the throttle curve at the minimum collective pitch position. The 100 percent collective is defined by H_COL_MAX. Example: if the setup has -2 degree to +10 degree collective pitch setup, this setting would correspond to +10 degree of pitch.",DisplayName:"Throttle Curve at 100% Coll",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},H_RSC_THRCRV_25:{Description:"Sets the throttle output (HeliRSC servo) in percent for the throttle curve at 25% of full collective travel where he 0 percent collective is defined by H_COL_MIN and 100 percent collective is defined by H_COL_MAX. Example: if the setup has -2 degree to +10 degree collective pitch setup, the total range is 12 degrees. 25% of 12 degrees is 3 degrees, so this setting would correspond to +1 degree of pitch.",DisplayName:"Throttle Curve at 25% Coll",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},H_RSC_THRCRV_50:{Description:"Sets the throttle output (HeliRSC servo) in percent for the throttle curve at 50% of full collective travel where he 0 percent collective is defined by H_COL_MIN and 100 percent collective is defined by H_COL_MAX. Example: if the setup has -2 degree to +10 degree collective pitch setup, the total range is 12 degrees. 50% of 12 degrees is 6 degrees, so this setting would correspond to +4 degree of pitch.",DisplayName:"Throttle Curve at 50% Coll",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},H_RSC_THRCRV_75:{Description:"Sets the throttle output (HeliRSC servo) in percent for the throttle curve at 75% of full collective travel where he 0 percent collective is defined by H_COL_MIN and 100 percent collective is defined by H_COL_MAX. Example: if the setup has -2 degree to +10 degree collective pitch setup, the total range is 12 degrees. 75% of 12 degrees is 9 degrees, so this setting would correspond to +7 degree of pitch.",DisplayName:"Throttle Curve at 75% Coll",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"}},Mz={IM_ACRO_COL_EXP:{Description:"Used to soften collective pitch inputs near center point in Acro mode.",DisplayName:"Acro Mode Collective Expo",User:"Advanced",Values:{0:"Disabled","0.1":"Very Low","0.2":"Low","0.3":"Medium","0.4":"High","0.5":"Very High"}},IM_STB_COL_1:{Description:"Helicopter's minimum collective pitch setting at zero collective stick input in Stabilize mode. Set this as a percent of collective range given by H_COL_MAX minus H_COL_MIN.",DisplayName:"Stabilize Collective Low",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},IM_STB_COL_2:{Description:"Helicopter's collective pitch setting at mid-low (40%) collective stick input in Stabilize mode. Set this as a percent of collective range given by H_COL_MAX minus H_COL_MIN.",DisplayName:"Stabilize Collective Mid-Low",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},IM_STB_COL_3:{Description:"Helicopter's collective pitch setting at mid-high (60%) collective stick input in Stabilize mode. Set this as a percent of collective range given by H_COL_MAX minus H_COL_MIN.",DisplayName:"Stabilize Collective Mid-High",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},IM_STB_COL_4:{Description:"Helicopter's maximum collective pitch setting at full collective stick input in Stabilize mode. Set this as a percent of collective range given by H_COL_MAX minus H_COL_MIN.",DisplayName:"Stabilize Collective High",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"}},gz={INS_ACC1_CALTEMP:{Calibration:"1",Description:"Temperature that the 1st accelerometer was calibrated at",DisplayName:"Calibration temperature for 1st accelerometer",Units:"degC",User:"Advanced"},INS_ACC2OFFS_X:{Calibration:"1",Description:"Accelerometer2 offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2OFFS_Y:{Calibration:"1",Description:"Accelerometer2 offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2OFFS_Z:{Calibration:"1",Description:"Accelerometer2 offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2SCAL_X:{Calibration:"1",Description:"Accelerometer2 scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2SCAL_Y:{Calibration:"1",Description:"Accelerometer2 scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2SCAL_Z:{Calibration:"1",Description:"Accelerometer2 scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2_CALTEMP:{Calibration:"1",Description:"Temperature that the 2nd accelerometer was calibrated at",DisplayName:"Calibration temperature for 2nd accelerometer",Units:"degC",User:"Advanced"},INS_ACC2_ID:{Description:"Accelerometer2 sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer2 ID",ReadOnly:"True",User:"Advanced"},INS_ACC3OFFS_X:{Calibration:"1",Description:"Accelerometer3 offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3OFFS_Y:{Calibration:"1",Description:"Accelerometer3 offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3OFFS_Z:{Calibration:"1",Description:"Accelerometer3 offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3SCAL_X:{Calibration:"1",Description:"Accelerometer3 scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3SCAL_Y:{Calibration:"1",Description:"Accelerometer3 scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3SCAL_Z:{Calibration:"1",Description:"Accelerometer3 scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3_CALTEMP:{Calibration:"1",Description:"Temperature that the 3rd accelerometer was calibrated at",DisplayName:"Calibration temperature for 3rd accelerometer",Units:"degC",User:"Advanced"},INS_ACC3_ID:{Description:"Accelerometer3 sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer3 ID",ReadOnly:"True",User:"Advanced"},INS_ACCEL_FILTER:{Description:"Filter cutoff frequency for accelerometers. This can be set to a lower value to try to cope with very high vibration levels in aircraft. A value of zero means no filtering (not recommended!)",DisplayName:"Accel filter cutoff frequency",Range:{high:"256",low:"0"},Units:"Hz",User:"Advanced"},INS_ACCOFFS_X:{Calibration:"1",Description:"Accelerometer offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCOFFS_Y:{Calibration:"1",Description:"Accelerometer offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCOFFS_Z:{Calibration:"1",Description:"Accelerometer offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCSCAL_X:{Calibration:"1",Description:"Accelerometer scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACCSCAL_Y:{Calibration:"1",Description:"Accelerometer scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACCSCAL_Z:{Calibration:"1",Description:"Accelerometer scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC_BODYFIX:{Description:"The body-fixed accelerometer to be used for trim calculation",DisplayName:"Body-fixed accelerometer",User:"Advanced",Values:{1:"IMU 1",2:"IMU 2",3:"IMU 3"}},INS_ACC_ID:{Description:"Accelerometer sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer ID",ReadOnly:"True",User:"Advanced"},INS_ENABLE_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU",6:"SeventhIMU"},Description:"Bitmask of IMUs to enable. It can be used to prevent startup of specific detected IMUs",DisplayName:"IMU enable mask",User:"Advanced"},INS_FAST_SAMPLE:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU"},Description:"Mask of IMUs to enable fast sampling on, if available",DisplayName:"Fast sampling mask",User:"Advanced"},INS_GYR1_CALTEMP:{Calibration:"1",Description:"Temperature that the 1st gyroscope was calibrated at",DisplayName:"Calibration temperature for 1st gyroscope",Units:"degC",User:"Advanced"},INS_GYR2OFFS_X:{Calibration:"1",Description:"Gyro2 sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYR2OFFS_Y:{Calibration:"1",Description:"Gyro2 sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYR2OFFS_Z:{Calibration:"1",Description:"Gyro2 sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYR2_CALTEMP:{Calibration:"1",Description:"Temperature that the 2nd gyroscope was calibrated at",DisplayName:"Calibration temperature for 2nd gyroscope",Units:"degC",User:"Advanced"},INS_GYR2_ID:{Description:"Gyro2 sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro2 ID",ReadOnly:"True",User:"Advanced"},INS_GYR3OFFS_X:{Calibration:"1",Description:"Gyro3 sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYR3OFFS_Y:{Calibration:"1",Description:"Gyro3 sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYR3OFFS_Z:{Calibration:"1",Description:"Gyro3 sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYR3_CALTEMP:{Calibration:"1",Description:"Temperature that the 3rd gyroscope was calibrated at",DisplayName:"Calibration temperature for 3rd gyroscope",Units:"degC",User:"Advanced"},INS_GYR3_ID:{Description:"Gyro3 sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro3 ID",ReadOnly:"True",User:"Advanced"},INS_GYROFFS_X:{Calibration:"1",Description:"Gyro sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYROFFS_Y:{Calibration:"1",Description:"Gyro sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYROFFS_Z:{Calibration:"1",Description:"Gyro sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYRO_FILTER:{Description:"Filter cutoff frequency for gyroscopes. This can be set to a lower value to try to cope with very high vibration levels in aircraft. A value of zero means no filtering (not recommended!)",DisplayName:"Gyro filter cutoff frequency",Range:{high:"256",low:"0"},Units:"Hz",User:"Advanced"},INS_GYRO_RATE:{Description:"Gyro rate for IMUs with fast sampling enabled. The gyro rate is the sample rate at which the IMU filters operate and needs to be at least double the maximum filter frequency. If the sensor does not support the selected rate the next highest supported rate will be used. For IMUs which do not support fast sampling this setting is ignored and the default gyro rate of 1Khz is used.",DisplayName:"Gyro rate for IMUs with Fast Sampling enabled",RebootRequired:"True",User:"Advanced",Values:{0:"1kHz",1:"2kHz",2:"4kHz",3:"8kHz"}},INS_GYR_CAL:{Description:"Conrols when automatic gyro calibration is performed",DisplayName:"Gyro Calibration scheme",User:"Advanced",Values:{0:"Never",1:"Start-up only"}},INS_GYR_ID:{Description:"Gyro sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro ID",ReadOnly:"True",User:"Advanced"},INS_POS1_X:{Description:"X position of the first IMU Accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS1_Y:{Description:"Y position of the first IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS1_Z:{Description:"Z position of the first IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_X:{Description:"X position of the second IMU accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_Y:{Description:"Y position of the second IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_Z:{Description:"Z position of the second IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS3_X:{Description:"X position of the third IMU accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Range:{high:"10",low:"-10"},Units:"m",User:"Advanced"},INS_POS3_Y:{Description:"Y position of the third IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS3_Z:{Description:"Z position of the third IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_STILL_THRESH:{Description:"Threshold to tolerate vibration to determine if vehicle is motionless. This depends on the frame type and if there is a constant vibration due to motors before launch or after landing. Total motionless is about 0.05. Suggested values: Planes/rover use 0.1, multirotors use 1, tradHeli uses 5",DisplayName:"Stillness threshold for detecting if we are moving",Range:{high:"50",low:"0.05"},User:"Advanced"},INS_TCAL_OPTIONS:{Bitmask:{0:"PersistParams"},Description:"This enables optional temperature calibration features. Setting PersistParams will save the accelerometer and temperature calibration parameters in the bootloader sector on the next update of the bootloader.",DisplayName:"Options for temperature calibration",User:"Advanced"},INS_TRIM_OPTION:{Description:"Specifies how the accel cal routine determines the trims",DisplayName:"Accel cal trim option",User:"Advanced",Values:{0:"Don't adjust the trims",1:"Assume first orientation was level",2:"Assume ACC_BODYFIX is perfectly aligned to the vehicle"}},INS_USE:{Description:"Use first IMU for attitude, velocity and position estimates",DisplayName:"Use first IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_USE2:{Description:"Use second IMU for attitude, velocity and position estimates",DisplayName:"Use second IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_USE3:{Description:"Use third IMU for attitude, velocity and position estimates",DisplayName:"Use third IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}}},Az={INS_HNTC2_ATT:{Description:"Harmonic Notch Filter attenuation in dB. Values greater than 40dB will typically produce a hard notch rather than a modest attenuation of motor noise.",DisplayName:"Harmonic Notch Filter attenuation",Range:{high:"50",low:"5"},Units:"dB",User:"Advanced"},INS_HNTC2_BW:{Description:"Harmonic Notch Filter bandwidth in Hz. This is typically set to half the base frequency. The ratio of base frequency to bandwidth determines the notch quality factor and is fixed across harmonics.",DisplayName:"Harmonic Notch Filter bandwidth",Range:{high:"250",low:"5"},Units:"Hz",User:"Advanced"},INS_HNTC2_ENABLE:{Description:"Harmonic Notch Filter enable",DisplayName:"Harmonic Notch Filter enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_HNTC2_FM_RAT:{Description:"The minimum ratio below the configured frequency to take throttle based notch filters when flying at a throttle level below the reference throttle. Note that lower frequency notch filters will have more phase lag. If you want throttle based notch filtering to be effective at a throttle up to 30% below the configured notch frequency then set this parameter to 0.7. The default of 1.0 means the notch will not go below the frequency in the FREQ parameter.",DisplayName:"Throttle notch min freqency ratio",Range:{high:"1.0",low:"0.1"},User:"Advanced"},INS_HNTC2_FREQ:{Description:"Harmonic Notch Filter base center frequency in Hz. This should be set at most half the backend gyro rate (which is typically 1Khz). For helicopters using RPM sensor to dynamically set the notch frequency, use this parameter to provide a lower limit to the dynamic notch filter. Recommend setting it to half the operating rotor speed in Hz.",DisplayName:"Harmonic Notch Filter base frequency",Range:{high:"495",low:"10"},Units:"Hz",User:"Advanced"},INS_HNTC2_HMNCS:{Bitmask:{0:"1st harmonic",1:"2nd harmonic",2:"3rd harmonic",3:"4th hamronic",4:"5th harmonic",5:"6th harmonic",6:"7th harmonic",7:"8th harmonic"},Description:"Bitmask of harmonic frequencies to apply Harmonic Notch Filter to. This option takes effect on the next reboot. A value of 0 disables this filter. The first harmonic refers to the base frequency.",DisplayName:"Harmonic Notch Filter harmonics",RebootRequired:"True",User:"Advanced"},INS_HNTC2_MODE:{Description:"Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based updates should only be used with multicopters.",DisplayName:"Harmonic Notch Filter dynamic frequency tracking mode",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Disabled",1:"Throttle",2:"RPM Sensor",3:"ESC Telemetry",4:"Dynamic FFT",5:"Second RPM Sensor"}},INS_HNTC2_OPTS:{Bitmask:{0:"Double notch",1:"Dynamic harmonic",2:"Update at loop rate",3:"EnableOnAllIMUs",4:"Triple notch"},Description:"Harmonic Notch Filter options. Triple and double-notches can provide deeper attenuation across a wider bandwidth with reduced latency than single notches and are suitable for larger aircraft. Dynamic harmonics attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz. If both double and triple notches are specified only double notches will take effect.",DisplayName:"Harmonic Notch Filter options",RebootRequired:"True",User:"Advanced"},INS_HNTC2_REF:{Description:"A reference value of zero disables dynamic updates on the Harmonic Notch Filter and a positive value enables dynamic updates on the Harmonic Notch Filter. For throttle-based scaling, this parameter is the reference value associated with the specified frequency to facilitate frequency scaling of the Harmonic Notch Filter. For RPM and ESC telemetry based tracking, this parameter is set to 1 to enable the Harmonic Notch Filter using the RPM sensor or ESC telemetry set to measure rotor speed. The sensor data is converted to Hz automatically for use in the Harmonic Notch Filter. This reference value may also be used to scale the sensor data, if required. For example, rpm sensor data is required to measure heli motor RPM. Therefore the reference value can be used to scale the RPM sensor to the rotor RPM.",DisplayName:"Harmonic Notch Filter reference value",Range:{high:"1.0",low:"0.0"},RebootRequired:"True",User:"Advanced"}},vz={INS_HNTCH_ATT:{Description:"Harmonic Notch Filter attenuation in dB. Values greater than 40dB will typically produce a hard notch rather than a modest attenuation of motor noise.",DisplayName:"Harmonic Notch Filter attenuation",Range:{high:"50",low:"5"},Units:"dB",User:"Advanced"},INS_HNTCH_BW:{Description:"Harmonic Notch Filter bandwidth in Hz. This is typically set to half the base frequency. The ratio of base frequency to bandwidth determines the notch quality factor and is fixed across harmonics.",DisplayName:"Harmonic Notch Filter bandwidth",Range:{high:"250",low:"5"},Units:"Hz",User:"Advanced"},INS_HNTCH_ENABLE:{Description:"Harmonic Notch Filter enable",DisplayName:"Harmonic Notch Filter enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_HNTCH_FM_RAT:{Description:"The minimum ratio below the configured frequency to take throttle based notch filters when flying at a throttle level below the reference throttle. Note that lower frequency notch filters will have more phase lag. If you want throttle based notch filtering to be effective at a throttle up to 30% below the configured notch frequency then set this parameter to 0.7. The default of 1.0 means the notch will not go below the frequency in the FREQ parameter.",DisplayName:"Throttle notch min freqency ratio",Range:{high:"1.0",low:"0.1"},User:"Advanced"},INS_HNTCH_FREQ:{Description:"Harmonic Notch Filter base center frequency in Hz. This should be set at most half the backend gyro rate (which is typically 1Khz). For helicopters using RPM sensor to dynamically set the notch frequency, use this parameter to provide a lower limit to the dynamic notch filter. Recommend setting it to half the operating rotor speed in Hz.",DisplayName:"Harmonic Notch Filter base frequency",Range:{high:"495",low:"10"},Units:"Hz",User:"Advanced"},INS_HNTCH_HMNCS:{Bitmask:{0:"1st harmonic",1:"2nd harmonic",2:"3rd harmonic",3:"4th hamronic",4:"5th harmonic",5:"6th harmonic",6:"7th harmonic",7:"8th harmonic"},Description:"Bitmask of harmonic frequencies to apply Harmonic Notch Filter to. This option takes effect on the next reboot. A value of 0 disables this filter. The first harmonic refers to the base frequency.",DisplayName:"Harmonic Notch Filter harmonics",RebootRequired:"True",User:"Advanced"},INS_HNTCH_MODE:{Description:"Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based updates should only be used with multicopters.",DisplayName:"Harmonic Notch Filter dynamic frequency tracking mode",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Disabled",1:"Throttle",2:"RPM Sensor",3:"ESC Telemetry",4:"Dynamic FFT",5:"Second RPM Sensor"}},INS_HNTCH_OPTS:{Bitmask:{0:"Double notch",1:"Dynamic harmonic",2:"Update at loop rate",3:"EnableOnAllIMUs",4:"Triple notch"},Description:"Harmonic Notch Filter options. Triple and double-notches can provide deeper attenuation across a wider bandwidth with reduced latency than single notches and are suitable for larger aircraft. Dynamic harmonics attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz. If both double and triple notches are specified only double notches will take effect.",DisplayName:"Harmonic Notch Filter options",RebootRequired:"True",User:"Advanced"},INS_HNTCH_REF:{Description:"A reference value of zero disables dynamic updates on the Harmonic Notch Filter and a positive value enables dynamic updates on the Harmonic Notch Filter. For throttle-based scaling, this parameter is the reference value associated with the specified frequency to facilitate frequency scaling of the Harmonic Notch Filter. For RPM and ESC telemetry based tracking, this parameter is set to 1 to enable the Harmonic Notch Filter using the RPM sensor or ESC telemetry set to measure rotor speed. The sensor data is converted to Hz automatically for use in the Harmonic Notch Filter. This reference value may also be used to scale the sensor data, if required. For example, rpm sensor data is required to measure heli motor RPM. Therefore the reference value can be used to scale the RPM sensor to the rotor RPM.",DisplayName:"Harmonic Notch Filter reference value",Range:{high:"1.0",low:"0.0"},RebootRequired:"True",User:"Advanced"}},_z={INS_LOG_BAT_CNT:{Description:"Number of samples to take when logging streams of IMU sensor readings. Will be rounded down to a multiple of 32. This option takes effect on the next reboot.",DisplayName:"sample count per batch",Increment:"32",RebootRequired:"True",User:"Advanced"},INS_LOG_BAT_LGCT:{Description:"Number of samples to push to count every INS_LOG_BAT_LGIN",DisplayName:"logging count",Increment:"1"},INS_LOG_BAT_LGIN:{Description:"Interval between pushing samples to the AP_Logger log",DisplayName:"logging interval",Increment:"10",Units:"ms"},INS_LOG_BAT_MASK:{Bitmask:{0:"IMU1",1:"IMU2",2:"IMU3"},Description:"Bitmap of which IMUs to log batch data for. This option takes effect on the next reboot.",DisplayName:"Sensor Bitmask",RebootRequired:"True",User:"Advanced"},INS_LOG_BAT_OPT:{Bitmask:{0:"Sensor-Rate Logging (sample at full sensor rate seen by AP)",1:"Sample post-filtering",2:"Sample pre- and post-filter"},Description:"Options for the BatchSampler.",DisplayName:"Batch Logging Options Mask",User:"Advanced"}},Sz={INS_TCAL1_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL1_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL1_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},Dz={INS_TCAL2_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL2_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL2_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},yz={INS_TCAL3_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL3_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL3_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},Rz={LGR_DEPLOY_ALT:{Description:"Altitude where the landing gear will be deployed. This should be lower than the RETRACT_ALT. If zero then altitude is not used for deploying landing gear. Only applies when vehicle is armed.",DisplayName:"Landing gear deployment altitude",Increment:"1",Range:{high:"1000",low:"0"},Units:"m",User:"Standard"},LGR_DEPLOY_PIN:{Description:`Pin number to use for detection of gear deployment. If set to -1 feedback is disabled. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Chassis deployment feedback pin",RebootRequired:"True",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},LGR_DEPLOY_POL:{Description:"Polarity for feedback pin. If this is 1 then the pin should be high when gear are deployed. If set to 0 then then deployed gear level is low.",DisplayName:"Chassis deployment feedback pin polarity",User:"Standard",Values:{0:"Low",1:"High"}},LGR_ENABLE:{Description:"Enable landing gear control",DisplayName:"Enable landing gear",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},LGR_OPTIONS:{Bitmask:{0:"Retract after Takeoff",1:"Deploy during Land"},Description:"Options to retract or deploy landing gear in Auto or Guided mode",DisplayName:"Landing gear auto retract/deploy options",User:"Standard"},LGR_RETRACT_ALT:{Description:"Altitude where the landing gear will be retracted. This should be higher than the DEPLOY_ALT. If zero then altitude is not used for retracting landing gear. Only applies when vehicle is armed.",DisplayName:"Landing gear retract altitude",Increment:"1",Range:{high:"1000",low:"0"},Units:"m",User:"Standard"},LGR_STARTUP:{Description:"Landing Gear Startup behaviour control",DisplayName:"Landing Gear Startup position",User:"Standard",Values:{0:"WaitForPilotInput",1:"Retract",2:"Deploy"}},LGR_WOW_PIN:{Description:`Pin number to use for feedback of weight on wheels condition. If set to -1 feedback is disabled. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Weight on wheels feedback pin",RebootRequired:"True",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},LGR_WOW_POL:{Description:"Polarity for feedback pin. If this is 1 then the pin should be high when there is weight on wheels. If set to 0 then then weight on wheels level is low.",DisplayName:"Weight on wheels feedback pin polarity",User:"Standard",Values:{0:"Low",1:"High"}}},bz={LOG_BACKEND_TYPE:{Bitmask:{0:"File",1:"MAVLink",2:"Block"},Description:"Bitmap of what Logger backend types to enable. Block-based logging is available on SITL and boards with dataflash chips. Multiple backends can be selected.",DisplayName:"AP_Logger Backend Storage type",User:"Standard"},LOG_BLK_RATEMAX:{Description:"This sets the maximum rate that streaming log messages will be logged to the mavlink backend. A value of zero means that rate limiting is disabled.",DisplayName:"Maximum logging rate for block backend",Increment:"0.1",Range:{high:"1000",low:"0"},Units:"Hz",User:"Standard"},LOG_DISARMED:{Description:"If LOG_DISARMED is set to 1 then logging will be enabled while disarmed. This can make for very large logfiles but can help a lot when tracking down startup issues",DisplayName:"Enable logging while disarmed",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},LOG_FILE_BUFSIZE:{Description:'The File and Block backends use a buffer to store data before writing to the block device. Raising this value may reduce "gaps" in your SD card logging. This buffer size may be reduced depending on available memory. PixHawk requires at least 4 kilobytes. Maximum value available here is 64 kilobytes.',DisplayName:"Maximum AP_Logger File and Block Backend buffer size (in kilobytes)",User:"Standard"},LOG_FILE_DSRMROT:{Description:"When set, the current log file is closed when the vehicle is disarmed. If LOG_DISARMED is set then a fresh log will be opened. Applies to the File and Block logging backends.",DisplayName:"Stop logging to current file on disarm",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},LOG_FILE_MB_FREE:{Description:"Set this such that the free space is larger than your largest typical flight log",DisplayName:"Old logs on the SD card will be deleted to maintain this amount of free space",Range:{high:"1000",low:"10"},Units:"MB",User:"Standard"},LOG_FILE_RATEMAX:{Description:"This sets the maximum rate that streaming log messages will be logged to the file backend. A value of zero means that rate limiting is disabled.",DisplayName:"Maximum logging rate for file backend",Increment:"0.1",Range:{high:"1000",low:"0"},Units:"Hz",User:"Standard"},LOG_FILE_TIMEOUT:{Description:"This controls the amount of time before failing writes to a log file cause the file to be closed and logging stopped.",DisplayName:"Timeout before giving up on file writes",Units:"s",User:"Standard"},LOG_MAV_BUFSIZE:{Description:"Maximum amount of memory to allocate to AP_Logger-over-mavlink",DisplayName:"Maximum AP_Logger MAVLink Backend buffer size",Units:"kB",User:"Advanced"},LOG_MAV_RATEMAX:{Description:"This sets the maximum rate that streaming log messages will be logged to the mavlink backend. A value of zero means that rate limiting is disabled.",DisplayName:"Maximum logging rate for mavlink backend",Increment:"0.1",Range:{high:"1000",low:"0"},Units:"Hz",User:"Standard"},LOG_REPLAY:{Description:"If LOG_REPLAY is set to 1 then the EKF2 state estimator will log detailed information needed for diagnosing problems with the Kalman filter. It is suggested that you also raise LOG_FILE_BUFSIZE to give more buffer space for logging and use a high quality microSD card to ensure no sensor data is lost",DisplayName:"Enable logging of information needed for Replay",User:"Standard",Values:{0:"Disabled",1:"Enabled"}}},Nz={LOIT_ACC_MAX:{Description:"Loiter maximum correction acceleration in cm/s/s. Higher values cause the copter to correct position errors more aggressively.",DisplayName:"Loiter maximum correction acceleration",Increment:"1",Range:{high:"981",low:"100"},Units:"cm/s/s",User:"Advanced"},LOIT_ANG_MAX:{Description:"Loiter maximum pilot requested lean angle. Set to zero for 2/3 of PSC_ANGLE_MAX/ANGLE_MAX. The maximum vehicle lean angle is still limited by PSC_ANGLE_MAX/ANGLE_MAX",DisplayName:"Loiter pilot angle max",Increment:"1",Range:{high:"45",low:"0"},Units:"deg",User:"Advanced"},LOIT_BRK_ACCEL:{Description:"Loiter braking acceleration in cm/s/s. Higher values stop the copter more quickly when the stick is centered.",DisplayName:"Loiter braking acceleration",Increment:"1",Range:{high:"250",low:"25"},Units:"cm/s/s",User:"Advanced"},LOIT_BRK_DELAY:{Description:"Loiter brake start delay (in seconds)",DisplayName:"Loiter brake start delay (in seconds)",Increment:"0.1",Range:{high:"2",low:"0"},Units:"s",User:"Advanced"},LOIT_BRK_JERK:{Description:"Loiter braking jerk in cm/s/s/s. Higher values will remove braking faster if the pilot moves the sticks during a braking maneuver.",DisplayName:"Loiter braking jerk",Increment:"1",Range:{high:"5000",low:"500"},Units:"cm/s/s/s",User:"Advanced"},LOIT_SPEED:{Description:"Defines the maximum speed in cm/s which the aircraft will travel horizontally while in loiter mode",DisplayName:"Loiter Horizontal Maximum Speed",Increment:"50",Range:{high:"3500",low:"20"},Units:"cm/s",User:"Standard"}},wz={MIS_OPTIONS:{Bitmask:{0:"Clear Mission on reboot",2:"ContinueAfterLand"},Description:"Bitmask of what options to use in missions.",DisplayName:"Mission options bitmask",User:"Advanced"},MIS_RESTART:{Description:"Controls mission starting point when entering Auto mode (either restart from beginning of mission or resume from last command run)",DisplayName:"Mission Restart when entering Auto mode",User:"Advanced",Values:{0:"Resume Mission",1:"Restart Mission"}},MIS_TOTAL:{Description:"The number of mission mission items that has been loaded by the ground station. Do not change this manually.",DisplayName:"Total mission commands",Increment:"1",Range:{high:"32766",low:"0"},ReadOnly:"True",User:"Advanced"}},Tz={MNT1_DEFLT_MODE:{Description:"Mount default operating mode on startup and after control is returned from autopilot",DisplayName:"Mount default operating mode",User:"Standard",Values:{0:"Retracted",1:"Neutral",2:"MavLink Targeting",3:"RC Targeting",4:"GPS Point",6:"Home Location"}},MNT1_LEAD_PTCH:{Description:"Servo mount pitch angle output leads the vehicle angle by this amount of time based on current pitch rate. Increase until the servo is responsive but does not overshoot",DisplayName:"Mount Pitch stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT1_LEAD_RLL:{Description:"Servo mount roll angle output leads the vehicle angle by this amount of time based on current roll rate. Increase until the servo is responsive but does not overshoot",DisplayName:"Mount Roll stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT1_NEUTRAL_X:{Description:"Mount roll angle when in neutral position",DisplayName:"Mount roll angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_NEUTRAL_Y:{Description:"Mount pitch angle when in neutral position",DisplayName:"Mount pitch angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_NEUTRAL_Z:{Description:"Mount yaw angle when in neutral position",DisplayName:"Mount yaw angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_PITCH_MAX:{Description:"Mount Pitch angle maximum",DisplayName:"Mount Pitch angle maximum",Increment:"1",Range:{high:"90",low:"-90"},Units:"deg",User:"Standard"},MNT1_PITCH_MIN:{Description:"Mount Pitch angle minimum",DisplayName:"Mount Pitch angle minimum",Increment:"1",Range:{high:"90",low:"-90"},Units:"deg",User:"Standard"},MNT1_RC_RATE:{Description:"Pilot rate control's maximum rate. Set to zero to use angle control",DisplayName:"Mount RC Rate",Increment:"1",Range:{high:"90",low:"0"},Units:"deg/s",User:"Standard"},MNT1_RETRACT_X:{Description:"Mount roll angle when in retracted position",DisplayName:"Mount roll angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_RETRACT_Y:{Description:"Mount pitch angle when in retracted position",DisplayName:"Mount pitch angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_RETRACT_Z:{Description:"Mount yaw angle when in retracted position",DisplayName:"Mount yaw angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_ROLL_MAX:{Description:"Mount Roll angle maximum",DisplayName:"Mount Roll angle maximum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT1_ROLL_MIN:{Description:"Mount Roll angle minimum",DisplayName:"Mount Roll angle minimum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT1_TYPE:{Description:"Mount Type",DisplayName:"Mount Type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"Servo",2:"3DR Solo",3:"Alexmos Serial",4:"SToRM32 MAVLink",5:"SToRM32 Serial",6:"Gremsy",7:"BrushlessPWM"}},MNT1_YAW_MAX:{Description:"Mount Yaw angle maximum",DisplayName:"Mount Yaw angle maximum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT1_YAW_MIN:{Description:"Mount Yaw angle minimum",DisplayName:"Mount Yaw angle minimum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"}},Ez={MNT2_DEFLT_MODE:{Description:"Mount default operating mode on startup and after control is returned from autopilot",DisplayName:"Mount default operating mode",User:"Standard",Values:{0:"Retracted",1:"Neutral",2:"MavLink Targeting",3:"RC Targeting",4:"GPS Point",6:"Home Location"}},MNT2_LEAD_PTCH:{Description:"Servo mount pitch angle output leads the vehicle angle by this amount of time based on current pitch rate. Increase until the servo is responsive but does not overshoot",DisplayName:"Mount Pitch stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT2_LEAD_RLL:{Description:"Servo mount roll angle output leads the vehicle angle by this amount of time based on current roll rate. Increase until the servo is responsive but does not overshoot",DisplayName:"Mount Roll stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT2_NEUTRAL_X:{Description:"Mount roll angle when in neutral position",DisplayName:"Mount roll angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_NEUTRAL_Y:{Description:"Mount pitch angle when in neutral position",DisplayName:"Mount pitch angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_NEUTRAL_Z:{Description:"Mount yaw angle when in neutral position",DisplayName:"Mount yaw angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_PITCH_MAX:{Description:"Mount Pitch angle maximum",DisplayName:"Mount Pitch angle maximum",Increment:"1",Range:{high:"90",low:"-90"},Units:"deg",User:"Standard"},MNT2_PITCH_MIN:{Description:"Mount Pitch angle minimum",DisplayName:"Mount Pitch angle minimum",Increment:"1",Range:{high:"90",low:"-90"},Units:"deg",User:"Standard"},MNT2_RC_RATE:{Description:"Pilot rate control's maximum rate. Set to zero to use angle control",DisplayName:"Mount RC Rate",Increment:"1",Range:{high:"90",low:"0"},Units:"deg/s",User:"Standard"},MNT2_RETRACT_X:{Description:"Mount roll angle when in retracted position",DisplayName:"Mount roll angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_RETRACT_Y:{Description:"Mount pitch angle when in retracted position",DisplayName:"Mount pitch angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_RETRACT_Z:{Description:"Mount yaw angle when in retracted position",DisplayName:"Mount yaw angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_ROLL_MAX:{Description:"Mount Roll angle maximum",DisplayName:"Mount Roll angle maximum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT2_ROLL_MIN:{Description:"Mount Roll angle minimum",DisplayName:"Mount Roll angle minimum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT2_TYPE:{Description:"Mount Type",DisplayName:"Mount Type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"Servo",2:"3DR Solo",3:"Alexmos Serial",4:"SToRM32 MAVLink",5:"SToRM32 Serial",6:"Gremsy",7:"BrushlessPWM"}},MNT2_YAW_MAX:{Description:"Mount Yaw angle maximum",DisplayName:"Mount Yaw angle maximum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT2_YAW_MIN:{Description:"Mount Yaw angle minimum",DisplayName:"Mount Yaw angle minimum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"}},Pz={MOT_BAT_CURR_MAX:{Description:"Maximum current over which maximum throttle is limited (0 = Disabled)",DisplayName:"Motor Current Max",Range:{high:"200",low:"0"},Units:"A",User:"Advanced"},MOT_BAT_CURR_TC:{Description:"Time constant used to limit the maximum current",DisplayName:"Motor Current Max Time Constant",Range:{high:"10",low:"0"},Units:"s",User:"Advanced"},MOT_BAT_IDX:{Description:"Which battery monitor should be used for doing compensation",DisplayName:"Battery compensation index",User:"Advanced",Values:{0:"First battery",1:"Second battery"}},MOT_BAT_VOLT_MAX:{Description:"Battery voltage compensation maximum voltage (voltage above this will have no additional scaling effect on thrust). Recommend 4.2 * cell count, 0 = Disabled",DisplayName:"Battery voltage compensation maximum voltage",Range:{high:"53",low:"6"},Units:"V",User:"Advanced"},MOT_BAT_VOLT_MIN:{Description:"Battery voltage compensation minimum voltage (voltage below this will have no additional scaling effect on thrust). Recommend 3.3 * cell count, 0 = Disabled",DisplayName:"Battery voltage compensation minimum voltage",Range:{high:"42",low:"6"},Units:"V",User:"Advanced"},MOT_BOOST_SCALE:{Description:"Booster motor output scaling factor vs main throttle. The output to the BoostThrottle servo will be the main throttle times this scaling factor. A higher scaling factor will put more of the load on the booster motor. A value of 1 will set the BoostThrottle equal to the main throttle.",DisplayName:"Motor boost scale",Increment:"0.1",Range:{high:"5",low:"0"},User:"Advanced"},MOT_HOVER_LEARN:{Description:"Enable/Disable automatic learning of hover throttle",DisplayName:"Hover Value Learning",User:"Advanced",Values:{0:"Disabled",1:"Learn",2:"Learn and Save"}},MOT_PWM_MAX:{Description:"This sets the max PWM value in microseconds that will ever be output to the motors",DisplayName:"PWM output maximum",Range:{high:"2000",low:"0"},Units:"PWM",User:"Advanced"},MOT_PWM_MIN:{Description:"This sets the min PWM output value in microseconds that will ever be output to the motors",DisplayName:"PWM output minimum",Range:{high:"2000",low:"0"},Units:"PWM",User:"Advanced"},MOT_PWM_TYPE:{Description:"This selects the output PWM type, allowing for normal PWM continuous output, OneShot, brushed or DShot motor output",DisplayName:"Output PWM type",RebootRequired:"True",User:"Advanced",Values:{0:"Normal",1:"OneShot",2:"OneShot125",3:"Brushed",4:"DShot150",5:"DShot300",6:"DShot600",7:"DShot1200",8:"PWMRange"}},MOT_SAFE_DISARM:{Description:"Disables motor PWM output when disarmed",DisplayName:"Motor PWM output disabled when disarmed",User:"Advanced",Values:{0:"PWM enabled while disarmed",1:"PWM disabled while disarmed"}},MOT_SAFE_TIME:{Description:"Time taken to disable and enable the motor PWM output when disarmed and armed.",DisplayName:"Time taken to disable and enable the motor PWM output when disarmed and armed.",Increment:"0.001",Range:{high:"5",low:"0"},Units:"s",User:"Advanced"},MOT_SLEW_DN_TIME:{Description:"Time in seconds to slew output from full to zero. This is used to limit the rate at which output can change. Range is constrained between 0 and 0.5.",DisplayName:"Output slew time for decreasing throttle",Increment:"0.001",Range:{high:".5",low:"0"},Units:"s",User:"Advanced"},MOT_SLEW_UP_TIME:{Description:"Time in seconds to slew output from zero to full. This is used to limit the rate at which output can change. Range is constrained between 0 and 0.5.",DisplayName:"Output slew time for increasing throttle",Increment:"0.001",Range:{high:".5",low:"0"},Units:"s",User:"Advanced"},MOT_SPIN_ARM:{Description:"Point at which the motors start to spin expressed as a number from 0 to 1 in the entire output range. Should be lower than MOT_SPIN_MIN.",DisplayName:"Motor Spin armed",User:"Advanced",Values:{"0.0":"Low","0.1":"Default","0.2":"High"}},MOT_SPIN_MAX:{Description:"Point at which the thrust saturates expressed as a number from 0 to 1 in the entire output range",DisplayName:"Motor Spin maximum",User:"Advanced",Values:{"0.9":"Low","0.95":"Default","1.0":"High"}},MOT_SPIN_MIN:{Description:"Point at which the thrust starts expressed as a number from 0 to 1 in the entire output range. Should be higher than MOT_SPIN_ARM.",DisplayName:"Motor Spin minimum",User:"Advanced",Values:{"0.0":"Low","0.15":"Default","0.25":"High"}},MOT_SPOOL_TIME:{Description:"Time in seconds to spool up the motors from zero to min throttle. ",DisplayName:"Spool up time",Increment:"0.1",Range:{high:"2",low:"0"},Units:"s",User:"Advanced"},MOT_THST_EXPO:{Description:"Motor thrust curve exponent (0.0 for linear to 1.0 for second order curve)",DisplayName:"Thrust Curve Expo",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},MOT_THST_HOVER:{Description:"Motor thrust needed to hover expressed as a number from 0 to 1",DisplayName:"Thrust Hover Value",Range:{high:"0.8",low:"0.2"},User:"Advanced"},MOT_YAW_HEADROOM:{Description:"Yaw control is given at least this pwm in microseconds range",DisplayName:"Matrix Yaw Min",Range:{high:"500",low:"0"},Units:"PWM",User:"Advanced"},MOT_YAW_SV_ANGLE:{Description:"Yaw servo's maximum lean angle (Tricopter only)",DisplayName:"Yaw Servo Max Lean Angle",Increment:"1",Range:{high:"80",low:"5"},Units:"deg",User:"Standard"}},Iz={MSP_OPTIONS:{Bitmask:{0:"EnableTelemetryMode",1:"DisableDJIWorkarounds",2:"EnableBTFLFonts"},Description:"A bitmask to set some MSP specific options",DisplayName:"MSP OSD Options",User:"Standard"},MSP_OSD_NCELLS:{Description:"Used for average cell voltage calculation",DisplayName:"Cell count override",User:"Standard",Values:{0:"Auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14"}}},Oz={NTF_BUZZ_ON_LVL:{Description:"Specifies pin level that indicates buzzer should play",DisplayName:"Buzzer-on pin logic level",User:"Advanced",Values:{0:"LowIsOn",1:"HighIsOn"}},NTF_BUZZ_PIN:{Description:`Enables to connect active buzzer to arbitrary pin. Requires 3-pin buzzer or additional MOSFET! Some the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Buzzer pin",User:"Advanced",Values:{0:"Disabled"}},NTF_BUZZ_TYPES:{Bitmask:{0:"Built-in buzzer",1:"DShot",2:"DroneCAN"},Description:"Controls what types of Buzzer will be enabled",DisplayName:"Buzzer Driver Types",User:"Advanced"},NTF_BUZZ_VOLUME:{Description:"Control the volume of the buzzer",DisplayName:"Buzzer volume",Range:{high:"100",low:"0"},Units:"%"},NTF_DISPLAY_TYPE:{Description:"This sets up the type of on-board I2C display. Disabled by default.",DisplayName:"Type of on-board I2C display",User:"Advanced",Values:{0:"Disable",1:"ssd1306",2:"sh1106",10:"SITL"}},NTF_LED_BRIGHT:{Description:"Select the RGB LED brightness level. When USB is connected brightness will never be higher than low regardless of the setting.",DisplayName:"LED Brightness",User:"Advanced",Values:{0:"Off",1:"Low",2:"Medium",3:"High"}},NTF_LED_LEN:{Description:"The number of Serial LED's to use for notifications (NeoPixel's and ProfiLED)",DisplayName:"Serial LED String Length",Range:{high:"32",low:"1"},RebootRequired:"True",User:"Advanced"},NTF_LED_OVERRIDE:{Description:'Specifies the source for the colours and brightness for the LED. OutbackChallenge conforms to the MedicalExpress (https://uavchallenge.org/medical-express/) rules, essentially "Green" is disarmed (safe-to-approach), "Red" is armed (not safe-to-approach). Traffic light is a simplified color set, red when armed, yellow when the safety switch is not surpressing outputs (but disarmed), and green when outputs are surpressed and disarmed, the LED will blink faster if disarmed and failing arming checks.',DisplayName:"Specifies colour source for the RGBLed",User:"Advanced",Values:{0:"Standard",1:"MAVLink/Scripting/AP_Periph",2:"OutbackChallenge",3:"TrafficLight"}},NTF_LED_TYPES:{Bitmask:{0:"Built-in LED",1:"Internal ToshibaLED",2:"External ToshibaLED",3:"External PCA9685",4:"Oreo LED",5:"DroneCAN",6:"NCP5623 External",7:"NCP5623 Internal",8:"NeoPixel",9:"ProfiLED",10:"Scripting",11:"DShot",12:"ProfiLED_SPI"},Description:"Controls what types of LEDs will be enabled",DisplayName:"LED Driver Types",User:"Advanced"},NTF_OREO_THEME:{Description:"Enable/Disable Solo Oreo LED driver, 0 to disable, 1 for Aircraft theme, 2 for Rover theme",DisplayName:"OreoLED Theme",User:"Advanced",Values:{0:"Disabled",1:"Aircraft",2:"Rover"}}},Uz={OA_MARGIN_MAX:{Description:"Object Avoidance will ignore objects more than this many meters from vehicle",DisplayName:"Object Avoidance wide margin distance",Increment:"1",Range:{high:"100",low:"0.1"},Units:"m",User:"Standard"},OA_OPTIONS:{Bitmask:{1:"log Dijkstra points"},Description:"Bitmask which will govern vehicles behaviour while recovering from Obstacle Avoidance (i.e Avoidance is turned off after the path ahead is clear). ",DisplayName:"Options while recovering from Object Avoidance",User:"Standard"},OA_TYPE:{Description:"Enabled/disable path planning around obstacles",DisplayName:"Object Avoidance Path Planning algorithm to use",User:"Standard",Values:{0:"Disabled",1:"BendyRuler",2:"Dijkstra",3:"Dijkstra with BendyRuler"}}},xz={OA_BR_CONT_ANGLE:{Description:" BendyRuler will resist changing current bearing if the change in bearing is over this angle",DisplayName:"BendyRuler's bearing change resistance threshold angle ",Increment:"5",Range:{high:"180",low:"20"},User:"Standard"},OA_BR_CONT_RATIO:{Description:" BendyRuler will avoid changing bearing unless ratio of previous margin from obstacle (or fence) to present calculated margin is atleast this much.",DisplayName:"Obstacle Avoidance margin ratio for BendyRuler to change bearing significantly ",Increment:"0.1",Range:{high:"2",low:"1.1"},User:"Standard"},OA_BR_LOOKAHEAD:{Description:"Object Avoidance will look this many meters ahead of vehicle",DisplayName:"Object Avoidance look ahead distance maximum",Increment:"1",Range:{high:"100",low:"1"},Units:"m",User:"Standard"},OA_BR_TYPE:{Description:"BendyRuler will search for clear path along the direction defined by this parameter",DisplayName:"Type of BendyRuler",User:"Standard",Values:{1:"Horizontal search",2:"Vertical search"}}},Fz={OA_DB_ALT_MIN:{Description:"OADatabase will reject obstacle's if vehicle's altitude above home is below this parameter, in a 3 meter radius around home. Set 0 to disable this feature.",DisplayName:"OADatabase minimum altitude above home before storing obstacles",Range:{high:"4",low:"0"},Units:"m",User:"Advanced"},OA_DB_BEAM_WIDTH:{Description:"Beam width of incoming lidar data",DisplayName:"OADatabase beam width",Range:{high:"10",low:"1"},RebootRequired:"True",Units:"deg",User:"Advanced"},OA_DB_DIST_MAX:{Description:"Maximum distance of objects held in database. Set to zero to disable the limits",DisplayName:"OADatabase Distance Maximum",Range:{high:"10",low:"0"},Units:"m",User:"Advanced"},OA_DB_EXPIRE:{Description:"OADatabase item timeout. The time an item will linger without any updates before it expires. Zero means never expires which is useful for a sent-once static environment but terrible for dynamic ones.",DisplayName:"OADatabase item timeout",Increment:"1",Range:{high:"127",low:"0"},Units:"s",User:"Advanced"},OA_DB_OUTPUT:{Description:"OADatabase output level to configure which database objects are sent to the ground station. All data is always available internally for avoidance algorithms.",DisplayName:"OADatabase output level",User:"Advanced",Values:{0:"Disabled",1:"Send only HIGH importance items",2:"Send HIGH and NORMAL importance items",3:"Send all items"}},OA_DB_QUEUE_SIZE:{Description:"OADatabase queue maximum number of points. This in an input buffer size. Larger means it can handle larger bursts of incoming data points to filter into the database. No impact on cpu, only RAM. Recommend larger for faster datalinks or for sensors that generate a lot of data.",DisplayName:"OADatabase queue maximum number of points",Range:{high:"200",low:"1"},RebootRequired:"True",User:"Advanced"},OA_DB_RADIUS_MIN:{Description:"Minimum radius of objects held in database",DisplayName:"OADatabase Minimum radius",Range:{high:"10",low:"0"},Units:"m",User:"Advanced"},OA_DB_SIZE:{Description:"OADatabase maximum number of points. Set to 0 to disable the OA Database. Larger means more points but is more cpu intensive to process",DisplayName:"OADatabase maximum number of points",Range:{high:"10000",low:"0"},RebootRequired:"True",User:"Advanced"}},kz={OSD_ARM_SCR:{Description:"Screen to be shown on Arm event. Zero to disable the feature.",DisplayName:"Arm screen",Range:{high:"4",low:"0"},User:"Standard"},OSD_BTN_DELAY:{Description:"Debounce time in ms for stick commanded parameter navigation.",DisplayName:"Button delay",Range:{high:"3000",low:"0"},User:"Advanced"},OSD_CELL_COUNT:{Description:"Used for average cell voltage display. -1 disables, 0 uses cell count autodetection for well charged LIPO/LIION batteries at connection, other values manually select cell count used.",DisplayName:"Battery cell count",Increment:"1",User:"Advanced"},OSD_CHAN:{Description:"This sets the channel used to switch different OSD screens.",DisplayName:"Screen switch transmitter channel",User:"Standard",Values:{0:"Disable",5:"Chan5",6:"Chan6",7:"Chan7",8:"Chan8",9:"Chan9",10:"Chan10",11:"Chan11",12:"Chan12",13:"Chan13",14:"Chan14",15:"Chan15",16:"Chan16"}},OSD_DSARM_SCR:{Description:"Screen to be shown on disarm event. Zero to disable the feature.",DisplayName:"Disarm screen",Range:{high:"4",low:"0"},User:"Standard"},OSD_FONT:{Description:"This sets which OSD font to use. It is an integer from 0 to the number of fonts available",DisplayName:"OSD Font",RebootRequired:"True",User:"Standard"},OSD_FS_SCR:{Description:"Screen to be shown on failsafe event. Zero to disable the feature.",DisplayName:"Failsafe screen",Range:{high:"4",low:"0"},User:"Standard"},OSD_H_OFFSET:{Description:"Sets horizontal offset of the osd inside image",DisplayName:"OSD horizontal offset",Range:{high:"63",low:"0"},RebootRequired:"True",User:"Standard"},OSD_MSG_TIME:{Description:"Sets message duration seconds",DisplayName:"Message display duration in seconds",Range:{high:"20",low:"1"},User:"Standard"},OSD_OPTIONS:{Bitmask:{0:"UseDecimalPack",1:"InvertedWindPointer",2:"InvertedAHRoll",3:"Convert feet to miles at 5280ft instead of 10000ft",4:"DisableCrosshair"},Description:"This sets options that change the display",DisplayName:"OSD Options",User:"Standard"},OSD_SW_METHOD:{Description:"This sets the method used to switch different OSD screens.",DisplayName:"Screen switch method",User:"Standard",Values:{0:"switch to next screen if channel value was changed",1:"select screen based on pwm ranges specified for each screen",2:"switch to next screen after low to high transition and every 1s while channel value is high"}},OSD_TYPE:{Description:"OSD type. TXONLY makes the OSD parameter selection available to other modules even if there is no native OSD support on the board, for instance CRSF.",DisplayName:"OSD type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"MAX7456",2:"SITL",3:"MSP",4:"TXONLY"}},OSD_UNITS:{Description:"Sets the units to use in displaying items",DisplayName:"Display Units",User:"Standard",Values:{0:"Metric",1:"Imperial",2:"SI",3:"Aviation"}},OSD_V_OFFSET:{Description:"Sets vertical offset of the osd inside image",DisplayName:"OSD vertical offset",Range:{high:"31",low:"0"},RebootRequired:"True",User:"Standard"},OSD_W_AVGCELLV:{Description:"Set level at which AVGCELLV item will flash",DisplayName:"AVGCELLV warn level",Range:{high:"100",low:"0"},User:"Standard"},OSD_W_BATVOLT:{Description:"Set level at which BAT_VOLT item will flash",DisplayName:"BAT_VOLT warn level",Range:{high:"100",low:"0"},User:"Standard"},OSD_W_NSAT:{Description:"Set level at which NSAT item will flash",DisplayName:"NSAT warn level",Range:{high:"30",low:"1"},User:"Standard"},OSD_W_RESTVOLT:{Description:"Set level at which RESTVOLT item will flash",DisplayName:"RESTVOLT warn level",Range:{high:"100",low:"0"},User:"Standard"},OSD_W_RSSI:{Description:"Set level at which RSSI item will flash",DisplayName:"RSSI warn level (in %)",Range:{high:"99",low:"0"},User:"Standard"},OSD_W_TERR:{Description:"Set level below which TER_HGT item will flash. -1 disables.",DisplayName:"Terrain warn level",Range:{high:"3000",low:"-1"},Units:"m",User:"Standard"}},Bz={OSD1_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD1_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD1_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD1_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD1_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD1_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD1_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD1_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD1_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD1_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD1_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD1_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD1_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD1_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD1_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD1_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD1_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD1_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD1_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD1_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD1_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD1_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD1_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD1_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD1_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD1_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD1_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD1_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD1_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD1_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD1_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD1_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD1_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD1_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD1_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD1_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD1_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD1_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD1_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD1_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD1_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD1_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD1_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD1_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD1_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD1_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD1_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD1_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD1_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD1_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD1_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD1_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD1_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD1_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD1_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD1_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD1_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD1_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD1_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD1_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD1_FONT:{Description:"Sets the font index for this screen (MSP DisplayPort only)",DisplayName:"Sets the font index for this screen (MSP DisplayPort only)",Range:{high:"15",low:"0"},User:"Standard"},OSD1_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD1_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD1_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD1_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD1_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD1_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD1_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD1_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD1_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD1_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD1_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD1_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD1_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD1_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD1_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD1_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD1_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD1_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD1_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD1_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD1_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD1_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD1_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD1_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD1_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD1_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD1_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD1_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD1_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD1_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD1_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD1_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD1_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD1_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD1_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD1_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD1_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD1_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD1_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD1_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD1_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD1_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD1_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD1_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD1_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD1_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD1_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD1_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD1_TXT_RES:{Description:"Sets the overlay text resolution for this screen to either LD 30x16 or HD 50x18 (MSP DisplayPort only)",DisplayName:"Sets the overlay text resolution (MSP DisplayPort only)",User:"Standard",Values:{0:"30x16",1:"50x18"}},OSD1_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD1_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD1_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD1_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD1_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD1_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD1_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD1_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD1_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD1_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},zz={OSD2_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD2_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD2_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD2_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD2_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD2_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD2_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD2_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD2_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD2_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD2_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD2_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD2_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD2_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD2_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD2_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD2_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD2_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD2_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD2_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD2_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD2_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD2_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD2_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD2_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD2_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD2_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD2_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD2_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD2_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD2_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD2_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD2_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD2_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD2_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD2_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD2_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD2_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD2_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD2_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD2_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD2_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD2_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD2_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD2_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD2_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD2_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD2_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD2_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD2_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD2_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD2_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD2_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD2_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD2_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD2_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD2_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD2_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD2_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD2_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD2_FONT:{Description:"Sets the font index for this screen (MSP DisplayPort only)",DisplayName:"Sets the font index for this screen (MSP DisplayPort only)",Range:{high:"15",low:"0"},User:"Standard"},OSD2_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD2_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD2_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD2_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD2_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD2_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD2_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD2_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD2_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD2_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD2_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD2_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD2_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD2_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD2_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD2_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD2_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD2_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD2_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD2_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD2_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD2_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD2_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD2_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD2_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD2_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD2_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD2_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD2_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD2_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD2_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD2_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD2_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD2_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD2_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD2_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD2_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD2_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD2_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD2_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD2_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD2_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD2_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD2_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD2_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD2_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD2_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD2_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD2_TXT_RES:{Description:"Sets the overlay text resolution for this screen to either LD 30x16 or HD 50x18 (MSP DisplayPort only)",DisplayName:"Sets the overlay text resolution (MSP DisplayPort only)",User:"Standard",Values:{0:"30x16",1:"50x18"}},OSD2_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD2_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD2_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD2_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD2_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD2_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD2_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD2_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD2_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD2_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},Zz={OSD3_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD3_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD3_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD3_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD3_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD3_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD3_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD3_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD3_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD3_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD3_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD3_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD3_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD3_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD3_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD3_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD3_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD3_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD3_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD3_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD3_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD3_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD3_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD3_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD3_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD3_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD3_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD3_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD3_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD3_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD3_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD3_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD3_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD3_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD3_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD3_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD3_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD3_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD3_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD3_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD3_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD3_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD3_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD3_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD3_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD3_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD3_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD3_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD3_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD3_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD3_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD3_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD3_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD3_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD3_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD3_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD3_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD3_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD3_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD3_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD3_FONT:{Description:"Sets the font index for this screen (MSP DisplayPort only)",DisplayName:"Sets the font index for this screen (MSP DisplayPort only)",Range:{high:"15",low:"0"},User:"Standard"},OSD3_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD3_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD3_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD3_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD3_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD3_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD3_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD3_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD3_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD3_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD3_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD3_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD3_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD3_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD3_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD3_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD3_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD3_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD3_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD3_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD3_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD3_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD3_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD3_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD3_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD3_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD3_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD3_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD3_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD3_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD3_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD3_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD3_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD3_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD3_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD3_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD3_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD3_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD3_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD3_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD3_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD3_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD3_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD3_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD3_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD3_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD3_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD3_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD3_TXT_RES:{Description:"Sets the overlay text resolution for this screen to either LD 30x16 or HD 50x18 (MSP DisplayPort only)",DisplayName:"Sets the overlay text resolution (MSP DisplayPort only)",User:"Standard",Values:{0:"30x16",1:"50x18"}},OSD3_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD3_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD3_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD3_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD3_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD3_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD3_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD3_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD3_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD3_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},Gz={OSD4_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD4_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD4_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD4_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD4_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD4_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD4_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD4_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD4_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD4_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD4_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD4_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD4_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD4_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD4_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD4_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD4_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD4_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD4_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD4_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD4_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD4_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD4_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD4_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD4_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD4_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD4_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD4_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD4_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD4_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD4_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD4_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD4_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD4_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD4_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD4_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD4_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD4_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD4_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD4_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD4_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD4_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD4_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD4_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD4_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD4_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD4_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD4_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD4_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD4_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD4_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD4_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD4_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD4_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD4_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD4_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD4_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD4_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD4_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD4_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD4_FONT:{Description:"Sets the font index for this screen (MSP DisplayPort only)",DisplayName:"Sets the font index for this screen (MSP DisplayPort only)",Range:{high:"15",low:"0"},User:"Standard"},OSD4_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD4_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD4_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD4_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD4_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD4_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD4_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD4_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD4_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD4_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD4_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD4_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD4_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD4_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD4_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD4_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD4_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD4_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD4_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD4_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD4_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD4_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD4_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD4_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD4_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD4_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD4_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD4_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD4_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD4_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD4_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD4_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD4_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD4_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD4_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD4_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD4_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD4_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD4_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD4_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD4_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD4_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD4_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD4_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD4_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD4_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD4_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD4_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD4_TXT_RES:{Description:"Sets the overlay text resolution for this screen to either LD 30x16 or HD 50x18 (MSP DisplayPort only)",DisplayName:"Sets the overlay text resolution (MSP DisplayPort only)",User:"Standard",Values:{0:"30x16",1:"50x18"}},OSD4_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD4_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD4_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD4_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD4_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD4_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD4_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD4_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD4_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD4_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},Wz={OSD5_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD5_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD5_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_SAVE_X:{Description:"Horizontal position of Save button on screen",DisplayName:"SAVE_X",Range:{high:"25",low:"0"},User:"Advanced"},OSD5_SAVE_Y:{Description:"Vertical position of Save button on screen",DisplayName:"SAVE_Y",Range:{high:"15",low:"0"},User:"Advanced"}},Xz={OSD5_PARAM1_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM1_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM1_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM1_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM1_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM1_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM1_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM1_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM1_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM1_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},Yz={OSD5_PARAM2_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM2_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM2_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM2_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM2_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM2_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM2_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM2_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM2_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM2_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},$z={OSD5_PARAM3_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM3_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM3_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM3_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM3_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM3_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM3_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM3_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM3_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM3_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},qz={OSD5_PARAM4_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM4_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM4_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM4_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM4_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM4_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM4_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM4_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM4_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM4_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},Kz={OSD5_PARAM5_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM5_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM5_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM5_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM5_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM5_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM5_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM5_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM5_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM5_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},jz={OSD5_PARAM6_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM6_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM6_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM6_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM6_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM6_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM6_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM6_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM6_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM6_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},Qz={OSD5_PARAM7_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM7_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM7_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM7_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM7_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM7_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM7_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM7_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM7_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM7_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},Jz={OSD5_PARAM8_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM8_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM8_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM8_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM8_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM8_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM8_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM8_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM8_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM8_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},eZ={OSD5_PARAM9_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM9_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM9_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM9_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM9_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM9_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM9_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM9_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM9_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM9_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},tZ={OSD6_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD6_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD6_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_SAVE_X:{Description:"Horizontal position of Save button on screen",DisplayName:"SAVE_X",Range:{high:"25",low:"0"},User:"Advanced"},OSD6_SAVE_Y:{Description:"Vertical position of Save button on screen",DisplayName:"SAVE_Y",Range:{high:"15",low:"0"},User:"Advanced"}},iZ={OSD6_PARAM1_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM1_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM1_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM1_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM1_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM1_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM1_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM1_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM1_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM1_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},aZ={OSD6_PARAM2_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM2_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM2_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM2_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM2_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM2_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM2_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM2_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM2_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM2_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},rZ={OSD6_PARAM3_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM3_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM3_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM3_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM3_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM3_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM3_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM3_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM3_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM3_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},nZ={OSD6_PARAM4_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM4_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM4_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM4_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM4_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM4_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM4_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM4_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM4_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM4_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},oZ={OSD6_PARAM5_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM5_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM5_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM5_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM5_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM5_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM5_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM5_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM5_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM5_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},sZ={OSD6_PARAM6_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM6_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM6_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM6_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM6_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM6_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM6_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM6_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM6_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM6_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},lZ={OSD6_PARAM7_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM7_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM7_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM7_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM7_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM7_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM7_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM7_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM7_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM7_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},cZ={OSD6_PARAM8_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM8_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM8_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM8_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM8_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM8_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM8_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM8_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM8_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM8_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},dZ={OSD6_PARAM9_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM9_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM9_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM9_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM9_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM9_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM9_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM9_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM9_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM9_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},CZ={PLND_ACC_P_NSE:{Description:"Kalman Filter Accelerometer Noise, higher values weight the input from the camera more, accels less",DisplayName:"Kalman Filter Accelerometer Noise",Range:{high:"5",low:"0.5"},User:"Advanced"},PLND_ALT_MAX:{Description:"Vehicle will continue landing vertically until this height if target is not found. Below this height if landing target is not found, landing retry/failsafe might be attempted. This needs a rangefinder to work. Set to zero to disable this.",DisplayName:"PrecLand maximum alt for retry",Range:{high:"50",low:"0"},Units:"m"},PLND_ALT_MIN:{Description:"Vehicle will continue landing vertically even if target is lost below this height. This needs a rangefinder to work. Set to zero to disable this.",DisplayName:"PrecLand minimum alt for retry",Range:{high:"5",low:"0"},Units:"m"},PLND_BUS:{Description:"Precland sensor bus for I2C sensors.",DisplayName:"Sensor Bus",User:"Advanced",Values:{0:"InternalI2C",1:"ExternalI2C","-1":"DefaultBus"}},PLND_CAM_POS_X:{Description:"X position of the camera in body frame. Positive X is forward of the origin.",DisplayName:"Camera X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},PLND_CAM_POS_Y:{Description:"Y position of the camera in body frame. Positive Y is to the right of the origin.",DisplayName:"Camera Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},PLND_CAM_POS_Z:{Description:"Z position of the camera in body frame. Positive Z is down from the origin.",DisplayName:"Camera Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},PLND_ENABLED:{Description:"Precision Land enabled/disabled",DisplayName:"Precision Land enabled/disabled",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},PLND_EST_TYPE:{Description:"Specifies the estimation method to be used",DisplayName:"Precision Land Estimator Type",User:"Advanced",Values:{0:"RawSensor",1:"KalmanFilter"}},PLND_LAG:{Description:"Precision Landing sensor lag, to cope with variable landing_target latency",DisplayName:"Precision Landing sensor lag",Increment:"1",Range:{high:"0.250",low:"0.02"},RebootRequired:"True",Units:"s",User:"Advanced"},PLND_LAND_OFS_X:{Description:"Desired landing position of the camera forward of the target in vehicle body frame",DisplayName:"Land offset forward",Increment:"1",Range:{high:"20",low:"-20"},Units:"cm",User:"Advanced"},PLND_LAND_OFS_Y:{Description:"desired landing position of the camera right of the target in vehicle body frame",DisplayName:"Land offset right",Increment:"1",Range:{high:"20",low:"-20"},Units:"cm",User:"Advanced"},PLND_OPTIONS:{Bitmask:{0:"Moving Landing Target"},Description:"Precision Landing Extra Options",DisplayName:"Precision Landing Extra Options",User:"Advanced"},PLND_ORIENT:{Description:"Orientation of camera/sensor on body",DisplayName:"Camera Orientation",RebootRequired:"True",User:"Advanced",Values:{0:"Forward",4:"Back",25:"Down"}},PLND_RET_BEHAVE:{Description:"Prec Land will do the action selected by this parameter if a retry to a landing is needed",DisplayName:"PrecLand retry behaviour",Values:{0:"Go to the last location where landing target was detected",1:"Go towards the approximate location of the detected landing target"}},PLND_RET_MAX:{Description:"PrecLand Maximum number of retires for a failed landing. Set to zero to disable landing retry.",DisplayName:"PrecLand Maximum number of retires for a failed landing",Increment:"1",Range:{high:"10",low:"0"}},PLND_STRICT:{Description:"How strictly should the vehicle land on the target if target is lost",DisplayName:"PrecLand strictness",Values:{0:"Land Vertically (Not strict)",1:"Retry Landing(Normal Strictness)",2:"Do not land (just Hover) (Very Strict)"}},PLND_TIMEOUT:{Description:"Time for which vehicle continues descend even if target is lost. After this time period, vehicle will attemp a landing retry depending on PLND_STRICT parameter.",DisplayName:"PrecLand retry timeout",Range:{high:"20",low:"0"},Units:"s"},PLND_TYPE:{Description:"Precision Land Type",DisplayName:"Precision Land Type",User:"Advanced",Values:{0:"None",1:"CompanionComputer",2:"IRLock",3:"SITL_Gazebo",4:"SITL"}},PLND_XY_DIST_MAX:{Description:"The vehicle will not start descending if the landing target is detected and it is further than this many meters away. Set 0 to always descend.",DisplayName:"Precision Landing maximum distance to target before descending",Range:{high:"10",low:"0"},Units:"m",User:"Advanced"},PLND_YAW_ALIGN:{Description:"Yaw angle from body x-axis to sensor x-axis.",DisplayName:"Sensor yaw alignment",Increment:"10",Range:{high:"36000",low:"0"},Units:"cdeg",User:"Advanced"}},mZ={PRX_FILT:{Description:"Cutoff frequency for low pass filter applied to each face in the proximity boundary",DisplayName:"Proximity filter cutoff frequency",Range:{high:"20",low:"0"},Units:"Hz",User:"Advanced"},PRX_IGN_GND:{Description:"Ignore proximity data that is within 1 meter of the ground below the vehicle. This requires a downward facing rangefinder",DisplayName:"Proximity sensor land detection",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},PRX_LOG_RAW:{Description:"Set this parameter to one if logging unfiltered(raw) distances from sensor should be enabled",DisplayName:"Proximity raw distances log",User:"Advanced",Values:{0:"Off",1:"On"}}},uZ={PRX1_IGN_ANG1:{Description:"Proximity sensor ignore angle 1",DisplayName:"Proximity sensor ignore angle 1",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX1_IGN_ANG2:{Description:"Proximity sensor ignore angle 2",DisplayName:"Proximity sensor ignore angle 2",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX1_IGN_ANG3:{Description:"Proximity sensor ignore angle 3",DisplayName:"Proximity sensor ignore angle 3",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX1_IGN_ANG4:{Description:"Proximity sensor ignore angle 4",DisplayName:"Proximity sensor ignore angle 4",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX1_IGN_WID1:{Description:"Proximity sensor ignore width 1",DisplayName:"Proximity sensor ignore width 1",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX1_IGN_WID2:{Description:"Proximity sensor ignore width 2",DisplayName:"Proximity sensor ignore width 2",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX1_IGN_WID3:{Description:"Proximity sensor ignore width 3",DisplayName:"Proximity sensor ignore width 3",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX1_IGN_WID4:{Description:"Proximity sensor ignore width 4",DisplayName:"Proximity sensor ignore width 4",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX1_MAX:{Description:"Maximum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",DisplayName:"Proximity maximum range",Range:{high:"500",low:"0"},Units:"m",User:"Advanced"},PRX1_MIN:{Description:"Minimum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",DisplayName:"Proximity minimum range",Range:{high:"500",low:"0"},Units:"m",User:"Advanced"},PRX1_ORIENT:{Description:"Proximity sensor orientation",DisplayName:"Proximity sensor orientation",User:"Standard",Values:{0:"Default",1:"Upside Down"}},PRX1_TYPE:{Description:"What type of proximity sensor is connected",DisplayName:"Proximity type",RebootRequired:"True",User:"Standard",Values:{0:"None",2:"MAVLink",3:"TeraRangerTower",4:"RangeFinder",5:"RPLidarA2",6:"TeraRangerTowerEvo",7:"LightwareSF40c",8:"LightwareSF45B",10:"SITL",12:"AirSimSITL",13:"CygbotD1"}},PRX1_YAW_CORR:{Description:"Proximity sensor yaw correction",DisplayName:"Proximity sensor yaw correction",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"}},hZ={PRX2_IGN_ANG1:{Description:"Proximity sensor ignore angle 1",DisplayName:"Proximity sensor ignore angle 1",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX2_IGN_ANG2:{Description:"Proximity sensor ignore angle 2",DisplayName:"Proximity sensor ignore angle 2",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX2_IGN_ANG3:{Description:"Proximity sensor ignore angle 3",DisplayName:"Proximity sensor ignore angle 3",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX2_IGN_ANG4:{Description:"Proximity sensor ignore angle 4",DisplayName:"Proximity sensor ignore angle 4",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX2_IGN_WID1:{Description:"Proximity sensor ignore width 1",DisplayName:"Proximity sensor ignore width 1",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX2_IGN_WID2:{Description:"Proximity sensor ignore width 2",DisplayName:"Proximity sensor ignore width 2",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX2_IGN_WID3:{Description:"Proximity sensor ignore width 3",DisplayName:"Proximity sensor ignore width 3",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX2_IGN_WID4:{Description:"Proximity sensor ignore width 4",DisplayName:"Proximity sensor ignore width 4",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX2_MAX:{Description:"Maximum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",DisplayName:"Proximity maximum range",Range:{high:"500",low:"0"},Units:"m",User:"Advanced"},PRX2_MIN:{Description:"Minimum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",DisplayName:"Proximity minimum range",Range:{high:"500",low:"0"},Units:"m",User:"Advanced"},PRX2_ORIENT:{Description:"Proximity sensor orientation",DisplayName:"Proximity sensor orientation",User:"Standard",Values:{0:"Default",1:"Upside Down"}},PRX2_TYPE:{Description:"What type of proximity sensor is connected",DisplayName:"Proximity type",RebootRequired:"True",User:"Standard",Values:{0:"None",2:"MAVLink",3:"TeraRangerTower",4:"RangeFinder",5:"RPLidarA2",6:"TeraRangerTowerEvo",7:"LightwareSF40c",8:"LightwareSF45B",10:"SITL",12:"AirSimSITL",13:"CygbotD1"}},PRX2_YAW_CORR:{Description:"Proximity sensor yaw correction",DisplayName:"Proximity sensor yaw correction",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"}},pZ={PRX3_IGN_ANG1:{Description:"Proximity sensor ignore angle 1",DisplayName:"Proximity sensor ignore angle 1",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX3_IGN_ANG2:{Description:"Proximity sensor ignore angle 2",DisplayName:"Proximity sensor ignore angle 2",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX3_IGN_ANG3:{Description:"Proximity sensor ignore angle 3",DisplayName:"Proximity sensor ignore angle 3",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX3_IGN_ANG4:{Description:"Proximity sensor ignore angle 4",DisplayName:"Proximity sensor ignore angle 4",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX3_IGN_WID1:{Description:"Proximity sensor ignore width 1",DisplayName:"Proximity sensor ignore width 1",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX3_IGN_WID2:{Description:"Proximity sensor ignore width 2",DisplayName:"Proximity sensor ignore width 2",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX3_IGN_WID3:{Description:"Proximity sensor ignore width 3",DisplayName:"Proximity sensor ignore width 3",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX3_IGN_WID4:{Description:"Proximity sensor ignore width 4",DisplayName:"Proximity sensor ignore width 4",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX3_MAX:{Description:"Maximum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",DisplayName:"Proximity maximum range",Range:{high:"500",low:"0"},Units:"m",User:"Advanced"},PRX3_MIN:{Description:"Minimum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",DisplayName:"Proximity minimum range",Range:{high:"500",low:"0"},Units:"m",User:"Advanced"},PRX3_ORIENT:{Description:"Proximity sensor orientation",DisplayName:"Proximity sensor orientation",User:"Standard",Values:{0:"Default",1:"Upside Down"}},PRX3_TYPE:{Description:"What type of proximity sensor is connected",DisplayName:"Proximity type",RebootRequired:"True",User:"Standard",Values:{0:"None",2:"MAVLink",3:"TeraRangerTower",4:"RangeFinder",5:"RPLidarA2",6:"TeraRangerTowerEvo",7:"LightwareSF40c",8:"LightwareSF45B",10:"SITL",12:"AirSimSITL",13:"CygbotD1"}},PRX3_YAW_CORR:{Description:"Proximity sensor yaw correction",DisplayName:"Proximity sensor yaw correction",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"}},fZ={PRX4_IGN_ANG1:{Description:"Proximity sensor ignore angle 1",DisplayName:"Proximity sensor ignore angle 1",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX4_IGN_ANG2:{Description:"Proximity sensor ignore angle 2",DisplayName:"Proximity sensor ignore angle 2",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX4_IGN_ANG3:{Description:"Proximity sensor ignore angle 3",DisplayName:"Proximity sensor ignore angle 3",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX4_IGN_ANG4:{Description:"Proximity sensor ignore angle 4",DisplayName:"Proximity sensor ignore angle 4",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX4_IGN_WID1:{Description:"Proximity sensor ignore width 1",DisplayName:"Proximity sensor ignore width 1",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX4_IGN_WID2:{Description:"Proximity sensor ignore width 2",DisplayName:"Proximity sensor ignore width 2",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX4_IGN_WID3:{Description:"Proximity sensor ignore width 3",DisplayName:"Proximity sensor ignore width 3",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX4_IGN_WID4:{Description:"Proximity sensor ignore width 4",DisplayName:"Proximity sensor ignore width 4",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX4_MAX:{Description:"Maximum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",DisplayName:"Proximity maximum range",Range:{high:"500",low:"0"},Units:"m",User:"Advanced"},PRX4_MIN:{Description:"Minimum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",DisplayName:"Proximity minimum range",Range:{high:"500",low:"0"},Units:"m",User:"Advanced"},PRX4_ORIENT:{Description:"Proximity sensor orientation",DisplayName:"Proximity sensor orientation",User:"Standard",Values:{0:"Default",1:"Upside Down"}},PRX4_TYPE:{Description:"What type of proximity sensor is connected",DisplayName:"Proximity type",RebootRequired:"True",User:"Standard",Values:{0:"None",2:"MAVLink",3:"TeraRangerTower",4:"RangeFinder",5:"RPLidarA2",6:"TeraRangerTowerEvo",7:"LightwareSF40c",8:"LightwareSF45B",10:"SITL",12:"AirSimSITL",13:"CygbotD1"}},PRX4_YAW_CORR:{Description:"Proximity sensor yaw correction",DisplayName:"Proximity sensor yaw correction",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"}},VZ={PSC_ACCZ_D:{Description:"Acceleration (vertical) controller D gain. Compensates for short-term change in desired vertical acceleration vs actual acceleration",DisplayName:"Acceleration (vertical) controller D gain",Range:{high:"0.400",low:"0.000"},User:"Standard"},PSC_ACCZ_FF:{Description:"Acceleration (vertical) controller feed forward",DisplayName:"Acceleration (vertical) controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0"},User:"Standard"},PSC_ACCZ_FLTD:{Description:"Acceleration (vertical) controller derivative frequency in Hz",DisplayName:"Acceleration (vertical) controller derivative frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},PSC_ACCZ_FLTE:{Description:"Acceleration (vertical) controller error frequency in Hz",DisplayName:"Acceleration (vertical) controller error frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},PSC_ACCZ_FLTT:{Description:"Acceleration (vertical) controller target frequency in Hz",DisplayName:"Acceleration (vertical) controller target frequency in Hz",Increment:"1",Range:{high:"50",low:"1"},Units:"Hz",User:"Standard"},PSC_ACCZ_I:{Description:"Acceleration (vertical) controller I gain. Corrects long-term difference in desired vertical acceleration and actual acceleration",DisplayName:"Acceleration (vertical) controller I gain",Range:{high:"3.000",low:"0.000"},User:"Standard"},PSC_ACCZ_IMAX:{Description:"Acceleration (vertical) controller I gain maximum. Constrains the maximum pwm that the I term will generate",DisplayName:"Acceleration (vertical) controller I gain maximum",Range:{high:"1000",low:"0"},Units:"d%",User:"Standard"},PSC_ACCZ_P:{Description:"Acceleration (vertical) controller P gain. Converts the difference between desired vertical acceleration and actual acceleration into a motor output",DisplayName:"Acceleration (vertical) controller P gain",Increment:"0.05",Range:{high:"1.500",low:"0.200"},User:"Standard"},PSC_ACCZ_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Accel (vertical) slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},PSC_ACC_XY_FILT:{Description:"Lower values will slow the response of the navigation controller and reduce twitchiness",DisplayName:"XY Acceleration filter cutoff frequency",Increment:"0.1",Range:{high:"5",low:"0.5"},Units:"Hz",User:"Advanced"},PSC_ANGLE_MAX:{Description:"Maximum lean angle autopilot can request. Set to zero to use ANGLE_MAX parameter value",DisplayName:"Position Control Angle Max",Increment:"1",Range:{high:"45",low:"0"},Units:"deg",User:"Advanced"},PSC_JERK_XY:{Description:"Jerk limit of the horizontal kinematic path generation used to determine how quickly the aircraft varies the acceleration target",DisplayName:"Jerk limit for the horizontal kinematic input shaping",Increment:"1",Range:{high:"20",low:"1"},Units:"m/s/s/s",User:"Advanced"},PSC_JERK_Z:{Description:"Jerk limit of the vertical kinematic path generation used to determine how quickly the aircraft varies the acceleration target",DisplayName:"Jerk limit for the vertical kinematic input shaping",Increment:"1",Range:{high:"50",low:"5"},Units:"m/s/s/s",User:"Advanced"},PSC_POSXY_P:{Description:"Position controller P gain. Converts the distance (in the latitude direction) to the target location into a desired speed which is then passed to the loiter latitude rate controller",DisplayName:"Position (horizontal) controller P gain",Range:{high:"2.000",low:"0.500"},User:"Standard"},PSC_POSZ_P:{Description:"Position (vertical) controller P gain. Converts the difference between the desired altitude and actual altitude into a climb or descent rate which is passed to the throttle rate controller",DisplayName:"Position (vertical) controller P gain",Range:{high:"3.000",low:"1.000"},User:"Standard"},PSC_VELXY_D:{Description:"Velocity (horizontal) D gain. Corrects short-term changes in velocity",DisplayName:"Velocity (horizontal) D gain",Increment:"0.001",Range:{high:"1.00",low:"0.00"},User:"Advanced"},PSC_VELXY_FF:{Description:"Velocity (horizontal) feed forward gain. Converts the difference between desired velocity to a target acceleration",DisplayName:"Velocity (horizontal) feed forward gain",Increment:"0.01",Range:{high:"6",low:"0"},User:"Advanced"},PSC_VELXY_FLTD:{Description:"Velocity (horizontal) input filter. This filter (in Hz) is applied to the input for D term",DisplayName:"Velocity (horizontal) input filter",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},PSC_VELXY_FLTE:{Description:"Velocity (horizontal) input filter. This filter (in Hz) is applied to the input for P and I terms",DisplayName:"Velocity (horizontal) input filter",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},PSC_VELXY_I:{Description:"Velocity (horizontal) I gain. Corrects long-term difference between desired and actual velocity to a target acceleration",DisplayName:"Velocity (horizontal) I gain",Increment:"0.01",Range:{high:"1.00",low:"0.02"},User:"Advanced"},PSC_VELXY_IMAX:{Description:"Velocity (horizontal) integrator maximum. Constrains the target acceleration that the I gain will output",DisplayName:"Velocity (horizontal) integrator maximum",Increment:"10",Range:{high:"4500",low:"0"},Units:"cm/s/s",User:"Advanced"},PSC_VELXY_P:{Description:"Velocity (horizontal) P gain. Converts the difference between desired and actual velocity to a target acceleration",DisplayName:"Velocity (horizontal) P gain",Increment:"0.1",Range:{high:"6.0",low:"0.1"},User:"Advanced"},PSC_VELZ_D:{Description:"Velocity (vertical) controller D gain. Corrects short-term changes in velocity",DisplayName:"Velocity (vertical) controller D gain",Increment:"0.001",Range:{high:"1.00",low:"0.00"},User:"Advanced"},PSC_VELZ_FF:{Description:"Velocity (vertical) controller Feed Forward gain. Produces an output that is proportional to the magnitude of the target",DisplayName:"Velocity (vertical) controller Feed Forward gain",Increment:"0.01",Range:{high:"1",low:"0"},User:"Advanced"},PSC_VELZ_FLTD:{Description:"Velocity (vertical) input filter for D term. This filter (in Hz) is applied to the input for D terms",DisplayName:"Velocity (vertical) input filter for D term",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},PSC_VELZ_FLTE:{Description:"Velocity (vertical) error filter. This filter (in Hz) is applied to the input for P and I terms",DisplayName:"Velocity (vertical) error filter",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},PSC_VELZ_I:{Description:"Velocity (vertical) controller I gain. Corrects long-term difference in desired velocity to a target acceleration",DisplayName:"Velocity (vertical) controller I gain",Increment:"0.01",Range:{high:"1.00",low:"0.02"},User:"Advanced"},PSC_VELZ_IMAX:{Description:"Velocity (vertical) controller I gain maximum. Constrains the target acceleration that the I gain will output",DisplayName:"Velocity (vertical) controller I gain maximum",Range:{high:"8.000",low:"1.000"},User:"Standard"},PSC_VELZ_P:{Description:"Velocity (vertical) controller P gain. Converts the difference between desired vertical speed and actual speed into a desired acceleration that is passed to the throttle acceleration controller",DisplayName:"Velocity (vertical) controller P gain",Range:{high:"8.000",low:"1.000"},User:"Standard"}},LZ={RALLY_INCL_HOME:{Description:"Controls if Home is included as a Rally point (i.e. as a safe landing place) for RTL",DisplayName:"Rally Include Home",User:"Standard",Values:{0:"DoNotIncludeHome",1:"IncludeHome"}},RALLY_LIMIT_KM:{Description:"Maximum distance to rally point. If the closest rally point is more than this number of kilometers from the current position and the home location is closer than any of the rally points from the current position then do RTL to home rather than to the closest rally point. This prevents a leftover rally point from a different airfield being used accidentally. If this is set to 0 then the closest rally point is always used.",DisplayName:"Rally Limit",Increment:"0.1",Units:"km",User:"Advanced"},RALLY_TOTAL:{Description:"Number of rally points currently loaded",DisplayName:"Rally Total",User:"Advanced"}},HZ={RC_OPTIONS:{Bitmask:{0:"Ignore RC Receiver",1:"Ignore MAVLink Overrides",2:"Ignore Receiver Failsafe bit but allow other RC failsafes if setup",3:"FPort Pad",4:"Log RC input bytes",5:"Arming check throttle for 0 input",6:"Skip the arming check for neutral Roll/Pitch/Yaw sticks",7:"Allow Switch reverse",8:"Use passthrough for CRSF telemetry",9:"Suppress CRSF mode/rate message for ELRS systems",10:"Enable multiple receiver support",11:"CRSF RSSI shows Link Quality"},Description:"RC input options",DisplayName:"RC options",User:"Advanced"},RC_OVERRIDE_TIME:{Description:"Timeout after which RC overrides will no longer be used, and RC input will resume, 0 will disable RC overrides, -1 will never timeout, and continue using overrides until they are disabled",DisplayName:"RC override timeout",Range:{high:"120.0",low:"0.0"},Units:"s",User:"Advanced"},RC_PROTOCOLS:{Bitmask:{0:"All",1:"PPM",2:"IBUS",3:"SBUS",4:"SBUS_NI",5:"DSM",6:"SUMD",7:"SRXL",8:"SRXL2",9:"CRSF",10:"ST24",11:"FPORT",12:"FPORT2",13:"FastSBUS"},Description:"Bitmask of enabled RC protocols. Allows narrowing the protocol detection to only specific types of RC receivers which can avoid issues with incorrect detection. Set to 1 to enable all protocols.",DisplayName:"RC protocols enabled",User:"Advanced"}},MZ={RC10_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC10_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC10_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC10_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC10_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC10_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},gZ={RC11_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC11_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC11_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC11_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC11_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC11_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},AZ={RC12_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC12_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC12_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC12_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC12_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC12_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},vZ={RC13_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC13_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC13_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC13_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC13_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC13_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},_Z={RC14_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC14_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC14_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC14_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC14_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC14_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},SZ={RC15_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC15_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC15_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC15_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC15_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC15_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},DZ={RC16_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC16_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC16_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC16_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC16_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC16_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},yZ={RC1_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC1_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC1_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC1_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC1_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC1_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},RZ={RC2_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC2_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC2_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC2_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC2_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC2_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},bZ={RC3_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC3_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC3_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC3_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC3_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC3_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},NZ={RC4_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC4_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC4_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC4_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC4_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC4_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},wZ={RC5_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC5_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC5_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC5_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC5_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC5_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},TZ={RC6_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC6_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC6_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC6_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC6_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC6_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},EZ={RC7_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC7_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC7_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC7_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC7_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC7_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},PZ={RC8_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC8_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC8_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC8_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC8_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC8_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},IZ={RC9_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC9_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC9_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC9_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",2:"Flip",3:"Simple Mode",4:"RTL",5:"Save Trim",7:"Save WP",9:"Camera Trigger",10:"RangeFinder",11:"Fence",13:"Super Simple Mode",14:"Acro Trainer",15:"Sprayer",16:"Auto",17:"AutoTune",18:"Land",19:"Gripper",21:"Parachute Enable",22:"Parachute Release",23:"Parachute 3pos",24:"Auto Mission Reset",25:"AttCon Feed Forward",26:"AttCon Accel Limits",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Copter Sound",31:"Motor Emergency Stop",32:"Motor Interlock",33:"Brake",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",37:"Throw",38:"ADSB Avoidance En",39:"PrecLoiter",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",43:"InvertedFlight",44:"Winch Enable",46:"RC Override Enable",47:"User Function 1",48:"User Function 2",49:"User Function 3",52:"Acro",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",60:"ZigZag",61:"ZigZag SaveWP",62:"Compass Learn",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",68:"Stabilize",69:"PosHold",70:"AltHold",71:"FlowHold",72:"Circle",73:"Drift",75:"SurfaceTrackingUpDown",76:"Standby Mode",78:"RunCam Control",79:"RunCam OSD Control",80:"VisOdom Align",81:"Disarm",83:"ZigZag Auto",84:"Air Mode",85:"Generator",90:"EKF Pos Source",94:"VTX Power",99:"AUTO RTL",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",151:"Turtle",152:"simple heading reset",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with AirMode (4.2 and higher)",158:"Optflow Calibration",159:"Force Flying",161:"Turbine Start(heli)",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC9_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC9_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},OZ={RCMAP_PITCH:{Description:"Pitch channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Pitch is normally on channel 2, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Pitch channel",Increment:"1",Range:{high:"16",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_ROLL:{Description:"Roll channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Roll is normally on channel 1, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Roll channel",Increment:"1",Range:{high:"16",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_THROTTLE:{Description:"Throttle channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Throttle is normally on channel 3, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Throttle channel",Increment:"1",Range:{high:"16",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_YAW:{Description:"Yaw channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Yaw (also known as rudder) is normally on channel 4, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Yaw channel",Increment:"1",Range:{high:"16",low:"1"},RebootRequired:"True",User:"Advanced"}},UZ={RELAY_DEFAULT:{Description:"The state of the relay on boot.",DisplayName:"Default relay state",User:"Standard",Values:{0:"Off",1:"On",2:"NoChange"}},RELAY_PIN:{Description:`Digital pin number for first relay control. This is the pin used for camera shutter control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"First Relay Pin",User:"Standard",Values:{27:"BBBMini Pin P8.17",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN2:{Description:`Digital pin number for 2nd relay control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Second Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",65:"BBBMini Pin P8.18",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN3:{Description:`Digital pin number for 3rd relay control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Third Relay Pin",User:"Standard",Values:{22:"BBBMini Pin P8.19",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN4:{Description:`Digital pin number for 4th relay control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Fourth Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",63:"BBBMini Pin P8.34",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN5:{Description:`Digital pin number for 5th relay control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Fifth Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",62:"BBBMini Pin P8.13",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN6:{Description:`Digital pin number for 6th relay control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Sixth Relay Pin",User:"Standard",Values:{37:"BBBMini Pin P8.14",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}}},xZ={RNGFND1_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND1_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND1_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND1_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND1_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND1_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND1_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND1_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND1_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND1_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND1_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND1_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND1_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND1_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND1_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND1_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND1_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND1_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},FZ={RNGFND2_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND2_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND2_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND2_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND2_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND2_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND2_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND2_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND2_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND2_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND2_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND2_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND2_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND2_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND2_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND2_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND2_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND2_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},kZ={RNGFND3_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND3_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND3_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND3_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND3_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND3_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND3_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND3_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND3_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND3_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND3_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND3_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND3_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND3_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND3_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND3_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND3_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND3_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},BZ={RNGFND4_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND4_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND4_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND4_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND4_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND4_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND4_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND4_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND4_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND4_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND4_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND4_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND4_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND4_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND4_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND4_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND4_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND4_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},zZ={RNGFND5_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND5_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND5_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND5_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND5_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND5_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND5_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND5_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND5_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND5_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND5_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND5_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND5_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND5_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND5_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND5_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND5_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND5_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},ZZ={RNGFND6_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND6_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND6_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND6_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND6_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND6_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND6_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND6_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND6_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND6_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND6_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND6_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND6_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND6_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND6_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND6_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND6_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND6_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},GZ={RNGFND7_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND7_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND7_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND7_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND7_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND7_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND7_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND7_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND7_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND7_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND7_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND7_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND7_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND7_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND7_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND7_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND7_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND7_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},WZ={RNGFND8_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND8_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND8_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND8_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND8_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND8_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND8_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND8_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND8_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND8_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND8_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND8_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND8_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND8_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND8_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND8_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND8_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND8_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},XZ={RNGFND9_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND9_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND9_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND9_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND9_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND9_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND9_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND9_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND9_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND9_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND9_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND9_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND9_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND9_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND9_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND9_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND9_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND9_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},YZ={RNGFNDA_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFNDA_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFNDA_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFNDA_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFNDA_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFNDA_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFNDA_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFNDA_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFNDA_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFNDA_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFNDA_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFNDA_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFNDA_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFNDA_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFNDA_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFNDA_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFNDA_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFNDA_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},$Z={RPM1_ESC_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which support ESC rpm telemetry. RPM telemetry of the selected channels will be averaged",DisplayName:"Bitmask of ESC telemetry channels to average",User:"Advanced"},RPM1_MAX:{Description:"Maximum RPM to report. Only used on type = GPIO.",DisplayName:"Maximum RPM",Increment:"1",User:"Standard"},RPM1_MIN:{Description:"Minimum RPM to report. Only used on type = GPIO.",DisplayName:"Minimum RPM",Increment:"1",User:"Standard"},RPM1_MIN_QUAL:{Description:"Minimum data quality to be used",DisplayName:"Minimum Quality",Increment:"0.1",User:"Advanced"},RPM1_PIN:{Description:`Which digital GPIO pin to use. Only used on type = GPIO. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Input pin number",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},RPM1_SCALING:{Description:"Scaling factor between sensor reading and RPM.",DisplayName:"RPM scaling",Increment:"0.001",User:"Standard"},RPM1_TYPE:{Description:"What type of RPM sensor is connected",DisplayName:"RPM type",User:"Standard",Values:{0:"None",1:"Not Used",2:"GPIO",3:"EFI",4:"Harmonic Notch",5:"ESC Telemetry Motors Bitmask",6:"Generator"}}},qZ={RPM2_ESC_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which support ESC rpm telemetry. RPM telemetry of the selected channels will be averaged",DisplayName:"Bitmask of ESC telemetry channels to average",User:"Advanced"},RPM2_MAX:{Description:"Maximum RPM to report. Only used on type = GPIO.",DisplayName:"Maximum RPM",Increment:"1",User:"Standard"},RPM2_MIN:{Description:"Minimum RPM to report. Only used on type = GPIO.",DisplayName:"Minimum RPM",Increment:"1",User:"Standard"},RPM2_MIN_QUAL:{Description:"Minimum data quality to be used",DisplayName:"Minimum Quality",Increment:"0.1",User:"Advanced"},RPM2_PIN:{Description:`Which digital GPIO pin to use. Only used on type = GPIO. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Input pin number",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},RPM2_SCALING:{Description:"Scaling factor between sensor reading and RPM.",DisplayName:"RPM scaling",Increment:"0.001",User:"Standard"},RPM2_TYPE:{Description:"What type of RPM sensor is connected",DisplayName:"RPM type",User:"Standard",Values:{0:"None",1:"Not Used",2:"GPIO",3:"EFI",4:"Harmonic Notch",5:"ESC Telemetry Motors Bitmask",6:"Generator"}}},KZ={RSSI_ANA_PIN:{Description:"Pin used to read the RSSI voltage or PWM value",DisplayName:"Receiver RSSI sensing pin",User:"Standard",Values:{8:"V5 Nano",11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS"}},RSSI_CHANNEL:{Description:"The channel number where RSSI will be output by the radio receiver (5 and above).",DisplayName:"Receiver RSSI channel number",Range:{high:"16",low:"0"},User:"Standard"},RSSI_CHAN_HIGH:{Description:"PWM value that the radio receiver will put on the RSSI_CHANNEL or RSSI_ANA_PIN when the signal strength is the strongest. Some radio receivers output inverted values so this value may be higher than RSSI_CHAN_LOW",DisplayName:"Receiver RSSI PWM high value",Range:{high:"2000",low:"0"},Units:"PWM",User:"Standard"},RSSI_CHAN_LOW:{Description:"PWM value that the radio receiver will put on the RSSI_CHANNEL or RSSI_ANA_PIN when the signal strength is the weakest. Some radio receivers output inverted values so this value may be lower than RSSI_CHAN_HIGH",DisplayName:"RSSI PWM low value",Range:{high:"2000",low:"0"},Units:"PWM",User:"Standard"},RSSI_PIN_HIGH:{Description:"RSSI pin's voltage received on the RSSI_ANA_PIN when the signal strength is the strongest. Some radio receivers put out inverted values so this value may be lower than RSSI_PIN_LOW. When using pin 103, the maximum value of the parameter is 3.3V.",DisplayName:"RSSI pin's highest voltage",Increment:"0.01",Range:{high:"5.0",low:"0"},Units:"V",User:"Standard"},RSSI_PIN_LOW:{Description:"RSSI pin's voltage received on the RSSI_ANA_PIN when the signal strength is the weakest. Some radio receivers put out inverted values so this value may be higher than RSSI_PIN_HIGH. When using pin 103, the maximum value of the parameter is 3.3V.",DisplayName:"RSSI pin's lowest voltage",Increment:"0.01",Range:{high:"5.0",low:"0"},Units:"V",User:"Standard"},RSSI_TYPE:{Description:"Radio Receiver RSSI type. If your radio receiver supports RSSI of some kind, set it here, then set its associated RSSI_XXXXX parameters, if any.",DisplayName:"RSSI Type",User:"Standard",Values:{0:"Disabled",1:"AnalogPin",2:"RCChannelPwmValue",3:"ReceiverProtocol",4:"PWMInputPin",5:"TelemetryRadioRSSI"}}},jZ={SCHED_DEBUG:{Description:'Set to non-zero to enable scheduler debug messages. When set to show "Slips" the scheduler will display a message whenever a scheduled task is delayed due to too much CPU load. When set to ShowOverruns the scheduled will display a message whenever a task takes longer than the limit promised in the task table.',DisplayName:"Scheduler debug level",User:"Advanced",Values:{0:"Disabled",2:"ShowSlips",3:"ShowOverruns"}},SCHED_LOOP_RATE:{Description:"This controls the rate of the main control loop in Hz. This should only be changed by developers. This only takes effect on restart. Values over 400 are considered highly experimental.",DisplayName:"Scheduling main loop rate",RebootRequired:"True",User:"Advanced",Values:{50:"50Hz",100:"100Hz",200:"200Hz",250:"250Hz",300:"300Hz",400:"400Hz"}},SCHED_OPTIONS:{Bitmask:{0:"Enable per-task perf info"},Description:"This controls optional aspects of the scheduler.",DisplayName:"Scheduling options",User:"Advanced"}},QZ={SCR_DEBUG_OPTS:{Bitmask:{0:"No Scripts to run message if all scripts have stopped",1:"Runtime messages for memory usage and execution time",2:"Suppress logging scripts to dataflash",3:"log runtime memory usage and execution time",4:"Disable pre-arm check"},Description:"Debugging options",DisplayName:"Scripting Debug Level",User:"Advanced"},SCR_DIR_DISABLE:{Bitmask:{0:"ROMFS",1:"APM/scripts"},Description:"This will stop scripts being loaded from the given locations",DisplayName:"Directory disable",RebootRequired:"True",User:"Advanced"},SCR_ENABLE:{Description:"Controls if scripting is enabled",DisplayName:"Enable Scripting",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Lua Scripts"}},SCR_HEAP_SIZE:{Description:"Amount of memory available for scripting",DisplayName:"Scripting Heap Size",Increment:"1024",Range:{high:"1048576",low:"1024"},RebootRequired:"True",User:"Advanced"},SCR_USER1:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter1",User:"Standard"},SCR_USER2:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter2",User:"Standard"},SCR_USER3:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter3",User:"Standard"},SCR_USER4:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter4",User:"Standard"},SCR_USER5:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter5",User:"Standard"},SCR_USER6:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter6",User:"Standard"},SCR_VM_I_COUNT:{Description:"The number virtual machine instructions that can be run before considering a script to have taken an excessive amount of time",DisplayName:"Scripting Virtual Machine Instruction Count",Increment:"10000",Range:{high:"1000000",low:"1000"},User:"Advanced"}},JZ={SERIAL0_BAUD:{Description:"The baud rate used on the USB console. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial0 baud rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL0_PROTOCOL:{Description:"Control what protocol to use on the console. ",DisplayName:"Console protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVlink1",2:"MAVLink2"}},SERIAL1_BAUD:{Description:"The baud rate used on the Telem1 port. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Telem1 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL1_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire. The Swap option allows the RX and TX pins to be swapped on STM32F7 based boards.",DisplayName:"Telem1 options",RebootRequired:"True",User:"Advanced"},SERIAL1_PROTOCOL:{Description:"Control what protocol to use on the Telem1 port. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Telem1 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL2_BAUD:{Description:"The baud rate of the Telem2 port. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Telemetry 2 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL2_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Telem2 options",RebootRequired:"True",User:"Advanced"},SERIAL2_PROTOCOL:{Description:"Control what protocol to use on the Telem2 port. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Telemetry 2 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL3_BAUD:{Description:"The baud rate used for the Serial 3 (GPS). Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 3 (GPS) Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL3_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial3 options",RebootRequired:"True",User:"Advanced"},SERIAL3_PROTOCOL:{Description:"Control what protocol Serial 3 (GPS) should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial 3 (GPS) protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL4_BAUD:{Description:"The baud rate used for Serial4. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 4 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL4_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial4 options",RebootRequired:"True",User:"Advanced"},SERIAL4_PROTOCOL:{Description:"Control what protocol Serial4 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial4 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL5_BAUD:{Description:"The baud rate used for Serial5. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 5 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL5_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial5 options",RebootRequired:"True",User:"Advanced"},SERIAL5_PROTOCOL:{Description:"Control what protocol Serial5 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial5 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL6_BAUD:{Description:"The baud rate used for Serial6. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 6 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL6_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial6 options",RebootRequired:"True",User:"Advanced"},SERIAL6_PROTOCOL:{Description:"Control what protocol Serial6 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial6 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL7_BAUD:{Description:"The baud rate used for Serial7. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 7 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL7_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial7 options",RebootRequired:"True",User:"Advanced"},SERIAL7_PROTOCOL:{Description:"Control what protocol Serial7 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial7 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL8_BAUD:{Description:"The baud rate used for Serial8. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 8 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL8_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial8 options",RebootRequired:"True",User:"Advanced"},SERIAL8_PROTOCOL:{Description:"Control what protocol Serial8 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial8 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL9_BAUD:{Description:"The baud rate used for Serial8. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 9 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL9_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial9 options",RebootRequired:"True",User:"Advanced"},SERIAL9_PROTOCOL:{Description:"Control what protocol Serial9 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial9 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL_PASS1:{Description:"This sets one side of pass-through between two serial ports. Once both sides are set then all data received on either port will be passed to the other port",DisplayName:"Serial passthru first port",User:"Advanced",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},SERIAL_PASS2:{Description:"This sets one side of pass-through between two serial ports. Once both sides are set then all data received on either port will be passed to the other port",DisplayName:"Serial passthru second port",User:"Advanced",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},SERIAL_PASSTIMO:{Description:"This sets a timeout for serial pass-through in seconds. When the pass-through is enabled by setting the SERIAL_PASS1 and SERIAL_PASS2 parameters then it remains in effect until no data comes from the first port for SERIAL_PASSTIMO seconds. This allows the port to revent to its normal usage (such as MAVLink connection to a GCS) when it is no longer needed. A value of 0 means no timeout.",DisplayName:"Serial passthru timeout",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"}},eG={SERVO_32_ENABLE:{Description:"This allows for up to 32 outputs, enabling parameters for outputs above 16",DisplayName:"Enable outputs 17 to 31",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},SERVO_DSHOT_ESC:{Description:"This sets the DShot ESC type for all outputs. The ESC type affects the range of DShot commands available. None means that no dshot commands will be executed.",DisplayName:"Servo DShot ESC type",User:"Advanced",Values:{0:"None",1:"BLHeli32/Kiss",2:"BLHeli_S"}},SERVO_DSHOT_RATE:{Description:"This sets the DShot output rate for all outputs as a multiple of the loop rate. 0 sets the output rate to be fixed at 1Khz for low loop rates. This value should never be set below 500Hz.",DisplayName:"Servo DShot output rate",User:"Advanced",Values:{0:"1Khz",1:"loop-rate",2:"double loop-rate",3:"triple loop-rate",4:"quadruple loop rate"}},SERVO_GPIO_MASK:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16",16:"Servo 17",17:"Servo 18",18:"Servo 19",19:"Servo 20",20:"Servo 21",21:"Servo 22",22:"Servo 23",23:"Servo 24",24:"Servo 25",25:"Servo 26",26:"Servo 27",27:"Servo 28",28:"Servo 29",29:"Servo 30",30:"Servo 31",31:"Servo 32"},Description:"This sets a bitmask of outputs which will be available as GPIOs. Any auxiliary output with either the function set to -1 or with the corresponding bit set in this mask will be available for use as a GPIO pin",DisplayName:"Servo GPIO mask",RebootRequired:"True",User:"Advanced"},SERVO_RATE:{Description:"This sets the default output rate in Hz for all outputs.",DisplayName:"Servo default output rate",Range:{high:"400",low:"25"},Units:"Hz",User:"Advanced"}},tG={SERVO10_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO10_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO10_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO10_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO10_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},iG={SERVO11_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO11_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO11_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO11_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO11_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},aG={SERVO12_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO12_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO12_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO12_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO12_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},rG={SERVO13_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO13_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO13_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO13_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO13_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},nG={SERVO14_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO14_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO14_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO14_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO14_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},oG={SERVO15_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO15_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO15_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO15_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO15_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},sG={SERVO16_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO16_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO16_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO16_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO16_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},lG={SERVO17_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO17_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO17_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO17_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO17_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},cG={SERVO18_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO18_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO18_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO18_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO18_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},dG={SERVO19_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO19_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO19_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO19_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO19_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},CG={SERVO1_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO1_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO1_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO1_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO1_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},mG={SERVO20_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO20_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO20_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO20_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO20_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},uG={SERVO21_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO21_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO21_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO21_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO21_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},hG={SERVO22_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO22_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO22_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO22_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO22_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},pG={SERVO23_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO23_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO23_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO23_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO23_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},fG={SERVO24_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO24_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO24_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO24_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO24_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},VG={SERVO25_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO25_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO25_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO25_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO25_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},LG={SERVO26_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO26_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO26_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO26_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO26_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},HG={SERVO27_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO27_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO27_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO27_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO27_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},MG={SERVO28_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO28_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO28_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO28_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO28_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},gG={SERVO29_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO29_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO29_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO29_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO29_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},AG={SERVO2_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO2_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO2_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO2_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO2_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},vG={SERVO30_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO30_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO30_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO30_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO30_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},_G={SERVO31_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO31_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO31_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO31_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO31_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},SG={SERVO32_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO32_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO32_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO32_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO32_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},DG={SERVO3_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO3_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO3_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO3_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO3_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},yG={SERVO4_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO4_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO4_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO4_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO4_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},RG={SERVO5_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO5_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO5_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO5_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO5_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},bG={SERVO6_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO6_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO6_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO6_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO6_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},NG={SERVO7_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO7_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO7_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO7_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO7_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},wG={SERVO8_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO8_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO8_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO8_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO8_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},TG={SERVO9_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",22:"SprayerPump",23:"SprayerSpinner",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",88:"Winch",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO9_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO9_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO9_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO9_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},EG={SERVO_BLH_3DMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16",16:"Channel 17",17:"Channel 18",18:"Channel 19",19:"Channel 20",20:"Channel 21",21:"Channel 22",22:"Channel 23",23:"Channel 24",24:"Channel 25",25:"Channel 26",26:"Channel 27",27:"Channel 28",28:"Channel 29",29:"Channel 30",30:"Channel 31",31:"Channel 32"},Description:"Mask of channels which are dynamically reversible. This is used to configure ESCs in '3D' mode, allowing for the motor to spin in either direction",DisplayName:"BLHeli bitmask of 3D channels",RebootRequired:"True",User:"Advanced"},SERVO_BLH_AUTO:{Description:"If set to 1 this auto-enables BLHeli pass-thru support for all multicopter motors",DisplayName:"BLHeli pass-thru auto-enable for multicopter motors",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},SERVO_BLH_BDMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16",16:"Channel 17",17:"Channel 18",18:"Channel 19",19:"Channel 20",20:"Channel 21",21:"Channel 22",22:"Channel 23",23:"Channel 24",24:"Channel 25",25:"Channel 26",26:"Channel 27",27:"Channel 28",28:"Channel 29",29:"Channel 30",30:"Channel 31",31:"Channel 32"},Description:"Mask of channels which support bi-directional dshot. This is used for ESCs which have firmware that supports bi-directional dshot allowing fast rpm telemetry values to be returned for the harmonic notch.",DisplayName:"BLHeli bitmask of bi-directional dshot channels",RebootRequired:"True",User:"Advanced"},SERVO_BLH_DEBUG:{Description:"When set to 1 this enabled verbose debugging output over MAVLink when the blheli protocol is active. This can be used to diagnose failures.",DisplayName:"BLHeli debug level",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},SERVO_BLH_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16",16:"Channel 17",17:"Channel 18",18:"Channel 19",19:"Channel 20",20:"Channel 21",21:"Channel 22",22:"Channel 23",23:"Channel 24",24:"Channel 25",25:"Channel 26",26:"Channel 27",27:"Channel 28",28:"Channel 29",29:"Channel 30",30:"Channel 31",31:"Channel 32"},Description:"Enable of BLHeli pass-thru servo protocol support to specific channels. This mask is in addition to motors enabled using SERVO_BLH_AUTO (if any)",DisplayName:"BLHeli Channel Bitmask",RebootRequired:"True",User:"Advanced"},SERVO_BLH_OTYPE:{Description:"When set to a non-zero value this overrides the output type for the output channels given by SERVO_BLH_MASK. This can be used to enable DShot on outputs that are not part of the multicopter motors group.",DisplayName:"BLHeli output type override",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"OneShot",2:"OneShot125",3:"Brushed",4:"DShot150",5:"DShot300",6:"DShot600",7:"DShot1200"}},SERVO_BLH_POLES:{Description:"This allows calculation of true RPM from ESC's eRPM. The default is 14.",DisplayName:"BLHeli Motor Poles",Range:{high:"127",low:"1"},RebootRequired:"True",User:"Advanced"},SERVO_BLH_PORT:{Description:"This sets the mavlink channel to use for blheli pass-thru. The channel number is determined by the number of serial ports configured to use mavlink. So 0 is always the console, 1 is the next serial port using mavlink, 2 the next after that and so on.",DisplayName:"Control port",User:"Advanced",Values:{0:"Console",1:"Mavlink Serial Channel1",2:"Mavlink Serial Channel2",3:"Mavlink Serial Channel3",4:"Mavlink Serial Channel4",5:"Mavlink Serial Channel5"}},SERVO_BLH_RVMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16",16:"Channel 17",17:"Channel 18",18:"Channel 19",19:"Channel 20",20:"Channel 21",21:"Channel 22",22:"Channel 23",23:"Channel 24",24:"Channel 25",25:"Channel 26",26:"Channel 27",27:"Channel 28",28:"Channel 29",29:"Channel 30",30:"Channel 31",31:"Channel 32"},Description:"Mask of channels which are reversed. This is used to configure ESCs in reversed mode",DisplayName:"BLHeli bitmask of reversed channels",RebootRequired:"True",User:"Advanced"},SERVO_BLH_TEST:{Description:"Setting SERVO_BLH_TEST to a motor number enables an internal test of the BLHeli ESC protocol to the corresponding ESC. The debug output is displayed on the USB console.",DisplayName:"BLHeli internal interface test",User:"Advanced",Values:{0:"Disabled",1:"TestMotor1",2:"TestMotor2",3:"TestMotor3",4:"TestMotor4",5:"TestMotor5",6:"TestMotor6",7:"TestMotor7",8:"TestMotor8"}},SERVO_BLH_TMOUT:{Description:"This sets the inactivity timeout for the BLHeli protocol in seconds. If no packets are received in this time normal MAVLink operations are resumed. A value of 0 means no timeout",DisplayName:"BLHeli protocol timeout",Range:{high:"300",low:"0"},Units:"s",User:"Standard"},SERVO_BLH_TRATE:{Description:"This sets the rate in Hz for requesting telemetry from ESCs. It is the rate per ESC. Setting to zero disables telemetry requests",DisplayName:"BLHeli telemetry rate",Range:{high:"500",low:"0"},Units:"Hz",User:"Standard"}},PG={SERVO_FTW_MASK:{Bitmask:{0:"SERVO1",1:"SERVO2",2:"SERVO3",3:"SERVO4",4:"SERVO5",5:"SERVO6",6:"SERVO7",7:"SERVO8",8:"SERVO9",9:"SERVO10",10:"SERVO11",11:"SERVO12"},Description:"Servo channel mask specifying FETtec ESC output.",DisplayName:"Servo channel output bitmask",RebootRequired:"True",User:"Standard"},SERVO_FTW_POLES:{Description:"Number of motor electrical poles",DisplayName:"Nr. electrical poles",Range:{high:"50",low:"2"},User:"Standard"},SERVO_FTW_RVMASK:{Bitmask:{0:"SERVO1",1:"SERVO2",2:"SERVO3",3:"SERVO4",4:"SERVO5",5:"SERVO6",6:"SERVO7",7:"SERVO8",8:"SERVO9",9:"SERVO10",10:"SERVO11",11:"SERVO12"},Description:"Servo channel mask to reverse rotation of FETtec ESC outputs.",DisplayName:"Servo channel reverse rotation bitmask",User:"Standard"}},IG={SERVO_ROB_POSMAX:{Description:"Position maximum at servo max value. This should be within the position control range of the servos, normally 0 to 4095",DisplayName:"Robotis servo position max",Range:{high:"4095",low:"0"},User:"Standard"},SERVO_ROB_POSMIN:{Description:"Position minimum at servo min value. This should be within the position control range of the servos, normally 0 to 4095",DisplayName:"Robotis servo position min",Range:{high:"4095",low:"0"},User:"Standard"}},OG={SERVO_SBUS_RATE:{Description:"This sets the SBUS output frame rate in Hz.",DisplayName:"SBUS default output rate",Range:{high:"250",low:"25"},Units:"Hz",User:"Advanced"}},UG={SERVO_VOLZ_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16",16:"Channel17",17:"Channel18",18:"Channel19",19:"Channel20",20:"Channel21",21:"Channel22",22:"Channel23",23:"Channel24",24:"Channel25",25:"Channel26",26:"Channel27",28:"Channel29",29:"Channel30",30:"Channel31",31:"Channel32"},Description:"Enable of volz servo protocol to specific channels",DisplayName:"Channel Bitmask",User:"Standard"}},xG={SID_AXIS:{Description:"Controls which axis are being excited. Set to non-zero to see more parameters",DisplayName:"System identification axis",User:"Standard",Values:{0:"None",1:"Input Roll Angle",2:"Input Pitch Angle",3:"Input Yaw Angle",4:"Recovery Roll Angle",5:"Recovery Pitch Angle",6:"Recovery Yaw Angle",7:"Rate Roll",8:"Rate Pitch",9:"Rate Yaw",10:"Mixer Roll",11:"Mixer Pitch",12:"Mixer Yaw",13:"Mixer Thrust"}},SID_F_START_HZ:{Description:"Frequency at the start of the sweep",DisplayName:"System identification Start Frequency",Range:{high:"100",low:"0.01"},Units:"Hz",User:"Standard"},SID_F_STOP_HZ:{Description:"Frequency at the end of the sweep",DisplayName:"System identification Stop Frequency",Range:{high:"100",low:"0.01"},Units:"Hz",User:"Standard"},SID_MAGNITUDE:{Description:"Magnitude of sweep in deg, deg/s and 0-1 for mixer outputs.",DisplayName:"System identification Chirp Magnitude",User:"Standard"},SID_T_FADE_IN:{Description:"Time to reach maximum amplitude of sweep",DisplayName:"System identification Fade in time",Range:{high:"20",low:"0"},Units:"s",User:"Standard"},SID_T_FADE_OUT:{Description:"Time to reach zero amplitude at the end of the sweep",DisplayName:"System identification Fade out time",Range:{high:"5",low:"0"},Units:"s",User:"Standard"},SID_T_REC:{Description:"Time taken to complete the sweep",DisplayName:"System identification Total Sweep length",Range:{high:"255",low:"0"},Units:"s",User:"Standard"}},FG={SPRAY_ENABLE:{Description:"Allows you to enable (1) or disable (0) the sprayer",DisplayName:"Sprayer enable/disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},SPRAY_PUMP_MIN:{Description:"Minimum pump speed expressed as a percentage",DisplayName:"Pump speed minimum",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},SPRAY_PUMP_RATE:{Description:"Desired pump speed when traveling 1m/s expressed as a percentage",DisplayName:"Pump speed",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},SPRAY_SPEED_MIN:{Description:"Speed minimum at which we will begin spraying",DisplayName:"Speed minimum",Range:{high:"1000",low:"0"},Units:"cm/s",User:"Standard"},SPRAY_SPINNER:{Description:"Spinner's rotation speed in PWM (a higher rate will disperse the spray over a wider area horizontally)",DisplayName:"Spinner rotation speed",Range:{high:"2000",low:"1000"},Units:"ms",User:"Standard"}},kG={SR0_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_EXTRA1:{Description:"Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2 and PID_TUNING to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, SYSTEM_TIME, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, BATTERY2, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION and RPM to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_EXT_STAT:{Description:"Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, and FENCE_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_RAW_CTRL:{Description:"Unused",DisplayName:"Unused",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},BG={SR1_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_EXTRA1:{Description:"Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2 and PID_TUNING to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, SYSTEM_TIME, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, BATTERY2, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION and RPM to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_EXT_STAT:{Description:"Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, and FENCE_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_RAW_CTRL:{Description:"Unused",DisplayName:"Unused",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},zG={SR2_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_EXTRA1:{Description:"Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2 and PID_TUNING to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, SYSTEM_TIME, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, BATTERY2, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION and RPM to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_EXT_STAT:{Description:"Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, and FENCE_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_RAW_CTRL:{Description:"Unused",DisplayName:"Unused",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},ZG={SR3_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_EXTRA1:{Description:"Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2 and PID_TUNING to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, SYSTEM_TIME, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, BATTERY2, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION and RPM to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_EXT_STAT:{Description:"Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, and FENCE_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_RAW_CTRL:{Description:"Unused",DisplayName:"Unused",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},GG={SR4_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_EXTRA1:{Description:"Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2 and PID_TUNING to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, SYSTEM_TIME, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, BATTERY2, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION and RPM to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_EXT_STAT:{Description:"Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, and FENCE_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_RAW_CTRL:{Description:"Unused",DisplayName:"Unused",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},WG={SR5_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_EXTRA1:{Description:"Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2 and PID_TUNING to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, SYSTEM_TIME, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, BATTERY2, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION and RPM to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_EXT_STAT:{Description:"Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, and FENCE_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_RAW_CTRL:{Description:"Unused",DisplayName:"Unused",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},XG={SR6_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_EXTRA1:{Description:"Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2 and PID_TUNING to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, SYSTEM_TIME, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, BATTERY2, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION and RPM to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_EXT_STAT:{Description:"Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, and FENCE_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_RAW_CTRL:{Description:"Unused",DisplayName:"Unused",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},YG={SRTL_ACCURACY:{Description:"SmartRTL accuracy. The minimum distance between points.",DisplayName:"SmartRTL accuracy",Range:{high:"10",low:"0"},Units:"m",User:"Advanced"},SRTL_OPTIONS:{Bitmask:{2:"Ignore pilot yaw"},Description:"Bitmask of SmartRTL options.",DisplayName:"SmartRTL options",User:"Standard"},SRTL_POINTS:{Description:"SmartRTL maximum number of points on path. Set to 0 to disable SmartRTL. 100 points consumes about 3k of memory.",DisplayName:"SmartRTL maximum number of points on path",Range:{high:"500",low:"0"},RebootRequired:"True",User:"Advanced"}},$G={STAT_BOOTCNT:{Description:"Number of times board has been booted",DisplayName:"Boot Count",ReadOnly:"True",User:"Standard"},STAT_FLTTIME:{Description:"Total FlightTime (seconds)",DisplayName:"Total FlightTime",ReadOnly:"True",Units:"s",User:"Standard"},STAT_RESET:{Description:"Seconds since January 1st 2016 (Unix epoch+1451606400) since statistics reset (set to 0 to reset statistics)",DisplayName:"Statistics Reset Time",ReadOnly:"True",Units:"s",User:"Standard"},STAT_RUNTIME:{Description:"Total time autopilot has run",DisplayName:"Total RunTime",ReadOnly:"True",Units:"s",User:"Standard"}},qG={TCAL_BARO_EXP:{Description:"Learned exponent for barometer temperature correction",DisplayName:"Temperature Calibration barometer exponent",ReadOnly:"True",User:"Advanced",Volatile:"True"},TCAL_ENABLED:{Description:"Enable temperature calibration. Set to 0 to disable. Set to 1 to use learned values. Set to 2 to learn new values and use the values",DisplayName:"Temperature calibration enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"EnableAndLearn"}},TCAL_TEMP_MAX:{Description:"Maximum learned temperature. This is automatically set by the learning process",DisplayName:"Temperature calibration max learned temperature",ReadOnly:"True",Units:"degC",User:"Advanced",Volatile:"True"},TCAL_TEMP_MIN:{Description:"Minimum learned temperature. This is automatically set by the learning process",DisplayName:"Temperature calibration min learned temperature",ReadOnly:"True",Units:"degC",User:"Advanced",Volatile:"True"}},KG={TERRAIN_ENABLE:{Description:"enable terrain data. This enables the vehicle storing a database of terrain data on the SD card. The terrain data is requested from the ground station as needed, and stored for later use on the SD card. To be useful the ground station must support TERRAIN_REQUEST messages and have access to a terrain database, such as the SRTM database.",DisplayName:"Terrain data enable",User:"Advanced",Values:{0:"Disable",1:"Enable"}},TERRAIN_MARGIN:{Description:"Margin in centi-meters to accept terrain data from the GCS. This can be used to allow older terrain data generated with less accurate latitude/longitude scaling to be used",DisplayName:"Acceptance margin",Range:{high:"50000",low:"0.05"},Units:"m",User:"Advanced"},TERRAIN_OFS_MAX:{Description:"The maximum adjustment of terrain altitude based on the assumption that the vehicle is on the ground when it is armed. When the vehicle is armed the location of the vehicle is recorded, and when terrain data is available for that location a height adjustment for terrain data is calculated that aligns the terrain height at that location with the altitude recorded at arming. This height adjustment is applied to all terrain data. This parameter clamps the amount of adjustment. A value of zero disables the use of terrain height adjustment.",DisplayName:"Terrain reference offset maximum",Range:{high:"50",low:"0"},Units:"m",User:"Advanced"},TERRAIN_OPTIONS:{Bitmask:{0:"Disable Download"},Description:"Options to change behaviour of terrain system",DisplayName:"Terrain options",User:"Advanced"},TERRAIN_SPACING:{Description:"Distance between terrain grid points in meters. This controls the horizontal resolution of the terrain data that is stored on te SD card and requested from the ground station. If your GCS is using the ArduPilot SRTM database like Mission Planner or MAVProxy, then a resolution of 100 meters is appropriate. Grid spacings lower than 100 meters waste SD card space if the GCS cannot provide that resolution. The grid spacing also controls how much data is kept in memory during flight. A larger grid spacing will allow for a larger amount of data in memory. A grid spacing of 100 meters results in the vehicle keeping 12 grid squares in memory with each grid square having a size of 2.7 kilometers by 3.2 kilometers. Any additional grid squares are stored on the SD once they are fetched from the GCS and will be loaded as needed.",DisplayName:"Terrain grid spacing",Increment:"1",Units:"m",User:"Advanced"}},jG={TMODE_ACTION1:{Description:"This is the action taken when the left action button is pressed",DisplayName:"Tmode action 1",User:"Standard",Values:{0:"None",1:"TakePhoto",2:"ToggleVideo",3:"ModeAcro",4:"ModeAltHold",5:"ModeAuto",6:"ModeLoiter",7:"ModeRTL",8:"ModeCircle",9:"ModeLand",10:"ModeDrift",11:"ModeSport",12:"ModeAutoTune",13:"ModePosHold",14:"ModeBrake",15:"ModeThrow",16:"Flip",17:"ModeStabilize",18:"Disarm",19:"ToggleMode",20:"Arm-Land-RTL",21:"ToggleSimpleMode",22:"ToggleSuperSimpleMode",23:"MotorLoadTest",24:"ModeFlowHold"}},TMODE_ACTION2:{Description:"This is the action taken when the right action button is pressed",DisplayName:"Tmode action 2",User:"Standard",Values:{0:"None",1:"TakePhoto",2:"ToggleVideo",3:"ModeAcro",4:"ModeAltHold",5:"ModeAuto",6:"ModeLoiter",7:"ModeRTL",8:"ModeCircle",9:"ModeLand",10:"ModeDrift",11:"ModeSport",12:"ModeAutoTune",13:"ModePosHold",14:"ModeBrake",15:"ModeThrow",16:"Flip",17:"ModeStabilize",18:"Disarm",19:"ToggleMode",20:"Arm-Land-RTL",21:"ToggleSimpleMode",22:"ToggleSuperSimpleMode",23:"MotorLoadTest",24:"ModeFlowHold"}},TMODE_ACTION3:{Description:"This is the action taken when the power button is pressed",DisplayName:"Tmode action 3",User:"Standard",Values:{0:"None",1:"TakePhoto",2:"ToggleVideo",3:"ModeAcro",4:"ModeAltHold",5:"ModeAuto",6:"ModeLoiter",7:"ModeRTL",8:"ModeCircle",9:"ModeLand",10:"ModeDrift",11:"ModeSport",12:"ModeAutoTune",13:"ModePosHold",14:"ModeBrake",15:"ModeThrow",16:"Flip",17:"ModeStabilize",18:"Disarm",19:"ToggleMode",20:"Arm-Land-RTL",21:"ToggleSimpleMode",22:"ToggleSuperSimpleMode",23:"MotorLoadTest",24:"ModeFlowHold"}},TMODE_ACTION4:{Description:"This is the action taken when the left action button is pressed while the left (Mode) button is held down",DisplayName:"Tmode action 4",User:"Standard",Values:{0:"None",1:"TakePhoto",2:"ToggleVideo",3:"ModeAcro",4:"ModeAltHold",5:"ModeAuto",6:"ModeLoiter",7:"ModeRTL",8:"ModeCircle",9:"ModeLand",10:"ModeDrift",11:"ModeSport",12:"ModeAutoTune",13:"ModePosHold",14:"ModeBrake",15:"ModeThrow",16:"Flip",17:"ModeStabilize",18:"Disarm",19:"ToggleMode",20:"Arm-Land-RTL",21:"ToggleSimpleMode",22:"ToggleSuperSimpleMode",23:"MotorLoadTest",24:"ModeFlowHold"}},TMODE_ACTION5:{Description:"This is the action taken when the right action is pressed while the left (Mode) button is held down",DisplayName:"Tmode action 5",User:"Standard",Values:{0:"None",1:"TakePhoto",2:"ToggleVideo",3:"ModeAcro",4:"ModeAltHold",5:"ModeAuto",6:"ModeLoiter",7:"ModeRTL",8:"ModeCircle",9:"ModeLand",10:"ModeDrift",11:"ModeSport",12:"ModeAutoTune",13:"ModePosHold",14:"ModeBrake",15:"ModeThrow",16:"Flip",17:"ModeStabilize",18:"Disarm",19:"ToggleMode",20:"Arm-Land-RTL",21:"ToggleSimpleMode",22:"ToggleSuperSimpleMode",23:"MotorLoadTest",24:"ModeFlowHold"}},TMODE_ACTION6:{Description:"This is the action taken when the power button is pressed while the left (Mode) button is held down",DisplayName:"Tmode action 6",User:"Standard",Values:{0:"None",1:"TakePhoto",2:"ToggleVideo",3:"ModeAcro",4:"ModeAltHold",5:"ModeAuto",6:"ModeLoiter",7:"ModeRTL",8:"ModeCircle",9:"ModeLand",10:"ModeDrift",11:"ModeSport",12:"ModeAutoTune",13:"ModePosHold",14:"ModeBrake",15:"ModeThrow",16:"Flip",17:"ModeStabilize",18:"Disarm",19:"ToggleMode",20:"Arm-Land-RTL",21:"ToggleSimpleMode",22:"ToggleSuperSimpleMode",23:"MotorLoadTest",24:"ModeFlowHold"}},TMODE_ENABLE:{Description:'tmode (or "toy" mode) gives a simplified user interface designed for mass market drones. Version1 is for the SkyViper V2450GPS. Version2 is for the F412 based boards',DisplayName:"tmode enable ",User:"Advanced",Values:{0:"Disabled",1:"EnableVersion1",2:"EnableVersion2"}},TMODE_FLAGS:{Bitmask:{0:"DisarmOnLowThrottle",1:"ArmOnHighThrottle",2:"UpgradeToLoiter",3:"RTLStickCancel"},Description:"Bitmask of flags to change the behaviour of tmode. DisarmOnLowThrottle means to disarm if throttle is held down for 1 second when landed. ArmOnHighThrottle means to arm if throttle is above 80% for 1 second. UpgradeToLoiter means to allow takeoff in LOITER mode by switching to ALT_HOLD, then auto-upgrading to LOITER once GPS is available. RTLStickCancel means that on large stick inputs in RTL mode that LOITER mode is engaged",DisplayName:"Tmode flags",User:"Standard"},TMODE_LEFT:{Description:"This is the action taken when the left (Mode) button is pressed",DisplayName:"Tmode left action",User:"Standard",Values:{0:"None",1:"TakePhoto",2:"ToggleVideo",3:"ModeAcro",4:"ModeAltHold",5:"ModeAuto",6:"ModeLoiter",7:"ModeRTL",8:"ModeCircle",9:"ModeLand",10:"ModeDrift",11:"ModeSport",12:"ModeAutoTune",13:"ModePosHold",14:"ModeBrake",15:"ModeThrow",16:"Flip",17:"ModeStabilize",18:"Disarm",19:"ToggleMode",20:"Arm-Land-RTL",21:"ToggleSimpleMode",22:"ToggleSuperSimpleMode",23:"MotorLoadTest",24:"ModeFlowHold"}},TMODE_LEFT_LONG:{Description:"This is the action taken when the left (Mode) button is long-pressed",DisplayName:"Tmode left long action",User:"Standard",Values:{0:"None",1:"TakePhoto",2:"ToggleVideo",3:"ModeAcro",4:"ModeAltHold",5:"ModeAuto",6:"ModeLoiter",7:"ModeRTL",8:"ModeCircle",9:"ModeLand",10:"ModeDrift",11:"ModeSport",12:"ModeAutoTune",13:"ModePosHold",14:"ModeBrake",15:"ModeThrow",16:"Flip",17:"ModeStabilize",18:"Disarm",19:"ToggleMode",20:"Arm-Land-RTL",21:"ToggleSimpleMode",22:"ToggleSuperSimpleMode",23:"MotorLoadTest",24:"ModeFlowHold"}},TMODE_LOAD_FILT:{Description:"This filters the load test output. A value of 1 means no filter. 2 means values are repeated once. 3 means values are repeated 3 times, etc",DisplayName:"Load test filter",Range:{high:"100",low:"0"},User:"Advanced"},TMODE_LOAD_MUL:{Description:"This scales the load test output, as a value between 0 and 1",DisplayName:"Load test multiplier",Increment:"0.01",Range:{high:"1",low:"0"},User:"Advanced"},TMODE_LOAD_TYPE:{Description:"This sets the type of load test",DisplayName:"Load test type",User:"Advanced",Values:{0:"ConstantThrust",1:"LogReplay1",2:"LogReplay2"}},TMODE_MODE1:{Description:"This is the initial mode when the vehicle is first turned on. This mode is assumed to not require GPS",DisplayName:"Tmode first mode",User:"Standard",Values:{0:"Stabilize",1:"Acro",2:"AltHold",3:"Auto",4:"Guided",5:"Loiter",6:"RTL",7:"Circle",9:"Land",11:"Drift",13:"Sport",14:"Flip",15:"AutoTune",16:"PosHold",17:"Brake",18:"Throw",19:"Avoid_ADSB",20:"Guided_NoGPS",21:"FlowHold"}},TMODE_MODE2:{Description:"This is the secondary mode. This mode is assumed to require GPS",DisplayName:"Tmode second mode",User:"Standard",Values:{0:"Stabilize",1:"Acro",2:"AltHold",3:"Auto",4:"Guided",5:"Loiter",6:"RTL",7:"Circle",9:"Land",11:"Drift",13:"Sport",14:"Flip",15:"AutoTune",16:"PosHold",17:"Brake",18:"Throw",19:"Avoid_ADSB",20:"Guided_NoGPS",21:"FlowHold"}},TMODE_RIGHT:{Description:"This is the action taken when the right (Return) button is pressed",DisplayName:"Tmode right action",User:"Standard",Values:{0:"None",1:"TakePhoto",2:"ToggleVideo",3:"ModeAcro",4:"ModeAltHold",5:"ModeAuto",6:"ModeLoiter",7:"ModeRTL",8:"ModeCircle",9:"ModeLand",10:"ModeDrift",11:"ModeSport",12:"ModeAutoTune",13:"ModePosHold",14:"ModeBrake",15:"ModeThrow",16:"Flip",17:"ModeStabilize",18:"Disarm",19:"ToggleMode",20:"Arm-Land-RTL",21:"ToggleSimpleMode",22:"ToggleSuperSimpleMode",23:"MotorLoadTest"}},TMODE_TMAX:{Description:"This sets the thrust multiplier when voltage is low",DisplayName:"Max thrust multiplier",Increment:"0.01",Range:{high:"1",low:"0"},User:"Advanced"},TMODE_TMIN:{Description:"This sets the thrust multiplier when voltage is high",DisplayName:"Min thrust multiplier",Increment:"0.01",Range:{high:"1",low:"0"},User:"Advanced"},TMODE_TRIM_AUTO:{Description:"This is the amount of automatic stick trim that can be applied when disarmed with sticks not moving. It is a PWM limit value away from 1500",DisplayName:"Stick auto trim limit",Range:{high:"100",low:"0"},User:"Standard"},TMODE_VMAX:{Description:"This is the battery voltage above which thrust min is used",DisplayName:"Max voltage for output limiting",Increment:"0.01",Range:{high:"5",low:"0"},User:"Advanced"},TMODE_VMIN:{Description:"This is the battery voltage below which no output limiting is done",DisplayName:"Min voltage for output limiting",Increment:"0.01",Range:{high:"5",low:"0"},User:"Advanced"}},QG={VISO_DELAY_MS:{Description:"Visual odometry sensor delay relative to inertial measurements",DisplayName:"Visual odometry sensor delay",Range:{high:"250",low:"0"},Units:"ms",User:"Advanced"},VISO_ORIENT:{Description:"Visual odometery camera orientation",DisplayName:"Visual odometery camera orientation",User:"Advanced",Values:{0:"Forward",2:"Right",4:"Back",6:"Left",24:"Up",25:"Down"}},VISO_POS_M_NSE:{Description:"Visual odometry position measurement noise minimum (meters). This value will be used if the sensor provides a lower noise value (or no noise value)",DisplayName:"Visual odometry position measurement noise ",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},VISO_POS_X:{Description:"X position of the camera in body frame. Positive X is forward of the origin.",DisplayName:"Visual odometry camera X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_POS_Y:{Description:"Y position of the camera in body frame. Positive Y is to the right of the origin.",DisplayName:"Visual odometry camera Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_POS_Z:{Description:"Z position of the camera in body frame. Positive Z is down from the origin.",DisplayName:"Visual odometry camera Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_SCALE:{Description:"Visual odometry scaling factor applied to position estimates from sensor",DisplayName:"Visual odometry scaling factor",User:"Advanced"},VISO_TYPE:{Description:"Visual odometry camera connection type",DisplayName:"Visual odometry camera connection type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"MAVLink",2:"IntelT265",3:"VOXL(ModalAI)"}},VISO_VEL_M_NSE:{Description:"Visual odometry velocity measurement noise in m/s",DisplayName:"Visual odometry velocity measurement noise",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},VISO_YAW_M_NSE:{Description:"Visual odometry yaw measurement noise minimum (radians), This value will be used if the sensor provides a lower noise value (or no noise value)",DisplayName:"Visual odometry yaw measurement noise",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},JG={VTX_BAND:{Description:"Video Transmitter Band",DisplayName:"Video Transmitter Band",User:"Standard",Values:{0:"Band A",1:"Band B",2:"Band E",3:"Airwave",4:"RaceBand",5:"Low RaceBand"}},VTX_CHANNEL:{Description:"Video Transmitter Channel",DisplayName:"Video Transmitter Channel",Range:{high:"7",low:"0"},User:"Standard"},VTX_ENABLE:{Description:"Toggles the Video Transmitter on and off",DisplayName:"Is the Video Transmitter enabled or not",Values:{0:"Disable",1:"Enable"}},VTX_FREQ:{Description:"Video Transmitter Frequency. The frequency is derived from the setting of BAND and CHANNEL",DisplayName:"Video Transmitter Frequency",Range:{high:"6000",low:"5000"},ReadOnly:"True",User:"Standard"},VTX_MAX_POWER:{Description:"Video Transmitter Maximum Power Level. Different VTXs support different power levels, this prevents the power aux switch from requesting too high a power level. The switch supports 6 power levels and the selected power will be a subdivision between 0 and this setting.",DisplayName:"Video Transmitter Max Power Level",Range:{high:"1000",low:"25"}},VTX_OPTIONS:{Bitmask:{0:"Pitmode",1:"Pitmode until armed",2:"Pitmode when disarmed",3:"Unlocked",4:"Add leading zero byte to requests",5:"Use 1 stop-bit in SmartAudio",6:"Ignore CRC in SmartAudio",7:"Ignore status updates in CRSF and blindly set VTX options"},Description:"Video Transmitter Options. Pitmode puts the VTX in a low power state. Unlocked enables certain restricted frequencies and power levels. Do not enable the Unlocked option unless you have appropriate permissions in your jurisdiction to transmit at high power levels. One stop-bit may be required for VTXs that erroneously mimic iNav behaviour.",DisplayName:"Video Transmitter Options",User:"Advanced"},VTX_POWER:{Description:"Video Transmitter Power Level. Different VTXs support different power levels, the power level chosen will be rounded down to the nearest supported power level",DisplayName:"Video Transmitter Power Level",Range:{high:"1000",low:"1"}}},eW={WINCH_POS_P:{Description:"Winch control position error P gain",DisplayName:"Winch control position error P gain",Range:{high:"10.0",low:"0.01"},User:"Standard"},WINCH_RATE_MAX:{Description:"Winch deploy or retract rate maximum. Set to maximum rate with no load.",DisplayName:"Winch deploy or retract rate maximum",Range:{high:"10",low:"0"},Units:"m/s",User:"Standard"},WINCH_TYPE:{Description:"Winch Type",DisplayName:"Winch Type",User:"Standard",Values:{0:"None",1:"PWM",2:"Daiwa"}}},tW={WPNAV_ACCEL:{Description:"Defines the horizontal acceleration in cm/s/s used during missions",DisplayName:"Waypoint Acceleration ",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s/s",User:"Standard"},WPNAV_ACCEL_Z:{Description:"Defines the vertical acceleration in cm/s/s used during missions",DisplayName:"Waypoint Vertical Acceleration",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s/s",User:"Standard"},WPNAV_JERK:{Description:"Defines the horizontal jerk in m/s/s used during missions",DisplayName:"Waypoint Jerk",Range:{high:"20",low:"1"},Units:"m/s/s/s",User:"Standard"},WPNAV_RADIUS:{Description:"Defines the distance from a waypoint, that when crossed indicates the wp has been hit.",DisplayName:"Waypoint Radius",Increment:"1",Range:{high:"1000",low:"5"},Units:"cm",User:"Standard"},WPNAV_RFND_USE:{Description:"This controls if waypoint missions use rangefinder for terrain following",DisplayName:"Waypoint missions use rangefinder for terrain following",User:"Advanced",Values:{0:"Disable",1:"Enable"}},WPNAV_SPEED:{Description:"Defines the speed in cm/s which the aircraft will attempt to maintain horizontally during a WP mission",DisplayName:"Waypoint Horizontal Speed Target",Increment:"50",Range:{high:"2000",low:"20"},Units:"cm/s",User:"Standard"},WPNAV_SPEED_DN:{Description:"Defines the speed in cm/s which the aircraft will attempt to maintain while descending during a WP mission",DisplayName:"Waypoint Descent Speed Target",Increment:"10",Range:{high:"500",low:"10"},Units:"cm/s",User:"Standard"},WPNAV_SPEED_UP:{Description:"Defines the speed in cm/s which the aircraft will attempt to maintain while climbing during a WP mission",DisplayName:"Waypoint Climb Speed Target",Increment:"50",Range:{high:"1000",low:"10"},Units:"cm/s",User:"Standard"},WPNAV_TER_MARGIN:{Description:"Waypoint Terrain following altitude margin. Vehicle will stop if distance from target altitude is larger than this margin (in meters)",DisplayName:"Waypoint Terrain following altitude margin",Range:{high:"100",low:"0.1"},Units:"m",User:"Advanced"}},iW={ZIGZ_AUTO_ENABLE:{Description:"Allows you to enable (1) or disable (0) ZigZag auto feature",DisplayName:"ZigZag auto enable/disable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},ZIGZ_DIRECTION:{Description:"The direction to move sideways in ZigZag mode",DisplayName:"Sideways direction in ZigZag auto",User:"Advanced",Values:{0:"forward",1:"right",2:"backward",3:"left"}},ZIGZ_LINE_NUM:{Description:"Total number of lines for ZigZag auto if 1 or more. -1: Infinity, 0: Just moving to sideways",DisplayName:"Total number of lines",Range:{high:"32767",low:"-1"},User:"Advanced"},ZIGZ_SIDE_DIST:{Description:"The distance to move sideways in ZigZag mode",DisplayName:"Sideways distance in ZigZag auto",Range:{high:"100",low:"0.1"},Units:"m",User:"Advanced"},ZIGZ_SPRAYER:{Description:"Enable the auto sprayer in ZigZag mode. SPRAY_ENABLE = 1 and SERVOx_FUNCTION = 22(SprayerPump) / 23(SprayerSpinner) also must be set. This makes the sprayer on while moving to destination A or B. The sprayer will stop if the vehicle reaches destination or the flight mode is changed from ZigZag to other.",DisplayName:"Auto sprayer in ZigZag",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},ZIGZ_WP_DELAY:{Description:"Waiting time after reached the destination",DisplayName:"The delay for zigzag waypoint",Range:{high:"127",low:"0"},Units:"s",User:"Advanced"}},aW={version:0},rB1={ADSB_:$k,AFS_:qk,AHRS_:Kk,AIS_:jk,ARMING_:Qk,AROT_:Jk,ARSPD:eB,ATC_:tB,AUTOTUNE_:iB,AVD_:aB,AVOID_:rB,BARO:nB,BARO1_WCF_:oB,BARO2_WCF_:sB,BARO3_WCF_:lB,BATT2_:cB,BATT3_:dB,BATT4_:CB,BATT5_:mB,BATT6_:uB,BATT7_:hB,BATT8_:pB,BATT9_:fB,BATT_:VB,BCN:LB,BRD_:HB,BRD_RADIO:MB,BRD_RTC:gB,BTN_:AB,CAM_:vB,CAM_RC_:_B,CAN_:SB,CAN_D1_:DB,CAN_D1_KDE_:yB,CAN_D1_PC_:RB,CAN_D1_TST_:bB,CAN_D1_UC_:NB,CAN_D2_:wB,CAN_D2_KDE_:TB,CAN_D2_PC_:EB,CAN_D2_TST_:PB,CAN_D2_UC_:IB,CAN_D3_:OB,CAN_D3_KDE_:UB,CAN_D3_PC_:xB,CAN_D3_TST_:FB,CAN_D3_UC_:kB,CAN_P1_:BB,CAN_P2_:zB,CAN_P3_:ZB,CAN_SLCAN_:GB,CC:WB,CHUTE_:XB,CIRCLE_:YB,COMPASS_:$B,COMPASS_PMOT:qB,CUST_ROT:KB,CUST_ROT1_:jB,CUST_ROT2_:QB,Copter:JB,DID_:ez,EAHRS:tz,EFI:iz,EK2_:az,EK3_:rz,EK3_SRC:nz,ESC_TLM:oz,FENCE_:sz,FFT_:lz,FHLD:cz,FLOW:dz,FOLL:Cz,FRSKY_:mz,GEN_:uz,GPS:hz,GPS_MB1_:pz,GPS_MB2_:fz,GRIP_:Vz,H_:Lz,H_RSC_:Hz,IM_:Mz,INS_:gz,INS_HNTC2_:Az,INS_HNTCH_:vz,INS_LOG_:_z,INS_TCAL1_:Sz,INS_TCAL2_:Dz,INS_TCAL3_:yz,LGR_:Rz,LOG:bz,LOIT_:Nz,MIS_:wz,MNT1:Tz,MNT2:Ez,MOT_:Pz,MSP:Iz,NTF_:Oz,OA_:Uz,OA_BR_:xz,OA_DB_:Fz,OSD:kz,OSD1_:Bz,OSD2_:zz,OSD3_:Zz,OSD4_:Gz,OSD5_:Wz,OSD5_PARAM1:Xz,OSD5_PARAM2:Yz,OSD5_PARAM3:$z,OSD5_PARAM4:qz,OSD5_PARAM5:Kz,OSD5_PARAM6:jz,OSD5_PARAM7:Qz,OSD5_PARAM8:Jz,OSD5_PARAM9:eZ,OSD6_:tZ,OSD6_PARAM1:iZ,OSD6_PARAM2:aZ,OSD6_PARAM3:rZ,OSD6_PARAM4:nZ,OSD6_PARAM5:oZ,OSD6_PARAM6:sZ,OSD6_PARAM7:lZ,OSD6_PARAM8:cZ,OSD6_PARAM9:dZ,PLND_:CZ,PRX:mZ,PRX1:uZ,PRX2:hZ,PRX3:pZ,PRX4:fZ,PSC:VZ,RALLY_:LZ,RC:HZ,RC10_:MZ,RC11_:gZ,RC12_:AZ,RC13_:vZ,RC14_:_Z,RC15_:SZ,RC16_:DZ,RC1_:yZ,RC2_:RZ,RC3_:bZ,RC4_:NZ,RC5_:wZ,RC6_:TZ,RC7_:EZ,RC8_:PZ,RC9_:IZ,RCMAP_:OZ,RELAY_:UZ,RNGFND1_:xZ,RNGFND2_:FZ,RNGFND3_:kZ,RNGFND4_:BZ,RNGFND5_:zZ,RNGFND6_:ZZ,RNGFND7_:GZ,RNGFND8_:WZ,RNGFND9_:XZ,RNGFNDA_:YZ,RPM1_:$Z,RPM2_:qZ,RSSI_:KZ,SCHED_:jZ,SCR_:QZ,SERIAL:JZ,SERVO:eG,SERVO10_:tG,SERVO11_:iG,SERVO12_:aG,SERVO13_:rG,SERVO14_:nG,SERVO15_:oG,SERVO16_:sG,SERVO17_:lG,SERVO18_:cG,SERVO19_:dG,SERVO1_:CG,SERVO20_:mG,SERVO21_:uG,SERVO22_:hG,SERVO23_:pG,SERVO24_:fG,SERVO25_:VG,SERVO26_:LG,SERVO27_:HG,SERVO28_:MG,SERVO29_:gG,SERVO2_:AG,SERVO30_:vG,SERVO31_:_G,SERVO32_:SG,SERVO3_:DG,SERVO4_:yG,SERVO5_:RG,SERVO6_:bG,SERVO7_:NG,SERVO8_:wG,SERVO9_:TG,SERVO_BLH_:EG,SERVO_FTW_:PG,SERVO_ROB_:IG,SERVO_SBUS_:OG,SERVO_VOLZ_:UG,SID:xG,SPRAY_:FG,SR0_:kG,SR1_:BG,SR2_:zG,SR3_:ZG,SR4_:GG,SR5_:WG,SR6_:XG,SRTL_:YG,STAT:$G,TCAL:qG,TERRAIN_:KG,TMODE:jG,VISO:QG,VTX_:JG,WINCH:eW,WPNAV_:tW,ZIGZ_:iW,json:aW},nB1=Object.freeze(Object.defineProperty({__proto__:null,ADSB_:$k,AFS_:qk,AHRS_:Kk,AIS_:jk,ARMING_:Qk,AROT_:Jk,ARSPD:eB,ATC_:tB,AUTOTUNE_:iB,AVD_:aB,AVOID_:rB,BARO:nB,BARO1_WCF_:oB,BARO2_WCF_:sB,BARO3_WCF_:lB,BATT2_:cB,BATT3_:dB,BATT4_:CB,BATT5_:mB,BATT6_:uB,BATT7_:hB,BATT8_:pB,BATT9_:fB,BATT_:VB,BCN:LB,BRD_:HB,BRD_RADIO:MB,BRD_RTC:gB,BTN_:AB,CAM_:vB,CAM_RC_:_B,CAN_:SB,CAN_D1_:DB,CAN_D1_KDE_:yB,CAN_D1_PC_:RB,CAN_D1_TST_:bB,CAN_D1_UC_:NB,CAN_D2_:wB,CAN_D2_KDE_:TB,CAN_D2_PC_:EB,CAN_D2_TST_:PB,CAN_D2_UC_:IB,CAN_D3_:OB,CAN_D3_KDE_:UB,CAN_D3_PC_:xB,CAN_D3_TST_:FB,CAN_D3_UC_:kB,CAN_P1_:BB,CAN_P2_:zB,CAN_P3_:ZB,CAN_SLCAN_:GB,CC:WB,CHUTE_:XB,CIRCLE_:YB,COMPASS_:$B,COMPASS_PMOT:qB,CUST_ROT:KB,CUST_ROT1_:jB,CUST_ROT2_:QB,Copter:JB,DID_:ez,EAHRS:tz,EFI:iz,EK2_:az,EK3_:rz,EK3_SRC:nz,ESC_TLM:oz,FENCE_:sz,FFT_:lz,FHLD:cz,FLOW:dz,FOLL:Cz,FRSKY_:mz,GEN_:uz,GPS:hz,GPS_MB1_:pz,GPS_MB2_:fz,GRIP_:Vz,H_:Lz,H_RSC_:Hz,IM_:Mz,INS_:gz,INS_HNTC2_:Az,INS_HNTCH_:vz,INS_LOG_:_z,INS_TCAL1_:Sz,INS_TCAL2_:Dz,INS_TCAL3_:yz,LGR_:Rz,LOG:bz,LOIT_:Nz,MIS_:wz,MNT1:Tz,MNT2:Ez,MOT_:Pz,MSP:Iz,NTF_:Oz,OA_:Uz,OA_BR_:xz,OA_DB_:Fz,OSD:kz,OSD1_:Bz,OSD2_:zz,OSD3_:Zz,OSD4_:Gz,OSD5_:Wz,OSD5_PARAM1:Xz,OSD5_PARAM2:Yz,OSD5_PARAM3:$z,OSD5_PARAM4:qz,OSD5_PARAM5:Kz,OSD5_PARAM6:jz,OSD5_PARAM7:Qz,OSD5_PARAM8:Jz,OSD5_PARAM9:eZ,OSD6_:tZ,OSD6_PARAM1:iZ,OSD6_PARAM2:aZ,OSD6_PARAM3:rZ,OSD6_PARAM4:nZ,OSD6_PARAM5:oZ,OSD6_PARAM6:sZ,OSD6_PARAM7:lZ,OSD6_PARAM8:cZ,OSD6_PARAM9:dZ,PLND_:CZ,PRX:mZ,PRX1:uZ,PRX2:hZ,PRX3:pZ,PRX4:fZ,PSC:VZ,RALLY_:LZ,RC:HZ,RC10_:MZ,RC11_:gZ,RC12_:AZ,RC13_:vZ,RC14_:_Z,RC15_:SZ,RC16_:DZ,RC1_:yZ,RC2_:RZ,RC3_:bZ,RC4_:NZ,RC5_:wZ,RC6_:TZ,RC7_:EZ,RC8_:PZ,RC9_:IZ,RCMAP_:OZ,RELAY_:UZ,RNGFND1_:xZ,RNGFND2_:FZ,RNGFND3_:kZ,RNGFND4_:BZ,RNGFND5_:zZ,RNGFND6_:ZZ,RNGFND7_:GZ,RNGFND8_:WZ,RNGFND9_:XZ,RNGFNDA_:YZ,RPM1_:$Z,RPM2_:qZ,RSSI_:KZ,SCHED_:jZ,SCR_:QZ,SERIAL:JZ,SERVO:eG,SERVO10_:tG,SERVO11_:iG,SERVO12_:aG,SERVO13_:rG,SERVO14_:nG,SERVO15_:oG,SERVO16_:sG,SERVO17_:lG,SERVO18_:cG,SERVO19_:dG,SERVO1_:CG,SERVO20_:mG,SERVO21_:uG,SERVO22_:hG,SERVO23_:pG,SERVO24_:fG,SERVO25_:VG,SERVO26_:LG,SERVO27_:HG,SERVO28_:MG,SERVO29_:gG,SERVO2_:AG,SERVO30_:vG,SERVO31_:_G,SERVO32_:SG,SERVO3_:DG,SERVO4_:yG,SERVO5_:RG,SERVO6_:bG,SERVO7_:NG,SERVO8_:wG,SERVO9_:TG,SERVO_BLH_:EG,SERVO_FTW_:PG,SERVO_ROB_:IG,SERVO_SBUS_:OG,SERVO_VOLZ_:UG,SID:xG,SPRAY_:FG,SR0_:kG,SR1_:BG,SR2_:zG,SR3_:ZG,SR4_:GG,SR5_:WG,SR6_:XG,SRTL_:YG,STAT:$G,TCAL:qG,TERRAIN_:KG,TMODE:jG,VISO:QG,VTX_:JG,WINCH:eW,WPNAV_:tW,ZIGZ_:iW,json:aW,default:rB1},Symbol.toStringTag,{value:"Module"}));var cs=(e=>(e.PASS_BY="Pass by",e))(cs||{}),Tt=(e=>(e.ABSOLUTE_RELATIVE_TO_MSL="Absolute (relative to mean sea level)",e.RELATIVE_TO_HOME="Relative to home",e.RELATIVE_TO_TERRAIN="Relative to terrain",e))(Tt||{});const oB1=e=>{const t=["version","settings","waypoints"],i=["mapCenter","zoom","currentWaypointType","currentWaypointAltitude","currentWaypointAltitudeRefType","defaultCruiseSpeed"];return t.every(r=>e[r]!==void 0)&&i.every(r=>e.settings[r]!==void 0)},n_=async()=>{},rW=[[sn.MAV_FRAME_GLOBAL_INT,Tt.ABSOLUTE_RELATIVE_TO_MSL],[sn.MAV_FRAME_GLOBAL_RELATIVE_ALT_INT,Tt.RELATIVE_TO_HOME],[sn.MAV_FRAME_GLOBAL_TERRAIN_ALT_INT,Tt.RELATIVE_TO_TERRAIN]],sB1=e=>{const t=rW.find(i=>i[1]===e);return t===void 0?void 0:t[0]},lB1=e=>{const t=rW.find(i=>i[0]===e);return t===void 0?void 0:t[1]},cB1=(e,t)=>e.map((i,a)=>({target_system:t,target_component:1,type:se.MISSION_ITEM_INT,seq:a,frame:{type:sB1(i.altitudeReferenceType)||sn.MAV_FRAME_GLOBAL_RELATIVE_ALT_INT},command:{type:Fr.MAV_CMD_NAV_WAYPOINT},current:0,autocontinue:1,param1:0,param2:5,param3:0,param4:999,x:Ee(i.coordinates[0]*Math.pow(10,7)),y:Ee(i.coordinates[1]*Math.pow(10,7)),z:i.altitude,mission_type:{type:Cd.MAV_MISSION_TYPE_MISSION}})),dB1=e=>e.map(t=>({id:pt(),coordinates:[t.x/Math.pow(10,7),t.y/Math.pow(10,7)],altitude:t.z,altitudeReferenceType:lB1(t.frame.type)||Tt.RELATIVE_TO_HOME,type:cs.PASS_BY})),CB1={[ia.MAV_SEVERITY_EMERGENCY]:_e.Critical,[ia.MAV_SEVERITY_ALERT]:_e.Critical,[ia.MAV_SEVERITY_CRITICAL]:_e.Critical,[ia.MAV_SEVERITY_ERROR]:_e.Error,[ia.MAV_SEVERITY_WARNING]:_e.Warning,[ia.MAV_SEVERITY_NOTICE]:_e.Warning,[ia.MAV_SEVERITY_INFO]:_e.Info,[ia.MAV_SEVERITY_DEBUG]:_e.Info};class jC extends aB1{constructor(i,a){super(M4.ArduPilot,i);S1(this,"_altitude",new Xk1({msl:0,rel:0}));S1(this,"_attitude",new Wk1({roll:0,pitch:0,yaw:0}));S1(this,"_communicationDropRate",0);S1(this,"_communicationErrors",0);S1(this,"_coordinates",new Yk({precision:0,altitude:0,latitude:0,longitude:0}));S1(this,"_velocity",new qk1({x:0,y:0,z:0,ground:0,overall:0}));S1(this,"_cpuLoad",0);S1(this,"_isArmed",!1);S1(this,"_powerSupply",new Yk1);S1(this,"_lastParameter",new $k1);S1(this,"_totalParametersCount");S1(this,"_currentCockpitMissionItemsOnPlanning",[]);S1(this,"_currentMavlinkMissionItemsOnVehicle",[]);S1(this,"_statusText",new Kk1);S1(this,"_statusGPS",new jk1);S1(this,"_vehicleSpecificErrors",[0,0,0,0]);S1(this,"_metadata");S1(this,"_messages",new Map);S1(this,"onMAVLinkMessage",new Sk1);S1(this,"_flying",!1);S1(this,"currentSystemId",1);this.currentSystemId=a}onMAVLinkPackage(i){}sendCommandLong(i,a,r,n,o,s,l,d){const C={type:se.COMMAND_LONG,param1:a!=null?a:0,param2:r!=null?r:0,param3:n!=null?n:0,param4:o!=null?o:0,param5:s!=null?s:0,param6:l!=null?l:0,param7:d!=null?d:0,command:{type:i},target_system:this.currentSystemId,target_component:1,confirmation:0};this.write(C)}write(i){const a={header:{system_id:255,component_id:Number(Fk.MAV_COMP_ID_UDP_BRIDGE),sequence:0},message:i},r=new TextEncoder;Pt.write(r.encode(JSON.stringify(a)))}onMessage(i){const a=new TextDecoder;let r;const n=a.decode(i);try{r=JSON.parse(n)}catch{if(/Ok\((\d+)\)/.exec(n))return;console.error(`Failed to parse mavlink message: ${n}`);return}const{system_id:o,component_id:s}=r.header;if(o!==this.currentSystemId||s!==1)return;this._messages.set(r.message.type,{...r.message,epoch:new Date().getTime()});const l=["cam_idx","camera_id","compass_id","gcs_system_id","gimbal_device_id","gps_id","hw_unique_id","id","idx","rtk_receiver_id","sensor_id","storage_id","stream_id","uas_id"],d=(C,m,u)=>{Object.entries(C).forEach(([p,V])=>{if(V instanceof Object){let f;Object.keys(V).forEach(M=>{l.includes(M)&&(f=M)}),f===void 0?d(V,m,p):d(V,m,`${p}.ID${V[f]}`)}else u===void 0?m[p]=V:m[`${u}.${p}`]=V})};switch(d(Object.fromEntries(this._messages),this._genericVariables),this.onMAVLinkMessage.emit_value(r.message.type,r),r.message.type){case se.AHRS2:{const C=r.message;this._altitude.msl=C.altitude,this.onAltitude.emit();break}case se.ATTITUDE:{const C=r.message;this._attitude.roll=C.roll,this._attitude.pitch=C.pitch,this._attitude.yaw=C.yaw,this.onAttitude.emit();break}case se.GLOBAL_POSITION_INT:{const C=r.message;this._coordinates.precision=1,this._coordinates.altitude=C.alt/1e3,this._coordinates.latitude=C.lat/1e7,this._coordinates.longitude=C.lon/1e7,this.onPosition.emit(),this._velocity.x=C.vx/100,this._velocity.y=C.vy/100,this._velocity.z=C.vz/100,this._velocity.ground=Math.sqrt(this._velocity.x**2+this._velocity.y**2),this._velocity.overall=Math.sqrt(this._velocity.x**2+this._velocity.y**2+this._velocity.z**2),this.onVelocity.emit(),this._altitude.rel=C.relative_alt/1e3,this.onAltitude.emit();break}case se.GPS_RAW_INT:{const C=r.message;this._statusGPS.visibleSatellites=C.satellites_visible,this._statusGPS.HDOP=Ee(C.eph/100),this._statusGPS.VDOP=Ee(C.epv/100);const m={[o3.GPS_FIX_TYPE_NO_GPS]:s3.NO_GPS,[o3.GPS_FIX_TYPE_NO_FIX]:s3.NO_FIX,[o3.GPS_FIX_TYPE_2D_FIX]:s3.FIX_2D,[o3.GPS_FIX_TYPE_3D_FIX]:s3.FIX_3D,[o3.GPS_FIX_TYPE_DGPS]:s3.DGPS,[o3.GPS_FIX_TYPE_RTK_FLOAT]:s3.RTK_FLOAT,[o3.GPS_FIX_TYPE_RTK_FIXED]:s3.RTK_FIXED,[o3.GPS_FIX_TYPE_STATIC]:s3.STATIC,[o3.GPS_FIX_TYPE_PPP]:s3.PPP};this._statusGPS.fixType=m[C.fix_type.type],this.onStatusGPS.emit();break}case se.HEARTBEAT:{const C=r.message;this._isArmed=Boolean(C.base_mode.bits&_n.MAV_MODE_FLAG_SAFETY_ARMED),this.onArm.emit(),this._flying=C.system_status.type===Xp.MAV_STATE_ACTIVE,this.onTakeoff.emit();break}case se.SYS_STATUS:{const C=r.message;this._cpuLoad=C.load/10,this.onCpuLoad.emit(),this._powerSupply.voltage=C.voltage_battery/1e3,this._powerSupply.current=C.current_battery===-1?void 0:C.current_battery/100,this._powerSupply.remaining=C.battery_remaining===-1?void 0:C.battery_remaining,this.onPowerSupply.emit(),this._communicationDropRate=C.drop_rate_comm,this._communicationErrors=C.errors_comm,this._vehicleSpecificErrors=[C._errors_count1,C._errors_count2,C._errors_count3,C._errors_count4];break}case se.PARAM_VALUE:{const C=r.message,m=C.param_id.join("").replace(/\0/g,""),{param_value:u,param_count:p}=C,V=Math.round(u*1e4)/1e4;this._lastParameter={name:m,value:V},this._totalParametersCount=Number(p),this.onParameter.emit();break}case se.STATUSTEXT:{const C=r.message;this._statusText.text=C.text.filter(m=>m.toString()!=="\0").join(""),this._statusText.severity=CB1[C.severity.type],this.onStatusText.emit();break}case se.NAMED_VALUE_FLOAT:{const C=r.message,m=C.name.join("").replaceAll("\0","");this._genericVariables[m]=C.value,this.onGenericVariables.emit();break}case se.NAMED_VALUE_INT:{const C=r.message,m=C.name.join("").replaceAll("\0","");this._genericVariables[m]=C.value,this.onGenericVariables.emit();break}}this.onMAVLinkPackage(r)}_arm(i,a){this.sendCommandLong(Fr.MAV_CMD_COMPONENT_ARM_DISARM,i?1:0,a?21196:0)}arm(){return this._arm(!0),!0}_changeAltitude(i){const a={time_boot_ms:0,type:se.SET_POSITION_TARGET_LOCAL_NED,target_system:1,target_component:1,coordinate_frame:{type:sn.MAV_FRAME_LOCAL_OFFSET_NED},type_mask:{bits:4088},x:0,y:0,z:i,vx:0,vy:0,vz:0,afx:0,afy:0,afz:0,yaw:0,yaw_rate:0};this.write(a)}changeAltitude(i){this._changeAltitude(i)}_takeoff(i){this.sendCommandLong(Fr.MAV_CMD_NAV_TAKEOFF,0,0,0,0,0,0,i)}takeoff(i){const a=this.modesAvailable().get("GUIDED");a!==void 0&&(this.setMode(a),this.arm(),this._takeoff(i),this.onTakeoff.emit())}land(){const i=this.modesAvailable().get("LAND");i!==void 0&&this.setMode(i)}goTo(i,a,r,n,o){const s={type:se.COMMAND_INT,target_system:this.currentSystemId,target_component:1,seq:0,frame:{type:sn.MAV_FRAME_GLOBAL},command:{type:Fr.MAV_CMD_DO_REPOSITION},current:0,autocontinue:0,param1:i,param2:a,param3:r,param4:n,x:Math.round(o.latitude*1e7),y:Math.round(o.longitude*1e7),z:o.altitude};this.write(s)}altitude(){return this._altitude}attitude(){return this._attitude}batteries(){return[new Qk1({cells:[0,0,0,0,0,0],voltage:0})]}configurationPages(){return[]}cpuLoad(){return this._cpuLoad}disarm(){return this._arm(!1),!0}isArmed(){return this._isArmed}flying(){return this._flying}metadata(){return this._metadata}position(){return this._coordinates}velocity(){return this._velocity}powerSupply(){return this._powerSupply}lastParameter(){return this._lastParameter}totalParametersCount(){return this._totalParametersCount}statusText(){return this._statusText}statusGPS(){return this._statusGPS}sendManualControl(i){const a=i,r={type:se.MANUAL_CONTROL,x:a.x,y:a.y,z:a.z,r:a.r,s:a.s,t:a.t,buttons:a.buttons,buttons2:a.buttons2,target:this.currentSystemId};this.write(r)}sendGcsHeartbeat(){const i={type:se.HEARTBEAT,custom_mode:0,mavtype:{type:I5.MAV_TYPE_GCS},autopilot:{type:dd.MAV_AUTOPILOT_INVALID},base_mode:{bits:192},system_status:{type:Xp.MAV_STATE_ACTIVE},mavlink_version:1};this.write(i)}setMode(i){this.sendCommandLong(Fr.MAV_CMD_DO_SET_MODE,_n.MAV_MODE_FLAG_CUSTOM_MODE_ENABLED,Number(i))}requestParametersList(){const i={type:se.PARAM_REQUEST_LIST,target_system:0,target_component:0};this.write(i)}setParameter(i){var n;const a=[...i.id];for(;a.length<16;)a.push("\0");const r={type:se.PARAM_SET,target_system:this.currentSystemId,target_component:0,param_id:a,param_value:i.value,param_type:(n=i.type)!=null?n:{type:kk.MAV_PARAM_TYPE_UINT8}};this.write(r)}sendMissionCount(i,a){const r={type:se.MISSION_COUNT,target_system:this.currentSystemId,target_component:1,count:i,mission_type:{type:a}};this.write(r)}requestMissionItemsList(i){const a={type:se.MISSION_REQUEST_LIST,target_system:this.currentSystemId,target_component:1,mission_type:{type:i}};this.write(a)}requestMissionItem(i,a){const r={type:se.MISSION_REQUEST_INT,target_system:0,target_component:0,seq:i,mission_type:{type:a}};this.write(r)}sendMissionAck(i,a){const r={type:se.MISSION_ACK,target_system:0,target_component:0,mavtype:{type:i?jl.MAV_MISSION_ACCEPTED:jl.MAV_MISSION_DENIED},mission_type:{type:a}};this.write(r)}sendMissionItem(i,a,r,n,o,s,l,d,C,m,u,p,V){const f={type:se.MISSION_ITEM,target_system:this.currentSystemId,target_component:1,seq:i,frame:{type:a},command:{type:r},current:n?1:0,autocontinue:o?1:0,param1:s,param2:l,param3:d,param4:C,x:m,y:u,z:p,mission_type:{type:V}};this.write(f)}async fetchMission(i=n_){const a=Cd.MAV_MISSION_TYPE_MISSION,r=new Date().getTime();let n=!1,o;for(this.requestMissionItemsList(a);o===void 0&&!n;){const u=this._messages.get(se.MISSION_COUNT);if(u!==void 0&&u.epoch>r){o=u.count;break}await new Promise(p=>setTimeout(p,100)),n=new Date().getTime()-r>1e4}if(o===void 0)throw Error("Did not receive number of mission items from vehicle.");const s=[];let l=!1,d=0;const C=new Date().getTime();let m=!1;for(;!l&&!m;){await new Promise(p=>setTimeout(p,100)),m=new Date().getTime()-C>1e4,i(100*d/o),this.requestMissionItem(d,a);const u=this._messages.get(se.MISSION_ITEM_INT);if(!(u===void 0||u.epochsetTimeout(o,100));if(this.mode()!==a)throw Error(`Could not put vehicle in ${i} mode. Please do it manually.`);const n=new Date().getTime();for(;!this.isArmed()&&new Date().getTime()-n<5e3;)this.arm(),await new Promise(o=>setTimeout(o,100));if(!this.isArmed)throw Error("Could not arm the vehicle. Please arm it manually.");this.sendCommandLong(Fr.MAV_CMD_MISSION_START,0,0)}async uploadMission(i,a=n_){this._currentCockpitMissionItemsOnPlanning=i;const r=cB1(i,this.currentSystemId),n=Cd.MAV_MISSION_TYPE_MISSION;this.sendMissionCount(r.length,n);let o;const s=new Date().getTime();let l=!1,d=-1,C=-1;for(;o===void 0&&!l;){await new Promise(H=>setTimeout(H,10)),l=new Date().getTime()-s>1e4;const m=this._messages.get(se.MISSION_REQUEST)||this._messages.get(se.MISSION_REQUEST_INT);if(m===void 0)continue;const u=m.epochs&&(o=f.mavtype.type),a(100*m.seq/r.length)}if(o===void 0)throw Error("Did not receive acknowledgment of mission upload.");if(o!==jl.MAV_MISSION_ACCEPTED)throw Error(`Failed uploading mission. Result received: ${o}.`);a(100),console.debug("Successfully sent all mission items.")}}var nW=(e=>(e[e.PRE_FLIGHT=-1]="PRE_FLIGHT",e[e.STABILIZE=0]="STABILIZE",e[e.ACRO=1]="ACRO",e[e.ALT_HOLD=2]="ALT_HOLD",e[e.AUTO=3]="AUTO",e[e.GUIDED=4]="GUIDED",e[e.LOITER=5]="LOITER",e[e.RTL=6]="RTL",e[e.CIRCLE=7]="CIRCLE",e[e.LAND=9]="LAND",e[e.DRIFT=11]="DRIFT",e[e.SPORT=13]="SPORT",e[e.FLIP=14]="FLIP",e[e.AUTOTUNE=15]="AUTOTUNE",e[e.POSHOLD=16]="POSHOLD",e[e.BRAKE=17]="BRAKE",e[e.THROW=18]="THROW",e[e.AVOID_ADSB=19]="AVOID_ADSB",e[e.GUIDED_NOGPS=20]="GUIDED_NOGPS",e[e.SMART_RTL=21]="SMART_RTL",e[e.FLOWHOLD=22]="FLOWHOLD",e[e.FOLLOW=23]="FOLLOW",e[e.ZIGZAG=24]="ZIGZAG",e[e.SYSTEMID=25]="SYSTEMID",e[e.AUTOROTATE=26]="AUTOROTATE",e[e.AUTO_RTL=27]="AUTO_RTL",e[e.TURTLE=28]="TURTLE",e))(nW||{});class mB1 extends jC{constructor(i){super(a0.Copter,i);S1(this,"_mode",-1);S1(this,"_metadata",nB1)}mode(){return this._mode}modesAvailable(){const i=new Map;return Object.entries(nW).filter(([a])=>isNaN(Number(a))).forEach(([a,r])=>{i.set(a,r)}),i}onMAVLinkPackage(i){switch(i.message.type){case se.HEARTBEAT:{const a=i.message;if(a.base_mode.bits===0){this._mode=-1,this.onMode.emit();return}if(!(a.base_mode.bits&_n.MAV_MODE_FLAG_CUSTOM_MODE_ENABLED)){console.log(`no custom: ${JSON.stringify(a.base_mode)}`);return}this._mode=a.custom_mode,this.onMode.emit()}}}}const oW={ADSB_EMIT_TYPE:{Description:"ADSB classification for the type of vehicle emitting the transponder signal. Default value is 14 (UAV).",DisplayName:"Emitter type",User:"Advanced",Values:{0:"NoInfo",1:"Light",2:"Small",3:"Large",4:"HighVortexlarge",5:"Heavy",6:"HighlyManuv",7:"Rotocraft",8:"RESERVED",9:"Glider",10:"LightAir",11:"Parachute",12:"UltraLight",13:"RESERVED",14:"UAV",15:"Space",16:"RESERVED",17:"EmergencySurface",18:"ServiceSurface",19:"PointObstacle"}},ADSB_ICAO_ID:{Description:"ICAO_ID unique vehicle identification number of this aircraft. This is an integer limited to 24bits. If set to 0 then one will be randomly generated. If set to -1 then static information is not sent, transceiver is assumed pre-programmed.",DisplayName:"ICAO_ID vehicle identification number",Range:{high:"16777215",low:"-1"},User:"Advanced"},ADSB_ICAO_SPECL:{Description:"ICAO_ID of special vehicle that ignores ADSB_LIST_RADIUS and ADSB_LIST_ALT. The vehicle is always tracked. Use 0 to disable.",DisplayName:"ICAO_ID of special vehicle",User:"Advanced"},ADSB_LEN_WIDTH:{Description:"Aircraft length and width dimension options in Length and Width in meters. In most cases, use a value of 1 for smallest size.",DisplayName:"Aircraft length and width",User:"Advanced",Values:{0:"NO_DATA",1:"L15W23",2:"L25W28P5",3:"L25W34",4:"L35W33",5:"L35W38",6:"L45W39P5",7:"L45W45",8:"L55W45",9:"L55W52",10:"L65W59P5",11:"L65W67",12:"L75W72P5",13:"L75W80",14:"L85W80",15:"L85W90"}},ADSB_LIST_ALT:{Description:"ADSB vehicle list altitude filter. Vehicles detected above this altitude will be completely ignored. They will not show up in the SRx_ADSB stream to the GCS and will not be considered in any avoidance calculations. A value of 0 will disable this filter.",DisplayName:"ADSB vehicle list altitude filter",Range:{high:"32767",low:"0"},Units:"m",User:"Advanced"},ADSB_LIST_MAX:{Description:"ADSB list size of nearest vehicles. Longer lists take longer to refresh with lower SRx_ADSB values.",DisplayName:"ADSB vehicle list size",Range:{high:"100",low:"1"},RebootRequired:"True",User:"Advanced"},ADSB_LIST_RADIUS:{Description:"ADSB vehicle list radius filter. Vehicles detected outside this radius will be completely ignored. They will not show up in the SRx_ADSB stream to the GCS and will not be considered in any avoidance calculations. A value of 0 will disable this filter.",DisplayName:"ADSB vehicle list radius filter",Range:{high:"100000",low:"0"},Units:"m",User:"Advanced"},ADSB_LOG:{Description:"0: no logging, 1: log only special ID, 2:log all",DisplayName:"ADS-B logging",User:"Advanced",Values:{0:"no logging",1:"log only special ID",2:"log all"}},ADSB_OFFSET_LAT:{Description:"GPS antenna lateral offset. This describes the physical location offest from center of the GPS antenna on the aircraft.",DisplayName:"GPS antenna lateral offset",User:"Advanced",Values:{0:"NoData",1:"Left2m",2:"Left4m",3:"Left6m",4:"Center",5:"Right2m",6:"Right4m",7:"Right6m"}},ADSB_OFFSET_LON:{Description:"GPS antenna longitudinal offset. This is usually set to 1, Applied By Sensor",DisplayName:"GPS antenna longitudinal offset",User:"Advanced",Values:{0:"NO_DATA",1:"AppliedBySensor"}},ADSB_OPTIONS:{Bitmask:{0:"Ping200X Send GPS",1:"Squawk 7400 on RC failsafe",2:"Squawk 7400 on GCS failsafe",3:"Sagetech MXS use External Config"},Description:"Options for emergency failsafe codes and device capabilities",DisplayName:"ADS-B Options",User:"Advanced"},ADSB_RF_CAPABLE:{Bitmask:{0:"UAT_in",1:"1090ES_in",2:"UAT_out",3:"1090ES_out"},Description:"Describes your hardware RF In/Out capabilities.",DisplayName:"RF capabilities",User:"Advanced"},ADSB_RF_SELECT:{Bitmask:{0:"Rx",1:"Tx"},Description:"Transceiver RF selection for Rx enable and/or Tx enable. This only effects devices that can Tx and/or Rx. Rx-only devices should override this to always be Rx-only.",DisplayName:"Transceiver RF selection",User:"Advanced"},ADSB_SQUAWK:{Description:"VFR squawk (Mode 3/A) code is a pre-programmed default code when the pilot is flying VFR and not in contact with ATC. In the USA, the VFR squawk code is octal 1200 (hex 0x280, decimal 640) and in most parts of Europe the VFR squawk code is octal 7000. If an invalid octal number is set then it will be reset to 1200.",DisplayName:"Squawk code",Range:{high:"7777",low:"0"},Units:"octal",User:"Advanced"},ADSB_TYPE:{Description:"Type of ADS-B hardware for ADSB-in and ADSB-out configuration and operation. If any type is selected then MAVLink based ADSB-in messages will always be enabled",DisplayName:"ADSB Type",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"uAvionix-MAVLink",2:"Sagetech",3:"uAvionix-UCP",4:"Sagetech MX Series"}}},sW={AFS_AMSL_ERR_GPS:{Description:"This sets margin for error in GPS derived altitude limit. This error margin is only used if the barometer has failed. If the barometer fails then the GPS will be used to enforce the AMSL_LIMIT, but this margin will be subtracted from the AMSL_LIMIT first, to ensure that even with the given amount of GPS altitude error the pressure altitude is not breached. OBC users should set this to comply with their D2 safety case. A value of -1 will mean that barometer failure will lead to immediate termination.",DisplayName:"Error margin for GPS based AMSL limit",Units:"m",User:"Advanced"},AFS_AMSL_LIMIT:{Description:"This sets the AMSL (above mean sea level) altitude limit. If the pressure altitude determined by QNH exceeds this limit then flight termination will be forced. Note that this limit is in meters, whereas pressure altitude limits are often quoted in feet. A value of zero disables the pressure altitude limit.",DisplayName:"AMSL limit",Units:"m",User:"Advanced"},AFS_DUAL_LOSS:{Description:'This enables the dual loss termination part of the AFS system. If this parameter is 1 and both GPS and the ground control station fail simultaneously, this will be considered a "dual loss" and cause termination.',DisplayName:"Enable dual loss terminate due to failure of both GCS and GPS simultaneously",User:"Advanced"},AFS_ENABLE:{Description:"This enables the advanced failsafe system. If this is set to zero (disable) then all the other AFS options have no effect",DisplayName:"Enable Advanced Failsafe",User:"Advanced"},AFS_GEOFENCE:{Description:"This enables the geofence part of the AFS. Will only be in effect if AFS_ENABLE is also 1",DisplayName:"Enable geofence Advanced Failsafe",User:"Advanced"},AFS_HB_PIN:{Description:`This sets a digital output pin which is cycled at 10Hz when termination is not activated. Note that if a FS_TERM_PIN is set then the heartbeat pin will continue to cycle at 10Hz when termination is activated, to allow the termination board to distinguish between autopilot crash and termination. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Heartbeat Pin",User:"Advanced",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},AFS_MAN_PIN:{Description:`This sets a digital output pin to set high when in manual mode. See the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Manual Pin",User:"Advanced"},AFS_MAX_COM_LOSS:{Description:"Maximum number of comms loss events before the aircraft stops returning to mission on comms recovery. Use zero to allow for any number of comms loss events.",DisplayName:"Maximum number of comms loss events",User:"Advanced"},AFS_MAX_GPS_LOSS:{Description:"Maximum number of GPS loss events before the aircraft stops returning to mission on GPS recovery. Use zero to allow for any number of GPS loss events.",DisplayName:"Maximum number of GPS loss events",User:"Advanced"},AFS_MAX_RANGE:{Description:"This is the maximum range of the vehicle in kilometers from first arming. If the vehicle goes beyond this range then the TERM_ACTION is performed. A value of zero disables this feature.",DisplayName:"Max allowed range",Units:"km",User:"Advanced"},AFS_QNH_PRESSURE:{Description:"This sets the QNH pressure in millibars to be used for pressure altitude in the altitude limit. A value of zero disables the altitude limit.",DisplayName:"QNH pressure",Units:"hPa",User:"Advanced"},AFS_RC:{Description:"This enables the RC part of the AFS. Will only be in effect if AFS_ENABLE is also 1",DisplayName:"Enable RC Advanced Failsafe",User:"Advanced"},AFS_RC_FAIL_TIME:{Description:"This is the time in seconds in manual mode that failsafe termination will activate if RC input is lost. For the OBC rules this should be (1.5). Use 0 to disable.",DisplayName:"RC failure time",Units:"s",User:"Advanced"},AFS_RC_MAN_ONLY:{Description:"If this parameter is set to 1, then an RC loss will only cause the plane to terminate in manual control modes. If it is 0, then the plane will terminate in any flight mode.",DisplayName:"Enable RC Termination only in manual control modes",User:"Advanced"},AFS_TERMINATE:{Description:"Can be set in flight to force termination of the heartbeat signal",DisplayName:"Force Terminate",User:"Advanced"},AFS_TERM_ACTION:{Description:"This can be used to force an action on flight termination. Normally this is handled by an external failsafe board, but you can setup ArduPilot to handle it here. Please consult the wiki for more information on the possible values of the parameter",DisplayName:"Terminate action",User:"Advanced"},AFS_TERM_PIN:{Description:`This sets a digital output pin to set high on flight termination. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Terminate Pin",User:"Advanced",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},AFS_WP_COMMS:{Description:"Waypoint number to navigate to on comms loss",DisplayName:"Comms Waypoint",User:"Advanced"},AFS_WP_GPS_LOSS:{Description:"Waypoint number to navigate to on GPS lock loss",DisplayName:"GPS Loss Waypoint",User:"Advanced"}},lW={AHRS_COMP_BETA:{Description:"This controls the time constant for the cross-over frequency used to fuse AHRS (airspeed and heading) and GPS data to estimate ground velocity. Time constant is 0.1/beta. A larger time constant will use GPS data less and a small time constant will use air data less.",DisplayName:"AHRS Velocity Complementary Filter Beta Coefficient",Increment:".01",Range:{high:"0.5",low:"0.001"},User:"Advanced"},AHRS_CUSTOM_PIT:{Description:"Autopilot mounting position pitch offset. Positive values = pitch up, negative values = pitch down. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation pitch offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_CUSTOM_ROLL:{Description:"Autopilot mounting position roll offset. Positive values = roll right, negative values = roll left. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation roll offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_CUSTOM_YAW:{Description:"Autopilot mounting position yaw offset. Positive values = yaw right, negative values = yaw left. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation yaw offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_EKF_TYPE:{Description:"This controls which NavEKF Kalman filter version is used for attitude and position estimation",DisplayName:"Use NavEKF Kalman filter for attitude and position estimation",User:"Advanced",Values:{0:"Disabled",2:"Enable EKF2",3:"Enable EKF3",11:"ExternalAHRS"}},AHRS_GPS_GAIN:{Description:"This controls how much to use the GPS to correct the attitude. This should never be set to zero for a plane as it would result in the plane losing control in turns. For a plane please use the default value of 1.0.",DisplayName:"AHRS GPS gain",Increment:".01",Range:{high:"1.0",low:"0.0"},User:"Advanced"},AHRS_GPS_MINSATS:{Description:"Minimum number of satellites visible to use GPS for velocity based corrections attitude correction. This defaults to 6, which is about the point at which the velocity numbers from a GPS become too unreliable for accurate correction of the accelerometers.",DisplayName:"AHRS GPS Minimum satellites",Increment:"1",Range:{high:"10",low:"0"},User:"Advanced"},AHRS_GPS_USE:{Description:"This controls whether to use dead-reckoning or GPS based navigation. If set to 0 then the GPS won't be used for navigation, and only dead reckoning will be used. A value of zero should never be used for normal flight. Currently this affects only the DCM-based AHRS: the EKF uses GPS according to its own parameters. A value of 2 means to use GPS for height as well as position - both in DCM estimation and when determining altitude-above-home.",DisplayName:"AHRS use GPS for DCM navigation and position-down",User:"Advanced",Values:{0:"Disabled",1:"Use GPS for DCM position",2:"Use GPS for DCM position and height"}},AHRS_ORIENTATION:{Description:"Overall board orientation relative to the standard orientation for the board type. This rotates the IMU and compass readings to allow the board to be oriented in your vehicle at any 90 or 45 degree angle. The label for each option is specified in the order of rotations for that orientation. This option takes affect on next boot. After changing you will need to re-level your vehicle. Firmware versions 4.2 and prior can use a CUSTOM (100) rotation to set the AHRS_CUSTOM_ROLL/PIT/YAW angles for AHRS orientation. Later versions provide two general custom rotations which can be used, Custom 1 and Custom 2, with CUST_ROT1_ROLL/PIT/YAW or CUST_ROT2_ROLL/PIT/YAW angles.",DisplayName:"Board Orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Yaw45Roll180",10:"Yaw90Roll180",11:"Yaw135Roll180",12:"Pitch180",13:"Yaw225Roll180",14:"Yaw270Roll180",15:"Yaw315Roll180",16:"Roll90",17:"Yaw45Roll90",18:"Yaw90Roll90",19:"Yaw135Roll90",20:"Roll270",21:"Yaw45Roll270",22:"Yaw90Roll270",23:"Yaw135Roll270",24:"Pitch90",25:"Pitch270",26:"Yaw90Pitch180",27:"Yaw270Pitch180",28:"Pitch90Roll90",29:"Pitch90Roll180",30:"Pitch90Roll270",31:"Pitch180Roll90",32:"Pitch180Roll270",33:"Pitch270Roll90",34:"Pitch270Roll180",35:"Pitch270Roll270",36:"Yaw90Pitch180Roll90",37:"Yaw270Roll90",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Pitch315Roll90",42:"Roll45",43:"Roll315",100:"Custom 4.1 and older",101:"Custom 1",102:"Custom 2"}},AHRS_RP_P:{Description:"This controls how fast the accelerometers correct the attitude",DisplayName:"AHRS RP_P",Increment:".01",Range:{high:"0.4",low:"0.1"},User:"Advanced"},AHRS_TRIM_X:{Description:"Compensates for the roll angle difference between the control board and the frame. Positive values make the vehicle roll right.",DisplayName:"AHRS Trim Roll",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Standard"},AHRS_TRIM_Y:{Description:"Compensates for the pitch angle difference between the control board and the frame. Positive values make the vehicle pitch up/back.",DisplayName:"AHRS Trim Pitch",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Standard"},AHRS_TRIM_Z:{Description:"Not Used",DisplayName:"AHRS Trim Yaw",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Advanced"},AHRS_WIND_MAX:{Description:"This sets the maximum allowable difference between ground speed and airspeed. This allows the plane to cope with a failing airspeed sensor. A value of zero means to use the airspeed as is. See ARSPD_OPTIONS and ARSPD_MAX_WIND to disable airspeed sensors.",DisplayName:"Maximum wind",Increment:"1",Range:{high:"127",low:"0"},Units:"m/s",User:"Advanced"},AHRS_YAW_P:{Description:"This controls the weight the compass or GPS has on the heading. A higher value means the heading will track the yaw source (GPS or compass) more rapidly.",DisplayName:"Yaw P",Increment:".01",Range:{high:"0.4",low:"0.1"},User:"Advanced"}},cW={AIS_LIST_MAX:{Description:"AIS list size of nearest vessels. Longer lists take longer to refresh with lower SRx_ADSB values.",DisplayName:"AIS vessel list size",Range:{high:"100",low:"1"},User:"Advanced"},AIS_LOGGING:{Bitmask:{0:"Log all AIVDM messages",1:"Log only unsupported AIVDM messages",2:"Log decoded messages"},Description:"Bitmask of AIS logging options",DisplayName:"AIS logging options",User:"Advanced"},AIS_TIME_OUT:{Description:"if no updates are received in this time a vessel will be removed from the list",DisplayName:"AIS vessel time out",Range:{high:"2000",low:"1"},Units:"s",User:"Advanced"},AIS_TYPE:{Description:"AIS receiver type",DisplayName:"AIS receiver type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"NMEA AIVDM message"}}},dW={ARMING_ACCTHRESH:{Description:"Accelerometer error threshold used to determine inconsistent accelerometers. Compares this error range to other accelerometers to detect a hardware or calibration error. Lower value means tighter check and harder to pass arming check. Not all accelerometers are created equal.",DisplayName:"Accelerometer error threshold",Range:{high:"3.0",low:"0.25"},Units:"m/s/s",User:"Advanced"},ARMING_CHECK:{Bitmask:{0:"All",1:"Barometer",2:"Compass",3:"GPS lock",4:"INS",5:"Parameters",6:"RC Channels",7:"Board voltage",8:"Battery Level",9:"Airspeed",10:"Logging Available",11:"Hardware safety switch",12:"GPS Configuration",13:"System",14:"Mission",15:"Rangefinder",16:"Camera",17:"AuxAuth",19:"FFT"},Description:"Checks prior to arming motor. This is a bitmask of checks that will be performed before allowing arming. For most users it is recommended to leave this at the default of 1 (all checks enabled). You can select whatever checks you prefer by adding together the values of each check type to set this parameter. For example, to only allow arming when you have GPS lock and no RC failsafe you would set ARMING_CHECK to 72.",DisplayName:"Arm Checks to Perform (bitmask)",User:"Standard"},ARMING_MIS_ITEMS:{Bitmask:{0:"Land",1:"VTOL Land",2:"DO_LAND_START",3:"Takeoff",4:"VTOL Takeoff",5:"Rallypoint"},Description:"Bitmask of mission items that are required to be planned in order to arm the aircraft",DisplayName:"Required mission items",User:"Advanced"},ARMING_OPTIONS:{Description:"Options that can be applied to change arming behaviour",DisplayName:"Arming options",User:"Advanced",Values:{0:"None",1:"Disable prearm display"}},ARMING_REQUIRE:{Description:"Arming disabled until some requirements are met. If 0, there are no requirements (arm immediately). If 1, require rudder stick or GCS arming before arming motors and sends the minimum throttle PWM value to the throttle channel when disarmed. If 2, require rudder stick or GCS arming and send 0 PWM to throttle channel when disarmed. See the ARMING_CHECK_* parameters to see what checks are done before arming. Note, if setting this parameter to 0 a reboot is required to arm the plane. Also note, even with this parameter at 0, if ARMING_CHECK parameter is not also zero the plane may fail to arm throttle at boot due to a pre-arm check failure.",DisplayName:"Require Arming Motors ",User:"Advanced",Values:{0:"Disabled",1:"THR_MIN PWM when disarmed",2:"0 PWM when disarmed"}},ARMING_RUDDER:{Description:"Allow arm/disarm by rudder input. When enabled arming can be done with right rudder, disarming with left rudder. Rudder arming only works in manual throttle modes with throttle at zero +- deadzone (RCx_DZ)",DisplayName:"Arming with Rudder enable/disable",User:"Advanced",Values:{0:"Disabled",1:"ArmingOnly",2:"ArmOrDisarm"}}},CW={ARSPD2_AUTOCAL:{Description:"If this is enabled then the autopilot will automatically adjust the ARSPD_RATIO during flight, based upon an estimation filter using ground speed and true airspeed. The automatic calibration will save the new ratio to EEPROM every 2 minutes if it changes by more than 5%. This option should be enabled for a calibration flight then disabled again when calibration is complete. Leaving it enabled all the time is not recommended.",DisplayName:"Automatic airspeed ratio calibration for 2nd airspeed sensor",User:"Advanced"},ARSPD2_BUS:{Description:"The bus number of the I2C bus to look for the sensor on",DisplayName:"Airspeed I2C bus for 2nd sensor",User:"Advanced",Values:{0:"Bus0(internal)",1:"Bus1(external)",2:"Bus2(auxiliary)"}},ARSPD2_DEVID:{Description:"Airspeed2 sensor ID, taking into account its type, bus and instance",DisplayName:"Airspeed2 ID",ReadOnly:"True",User:"Advanced"},ARSPD2_OFFSET:{Description:"Airspeed calibration offset",DisplayName:"Airspeed offset for 2nd airspeed sensor",Increment:"0.1",User:"Advanced"},ARSPD2_PIN:{Description:"Pin number indicating location of analog airspeed sensors. Pixhawk/Cube if set to 15. ",DisplayName:"Airspeed pin for 2nd airspeed sensor",User:"Advanced"},ARSPD2_PSI_RANGE:{Description:"This parameter allows you to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",DisplayName:"The PSI range of the device for 2nd sensor",User:"Advanced"},ARSPD2_RATIO:{Description:"Airspeed calibration ratio",DisplayName:"Airspeed ratio for 2nd airspeed sensor",Increment:"0.1",User:"Advanced"},ARSPD2_SKIP_CAL:{Description:"This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",DisplayName:"Skip airspeed offset calibration on startup for 2nd sensor",User:"Advanced",Values:{0:"Disable",1:"Enable"}},ARSPD2_TUBE_ORDR:{Description:"This parameter allows you to control whether the order in which the tubes are attached to your pitot tube matters. If you set this to 0 then the first (often the top) connector on the sensor needs to be the stagnation pressure (the pressure at the tip of the pitot tube). If set to 1 then the second (often the bottom) connector needs to be the stagnation pressure. If set to 2 (the default) then the airspeed driver will accept either order. The reason you may wish to specify the order is it will allow your airspeed sensor to detect if the aircraft is receiving excessive pressure on the static port compared to the stagnation port such as during a stall, which would otherwise be seen as a positive airspeed.",DisplayName:"Control pitot tube order of 2nd airspeed sensor",User:"Advanced",Values:{0:"Normal",1:"Swapped",2:"Auto Detect"}},ARSPD2_TYPE:{Description:"Type of 2nd airspeed sensor",DisplayName:"Second Airspeed type",User:"Standard",Values:{0:"None",1:"I2C-MS4525D0",2:"Analog",3:"I2C-MS5525",4:"I2C-MS5525 (0x76)",5:"I2C-MS5525 (0x77)",6:"I2C-SDP3X",7:"I2C-DLVR-5in",8:"DroneCAN",9:"I2C-DLVR-10in",10:"I2C-DLVR-20in",11:"I2C-DLVR-30in",12:"I2C-DLVR-60in",13:"NMEA water speed",14:"MSP",15:"ASP5033"}},ARSPD2_USE:{Description:"use airspeed for flight control. When set to 0 airspeed sensor can be logged and displayed on a GCS but won't be used for flight. When set to 1 it will be logged and used. When set to 2 it will be only used when the throttle is zero, which can be useful in gliders with airspeed sensors behind a propeller",DisplayName:"Enable use of 2nd airspeed sensor",User:"Standard",Values:{0:"Don't Use",1:"use",2:"UseWhenZeroThrottle"}},ARSPD_AUTOCAL:{Description:"Enables automatic adjustment of ARSPD_RATIO during a calibration flight based on estimation of ground speed and true airspeed. New ratio saved every 2 minutes if change is > 5%. Should not be left enabled.",DisplayName:"Automatic airspeed ratio calibration",User:"Advanced"},ARSPD_BUS:{Description:"Bus number of the I2C bus where the airspeed sensor is connected",DisplayName:"Airspeed I2C bus",User:"Advanced",Values:{0:"Bus0(internal)",1:"Bus1(external)",2:"Bus2(auxiliary)"}},ARSPD_DEVID:{Description:"Airspeed sensor ID, taking into account its type, bus and instance",DisplayName:"Airspeed ID",ReadOnly:"True",User:"Advanced"},ARSPD_OFFSET:{Description:"Airspeed calibration offset",DisplayName:"Airspeed offset",Increment:"0.1",User:"Advanced"},ARSPD_OPTIONS:{Bitmask:{0:"SpeedMismatchDisable",1:"AllowSpeedMismatchRecovery",2:"DisableVoltageCorrection",3:"UseEkf3Consistency"},Description:"Bitmask of options to use with airspeed. 0:Disable use based on airspeed/groundspeed mismatch (see ARSPD_WIND_MAX), 1:Automatically reenable use based on airspeed/groundspeed mismatch recovery (see ARSPD_WIND_MAX) 2:Disable voltage correction, 3:Check that the airspeed is statistically consistent with the navigation EKF vehicle and wind velocity estimates using EKF3 (requires AHRS_EKF_TYPE = 3)",DisplayName:"Airspeed options bitmask",User:"Advanced"},ARSPD_PIN:{Description:"The pin number that the airspeed sensor is connected to for analog sensors. Set to 15 on the Pixhawk for the analog airspeed port. ",DisplayName:"Airspeed pin",User:"Advanced"},ARSPD_PRIMARY:{Description:"This selects which airspeed sensor will be the primary if multiple sensors are found",DisplayName:"Primary airspeed sensor",User:"Advanced",Values:{0:"FirstSensor",1:"2ndSensor"}},ARSPD_PSI_RANGE:{Description:"This parameter allows you to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",DisplayName:"The PSI range of the device",User:"Advanced"},ARSPD_RATIO:{Description:"Calibrates pitot tube pressure to velocity. Increasing this value will indicate a higher airspeed at any given dynamic pressure.",DisplayName:"Airspeed ratio",Increment:"0.1",User:"Advanced"},ARSPD_SKIP_CAL:{Description:"This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",DisplayName:"Skip airspeed offset calibration on startup",User:"Advanced",Values:{0:"Disable",1:"Enable"}},ARSPD_TUBE_ORDER:{Description:"This parameter allows you to control whether the order in which the tubes are attached to your pitot tube matters. If you set this to 0 then the first (often the top) connector on the sensor needs to be the stagnation pressure (the pressure at the tip of the pitot tube). If set to 1 then the second (often the bottom) connector needs to be the stagnation pressure. If set to 2 (the default) then the airspeed driver will accept either order. The reason you may wish to specify the order is it will allow your airspeed sensor to detect if the aircraft is receiving excessive pressure on the static port compared to the stagnation port such as during a stall, which would otherwise be seen as a positive airspeed.",DisplayName:"Control pitot tube order",User:"Advanced",Values:{0:"Normal",1:"Swapped",2:"Auto Detect"}},ARSPD_TYPE:{Description:"Type of airspeed sensor",DisplayName:"Airspeed type",User:"Standard",Values:{0:"None",1:"I2C-MS4525D0",2:"Analog",3:"I2C-MS5525",4:"I2C-MS5525 (0x76)",5:"I2C-MS5525 (0x77)",6:"I2C-SDP3X",7:"I2C-DLVR-5in",8:"DroneCAN",9:"I2C-DLVR-10in",10:"I2C-DLVR-20in",11:"I2C-DLVR-30in",12:"I2C-DLVR-60in",13:"NMEA water speed",14:"MSP",15:"ASP5033",100:"SITL"}},ARSPD_USE:{Description:"Enables airspeed use for automatic throttle modes and replaces control from THR_TRIM. Continues to display and log airspeed if set to 0. Uses airspeed for control if set to 1. Only uses airspeed when throttle = 0 if set to 2 (useful for gliders with airspeed sensors behind propellers).",DisplayName:"Airspeed use",User:"Standard",Values:{0:"DoNotUse",1:"Use",2:"UseWhenZeroThrottle"}},ARSPD_WIND_GATE:{Description:"Number of standard deviations applied to the re-enable EKF consistency check that is used when ARSPD_OPTIONS bit position 3 is set. Larger values will make the re-enabling of the airspeed sensor faster, but increase the likelihood of re-enabling a degraded sensor. The value can be tuned by using the ARSP.TR log message by setting ARSP_WIND_GATE to a value that is higher than the value for ARSP.TR observed with a healthy airspeed sensor. Occasional transients in ARSP.TR above the value set by ARSP_WIND_GATE can be tolerated provided they are less than 5 seconds in duration and less than 10% duty cycle.",DisplayName:"Re-enable Consistency Check Gate Size",Range:{high:"10.0",low:"0.0"},User:"Advanced"},ARSPD_WIND_MAX:{Description:"If the difference between airspeed and ground speed is greater than this value the sensor will be marked unhealthy. Using ARSPD_OPTION this health value can be used to disable the sensor.",DisplayName:"Maximum airspeed and ground speed difference",Units:"m/s",User:"Advanced"},ARSPD_WIND_WARN:{Description:"If the difference between airspeed and ground speed is greater than this value the sensor will issue a warning. If 0 ARSPD_WIND_MAX is used.",DisplayName:"Airspeed and ground speed difference that gives a warning",Units:"m/s",User:"Advanced"}},mW={AVD_ENABLE:{Description:"Enable Avoidance using ADSB",DisplayName:"Enable Avoidance using ADSB",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},AVD_F_ACTION:{Description:"Specifies aircraft behaviour when a collision is imminent",DisplayName:"Collision Avoidance Behavior",User:"Advanced",Values:{0:"None",1:"Report",2:"Climb Or Descend",3:"Move Horizontally",4:"Move Perpendicularly in 3D",5:"RTL",6:"Hover"}},AVD_F_ALT_MIN:{Description:"Minimum AMSL (above mean sea level) altitude for ADS-B avoidance. If the vehicle is below this altitude, no avoidance action will take place. Useful to prevent ADS-B avoidance from activating while below the tree line or around structures. Default of 0 is no minimum.",DisplayName:"ADS-B avoidance minimum altitude",Units:"m",User:"Advanced"},AVD_F_DIST_XY:{Description:"Closest allowed projected distance before F_ACTION is undertaken",DisplayName:"Distance Fail XY",Units:"m",User:"Advanced"},AVD_F_DIST_Z:{Description:"Closest allowed projected distance before BEHAVIOUR_F is undertaken",DisplayName:"Distance Fail Z",Units:"m",User:"Advanced"},AVD_F_RCVRY:{Description:"Determines what the aircraft will do after a fail event is resolved",DisplayName:"Recovery behaviour after a fail event",User:"Advanced",Values:{0:"Remain in AVOID_ADSB",1:"Resume previous flight mode",2:"RTL",3:"Resume if AUTO else Loiter"}},AVD_F_TIME:{Description:"Aircraft velocity vectors are multiplied by this time to determine closest approach. If this results in an approach closer than F_DIST_XY or F_DIST_Z then F_ACTION is undertaken",DisplayName:"Time Horizon Fail",Units:"s",User:"Advanced"},AVD_OBS_MAX:{Description:"Maximum number of obstacles to track",DisplayName:"Maximum number of obstacles to track",User:"Advanced"},AVD_W_ACTION:{Description:"Specifies aircraft behaviour when a collision may occur",DisplayName:"Collision Avoidance Behavior - Warn",User:"Advanced",Values:{0:"None",1:"Report"}},AVD_W_DIST_XY:{Description:"Closest allowed projected distance before W_ACTION is undertaken",DisplayName:"Distance Warn XY",Units:"m",User:"Advanced"},AVD_W_DIST_Z:{Description:"Closest allowed projected distance before BEHAVIOUR_W is undertaken",DisplayName:"Distance Warn Z",Units:"m",User:"Advanced"},AVD_W_TIME:{Description:"Aircraft velocity vectors are multiplied by this time to determine closest approach. If this results in an approach closer than W_DIST_XY or W_DIST_Z then W_ACTION is undertaken (assuming F_ACTION is not undertaken)",DisplayName:"Time Horizon Warn",Units:"s",User:"Advanced"}},uW={BARO1_DEVID:{Description:"Barometer sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID",ReadOnly:"True",User:"Advanced"},BARO1_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Ground Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO2_DEVID:{Description:"Barometer2 sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID2",ReadOnly:"True",User:"Advanced"},BARO2_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Ground Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO3_DEVID:{Description:"Barometer3 sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID3",ReadOnly:"True",User:"Advanced"},BARO3_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Absolute Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO_ALT_OFFSET:{Description:"altitude offset in meters added to barometric altitude. This is used to allow for automatic adjustment of the base barometric altitude by a ground station equipped with a barometer. The value is added to the barometric altitude read by the aircraft. It is automatically reset to 0 when the barometer is calibrated on each reboot or when a preflight calibration is performed.",DisplayName:"altitude offset",Increment:"0.1",Units:"m",User:"Advanced"},BARO_EXT_BUS:{Description:"This selects the bus number for looking for an I2C barometer. When set to -1 it will probe all external i2c buses based on the GND_PROBE_EXT parameter.",DisplayName:"External baro bus",User:"Advanced",Values:{0:"Bus0",1:"Bus1","-1":"Disabled"}},BARO_FIELD_ELV:{Description:"User provided field elevation in meters. This is used to improve the calculation of the altitude the vehicle is at. This parameter is not persistent and will be reset to 0 every time the vehicle is rebooted. A value of 0 means no correction for takeoff height above sea level is performed.",DisplayName:"field elevation",Increment:"0.1",Units:"m",User:"Advanced",Volatile:"True"},BARO_FLTR_RNG:{Description:"This sets the range around the average value that new samples must be within to be accepted. This can help reduce the impact of noise on sensors that are on long I2C cables. The value is a percentage from the average value. A value of zero disables this filter.",DisplayName:"Range in which sample is accepted",Increment:"1",Range:{high:"100",low:"0"},Units:"%"},BARO_GND_TEMP:{Description:"User provided ambient ground temperature in degrees Celsius. This is used to improve the calculation of the altitude the vehicle is at. This parameter is not persistent and will be reset to 0 every time the vehicle is rebooted. A value of 0 means use the internal measurement ambient temperature.",DisplayName:"ground temperature",Increment:"1",Units:"degC",User:"Advanced",Volatile:"True"},BARO_PRIMARY:{Description:"This selects which barometer will be the primary if multiple barometers are found",DisplayName:"Primary barometer",User:"Advanced",Values:{0:"FirstBaro",1:"2ndBaro",2:"3rdBaro"}},BARO_PROBE_EXT:{Bitmask:{0:"BMP085",1:"BMP280",2:"MS5611",3:"MS5607",4:"MS5637",5:"FBM320",6:"DPS280",7:"LPS25H",8:"Keller",9:"MS5837",10:"BMP388",11:"SPL06",12:"MSP"},Description:"This sets which types of external i2c barometer to look for. It is a bitmask of barometer types. The I2C buses to probe is based on GND_EXT_BUS. If BARO_EXT_BUS is -1 then it will probe all external buses, otherwise it will probe just the bus number given in GND_EXT_BUS.",DisplayName:"External barometers to probe",User:"Advanced"}},hW={BARO1_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO1_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},pW={BARO2_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO2_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},fW={BARO3_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO3_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},VW={BATT2_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT2_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT2_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT2__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT2_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT2_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT2__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT2_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT2_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT2_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT2_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT2_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT2_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT2_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT2_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT2_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",5:"Parachute",6:"Loiter to QLand"}},BATT2_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",6:"Loiter to QLand"}},BATT2_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT2_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT2_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT2_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT2_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT2_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT2_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT2_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT2_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT2_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT2_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT2_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT2_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT2_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT2_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT2_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}},BATT2_WATT_MAX:{Description:"If battery wattage (voltage * current) exceeds this value then the system will reduce max throttle (THR_MAX, TKOFF_THR_MAX and THR_MIN for reverse thrust) to satisfy this limit. This helps limit high current to low C rated batteries regardless of battery voltage. The max throttle will slowly grow back to THR_MAX (or TKOFF_THR_MAX ) and THR_MIN if demanding the current max and under the watt max. Use 0 to disable.",DisplayName:"Maximum allowed power (Watts)",Increment:"1",Units:"W",User:"Advanced"}},LW={BATT3_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT3_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT3_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT3__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT3_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT3_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT3__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT3_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT3_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT3_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT3_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT3_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT3_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT3_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT3_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT3_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",5:"Parachute",6:"Loiter to QLand"}},BATT3_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",6:"Loiter to QLand"}},BATT3_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT3_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT3_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT3_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT3_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT3_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT3_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT3_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT3_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT3_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT3_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT3_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT3_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT3_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT3_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT3_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}},BATT3_WATT_MAX:{Description:"If battery wattage (voltage * current) exceeds this value then the system will reduce max throttle (THR_MAX, TKOFF_THR_MAX and THR_MIN for reverse thrust) to satisfy this limit. This helps limit high current to low C rated batteries regardless of battery voltage. The max throttle will slowly grow back to THR_MAX (or TKOFF_THR_MAX ) and THR_MIN if demanding the current max and under the watt max. Use 0 to disable.",DisplayName:"Maximum allowed power (Watts)",Increment:"1",Units:"W",User:"Advanced"}},HW={BATT4_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT4_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT4_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT4__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT4_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT4_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT4__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT4_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT4_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT4_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT4_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT4_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT4_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT4_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT4_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT4_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",5:"Parachute",6:"Loiter to QLand"}},BATT4_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",6:"Loiter to QLand"}},BATT4_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT4_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT4_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT4_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT4_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT4_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT4_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT4_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT4_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT4_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT4_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT4_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT4_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT4_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT4_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT4_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}},BATT4_WATT_MAX:{Description:"If battery wattage (voltage * current) exceeds this value then the system will reduce max throttle (THR_MAX, TKOFF_THR_MAX and THR_MIN for reverse thrust) to satisfy this limit. This helps limit high current to low C rated batteries regardless of battery voltage. The max throttle will slowly grow back to THR_MAX (or TKOFF_THR_MAX ) and THR_MIN if demanding the current max and under the watt max. Use 0 to disable.",DisplayName:"Maximum allowed power (Watts)",Increment:"1",Units:"W",User:"Advanced"}},MW={BATT5_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT5_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT5_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT5__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT5_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT5_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT5__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT5_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT5_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT5_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT5_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT5_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT5_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT5_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT5_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT5_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",5:"Parachute",6:"Loiter to QLand"}},BATT5_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",6:"Loiter to QLand"}},BATT5_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT5_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT5_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT5_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT5_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT5_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT5_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT5_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT5_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT5_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT5_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT5_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT5_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT5_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT5_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT5_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}},BATT5_WATT_MAX:{Description:"If battery wattage (voltage * current) exceeds this value then the system will reduce max throttle (THR_MAX, TKOFF_THR_MAX and THR_MIN for reverse thrust) to satisfy this limit. This helps limit high current to low C rated batteries regardless of battery voltage. The max throttle will slowly grow back to THR_MAX (or TKOFF_THR_MAX ) and THR_MIN if demanding the current max and under the watt max. Use 0 to disable.",DisplayName:"Maximum allowed power (Watts)",Increment:"1",Units:"W",User:"Advanced"}},gW={BATT6_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT6_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT6_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT6__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT6_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT6_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT6__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT6_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT6_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT6_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT6_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT6_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT6_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT6_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT6_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT6_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",5:"Parachute",6:"Loiter to QLand"}},BATT6_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",6:"Loiter to QLand"}},BATT6_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT6_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT6_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT6_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT6_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT6_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT6_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT6_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT6_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT6_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT6_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT6_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT6_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT6_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT6_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT6_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}},BATT6_WATT_MAX:{Description:"If battery wattage (voltage * current) exceeds this value then the system will reduce max throttle (THR_MAX, TKOFF_THR_MAX and THR_MIN for reverse thrust) to satisfy this limit. This helps limit high current to low C rated batteries regardless of battery voltage. The max throttle will slowly grow back to THR_MAX (or TKOFF_THR_MAX ) and THR_MIN if demanding the current max and under the watt max. Use 0 to disable.",DisplayName:"Maximum allowed power (Watts)",Increment:"1",Units:"W",User:"Advanced"}},AW={BATT7_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT7_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT7_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT7__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT7_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT7_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT7__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT7_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT7_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT7_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT7_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT7_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT7_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT7_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT7_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT7_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",5:"Parachute",6:"Loiter to QLand"}},BATT7_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",6:"Loiter to QLand"}},BATT7_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT7_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT7_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT7_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT7_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT7_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT7_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT7_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT7_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT7_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT7_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT7_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT7_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT7_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT7_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT7_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}},BATT7_WATT_MAX:{Description:"If battery wattage (voltage * current) exceeds this value then the system will reduce max throttle (THR_MAX, TKOFF_THR_MAX and THR_MIN for reverse thrust) to satisfy this limit. This helps limit high current to low C rated batteries regardless of battery voltage. The max throttle will slowly grow back to THR_MAX (or TKOFF_THR_MAX ) and THR_MIN if demanding the current max and under the watt max. Use 0 to disable.",DisplayName:"Maximum allowed power (Watts)",Increment:"1",Units:"W",User:"Advanced"}},vW={BATT8_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT8_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT8_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT8__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT8_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT8_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT8__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT8_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT8_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT8_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT8_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT8_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT8_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT8_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT8_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT8_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",5:"Parachute",6:"Loiter to QLand"}},BATT8_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",6:"Loiter to QLand"}},BATT8_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT8_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT8_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT8_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT8_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT8_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT8_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT8_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT8_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT8_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT8_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT8_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT8_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT8_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT8_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT8_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}},BATT8_WATT_MAX:{Description:"If battery wattage (voltage * current) exceeds this value then the system will reduce max throttle (THR_MAX, TKOFF_THR_MAX and THR_MIN for reverse thrust) to satisfy this limit. This helps limit high current to low C rated batteries regardless of battery voltage. The max throttle will slowly grow back to THR_MAX (or TKOFF_THR_MAX ) and THR_MIN if demanding the current max and under the watt max. Use 0 to disable.",DisplayName:"Maximum allowed power (Watts)",Increment:"1",Units:"W",User:"Advanced"}},_W={BATT9_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT9_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT9_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT9__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT9_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT9_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT9__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT9_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT9_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT9_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT9_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT9_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT9_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT9_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT9_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT9_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",5:"Parachute",6:"Loiter to QLand"}},BATT9_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",6:"Loiter to QLand"}},BATT9_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT9_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT9_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT9_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT9_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT9_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT9_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT9_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT9_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT9_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT9_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT9_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT9_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT9_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT9_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT9_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}},BATT9_WATT_MAX:{Description:"If battery wattage (voltage * current) exceeds this value then the system will reduce max throttle (THR_MAX, TKOFF_THR_MAX and THR_MIN for reverse thrust) to satisfy this limit. This helps limit high current to low C rated batteries regardless of battery voltage. The max throttle will slowly grow back to THR_MAX (or TKOFF_THR_MAX ) and THR_MIN if demanding the current max and under the watt max. Use 0 to disable.",DisplayName:"Maximum allowed power (Watts)",Increment:"1",Units:"W",User:"Advanced"}},SW={BATT_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT_FL_FLTR:{Description:"Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",DisplayName:"Fuel level filter frequency",Range:{high:"1",low:"-1"},RebootRequired:"True",Units:"Hz",User:"Advanced"},BATT_FL_PIN:{Description:"Analog input pin that fuel level sensor is connected to. Airspeed ports can be used for Analog input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Fuel level analog pin number",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",103:"Pixhawk SBUS","-1":"Not Used"}},BATT_FL_VLT_MIN:{Description:"The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Empty fuel level voltage",Range:{high:"10",low:"0.01"},Units:"V",User:"Advanced"},BATT_FL_V_MULT:{Description:"Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",DisplayName:"Fuel level voltage multiplier",Range:{high:"10",low:"0.01"},User:"Advanced"},BATT_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",5:"Parachute",6:"Loiter to QLand"}},BATT_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Land",3:"Terminate",4:"QLand",6:"Loiter to QLand"}},BATT_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo",24:"FuelLevelAnalog"}},BATT_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}},BATT_WATT_MAX:{Description:"If battery wattage (voltage * current) exceeds this value then the system will reduce max throttle (THR_MAX, TKOFF_THR_MAX and THR_MIN for reverse thrust) to satisfy this limit. This helps limit high current to low C rated batteries regardless of battery voltage. The max throttle will slowly grow back to THR_MAX (or TKOFF_THR_MAX ) and THR_MIN if demanding the current max and under the watt max. Use 0 to disable.",DisplayName:"Maximum allowed power (Watts)",Increment:"1",Units:"W",User:"Advanced"}},DW={BRD_ALT_CONFIG:{Description:"Select an alternative hardware configuration. A value of zero selects the default configuration for this board. Other values are board specific. Please see the documentation for your board for details on any alternative configuration values that may be available.",DisplayName:"Alternative HW config",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},BRD_BOOT_DELAY:{Description:"This adds a delay in milliseconds to boot to ensure peripherals initialise fully",DisplayName:"Boot delay",Range:{high:"10000",low:"0"},Units:"ms",User:"Advanced"},BRD_HEAT_I:{Description:"Board Heater integrator gain",DisplayName:"Board Heater I gain",Increment:"0.1",Range:{high:"1",low:"0"},User:"Advanced"},BRD_HEAT_IMAX:{Description:"Board Heater integrator maximum",DisplayName:"Board Heater IMAX",Increment:"1",Range:{high:"100",low:"0"},User:"Advanced"},BRD_HEAT_LOWMGN:{Description:"Arming check will fail if temp is lower than this margin below BRD_HEAT_TARG. 0 disables the low temperature check",DisplayName:"Board heater temp lower margin",Range:{high:"20",low:"0"},Units:"degC",User:"Advanced"},BRD_HEAT_P:{Description:"Board Heater P gain",DisplayName:"Board Heater P gain",Increment:"1",Range:{high:"500",low:"1"},User:"Advanced"},BRD_HEAT_TARG:{Description:"Board heater target temperature for boards with controllable heating units. DO NOT SET to -1 on the Cube. Set to -1 to disable the heater, please reboot after setting to -1.",DisplayName:"Board heater temperature target",Range:{high:"80",low:"-1"},Units:"degC",User:"Advanced"},BRD_IO_ENABLE:{Description:"This allows for the IO co-processor on FMUv1 and FMUv2 to be disabled",DisplayName:"Enable IO co-processor",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BRD_OPTIONS:{Bitmask:{0:"Enable hardware watchdog",1:"Disable MAVftp",2:"Enable set of internal parameters",3:"Enable Debug Pins",4:"Unlock flash on reboot",5:"Write protect firmware flash on reboot",6:"Write protect bootloader flash on reboot"},Description:"Board specific option flags",DisplayName:"Board options",User:"Advanced"},BRD_PWM_VOLT_SEL:{Description:"This sets the voltage max for PWM output pulses. 0 for 3.3V and 1 for 5V output.",DisplayName:"Set PWM Out Voltage",User:"Advanced",Values:{0:"3.3V",1:"5V"}},BRD_SAFETYENABLE:{Description:"This controls the default state of the safety switch at startup. When set to 1 the safety switch will start in the safe state (flashing) at boot. When set to zero the safety switch will start in the unsafe state (solid) at startup. Note that if a safety switch is fitted the user can still control the safety state after startup using the switch. The safety state can also be controlled in software using a MAVLink message.",DisplayName:"Enable use of safety arming switch",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},BRD_SAFETYOPTION:{Bitmask:{0:"ActiveForSafetyEnable",1:"ActiveForSafetyDisable",2:"ActiveWhenArmed",3:"Force safety on when the aircraft disarms"},Description:"This controls the activation of the safety button. It allows you to control if the safety button can be used for safety enable and/or disable, and whether the button is only active when disarmed",DisplayName:"Options for safety button behavior",User:"Standard"},BRD_SAFETY_MASK:{Bitmask:{0:"Output1",1:"Output2",2:"Output3",3:"Output4",4:"Output5",5:"Output6",6:"Output7",7:"Output8",8:"Output9",9:"Output10",10:"Output11",11:"Output12",12:"Output13",13:"Output14"},Description:"A bitmask which controls what outputs can move while the safety switch has not been pressed",DisplayName:"Outputs which ignore the safety switch state",RebootRequired:"True",User:"Advanced"},BRD_SBUS_OUT:{Description:"This sets the SBUS output frame rate in Hz",DisplayName:" SBUS output rate",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"50Hz",2:"75Hz",3:"100Hz",4:"150Hz",5:"200Hz",6:"250Hz",7:"300Hz"}},BRD_SD_SLOWDOWN:{Description:"This is a scaling factor to slow down microSD operation. It can be used on flight board and microSD card combinations where full speed is not reliable. For normal full speed operation a value of 0 should be used.",DisplayName:"microSD slowdown",Increment:"1",Range:{high:"32",low:"0"},User:"Advanced"},BRD_SER1_RTSCTS:{Description:"Enable flow control on serial 1 (telemetry 1). You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup. Note that the PX4v1 does not have hardware flow control pins on this port, so you should leave this disabled.",DisplayName:"Serial 1 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER2_RTSCTS:{Description:"Enable flow control on serial 2 (telemetry 2). You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 2 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER3_RTSCTS:{Description:"Enable flow control on serial 3. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 3 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER4_RTSCTS:{Description:"Enable flow control on serial 4. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 4 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER5_RTSCTS:{Description:"Enable flow control on serial 5. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 5 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SERIAL_NUM:{Description:"User-defined serial number of this vehicle, it can be any arbitrary number you want and has no effect on the autopilot",DisplayName:"User-defined serial number",Range:{high:"8388607",low:"-8388608"},User:"Standard"},BRD_TYPE:{Description:"This allows selection of a PX4 or VRBRAIN board type. If set to zero then the board type is auto-detected (PX4)",DisplayName:"Board type",RebootRequired:"True",User:"Advanced",Values:{0:"AUTO",1:"PX4V1",2:"Pixhawk",3:"Cube/Pixhawk2",4:"Pixracer",5:"PixhawkMini",6:"Pixhawk2Slim",13:"Intel Aero FC",14:"Pixhawk Pro",20:"AUAV2.1",21:"PCNC1",22:"MINDPXV2",23:"SP01",24:"CUAVv5/FMUV5",30:"VRX BRAIN51",32:"VRX BRAIN52",33:"VRX BRAIN52E",34:"VRX UBRAIN51",35:"VRX UBRAIN52",36:"VRX CORE10",38:"VRX BRAIN54",39:"PX4 FMUV6",100:"PX4 OLDDRIVERS"}},BRD_VBUS_MIN:{Description:"Minimum voltage on the autopilot power rail to allow the aircraft to arm. 0 to disable the check.",DisplayName:"Autopilot board voltage requirement",Increment:"0.1",Range:{high:"5.5",low:"4.0"},Units:"V",User:"Advanced"},BRD_VSERVO_MIN:{Description:"Minimum voltage on the servo rail to allow the aircraft to arm. 0 to disable the check.",DisplayName:"Servo voltage requirement",Increment:"0.1",Range:{high:"12.0",low:"3.3"},Units:"V",User:"Advanced"}},yW={BRD_RADIO_ABLVL:{Description:"This sets the minimum RSSI of an auto-bind packet for it to be accepted. This should be set so that auto-bind will only happen at short range to minimise the change of an auto-bind happening accidentially",DisplayName:"Auto-bind level",Range:{high:"31",low:"0"},User:"Advanced"},BRD_RADIO_ABTIME:{Description:"When non-zero this sets the time with no transmitter packets before we start looking for auto-bind packets.",DisplayName:"Auto-bind time",Range:{high:"120",low:"0"},User:"Advanced"},BRD_RADIO_BZOFS:{Description:"Set transmitter buzzer note adjustment (adjust frequency up)",DisplayName:"Transmitter buzzer adjustment",Range:{high:"40",low:"0"},User:"Advanced"},BRD_RADIO_DEBUG:{Description:"radio debug level",DisplayName:"debug level",Range:{high:"4",low:"0"},User:"Advanced"},BRD_RADIO_DISCRC:{Description:"disable receive CRC (for debug)",DisplayName:"disable receive CRC",User:"Advanced",Values:{0:"NotDisabled",1:"Disabled"}},BRD_RADIO_FCCTST:{Description:"If this is enabled then the radio will continuously transmit as required for FCC testing. The transmit channel is set by the value of the parameter. The radio will not work for RC input while this is enabled",DisplayName:"Put radio into FCC test mode",User:"Advanced",Values:{0:"Disabled",1:"MinChannel",2:"MidChannel",3:"MaxChannel",4:"MinChannelCW",5:"MidChannelCW",6:"MaxChannelCW"}},BRD_RADIO_PPSCH:{Description:"Channel to show received packet-per-second rate, or zero for disabled",DisplayName:"Packet rate channel",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_PROT:{Description:"Select air protocol",DisplayName:"protocol",User:"Advanced",Values:{0:"Auto",1:"DSM2",2:"DSMX"}},BRD_RADIO_SIGCH:{Description:"Channel to show receive RSSI signal strength, or zero for disabled",DisplayName:"RSSI signal strength",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_STKMD:{Description:"This selects between different stick input modes. The default is mode2, which has throttle on the left stick and pitch on the right stick. You can instead set mode1, which has throttle on the right stick and pitch on the left stick.",DisplayName:"Stick input mode",User:"Advanced",Values:{1:"Mode1",2:"Mode2"}},BRD_RADIO_TELEM:{Description:"If this is non-zero then telemetry packets will be sent over DSM",DisplayName:"Enable telemetry",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BRD_RADIO_TESTCH:{Description:"This sets the radio to a fixed test channel for factory testing. Using a fixed channel avoids the need for binding in factory testing.",DisplayName:"Set radio to factory test channel",User:"Advanced",Values:{0:"Disabled",1:"TestChan1",2:"TestChan2",3:"TestChan3",4:"TestChan4",5:"TestChan5",6:"TestChan6",7:"TestChan7",8:"TestChan8"}},BRD_RADIO_TPPSCH:{Description:"Channel to show telemetry packets-per-second value, as received at TX",DisplayName:"Telemetry PPS channel",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_TSIGCH:{Description:"Channel to show telemetry RSSI value as received by TX",DisplayName:"RSSI value channel for telemetry data on transmitter",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_TXMAX:{Description:"Set transmitter maximum transmit power (from 1 to 8)",DisplayName:"Transmitter transmit power",Range:{high:"8",low:"1"},User:"Advanced"},BRD_RADIO_TXPOW:{Description:"Set telemetry transmit power. This is the power level (from 1 to 8) for telemetry packets sent from the RX to the TX",DisplayName:"Telemetry Transmit power",Range:{high:"8",low:"1"},User:"Advanced"},BRD_RADIO_TYPE:{Description:"This enables support for direct attached radio receivers",DisplayName:"Set type of direct attached radio",Values:{0:"None",1:"CYRF6936",2:"CC2500",3:"BK2425"}}},RW={BRD_RTC_TYPES:{Bitmask:{0:"GPS",1:"MAVLINK_SYSTEM_TIME",2:"HW"},Description:"Specifies which sources of UTC time will be accepted",DisplayName:"Allowed sources of RTC time",User:"Advanced"},BRD_RTC_TZ_MIN:{Description:"Adds offset in +- minutes from UTC to calculate local time",DisplayName:"Timezone offset from UTC",Range:{high:"+840",low:"-720"},User:"Advanced"}},bW={BTN_ENABLE:{Description:"This enables the button checking module. When this is disabled the parameters for setting button inputs are not visible",DisplayName:"Enable button reporting",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BTN_FUNC1:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 1 RC Channel function",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_FUNC2:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 2 RC Channel function",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_FUNC3:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 3 RC Channel function",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_FUNC4:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 4 RC Channel function",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_OPTIONS1:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 1. PWM input detects PWM above or below 1800/1200us instead of logic level. If PWM is not detected or is less than 800us or above 2200us the button will interpreted as low. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 1 Options",User:"Standard"},BTN_OPTIONS2:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 2. PWM input detects PWM above or below 1800/1200us instead of logic level. If PWM is not detected or is less than 800us or above 2200us the button will interpreted as low. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 2 Options",User:"Standard"},BTN_OPTIONS3:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 3. PWM input detects PWM above or below 1800/1200us instead of logic level. If PWM is not detected or is less than 800us or above 2200us the button will interpreted as low. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 3 Options"},BTN_OPTIONS4:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 4. PWM input detects PWM above or below 1800/1200us instead of logic level. If PWM is not detected or is less than 800us or above 2200us the button will interpreted as low. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 4 Options",User:"Standard"},BTN_PIN1:{Description:`Digital pin number for first button input. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"First button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_PIN2:{Description:`Digital pin number for second button input. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Second button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_PIN3:{Description:`Digital pin number for third button input. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Third button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_PIN4:{Description:`Digital pin number for fourth button input. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Fourth button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_REPORT_SEND:{Description:"The duration in seconds that a BUTTON_CHANGE report is repeatedly sent to the GCS regarding a button changing state. Note that the BUTTON_CHANGE message is MAVLink2 only.",DisplayName:"Report send time",Range:{high:"3600",low:"0"},User:"Standard"}},NW={CAM_AUTO_ONLY:{Description:"When enabled, trigging by distance is done in AUTO mode only.",DisplayName:"Distance-trigging in AUTO mode only",User:"Standard",Values:{0:"Always",1:"Only when in AUTO"}},CAM_DURATION:{Description:"How long the shutter will be held open in 10ths of a second (i.e. enter 10 for 1second, 50 for 5seconds)",DisplayName:"Duration that shutter is held open",Range:{high:"50",low:"0"},Units:"ds",User:"Standard"},CAM_FEEDBACK_PIN:{Description:`pin number to use for save accurate camera feedback messages. If set to -1 then don't use a pin flag for this, otherwise this is a pin number which if held high after a picture trigger order, will save camera messages when camera really takes a picture. A universal camera hot shoe is needed. The pin should be held high for at least 2 milliseconds for reliable trigger detection. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot. See also the CAM_FEEDBACK_POL option.`,DisplayName:"Camera feedback pin",RebootRequired:"True",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},CAM_FEEDBACK_POL:{Description:"Polarity for feedback pin. If this is 1 then the feedback pin should go high on trigger. If set to 0 then it should go low",DisplayName:"Camera feedback pin polarity",User:"Standard",Values:{0:"TriggerLow",1:"TriggerHigh"}},CAM_MAX_ROLL:{Description:"Postpone shooting if roll is greater than limit. (0=Disable, will shoot regardless of roll).",DisplayName:"Maximum photo roll angle.",Range:{high:"180",low:"0"},Units:"deg",User:"Standard"},CAM_MIN_INTERVAL:{Description:"Postpone shooting if previous picture was taken less than preset time(ms) ago.",DisplayName:"Minimum time between photos",Range:{high:"10000",low:"0"},Units:"ms",User:"Standard"},CAM_RELAY_ON:{Description:"This sets whether the relay goes high or low when it triggers. Note that you should also set RELAY_DEFAULT appropriately for your camera",DisplayName:"Relay ON value",User:"Standard",Values:{0:"Low",1:"High"}},CAM_SERVO_OFF:{Description:"PWM value in microseconds to move servo to when shutter is deactivated",DisplayName:"Servo OFF PWM value",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CAM_SERVO_ON:{Description:"PWM value in microseconds to move servo to when shutter is activated",DisplayName:"Servo ON PWM value",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CAM_TRIGG_DIST:{Description:"Distance in meters between camera triggers. If this value is non-zero then the camera will trigger whenever the position changes by this number of meters regardless of what mode the APM is in. Note that this parameter can also be set in an auto mission using the DO_SET_CAM_TRIGG_DIST command, allowing you to enable/disable the triggering of the camera during the flight.",DisplayName:"Camera trigger distance",Range:{high:"1000",low:"0"},Units:"m",User:"Standard"},CAM_TRIGG_TYPE:{Description:"how to trigger the camera to take a picture",DisplayName:"Camera shutter (trigger) type",User:"Standard",Values:{0:"Servo",1:"Relay",2:"GoPro in Solo Gimbal"}},CAM_TYPE:{Description:"Set the camera type that is being used, certain cameras have custom functions that need further configuration, this enables that.",DisplayName:"Type of camera (0: None, 1: BMMCC)",User:"Standard",Values:{0:"Default",1:"BMMCC"}}},wW={CAM_RC_BTN_DELAY:{Description:"Time it takes for the a RunCam button press to be actived in ms. If this is too short then commands can get out of sync.",DisplayName:"RunCam button delay before allowing further button presses",User:"Advanced"},CAM_RC_BT_DELAY:{Description:"Time it takes for the RunCam to become fully ready in ms. If this is too short then commands can get out of sync.",DisplayName:"RunCam boot delay before allowing updates",User:"Advanced"},CAM_RC_CONTROL:{Bitmask:{0:"Stick yaw right",1:"Stick roll right",2:"3-position switch",3:"2-position switch",4:"Autorecording enabled"},Description:"Specifies the allowed actions required to enter the OSD menu",DisplayName:"RunCam control option",User:"Advanced"},CAM_RC_FEATURES:{Bitmask:{0:"Power Button",1:"WiFi Button",2:"Change Mode",3:"5-Key OSD",4:"Settings Access",5:"DisplayPort",6:"Start Recording",7:"Stop Recording"},Description:"The available features of the attached RunCam device. If 0 then the RunCam device will be queried for the features it supports, otherwise this setting is used.",DisplayName:"RunCam features available",User:"Advanced"},CAM_RC_MDE_DELAY:{Description:"Time it takes for the a RunCam mode button press to be actived in ms. If a mode change first requires a video recording change then double this value is used. If this is too short then commands can get out of sync.",DisplayName:"RunCam mode delay before allowing further button presses",User:"Advanced"},CAM_RC_TYPE:{Description:"RunCam deviee type used to determine OSD menu structure and shutter options.",DisplayName:"RunCam device type",Values:{0:"Disabled",1:"RunCam Split Micro/RunCam with UART",2:"RunCam Split",3:"RunCam Split4 4k",4:"RunCam Hybrid"}}},TW={CAN_LOGLEVEL:{Description:"Loglevel for recording initialisation and debug information from CAN Interface",DisplayName:"Loglevel",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Log None",1:"Log Error",2:"Log Warning and below",3:"Log Info and below",4:"Log Everything"}}},EW={CAN_D1_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"DroneCAN",4:"PiccoloCAN",5:"CANTester",6:"EFI_NWPMU",7:"USD1",8:"KDECAN",10:"Scripting",11:"Benewake",12:"Scripting2"}}},PW={CAN_D1_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},IW={CAN_D1_PC_ECU_ID:{Description:"Node ID to send ECU throttle messages to. Set to zero to disable ECU throttle messages. Set to 255 to broadcast to all ECUs.",DisplayName:"ECU Node ID",Range:{high:"255",low:"0"},User:"Advanced"},CAN_D1_PC_ECU_RT:{Description:"Output rate of ECU command messages",DisplayName:"ECU command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D1_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D1_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D1_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D1_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},OW={CAN_D1_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC",7:"TEST_UAVCAN_FD_ESC"}},CAN_D1_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},UW={CAN_D1_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"Output channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D1_UC_ESC_OF:{Description:"Offset for ESC numbering in DroneCAN ESC RawCommand messages. This allows for more efficient packing of ESC command messages. If your ESCs are on servo functions 5 to 8 and you set this parameter to 4 then the ESC RawCommand will be sent with the first 4 slots filled. This can be used for more efficint usage of CAN bandwidth",DisplayName:"ESC Output channels offset",Range:{high:"18",low:"0"},User:"Advanced"},CAN_D1_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D1_UC_NTF_RT:{Description:"Maximum transmit rate for Notify State Message",DisplayName:"Notify State rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"},CAN_D1_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts",2:"EnableCanfd",3:"IgnoreDNANodeUnhealthy"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D1_UC_POOL:{Description:"Amount of memory in bytes to allocate for the DroneCAN memory pool. More memory is needed for higher CAN bus loads",DisplayName:"CAN pool size",Range:{high:"16384",low:"1024"},User:"Advanced"},CAN_D1_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16",16:"Servo 17",17:"Servo 18",18:"Servo 19",19:"Servo 20",20:"Servo 21",21:"Servo 22",22:"Servo 23",23:"Servo 24",24:"Servo 25",25:"Servo 26",26:"Servo 27",27:"Servo 28",28:"Servo 29",29:"Servo 30",30:"Servo 31",31:"Servo 32"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"Output channels to be transmitted as servo over UAVCAN"},CAN_D1_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},xW={CAN_D2_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"DroneCAN",4:"PiccoloCAN",5:"CANTester",6:"EFI_NWPMU",7:"USD1",8:"KDECAN",10:"Scripting",11:"Benewake",12:"Scripting2"}}},FW={CAN_D2_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},kW={CAN_D2_PC_ECU_ID:{Description:"Node ID to send ECU throttle messages to. Set to zero to disable ECU throttle messages. Set to 255 to broadcast to all ECUs.",DisplayName:"ECU Node ID",Range:{high:"255",low:"0"},User:"Advanced"},CAN_D2_PC_ECU_RT:{Description:"Output rate of ECU command messages",DisplayName:"ECU command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D2_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D2_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D2_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D2_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},BW={CAN_D2_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC",7:"TEST_UAVCAN_FD_ESC"}},CAN_D2_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},zW={CAN_D2_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"Output channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D2_UC_ESC_OF:{Description:"Offset for ESC numbering in DroneCAN ESC RawCommand messages. This allows for more efficient packing of ESC command messages. If your ESCs are on servo functions 5 to 8 and you set this parameter to 4 then the ESC RawCommand will be sent with the first 4 slots filled. This can be used for more efficint usage of CAN bandwidth",DisplayName:"ESC Output channels offset",Range:{high:"18",low:"0"},User:"Advanced"},CAN_D2_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D2_UC_NTF_RT:{Description:"Maximum transmit rate for Notify State Message",DisplayName:"Notify State rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"},CAN_D2_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts",2:"EnableCanfd",3:"IgnoreDNANodeUnhealthy"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D2_UC_POOL:{Description:"Amount of memory in bytes to allocate for the DroneCAN memory pool. More memory is needed for higher CAN bus loads",DisplayName:"CAN pool size",Range:{high:"16384",low:"1024"},User:"Advanced"},CAN_D2_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16",16:"Servo 17",17:"Servo 18",18:"Servo 19",19:"Servo 20",20:"Servo 21",21:"Servo 22",22:"Servo 23",23:"Servo 24",24:"Servo 25",25:"Servo 26",26:"Servo 27",27:"Servo 28",28:"Servo 29",29:"Servo 30",30:"Servo 31",31:"Servo 32"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"Output channels to be transmitted as servo over UAVCAN"},CAN_D2_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},ZW={CAN_D3_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"DroneCAN",4:"PiccoloCAN",5:"CANTester",6:"EFI_NWPMU",7:"USD1",8:"KDECAN",10:"Scripting",11:"Benewake",12:"Scripting2"}}},GW={CAN_D3_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},WW={CAN_D3_PC_ECU_ID:{Description:"Node ID to send ECU throttle messages to. Set to zero to disable ECU throttle messages. Set to 255 to broadcast to all ECUs.",DisplayName:"ECU Node ID",Range:{high:"255",low:"0"},User:"Advanced"},CAN_D3_PC_ECU_RT:{Description:"Output rate of ECU command messages",DisplayName:"ECU command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D3_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D3_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D3_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D3_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},XW={CAN_D3_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC",7:"TEST_UAVCAN_FD_ESC"}},CAN_D3_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},YW={CAN_D3_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16",16:"ESC 17",17:"ESC 18",18:"ESC 19",19:"ESC 20",20:"ESC 21",21:"ESC 22",22:"ESC 23",23:"ESC 24",24:"ESC 25",25:"ESC 26",26:"ESC 27",27:"ESC 28",28:"ESC 29",29:"ESC 30",30:"ESC 31",31:"ESC 32"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"Output channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D3_UC_ESC_OF:{Description:"Offset for ESC numbering in DroneCAN ESC RawCommand messages. This allows for more efficient packing of ESC command messages. If your ESCs are on servo functions 5 to 8 and you set this parameter to 4 then the ESC RawCommand will be sent with the first 4 slots filled. This can be used for more efficint usage of CAN bandwidth",DisplayName:"ESC Output channels offset",Range:{high:"18",low:"0"},User:"Advanced"},CAN_D3_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D3_UC_NTF_RT:{Description:"Maximum transmit rate for Notify State Message",DisplayName:"Notify State rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"},CAN_D3_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts",2:"EnableCanfd",3:"IgnoreDNANodeUnhealthy"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D3_UC_POOL:{Description:"Amount of memory in bytes to allocate for the DroneCAN memory pool. More memory is needed for higher CAN bus loads",DisplayName:"CAN pool size",Range:{high:"16384",low:"1024"},User:"Advanced"},CAN_D3_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16",16:"Servo 17",17:"Servo 18",18:"Servo 19",19:"Servo 20",20:"Servo 21",21:"Servo 22",22:"Servo 23",23:"Servo 24",24:"Servo 25",25:"Servo 26",26:"Servo 27",27:"Servo 28",28:"Servo 29",29:"Servo 30",30:"Servo 31",31:"Servo 32"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"Output channels to be transmitted as servo over UAVCAN"},CAN_D3_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},$W={CAN_P1_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P1_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver",3:"Third driver"}},CAN_P1_FDBITRATE:{Description:"Bit rate can be set up to from 1000000 to 8000000",DisplayName:"Bitrate of CANFD interface",User:"Advanced",Values:{1:"1M",2:"2M",4:"4M",5:"5M",8:"8M"}}},qW={CAN_P2_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P2_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver",3:"Third driver"}},CAN_P2_FDBITRATE:{Description:"Bit rate can be set up to from 1000000 to 8000000",DisplayName:"Bitrate of CANFD interface",User:"Advanced",Values:{1:"1M",2:"2M",4:"4M",5:"5M",8:"8M"}}},KW={CAN_P3_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P3_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver",3:"Third driver"}},CAN_P3_FDBITRATE:{Description:"Bit rate can be set up to from 1000000 to 8000000",DisplayName:"Bitrate of CANFD interface",User:"Advanced",Values:{1:"1M",2:"2M",4:"4M",5:"5M",8:"8M"}}},jW={CAN_SLCAN_CPORT:{Description:"CAN Interface ID to be routed to SLCAN, 0 means no routing",DisplayName:"SLCAN Route",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First interface",2:"Second interface"}},CAN_SLCAN_SDELAY:{Description:"Duration after which slcan starts after setting SERNUM in seconds.",DisplayName:"SLCAN Start Delay",Range:{high:"127",low:"0"},User:"Standard"},CAN_SLCAN_SERNUM:{Description:"Serial Port ID to be used for temporary SLCAN iface, -1 means no temporary serial. This parameter is automatically reset on reboot or on timeout. See CAN_SLCAN_TIMOUT for timeout details",DisplayName:"SLCAN Serial Port",User:"Standard",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},CAN_SLCAN_TIMOUT:{Description:"Duration of inactivity after which SLCAN is switched back to original driver in seconds.",DisplayName:"SLCAN Timeout",Range:{high:"127",low:"0"},User:"Standard"}},QW={CHUTE_ALT_MIN:{Description:"Parachute min altitude above home. Parachute will not be released below this altitude. 0 to disable alt check.",DisplayName:"Parachute min altitude in meters above home",Increment:"1",Range:{high:"32000",low:"0"},Units:"m",User:"Standard"},CHUTE_CRT_SINK:{Description:"Release parachute when critical sink rate is reached",DisplayName:"Critical sink speed rate in m/s to trigger emergency parachute",Increment:"1",Range:{high:"15",low:"0"},Units:"m/s",User:"Standard"},CHUTE_DELAY_MS:{Description:"Delay in millseconds between motor stop and chute release",DisplayName:"Parachute release delay",Increment:"1",Range:{high:"5000",low:"0"},Units:"ms",User:"Standard"},CHUTE_ENABLED:{Description:"Parachute release enabled or disabled",DisplayName:"Parachute release enabled or disabled",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},CHUTE_OPTIONS:{Bitmask:{0:"hold open forever after release"},Description:"Optional behaviour for parachute",DisplayName:"Parachute options",User:"Standard"},CHUTE_SERVO_OFF:{Description:"Parachute Servo PWM value in microseconds when parachute is not released",DisplayName:"Servo OFF PWM value",Increment:"1",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CHUTE_SERVO_ON:{Description:"Parachute Servo PWM value in microseconds when parachute is released",DisplayName:"Parachute Servo ON PWM value",Increment:"1",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CHUTE_TYPE:{Description:"Parachute release mechanism type (relay or servo)",DisplayName:"Parachute release mechanism type (relay or servo)",User:"Standard",Values:{0:"First Relay",1:"Second Relay",2:"Third Relay",3:"Fourth Relay",10:"Servo"}}},JW={COMPASS_AUTODEC:{Description:"Enable or disable the automatic calculation of the declination based on gps location",DisplayName:"Auto Declination",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_AUTO_ROT:{Description:"When enabled this will automatically check the orientation of compasses on successful completion of compass calibration. If set to 2 then external compasses will have their orientation automatically corrected.",DisplayName:"Automatically check orientation",Values:{0:"Disabled",1:"CheckOnly",2:"CheckAndFix",3:"use same tolerance to auto rotate 45 deg rotations"}},COMPASS_CAL_FIT:{Description:"This controls the fitness level required for a successful compass calibration. A lower value makes for a stricter fit (less likely to pass). This is the value used for the primary magnetometer. Other magnetometers get double the value.",DisplayName:"Compass calibration fitness",Increment:"0.1",Range:{high:"32",low:"4"},User:"Advanced",Values:{4:"Very Strict",8:"Strict",16:"Default",32:"Relaxed"}},COMPASS_CUS_PIT:{Description:"Compass mounting position pitch offset. Positive values = pitch up, negative values = pitch down. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation pitch offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_CUS_ROLL:{Description:"Compass mounting position roll offset. Positive values = roll right, negative values = roll left. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation roll offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_CUS_YAW:{Description:"Compass mounting position yaw offset. Positive values = yaw right, negative values = yaw left. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation yaw offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_DEC:{Description:"An angle to compensate between the true north and magnetic north",DisplayName:"Compass declination",Increment:"0.01",Range:{high:"3.142",low:"-3.142"},Units:"rad",User:"Standard"},COMPASS_DEV_ID:{Description:"Compass device id. Automatically detected, do not set manually",DisplayName:"Compass device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID2:{Description:"Second compass's device id. Automatically detected, do not set manually",DisplayName:"Compass2 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID3:{Description:"Third compass's device id. Automatically detected, do not set manually",DisplayName:"Compass3 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID4:{Description:"Extra 4th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass4 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID5:{Description:"Extra 5th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass5 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID6:{Description:"Extra 6th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass6 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID7:{Description:"Extra 7th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass7 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID8:{Description:"Extra 8th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass8 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DIA2_X:{Calibration:"1",Description:"DIA_X in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA2_Y:{Calibration:"1",Description:"DIA_Y in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA2_Z:{Description:"DIA_Z in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal Z component",User:"Advanced"},COMPASS_DIA3_X:{Calibration:"1",Description:"DIA_X in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA3_Y:{Calibration:"1",Description:"DIA_Y in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA3_Z:{Description:"DIA_Z in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal Z component",User:"Advanced"},COMPASS_DIA_X:{Calibration:"1",Description:"DIA_X in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA_Y:{Calibration:"1",Description:"DIA_Y in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA_Z:{Description:"DIA_Z in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal Z component",User:"Advanced"},COMPASS_ENABLE:{Description:"Setting this to Enabled(1) will enable the compass. Setting this to Disabled(0) will disable the compass. Note that this is separate from COMPASS_USE. This will enable the low level senor, and will enable logging of magnetometer data. To use the compass for navigation you must also set COMPASS_USE to 1.",DisplayName:"Enable Compass",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},COMPASS_EXTERN2:{Description:"Configure second compass so it is attached externally. This is auto-detected on most boards. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass2 is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_EXTERN3:{Description:"Configure third compass so it is attached externally. This is auto-detected on most boards. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass3 is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_EXTERNAL:{Description:"Configure compass so it is attached externally. This is auto-detected on most boards. Set to 1 if the compass is externally connected. When externally connected the COMPASS_ORIENT option operates independently of the AHRS_ORIENTATION board orientation option. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_FLTR_RNG:{Description:"This sets the range around the average value that new samples must be within to be accepted. This can help reduce the impact of noise on sensors that are on long I2C cables. The value is a percentage from the average value. A value of zero disables this filter.",DisplayName:"Range in which sample is accepted",Increment:"1",Range:{high:"100",low:"0"},Units:"%"},COMPASS_LEARN:{Description:"Enable or disable the automatic learning of compass offsets. You can enable learning either using a compass-only method that is suitable only for fixed wing aircraft or using the offsets learnt by the active EKF state estimator. If this option is enabled then the learnt offsets are saved when you disarm the vehicle. If InFlight learning is enabled then the compass with automatically start learning once a flight starts (must be armed). While InFlight learning is running you cannot use position control modes.",DisplayName:"Learn compass offsets automatically",User:"Advanced",Values:{0:"Disabled",1:"Internal-Learning",2:"EKF-Learning",3:"InFlight-Learning"}},COMPASS_MOT2_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass2's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT2_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass2's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT2_Z:{Description:"Multiplied by the current throttle and added to compass2's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass3's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass3's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_Z:{Description:"Multiplied by the current throttle and added to compass3's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOTCT:{Calibration:"1",Description:"Set motor interference compensation type to disabled, throttle or current. Do not change manually.",DisplayName:"Motor interference compensation type",User:"Advanced",Values:{0:"Disabled",1:"Use Throttle",2:"Use Current"}},COMPASS_MOT_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to the compass's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to the compass's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT_Z:{Description:"Multiplied by the current throttle and added to the compass's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_ODI2_X:{Calibration:"1",Description:"ODI_X in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI2_Y:{Calibration:"1",Description:"ODI_Y in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI2_Z:{Description:"ODI_Z in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_ODI3_X:{Calibration:"1",Description:"ODI_X in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI3_Y:{Calibration:"1",Description:"ODI_Y in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI3_Z:{Description:"ODI_Z in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_ODI_X:{Calibration:"1",Description:"ODI_X in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI_Y:{Calibration:"1",Description:"ODI_Y in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI_Z:{Description:"ODI_Z in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_OFFS_MAX:{Description:"This sets the maximum allowed compass offset in calibration and arming checks",DisplayName:"Compass maximum offset",Increment:"1",Range:{high:"3000",low:"500"},User:"Advanced"},COMPASS_OFS2_X:{Calibration:"1",Description:"Offset to be added to compass2's x-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS2_Y:{Calibration:"1",Description:"Offset to be added to compass2's y-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS2_Z:{Description:"Offset to be added to compass2's z-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_X:{Calibration:"1",Description:"Offset to be added to compass3's x-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_Y:{Calibration:"1",Description:"Offset to be added to compass3's y-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_Z:{Description:"Offset to be added to compass3's z-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_X:{Calibration:"1",Description:"Offset to be added to the compass x-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_Y:{Calibration:"1",Description:"Offset to be added to the compass y-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_Z:{Description:"Offset to be added to the compass z-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OPTIONS:{Bitmask:{0:"CalRequireGPS"},Description:"This sets options to change the behaviour of the compass",DisplayName:"Compass options",User:"Advanced"},COMPASS_ORIENT:{Description:"The orientation of the first external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used. The label for each option is specified in the order of rotations for that orientation. Firmware versions 4.2 and prior can use a CUSTOM (100) rotation to set the COMPASS_CUS_ROLL/PIT/YAW angles for Compass orientation. Later versions provide two general custom rotations which can be used, Custom 1 and Custom 2, with CUST_1_ROLL/PIT/YAW or CUST_2_ROLL/PIT/YAW angles.",DisplayName:"Compass orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Yaw45Roll180",10:"Yaw90Roll180",11:"Yaw135Roll180",12:"Pitch180",13:"Yaw225Roll180",14:"Yaw270Roll180",15:"Yaw315Roll180",16:"Roll90",17:"Yaw45Roll90",18:"Yaw90Roll90",19:"Yaw135Roll90",20:"Roll270",21:"Yaw45Roll270",22:"Yaw90Roll270",23:"Yaw135Roll270",24:"Pitch90",25:"Pitch270",26:"Yaw90Pitch180",27:"Yaw270Pitch180",28:"Pitch90Roll90",29:"Pitch90Roll180",30:"Pitch90Roll270",31:"Pitch180Roll90",32:"Pitch180Roll270",33:"Pitch270Roll90",34:"Pitch270Roll180",35:"Pitch270Roll270",36:"Yaw90Pitch180Roll90",37:"Yaw270Roll90",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Pitch315Roll90",42:"Roll45",43:"Roll315",100:"Custom 4.1 and older",101:"Custom 1",102:"Custom 2"}},COMPASS_ORIENT2:{Description:"The orientation of a second external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used. The label for each option is specified in the order of rotations for that orientation. Firmware versions 4.2 and prior can use a CUSTOM (100) rotation to set the COMPASS_CUS_ROLL/PIT/YAW angles for Compass orientation. Later versions provide two general custom rotations which can be used, Custom 1 and Custom 2, with CUST_1_ROLL/PIT/YAW or CUST_2_ROLL/PIT/YAW angles.",DisplayName:"Compass2 orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Yaw45Roll180",10:"Yaw90Roll180",11:"Yaw135Roll180",12:"Pitch180",13:"Yaw225Roll180",14:"Yaw270Roll180",15:"Yaw315Roll180",16:"Roll90",17:"Yaw45Roll90",18:"Yaw90Roll90",19:"Yaw135Roll90",20:"Roll270",21:"Yaw45Roll270",22:"Yaw90Roll270",23:"Yaw135Roll270",24:"Pitch90",25:"Pitch270",26:"Yaw90Pitch180",27:"Yaw270Pitch180",28:"Pitch90Roll90",29:"Pitch90Roll180",30:"Pitch90Roll270",31:"Pitch180Roll90",32:"Pitch180Roll270",33:"Pitch270Roll90",34:"Pitch270Roll180",35:"Pitch270Roll270",36:"Yaw90Pitch180Roll90",37:"Yaw270Roll90",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Pitch315Roll90",42:"Roll45",43:"Roll315",100:"Custom 4.1 and older",101:"Custom 1",102:"Custom 2"}},COMPASS_ORIENT3:{Description:"The orientation of a third external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used. The label for each option is specified in the order of rotations for that orientation. Firmware versions 4.2 and prior can use a CUSTOM (100) rotation to set the COMPASS_CUS_ROLL/PIT/YAW angles for Compass orientation. Later versions provide two general custom rotations which can be used, Custom 1 and Custom 2, with CUST_1_ROLL/PIT/YAW or CUST_2_ROLL/PIT/YAW angles.",DisplayName:"Compass3 orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Yaw45Roll180",10:"Yaw90Roll180",11:"Yaw135Roll180",12:"Pitch180",13:"Yaw225Roll180",14:"Yaw270Roll180",15:"Yaw315Roll180",16:"Roll90",17:"Yaw45Roll90",18:"Yaw90Roll90",19:"Yaw135Roll90",20:"Roll270",21:"Yaw45Roll270",22:"Yaw90Roll270",23:"Yaw135Roll270",24:"Pitch90",25:"Pitch270",26:"Yaw90Pitch180",27:"Yaw270Pitch180",28:"Pitch90Roll90",29:"Pitch90Roll180",30:"Pitch90Roll270",31:"Pitch180Roll90",32:"Pitch180Roll270",33:"Pitch270Roll90",34:"Pitch270Roll180",35:"Pitch270Roll270",36:"Yaw90Pitch180Roll90",37:"Yaw270Roll90",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Pitch315Roll90",42:"Roll45",43:"Roll315",100:"Custom 4.1 and older",101:"Custom 1",102:"Custom 2"}},COMPASS_PRIO1_ID:{Description:"Compass device id with 1st order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 1st order priority",RebootRequired:"True",User:"Advanced"},COMPASS_PRIO2_ID:{Description:"Compass device id with 2nd order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 2nd order priority",RebootRequired:"True",User:"Advanced"},COMPASS_PRIO3_ID:{Description:"Compass device id with 3rd order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 3rd order priority",RebootRequired:"True",User:"Advanced"},COMPASS_SCALE:{Description:"Scaling factor for first compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass1 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_SCALE2:{Description:"Scaling factor for 2nd compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass2 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_SCALE3:{Description:"Scaling factor for 3rd compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass3 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_TYPEMASK:{Bitmask:{0:"HMC5883",1:"LSM303D",2:"AK8963",3:"BMM150",4:"LSM9DS1",5:"LIS3MDL",6:"AK09916",7:"IST8310",8:"ICM20948",9:"MMC3416",11:"DroneCAN",12:"QMC5883",14:"MAG3110",15:"IST8308",16:"RM3100",17:"MSP",18:"ExternalAHRS"},Description:"This is a bitmask of driver types to disable. If a driver type is set in this mask then that driver will not try to find a sensor at startup",DisplayName:"Compass disable driver type mask",User:"Advanced"},COMPASS_USE:{Description:"Enable or disable the use of the compass (instead of the GPS) for determining heading",DisplayName:"Use compass for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_USE2:{Description:"Enable or disable the secondary compass for determining heading.",DisplayName:"Compass2 used for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_USE3:{Description:"Enable or disable the tertiary compass for determining heading.",DisplayName:"Compass3 used for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}}},eX={COMPASS_PMOT1_X:{Description:"Compensation for X axis of motor1",DisplayName:"Compass per-motor1 X",User:"Advanced"},COMPASS_PMOT1_Y:{Description:"Compensation for Y axis of motor1",DisplayName:"Compass per-motor1 Y",User:"Advanced"},COMPASS_PMOT1_Z:{Description:"Compensation for Z axis of motor1",DisplayName:"Compass per-motor1 Z",User:"Advanced"},COMPASS_PMOT2_X:{Description:"Compensation for X axis of motor2",DisplayName:"Compass per-motor2 X",User:"Advanced"},COMPASS_PMOT2_Y:{Description:"Compensation for Y axis of motor2",DisplayName:"Compass per-motor2 Y",User:"Advanced"},COMPASS_PMOT2_Z:{Description:"Compensation for Z axis of motor2",DisplayName:"Compass per-motor2 Z",User:"Advanced"},COMPASS_PMOT3_X:{Description:"Compensation for X axis of motor3",DisplayName:"Compass per-motor3 X",User:"Advanced"},COMPASS_PMOT3_Y:{Description:"Compensation for Y axis of motor3",DisplayName:"Compass per-motor3 Y",User:"Advanced"},COMPASS_PMOT3_Z:{Description:"Compensation for Z axis of motor3",DisplayName:"Compass per-motor3 Z",User:"Advanced"},COMPASS_PMOT4_X:{Description:"Compensation for X axis of motor4",DisplayName:"Compass per-motor4 X",User:"Advanced"},COMPASS_PMOT4_Y:{Description:"Compensation for Y axis of motor4",DisplayName:"Compass per-motor4 Y",User:"Advanced"},COMPASS_PMOT4_Z:{Description:"Compensation for Z axis of motor4",DisplayName:"Compass per-motor4 Z",User:"Advanced"},COMPASS_PMOT_EN:{Description:"This enables per-motor compass corrections",DisplayName:"per-motor compass correction enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_PMOT_EXP:{Description:"This is the exponential correction for the power output of the motor for per-motor compass correction",DisplayName:"per-motor exponential correction",Increment:"0.01",Range:{high:"2",low:"0"},User:"Advanced"}},tX={CUST_ROT_ENABLE:{Description:"This enables custom rotations",DisplayName:"Enable Custom rotations",RebootRequired:"True",User:"Standard",Values:{0:"Disable",1:"Enable"}}},iX={CUST_ROT1_PITCH:{Description:"Custom euler pitch, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom pitch",RebootRequired:"True",Units:"deg"},CUST_ROT1_ROLL:{Description:"Custom euler roll, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom roll",RebootRequired:"True",Units:"deg"},CUST_ROT1_YAW:{Description:"Custom euler yaw, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom yaw",RebootRequired:"True",Units:"deg"}},aX={CUST_ROT2_PITCH:{Description:"Custom euler pitch, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom pitch",RebootRequired:"True",Units:"deg"},CUST_ROT2_ROLL:{Description:"Custom euler roll, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom roll",RebootRequired:"True",Units:"deg"},CUST_ROT2_YAW:{Description:"Custom euler yaw, euler 321 (yaw, pitch, roll) ordering",DisplayName:"Custom yaw",RebootRequired:"True",Units:"deg"}},rX={DID_BARO_ACC:{Description:"Barometer Vertical Accuracy when installed in the vehicle. Note this is dependent upon installation conditions and thus disabled by default",DisplayName:"Barometer vertical accuraacy",Units:"m",User:"Advanced"},DID_CANDRIVER:{Description:"DroneCAN driver index, 0 to disable DroneCAN",DisplayName:"DroneCAN driver number",Values:{0:"Disabled",1:"Driver1",2:"Driver2"}},DID_ENABLE:{Description:"Enable ODID subsystem",DisplayName:"Enable ODID subsystem",Values:{0:"Disabled",1:"Enabled"}},DID_MAVPORT:{Description:"Serial port number to send OpenDroneID MAVLink messages to. Can be -1 if using DroneCAN.",DisplayName:"MAVLink serial port",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},DID_OPTIONS:{Bitmask:{0:"EnforceArming"},Description:"Options for OpenDroneID subsystem. Bit 0 means to enforce arming checks",DisplayName:"OpenDroneID options"}},nX={EAHRS_RATE:{Description:"Requested rate for AHRS device",DisplayName:"AHRS data rate",Units:"Hz",User:"Standard"},EAHRS_TYPE:{Description:"Type of AHRS device",DisplayName:"AHRS type",User:"Standard",Values:{0:"None",1:"VectorNav",2:"LORD"}}},oX={EFI_COEF1:{Description:"Used to calibrate fuel flow for MS protocol (Slope). This should be calculated from a log at constant fuel usage rate. Plot (ECYL[0].InjT*EFI.Rpm)/600.0 to get the duty_cycle. Measure actual fuel usage in cm^3/min, and set EFI_COEF1 = fuel_usage_cm3permin / duty_cycle",DisplayName:"EFI Calibration Coefficient 1",Range:{high:"1",low:"0"},User:"Advanced"},EFI_COEF2:{Description:"Used to calibrate fuel flow for MS protocol (Offset). This can be used to correct for a non-zero offset in the fuel consumption calculation of EFI_COEF1",DisplayName:"EFI Calibration Coefficient 2",Range:{high:"10",low:"0"},User:"Advanced"},EFI_FUEL_DENS:{Description:"Used to calculate fuel consumption",DisplayName:"ECU Fuel Density",Range:{high:"10000",low:"0"},Units:"kg/m/m/m",User:"Advanced"},EFI_TYPE:{Description:"What method of communication is used for EFI #1",DisplayName:"EFI communication type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Serial-MS",2:"NWPMU",3:"Serial-Lutan",5:"DroneCAN",6:"Currawong-ECU",7:"Scripting"}}},sX={EK2_ABIAS_P_NSE:{Description:"This noise controls the growth of the vertical accelerometer delta velocity bias state error estimate. Increasing it makes accelerometer bias estimation faster and noisier.",DisplayName:"Accelerometer bias stability (m/s^3)",Range:{high:"0.005",low:"0.00001"},Units:"m/s/s/s",User:"Advanced"},EK2_ACC_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to accelerometer measurement errors excluding bias. Increasing it makes the flter trust the accelerometer measurements less and other measurements more.",DisplayName:"Accelerometer noise (m/s^2)",Increment:"0.01",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK2_ALT_M_NSE:{Description:"This is the RMS value of noise in the altitude measurement. Increasing it reduces the weighting of the baro measurement and will make the filter respond more slowly to baro measurement errors, but will make it more sensitive to GPS and accelerometer errors.",DisplayName:"Altitude measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_ALT_SOURCE:{Description:"Primary height sensor used by the EKF. If a sensor other than Baro is selected and becomes unavailable, then the Baro sensor will be used as a fallback. NOTE: The EK2_RNG_USE_HGT parameter can be used to switch to range-finder when close to the ground in conjunction with EK2_ALT_SOURCE = 0 or 2 (Baro or GPS).",DisplayName:"Primary altitude sensor source",RebootRequired:"True",User:"Advanced",Values:{0:"Use Baro",1:"Use Range Finder",2:"Use GPS",3:"Use Range Beacon"}},EK2_BCN_DELAY:{Description:"This is the number of msec that the range beacon measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Range beacon measurement delay (msec)",Increment:"10",Range:{high:"127",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_BCN_I_GTE:{Description:"This sets the percentage number of standard deviations applied to the range beacon measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range beacon measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_BCN_M_NSE:{Description:"This is the RMS value of noise in the range beacon measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range beacon measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_CHECK_SCALE:{Description:"This scales the thresholds that are used to check GPS accuracy before it is used by the EKF. A value of 100 is the default. Values greater than 100 increase and values less than 100 reduce the maximum GPS error the EKF will accept. A value of 200 will double the allowable GPS error.",DisplayName:"GPS accuracy check scaler (%)",Range:{high:"200",low:"50"},Units:"%",User:"Advanced"},EK2_EAS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the airspeed measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Airspeed measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_EAS_M_NSE:{Description:"This is the RMS value of noise in equivalent airspeed measurements used by planes. Increasing it reduces the weighting of airspeed measurements and will make wind speed estimates less noisy and slower to converge. Increasing also increases navigation errors when dead-reckoning without GPS measurements.",DisplayName:"Equivalent airspeed measurement noise (m/s)",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK2_ENABLE:{Description:"This enables EKF2. Enabling EKF2 only makes the maths run, it does not mean it will be used for flight control. To use it for flight control set AHRS_EKF_TYPE=2. A reboot or restart will need to be performed after changing the value of EK2_ENABLE for it to take effect.",DisplayName:"Enable EKF2",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},EK2_FLOW_DELAY:{Description:"This is the number of msec that the optical flow measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Optical Flow measurement delay (msec)",Increment:"10",Range:{high:"127",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_FLOW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the optical flow innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Optical Flow measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_FLOW_M_NSE:{Description:"This is the RMS value of noise and errors in optical flow measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Optical flow measurement noise (rad/s)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad/s",User:"Advanced"},EK2_FLOW_USE:{Description:"Controls if the optical flow data is fused into the 24-state navigation estimator OR the 1-state terrain height estimator.",DisplayName:"Optical flow use bitmask",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Navigation",2:"Terrain"}},EK2_GBIAS_P_NSE:{Description:"This state process noise controls growth of the gyro delta angle bias state error estimate. Increasing it makes rate gyro bias estimation faster and noisier.",DisplayName:"Rate gyro bias stability (rad/s/s)",Range:{high:"0.001",low:"0.00001"},Units:"rad/s/s",User:"Advanced"},EK2_GLITCH_RAD:{Description:"This controls the maximum radial uncertainty in position between the value predicted by the filter and the value measured by the GPS before the filter position and velocity states are reset to the GPS. Making this value larger allows the filter to ignore larger GPS glitches but also means that non-GPS errors such as IMU and compass can create a larger error in position before the filter is forced back to the GPS position.",DisplayName:"GPS glitch radius gate size (m)",Increment:"5",Range:{high:"100",low:"10"},Units:"m",User:"Advanced"},EK2_GPS_CHECK:{Bitmask:{0:"NSats",1:"HDoP",2:"speed error",3:"position error",4:"yaw error",5:"pos drift",6:"vert speed",7:"horiz speed"},Description:"This is a 1 byte bitmap controlling which GPS preflight checks are performed. Set to 0 to bypass all checks. Set to 255 perform all checks. Set to 3 to check just the number of satellites and HDoP. Set to 31 for the most rigorous checks that will still allow checks to pass when the copter is moving, eg launch from a boat.",DisplayName:"GPS preflight check",User:"Advanced"},EK2_GPS_TYPE:{Description:"This controls use of GPS measurements : 0 = use 3D velocity & 2D position, 1 = use 2D velocity and 2D position, 2 = use 2D position, 3 = Inhibit GPS use - this can be useful when flying with an optical flow sensor in an environment where GPS quality is poor and subject to large multipath errors.",DisplayName:"GPS mode control",User:"Advanced",Values:{0:"GPS 3D Vel and 2D Pos",1:"GPS 2D vel and 2D pos",2:"GPS 2D pos",3:"No GPS"}},EK2_GSCL_P_NSE:{Description:"This noise controls the rate of gyro scale factor learning. Increasing it makes rate gyro scale factor estimation faster and noisier.",DisplayName:"Rate gyro scale factor stability (1/s)",Range:{high:"0.001",low:"0.000001"},Units:"Hz",User:"Advanced"},EK2_GSF_RST_MAX:{Description:"Sets the maximum number of times the EKF2 will be allowed to reset its yaw to the estimate from the EKF-GSF yaw estimator. No resets will be allowed unless the use of the EKF-GSF yaw estimate is enabled via the EK2_GSF_USE_MASK parameter.",DisplayName:"Maximum number of resets to the EKF-GSF yaw estimate allowed",Increment:"1",Range:{high:"10",low:"1"},RebootRequired:"True",User:"Advanced"},EK2_GSF_RUN_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"A bitmask of which EKF2 instances run an independant EKF-GSF yaw estimator to provide a backup yaw estimate that doesn't rely on magnetometer data. This estimator uses IMU, GPS and, if available, airspeed data. EKF-GSF yaw estimator data for the primary EKF2 instance will be logged as GSF0 and GSF1 messages. Use of the yaw estimate generated by this algorithm is controlled by the EK2_GSF_USE_MASK and EK2_GSF_RST_MAX parameters. To run the EKF-GSF yaw estimator in ride-along and logging only, set EK2_GSF_USE_MASK to 0. ",DisplayName:"Bitmask of which EKF-GSF yaw estimators run",RebootRequired:"True",User:"Advanced"},EK2_GSF_USE_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of which EKF2 instances will use the output from the EKF-GSF yaw estimator that has been turned on by the EK2_GSF_RUN_MASK parameter. If the inertial navigation calculation stops following the GPS, then the vehicle code can request EKF2 to attempt to resolve the issue, either by performing a yaw reset if enabled by this parameter by switching to another EKF2 instance.",DisplayName:"Bitmask of which EKF-GSF yaw estimators are used",RebootRequired:"True",User:"Advanced"},EK2_GYRO_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to gyro measurement errors excluding bias. Increasing it makes the flter trust the gyro measurements less and other measurements more.",DisplayName:"Rate gyro noise (rad/s)",Increment:"0.0001",Range:{high:"0.1",low:"0.0001"},Units:"rad/s",User:"Advanced"},EK2_HGT_DELAY:{Description:"This is the number of msec that the Height measurements lag behind the inertial measurements.",DisplayName:"Height measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_HGT_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the height measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Height measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_HRT_FILT:{Description:"Specifies the crossover frequency of the complementary filter used to calculate the output predictor height rate derivative.",DisplayName:"Height rate filter crossover frequency",Range:{high:"30.0",low:"0.1"},Units:"Hz"},EK2_IMU_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU"},Description:"1 byte bitmap of IMUs to use in EKF2. A separate instance of EKF2 will be started for each IMU selected. Set to 1 to use the first IMU only (default), set to 2 to use the second IMU only, set to 3 to use the first and second IMU. Additional IMU's can be used up to a maximum of 6 if memory and processing resources permit. There may be insufficient memory and processing resources to run multiple instances. If this occurs EKF2 will fail to start.",DisplayName:"Bitmask of active IMUs",RebootRequired:"True",User:"Advanced"},EK2_MAGB_P_NSE:{Description:"This state process noise controls the growth of body magnetic field state error estimates. Increasing it makes magnetometer bias error estimation faster and noisier.",DisplayName:"Body magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK2_MAGE_P_NSE:{Description:"This state process noise controls the growth of earth magnetic field state error estimates. Increasing it makes earth magnetic field estimation faster and noisier.",DisplayName:"Earth magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK2_MAG_CAL:{Description:"This determines when the filter will use the 3-axis magnetometer fusion model that estimates both earth and body fixed magnetic field states, when it will use a simpler magnetic heading fusion model that does not use magnetic field states and when it will use an alternative method of yaw determination to the magnetometer. The 3-axis magnetometer fusion is only suitable for use when the external magnetic field environment is stable. EK2_MAG_CAL = 0 uses heading fusion on ground, 3-axis fusion in-flight, and is the default setting for Plane users. EK2_MAG_CAL = 1 uses 3-axis fusion only when manoeuvring. EK2_MAG_CAL = 2 uses heading fusion at all times, is recommended if the external magnetic field is varying and is the default for rovers. EK2_MAG_CAL = 3 uses heading fusion on the ground and 3-axis fusion after the first in-air field and yaw reset has completed, and is the default for copters. EK2_MAG_CAL = 4 uses 3-axis fusion at all times. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK2_MAG_MASK parameter. NOTE: limited operation without a magnetometer or any other yaw sensor is possible by setting all COMPASS_USE, COMPASS_USE2, COMPASS_USE3, etc parameters to 0 with COMPASS_ENABLE set to 1. If this is done, the EK2_GSF_RUN and EK2_GSF_USE masks must be set to the same as EK2_IMU_MASK.",DisplayName:"Magnetometer default fusion mode",User:"Advanced",Values:{0:"When flying",1:"When manoeuvring",2:"Never",3:"After first climb yaw reset",4:"Always"}},EK2_MAG_EF_LIM:{Description:"This limits the difference between the learned earth magnetic field and the earth field from the world magnetic model tables. A value of zero means to disable the use of the WMM tables.",DisplayName:"EarthField error limit",Range:{high:"500",low:"0"},Units:"mGauss",User:"Advanced"},EK2_MAG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Magnetometer measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_MAG_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of EKF cores that will disable magnetic field states and use simple magnetic heading fusion at all times. This parameter enables specified cores to be used as a backup for flight into an environment with high levels of external magnetic interference which may degrade the EKF attitude estimate when using 3-axis magnetometer fusion. NOTE : Use of a different magnetometer fusion algorithm on different cores makes unwanted EKF core switches due to magnetometer errors more likely.",DisplayName:"Bitmask of active EKF cores that will always use heading fusion",RebootRequired:"True",User:"Advanced"},EK2_MAG_M_NSE:{Description:"This is the RMS value of noise in magnetometer measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Magnetometer measurement noise (Gauss)",Increment:"0.01",Range:{high:"0.5",low:"0.01"},Units:"Gauss",User:"Advanced"},EK2_MAX_FLOW:{Description:"This sets the magnitude maximum optical flow rate in rad/sec that will be accepted by the filter",DisplayName:"Maximum valid optical flow rate",Increment:"0.1",Range:{high:"4.0",low:"1.0"},Units:"rad/s",User:"Advanced"},EK2_NOAID_M_NSE:{Description:"This sets the amount of position variation that the EKF allows for when operating without external measurements (eg GPS or optical flow). Increasing this parameter makes the EKF attitude estimate less sensitive to vehicle manoeuvres but more sensitive to IMU errors.",DisplayName:"Non-GPS operation position uncertainty (m)",Range:{high:"50.0",low:"0.5"},Units:"m",User:"Advanced"},EK2_OGN_HGT_MASK:{Bitmask:{0:"Correct when using Baro height",1:"Correct when using range finder height",2:"Apply corrections to local position"},Description:"When a height sensor other than GPS is used as the primary height source by the EKF, the position of the zero height datum is defined by that sensor and its frame of reference. If a GPS height measurement is also available, then the height of the WGS-84 height datum used by the EKF can be corrected so that the height returned by the getLLH() function is compensated for primary height sensor drift and change in datum over time. The first two bit positions control when the height datum will be corrected. Correction is performed using a Bayes filter and only operates when GPS quality permits. The third bit position controls where the corrections to the GPS reference datum are applied. Corrections can be applied to the local vertical position or to the reported EKF origin height (default).",DisplayName:"Bitmask control of EKF reference height correction",RebootRequired:"True",User:"Advanced"},EK2_POSNE_M_NSE:{Description:"This sets the GPS horizontal position observation noise. Increasing it reduces the weighting of GPS horizontal position measurements.",DisplayName:"GPS horizontal position measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_POS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS position measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS position measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_RNG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the range finder innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range finder measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_RNG_M_NSE:{Description:"This is the RMS value of noise in the range finder measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range finder measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_RNG_USE_HGT:{Description:"Range finder can be used as the primary height source when below this percentage of its maximum range (see RNGFND_MAX_CM). This will not work unless Baro or GPS height is selected as the primary height source vis EK2_ALT_SOURCE = 0 or 2 respectively. This feature should not be used for terrain following as it is designed for vertical takeoff and landing with climb above the range finder use height before commencing the mission, and with horizontal position changes below that height being limited to a flat region around the takeoff and landing point.",DisplayName:"Range finder switch height percentage",Increment:"1",Range:{high:"70",low:"-1"},Units:"%",User:"Advanced"},EK2_RNG_USE_SPD:{Description:"The range finder will not be used as the primary height source when the horizontal ground speed is greater than this value.",DisplayName:"Range finder max ground speed",Increment:"0.5",Range:{high:"6.0",low:"2.0"},Units:"m/s",User:"Advanced"},EK2_TAU_OUTPUT:{Description:"Sets the time constant of the output complementary filter/predictor in centi-seconds.",DisplayName:"Output complementary filter time constant (centi-sec)",Increment:"5",Range:{high:"50",low:"10"},Units:"cs",User:"Advanced"},EK2_TERR_GRAD:{Description:"Specifies the maximum gradient of the terrain below the vehicle assumed when it is fusing range finder or optical flow to estimate terrain height.",DisplayName:"Maximum terrain gradient",Increment:"0.01",Range:{high:"0.2",low:"0"},User:"Advanced"},EK2_VELD_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set vertical velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS vertical velocity measurements.",DisplayName:"GPS vertical velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK2_VELNE_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set horizontal velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS horizontal velocity measurements.",DisplayName:"GPS horizontal velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK2_VEL_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS velocity measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS velocity innovation gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_WIND_PSCALE:{Description:"This controls how much the process noise on the wind states is increased when gaining or losing altitude to take into account changes in wind speed and direction with altitude. Increasing this parameter increases how rapidly the wind states adapt when changing altitude, but does make wind velocity estimation noiser.",DisplayName:"Height rate to wind process noise scaler",Increment:"0.1",Range:{high:"1.0",low:"0.0"},User:"Advanced"},EK2_WIND_P_NSE:{Description:"This state process noise controls the growth of wind state error estimates. Increasing it makes wind estimation faster and noisier.",DisplayName:"Wind velocity process noise (m/s^2)",Increment:"0.1",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK2_YAW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer yaw measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Yaw measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_YAW_M_NSE:{Description:"This is the RMS value of noise in yaw measurements from the magnetometer. Increasing it reduces the weighting on these measurements.",DisplayName:"Yaw measurement noise (rad)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},lX={EK3_ABIAS_P_NSE:{Description:"This noise controls the growth of the vertical accelerometer delta velocity bias state error estimate. Increasing it makes accelerometer bias estimation faster and noisier.",DisplayName:"Accelerometer bias stability (m/s^3)",Range:{high:"0.005",low:"0.00001"},Units:"m/s/s/s",User:"Advanced"},EK3_ACC_BIAS_LIM:{Description:"The accelerometer bias state will be limited to +- this value",DisplayName:"Accelerometer bias limit",Increment:"0.1",Range:{high:"2.5",low:"0.5"},Units:"m/s/s",User:"Advanced"},EK3_ACC_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to accelerometer measurement errors excluding bias. Increasing it makes the flter trust the accelerometer measurements less and other measurements more.",DisplayName:"Accelerometer noise (m/s^2)",Increment:"0.01",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK3_AFFINITY:{Bitmask:{0:"EnableGPSAffinity",1:"EnableBaroAffinity",2:"EnableCompassAffinity",3:"EnableAirspeedAffinity"},Description:"These options control the affinity between sensor instances and EKF cores",DisplayName:"EKF3 Sensor Affinity Options",RebootRequired:"True",User:"Advanced"},EK3_ALT_M_NSE:{Description:"This is the RMS value of noise in the altitude measurement. Increasing it reduces the weighting of the baro measurement and will make the filter respond more slowly to baro measurement errors, but will make it more sensitive to GPS and accelerometer errors.",DisplayName:"Altitude measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_BCN_DELAY:{Description:"This is the number of msec that the range beacon measurements lag behind the inertial measurements.",DisplayName:"Range beacon measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_BCN_I_GTE:{Description:"This sets the percentage number of standard deviations applied to the range beacon measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range beacon measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_BCN_M_NSE:{Description:"This is the RMS value of noise in the range beacon measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range beacon measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_BETA_MASK:{Bitmask:{0:"Always",1:"WhenNoYawSensor"},Description:"1 byte bitmap controlling use of sideslip angle fusion for estimation of non wind states during operation of 'fly forward' vehicle types such as fixed wing planes. By assuming that the angle of sideslip is small, the wind velocity state estimates are corrected whenever the EKF is not dead reckoning (e.g. has an independent velocity or position sensor such as GPS). This behaviour is on by default and cannot be disabled. When the EKF is dead reckoning, the wind states are used as a reference, enabling use of the small angle of sideslip assumption to correct non wind velocity states (eg attitude, velocity, position, etc) and improve navigation accuracy. This behaviour is on by default and cannot be disabled. The behaviour controlled by this parameter is the use of the small angle of sideslip assumption to correct non wind velocity states when the EKF is NOT dead reckoning. This is primarily of benefit to reduce the buildup of yaw angle errors during straight and level flight without a yaw sensor (e.g. magnetometer or dual antenna GPS yaw) provided aerobatic flight maneuvers with large sideslip angles are not performed. The 'always' option might be used where the yaw sensor is intentionally not fitted or disabled. The 'WhenNoYawSensor' option might be used if a yaw sensor is fitted, but protection against in-flight failure and continual rejection by the EKF is desired. For vehicles operated within visual range of the operator performing frequent turning maneuvers, setting this parameter is unnecessary.",DisplayName:"Bitmask controlling sidelip angle fusion",RebootRequired:"True",User:"Advanced"},EK3_CHECK_SCALE:{Description:"This scales the thresholds that are used to check GPS accuracy before it is used by the EKF. A value of 100 is the default. Values greater than 100 increase and values less than 100 reduce the maximum GPS error the EKF will accept. A value of 200 will double the allowable GPS error.",DisplayName:"GPS accuracy check scaler (%)",Range:{high:"200",low:"50"},Units:"%",User:"Advanced"},EK3_DRAG_BCOEF_X:{Description:"Ratio of mass to drag coefficient measured along the X body axis. This parameter enables estimation of wind drift for vehicles with bluff bodies and without propulsion forces in the X and Y direction (eg multicopters). The drag produced by this effect scales with speed squared. Set to a postive value > 1.0 to enable. A starting value is the mass in Kg divided by the frontal area. The predicted drag from the rotors is specified separately by the EK3_DRAG_MCOEF parameter.",DisplayName:"Ballistic coefficient for X axis drag",Range:{high:"1000.0",low:"0.0"},Units:"kg/m/m",User:"Advanced"},EK3_DRAG_BCOEF_Y:{Description:"Ratio of mass to drag coefficient measured along the Y body axis. This parameter enables estimation of wind drift for vehicles with bluff bodies and without propulsion forces in the X and Y direction (eg multicopters). The drag produced by this effect scales with speed squared. Set to a postive value > 1.0 to enable. A starting value is the mass in Kg divided by the side area. The predicted drag from the rotors is specified separately by the EK3_DRAG_MCOEF parameter.",DisplayName:"Ballistic coefficient for Y axis drag",Range:{high:"1000.0",low:"50.0"},Units:"kg/m/m",User:"Advanced"},EK3_DRAG_MCOEF:{Description:"This parameter is used to predict the drag produced by the rotors when flying a multi-copter, enabling estimation of wind drift. The drag produced by this effect scales with speed not speed squared and is produced because some of the air velocity normal to the rotors axis of rotation is lost when passing through the rotor disc which changes the momentum of the airflow causing drag. For unducted rotors the effect is roughly proportional to the area of the propeller blades when viewed side on and changes with different propellers. It is higher for ducted rotors. For example if flying at 15 m/s at sea level conditions produces a rotor induced drag acceleration of 1.5 m/s/s, then EK3_DRAG_MCOEF would be set to 0.1 = (1.5/15.0). Set EK3_MCOEF to a postive value to enable wind estimation using this drag effect. To account for the drag produced by the body which scales with speed squared, see documentation for the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters.",DisplayName:"Momentum coefficient for propeller drag",Increment:"0.01",Range:{high:"1.0",low:"0.0"},Units:"1/s",User:"Advanced"},EK3_DRAG_M_NSE:{Description:"This sets the amount of noise used when fusing X and Y acceleration as an observation that enables esitmation of wind velocity for multi-rotor vehicles. This feature is enabled by the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters",DisplayName:"Observation noise for drag acceleration",Increment:"0.1",Range:{high:"2.0",low:"0.1"},Units:"m/s/s",User:"Advanced"},EK3_EAS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the airspeed measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Airspeed measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_EAS_M_NSE:{Description:"This is the RMS value of noise in equivalent airspeed measurements used by planes. Increasing it reduces the weighting of airspeed measurements and will make wind speed estimates less noisy and slower to converge. Increasing also increases navigation errors when dead-reckoning without GPS measurements.",DisplayName:"Equivalent airspeed measurement noise (m/s)",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK3_ENABLE:{Description:"This enables EKF3. Enabling EKF3 only makes the maths run, it does not mean it will be used for flight control. To use it for flight control set AHRS_EKF_TYPE=3. A reboot or restart will need to be performed after changing the value of EK3_ENABLE for it to take effect.",DisplayName:"Enable EKF3",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},EK3_ERR_THRESH:{Description:"lanes have to be consistently better than the primary by at least this threshold to reduce their overall relativeCoreError, lowering this makes lane switching more sensitive to smaller error differences",DisplayName:"EKF3 Lane Relative Error Sensitivity Threshold",Increment:"0.05",Range:{high:"1",low:"0.05"},User:"Advanced"},EK3_FLOW_DELAY:{Description:"This is the number of msec that the optical flow measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Optical Flow measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_FLOW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the optical flow innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Optical Flow measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_FLOW_M_NSE:{Description:"This is the RMS value of noise and errors in optical flow measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Optical flow measurement noise (rad/s)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad/s",User:"Advanced"},EK3_FLOW_USE:{Description:"Controls if the optical flow data is fused into the 24-state navigation estimator OR the 1-state terrain height estimator.",DisplayName:"Optical flow use bitmask",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Navigation",2:"Terrain"}},EK3_GBIAS_P_NSE:{Description:"This state process noise controls growth of the gyro delta angle bias state error estimate. Increasing it makes rate gyro bias estimation faster and noisier.",DisplayName:"Rate gyro bias stability (rad/s/s)",Range:{high:"0.001",low:"0.00001"},Units:"rad/s/s",User:"Advanced"},EK3_GLITCH_RAD:{Description:"This controls the maximum radial uncertainty in position between the value predicted by the filter and the value measured by the GPS before the filter position and velocity states are reset to the GPS. Making this value larger allows the filter to ignore larger GPS glitches but also means that non-GPS errors such as IMU and compass can create a larger error in position before the filter is forced back to the GPS position.",DisplayName:"GPS glitch radius gate size (m)",Increment:"5",Range:{high:"100",low:"10"},Units:"m",User:"Advanced"},EK3_GND_EFF_DZ:{Description:"This parameter sets the size of the dead zone that is applied to negative baro height spikes that can occur when taking off or landing when a vehicle with lift rotors is operating in ground effect ground effect. Set to about 0.5m less than the amount of negative offset in baro height that occurs just prior to takeoff when lift motors are spooling up. Set to 0 if no ground effect is present.",DisplayName:"Baro height ground effect dead zone",Increment:"0.5",Range:{high:"10.0",low:"0.0"},User:"Advanced"},EK3_GPS_CHECK:{Bitmask:{0:"NSats",1:"HDoP",2:"speed error",3:"position error",4:"yaw error",5:"pos drift",6:"vert speed",7:"horiz speed"},Description:"This is a 1 byte bitmap controlling which GPS preflight checks are performed. Set to 0 to bypass all checks. Set to 255 perform all checks. Set to 3 to check just the number of satellites and HDoP. Set to 31 for the most rigorous checks that will still allow checks to pass when the copter is moving, eg launch from a boat.",DisplayName:"GPS preflight check",User:"Advanced"},EK3_GPS_VACC_MAX:{Description:"Vertical accuracy threshold for GPS as the altitude source. The GPS will not be used as an altitude source if the reported vertical accuracy of the GPS is larger than this threshold, falling back to baro instead. Set to zero to deactivate the threshold check.",DisplayName:"GPS vertical accuracy threshold",Increment:"0.1",Range:{high:"10.0",low:"0.0"},Units:"m",User:"Advanced"},EK3_GSF_RST_MAX:{Description:"Sets the maximum number of times the EKF3 will be allowed to reset its yaw to the estimate from the EKF-GSF yaw estimator. No resets will be allowed unless the use of the EKF-GSF yaw estimate is enabled via the EK3_GSF_USE_MASK parameter.",DisplayName:"Maximum number of resets to the EKF-GSF yaw estimate allowed",Increment:"1",Range:{high:"10",low:"1"},RebootRequired:"True",User:"Advanced"},EK3_GSF_RUN_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of which EKF3 instances run an independant EKF-GSF yaw estimator to provide a backup yaw estimate that doesn't rely on magnetometer data. This estimator uses IMU, GPS and, if available, airspeed data. EKF-GSF yaw estimator data for the primary EKF3 instance will be logged as GSF0 and GSF1 messages. Use of the yaw estimate generated by this algorithm is controlled by the EK3_GSF_USE_MASK and EK3_GSF_RST_MAX parameters. To run the EKF-GSF yaw estimator in ride-along and logging only, set EK3_GSF_USE to 0. ",DisplayName:"Bitmask of which EKF-GSF yaw estimators run",RebootRequired:"True",User:"Advanced"},EK3_GSF_USE_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"A bitmask of which EKF3 instances will use the output from the EKF-GSF yaw estimator that has been turned on by the EK3_GSF_RUN_MASK parameter. If the inertial navigation calculation stops following the GPS, then the vehicle code can request EKF3 to attempt to resolve the issue, either by performing a yaw reset if enabled by this parameter by switching to another EKF3 instance.",DisplayName:"Bitmask of which EKF-GSF yaw estimators are used",RebootRequired:"True",User:"Advanced"},EK3_GYRO_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to gyro measurement errors excluding bias. Increasing it makes the flter trust the gyro measurements less and other measurements more.",DisplayName:"Rate gyro noise (rad/s)",Increment:"0.0001",Range:{high:"0.1",low:"0.0001"},Units:"rad/s",User:"Advanced"},EK3_HGT_DELAY:{Description:"This is the number of msec that the Height measurements lag behind the inertial measurements.",DisplayName:"Height measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_HGT_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the height measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Height measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_HRT_FILT:{Description:"Specifies the crossover frequency of the complementary filter used to calculate the output predictor height rate derivative.",DisplayName:"Height rate filter crossover frequency",Range:{high:"30.0",low:"0.1"},Units:"Hz"},EK3_IMU_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU"},Description:"1 byte bitmap of IMUs to use in EKF3. A separate instance of EKF3 will be started for each IMU selected. Set to 1 to use the first IMU only (default), set to 2 to use the second IMU only, set to 3 to use the first and second IMU. Additional IMU's can be used up to a maximum of 6 if memory and processing resources permit. There may be insufficient memory and processing resources to run multiple instances. If this occurs EKF3 will fail to start.",DisplayName:"Bitmask of active IMUs",RebootRequired:"True",User:"Advanced"},EK3_LOG_LEVEL:{Description:"Determines how verbose the EKF3 streaming logging is. A value of 0 provides full logging(default), a value of 1 only XKF4 scaled innovations are logged, a value of 2 both XKF4 and GSF are logged, and a value of 3 disables all streaming logging of EKF3.",DisplayName:"Logging Level",Increment:"1",Range:{high:"3",low:"0"},User:"Advanced"},EK3_MAGB_P_NSE:{Description:"This state process noise controls the growth of body magnetic field state error estimates. Increasing it makes magnetometer bias error estimation faster and noisier.",DisplayName:"Body magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK3_MAGE_P_NSE:{Description:"This state process noise controls the growth of earth magnetic field state error estimates. Increasing it makes earth magnetic field estimation faster and noisier.",DisplayName:"Earth magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK3_MAG_CAL:{Description:"This determines when the filter will use the 3-axis magnetometer fusion model that estimates both earth and body fixed magnetic field states and when it will use a simpler magnetic heading fusion model that does not use magnetic field states. The 3-axis magnetometer fusion is only suitable for use when the external magnetic field environment is stable. EK3_MAG_CAL = 0 uses heading fusion on ground, 3-axis fusion in-flight, and is the default setting for Plane users. EK3_MAG_CAL = 1 uses 3-axis fusion only when manoeuvring. EK3_MAG_CAL = 2 uses heading fusion at all times, is recommended if the external magnetic field is varying and is the default for rovers. EK3_MAG_CAL = 3 uses heading fusion on the ground and 3-axis fusion after the first in-air field and yaw reset has completed, and is the default for copters. EK3_MAG_CAL = 4 uses 3-axis fusion at all times. EK3_MAG_CAL = 5 uses an external yaw sensor with simple heading fusion. NOTE : Use of simple heading magnetometer fusion makes vehicle compass calibration and alignment errors harder for the EKF to detect which reduces the sensitivity of the Copter EKF failsafe algorithm. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK3_MAG_MASK parameter. EK3_MAG_CAL = 6 uses an external yaw sensor with fallback to compass when the external sensor is not available if we are flying. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK3_MAG_MASK parameter. NOTE: limited operation without a magnetometer or any other yaw sensor is possible by setting all COMPASS_USE, COMPASS_USE2, COMPASS_USE3, etc parameters to 0 and setting COMPASS_ENABLE to 0. If this is done, the EK3_GSF_RUN and EK3_GSF_USE masks must be set to the same as EK3_IMU_MASK. A yaw angle derived from IMU and GPS velocity data using a Gaussian Sum Filter (GSF) will then be used to align the yaw when flight commences and there is sufficient movement.",DisplayName:"Magnetometer default fusion mode",RebootRequired:"True",User:"Advanced",Values:{0:"When flying",1:"When manoeuvring",2:"Never",3:"After first climb yaw reset",4:"Always",5:"Use external yaw sensor (Deprecated in 4.1+ see EK3_SRCn_YAW)",6:"External yaw sensor with compass fallback (Deprecated in 4.1+ see EK3_SRCn_YAW)"}},EK3_MAG_EF_LIM:{Description:"This limits the difference between the learned earth magnetic field and the earth field from the world magnetic model tables. A value of zero means to disable the use of the WMM tables.",DisplayName:"EarthField error limit",Range:{high:"500",low:"0"},Units:"mGauss",User:"Advanced"},EK3_MAG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Magnetometer measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_MAG_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of EKF cores that will disable magnetic field states and use simple magnetic heading fusion at all times. This parameter enables specified cores to be used as a backup for flight into an environment with high levels of external magnetic interference which may degrade the EKF attitude estimate when using 3-axis magnetometer fusion. NOTE : Use of a different magnetometer fusion algorithm on different cores makes unwanted EKF core switches due to magnetometer errors more likely.",DisplayName:"Bitmask of active EKF cores that will always use heading fusion",RebootRequired:"True",User:"Advanced"},EK3_MAG_M_NSE:{Description:"This is the RMS value of noise in magnetometer measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Magnetometer measurement noise (Gauss)",Increment:"0.01",Range:{high:"0.5",low:"0.01"},Units:"Gauss",User:"Advanced"},EK3_MAX_FLOW:{Description:"This sets the magnitude maximum optical flow rate in rad/sec that will be accepted by the filter",DisplayName:"Maximum valid optical flow rate",Increment:"0.1",Range:{high:"4.0",low:"1.0"},Units:"rad/s",User:"Advanced"},EK3_NOAID_M_NSE:{Description:"This sets the amount of position variation that the EKF allows for when operating without external measurements (eg GPS or optical flow). Increasing this parameter makes the EKF attitude estimate less sensitive to vehicle manoeuvres but more sensitive to IMU errors.",DisplayName:"Non-GPS operation position uncertainty (m)",Range:{high:"50.0",low:"0.5"},Units:"m",User:"Advanced"},EK3_OGNM_TEST_SF:{Description:"This parameter is adjust the sensitivity of the on ground not moving test which is used to assist with learning the yaw gyro bias and stopping yaw drift before flight when operating without a yaw sensor. Bigger values allow the detection of a not moving condition with noiser IMU data. Check the XKFM data logged when the vehicle is on ground not moving and adjust the value of OGNM_TEST_SF to be slightly higher than the maximum value of the XKFM.ADR, XKFM.ALR, XKFM.GDR and XKFM.GLR test levels.",DisplayName:"On ground not moving test scale factor",Increment:"0.5",Range:{high:"10.0",low:"1.0"},User:"Advanced"},EK3_OGN_HGT_MASK:{Bitmask:{0:"Correct when using Baro height",1:"Correct when using range finder height",2:"Apply corrections to local position"},Description:"When a height sensor other than GPS is used as the primary height source by the EKF, the position of the zero height datum is defined by that sensor and its frame of reference. If a GPS height measurement is also available, then the height of the WGS-84 height datum used by the EKF can be corrected so that the height returned by the getLLH() function is compensated for primary height sensor drift and change in datum over time. The first two bit positions control when the height datum will be corrected. Correction is performed using a Bayes filter and only operates when GPS quality permits. The third bit position controls where the corrections to the GPS reference datum are applied. Corrections can be applied to the local vertical position or to the reported EKF origin height (default).",DisplayName:"Bitmask control of EKF reference height correction",RebootRequired:"True",User:"Advanced"},EK3_POSNE_M_NSE:{Description:"This sets the GPS horizontal position observation noise. Increasing it reduces the weighting of GPS horizontal position measurements.",DisplayName:"GPS horizontal position measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_POS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS position measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS position measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_PRIMARY:{Description:"The core number (index in IMU mask) that will be used as the primary EKF core on startup. While disarmed the EKF will force the use of this core. A value of 0 corresponds to the first IMU in EK3_IMU_MASK.",DisplayName:"Primary core number",Increment:"1",Range:{high:"2",low:"0"},User:"Advanced"},EK3_RNG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the range finder innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range finder measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_RNG_M_NSE:{Description:"This is the RMS value of noise in the range finder measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range finder measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_RNG_USE_HGT:{Description:"Range finder can be used as the primary height source when below this percentage of its maximum range (see RNGFNDx_MAX_CM) and the primary height source is Baro or GPS (see EK3_SRCx_POSZ). This feature should not be used for terrain following as it is designed for vertical takeoff and landing with climb above the range finder use height before commencing the mission, and with horizontal position changes below that height being limited to a flat region around the takeoff and landing point.",DisplayName:"Range finder switch height percentage",Increment:"1",Range:{high:"70",low:"-1"},Units:"%",User:"Advanced"},EK3_RNG_USE_SPD:{Description:"The range finder will not be used as the primary height source when the horizontal ground speed is greater than this value.",DisplayName:"Range finder max ground speed",Increment:"0.5",Range:{high:"6.0",low:"2.0"},Units:"m/s",User:"Advanced"},EK3_TAU_OUTPUT:{Description:"Sets the time constant of the output complementary filter/predictor in centi-seconds.",DisplayName:"Output complementary filter time constant (centi-sec)",Increment:"5",Range:{high:"50",low:"10"},Units:"cs",User:"Advanced"},EK3_TERR_GRAD:{Description:"Specifies the maximum gradient of the terrain below the vehicle when it is using range finder as a height reference",DisplayName:"Maximum terrain gradient",Increment:"0.01",Range:{high:"0.2",low:"0"},User:"Advanced"},EK3_VELD_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set vertical velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS vertical velocity measurements.",DisplayName:"GPS vertical velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_VELNE_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set horizontal velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS horizontal velocity measurements.",DisplayName:"GPS horizontal velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_VEL_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS velocity measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS velocity innovation gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_VIS_VERR_MAX:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when minimum quality is reported by the sensor. When quality is between max and min, the error will be calculated using linear interpolation between VIS_VERR_MIN and VIS_VERR_MAX.",DisplayName:"Visual odometry maximum velocity error",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK3_VIS_VERR_MIN:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when maximum quality is reported by the sensor. When quality is between max and min, the error will be calculated using linear interpolation between VIS_VERR_MIN and VIS_VERR_MAX.",DisplayName:"Visual odometry minimum velocity error",Increment:"0.05",Range:{high:"0.5",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_WENC_VERR:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when wheel encoder data is being fused.",DisplayName:"Wheel odometry velocity error",Increment:"0.1",Range:{high:"1.0",low:"0.01"},Units:"m/s",User:"Advanced"},EK3_WIND_PSCALE:{Description:"This controls how much the process noise on the wind states is increased when gaining or losing altitude to take into account changes in wind speed and direction with altitude. Increasing this parameter increases how rapidly the wind states adapt when changing altitude, but does make wind velocity estimation noiser.",DisplayName:"Height rate to wind process noise scaler",Increment:"0.1",Range:{high:"2.0",low:"0.0"},User:"Advanced"},EK3_WIND_P_NSE:{Description:"This state process noise controls the growth of wind state error estimates. Increasing it makes wind estimation faster and noisier.",DisplayName:"Wind velocity process noise (m/s^2)",Increment:"0.1",Range:{high:"2.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK3_YAW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer yaw measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Yaw measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_YAW_M_NSE:{Description:"This is the RMS value of noise in yaw measurements from the magnetometer. Increasing it reduces the weighting on these measurements.",DisplayName:"Yaw measurement noise (rad)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},cX={EK3_SRC1_POSXY:{Description:"Position Horizontal Source (Primary)",DisplayName:"Position Horizontal Source (Primary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_POSZ:{Description:"Position Vertical Source",DisplayName:"Position Vertical Source",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_VELXY:{Description:"Velocity Horizontal Source",DisplayName:"Velocity Horizontal Source",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC1_VELZ:{Description:"Velocity Vertical Source",DisplayName:"Velocity Vertical Source",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_YAW:{Description:"Yaw Source",DisplayName:"Yaw Source",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC2_POSXY:{Description:"Position Horizontal Source (Secondary)",DisplayName:"Position Horizontal Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_POSZ:{Description:"Position Vertical Source (Secondary)",DisplayName:"Position Vertical Source (Secondary)",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_VELXY:{Description:"Velocity Horizontal Source (Secondary)",DisplayName:"Velocity Horizontal Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC2_VELZ:{Description:"Velocity Vertical Source (Secondary)",DisplayName:"Velocity Vertical Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_YAW:{Description:"Yaw Source (Secondary)",DisplayName:"Yaw Source (Secondary)",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC3_POSXY:{Description:"Position Horizontal Source (Tertiary)",DisplayName:"Position Horizontal Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_POSZ:{Description:"Position Vertical Source (Tertiary)",DisplayName:"Position Vertical Source (Tertiary)",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_VELXY:{Description:"Velocity Horizontal Source (Tertiary)",DisplayName:"Velocity Horizontal Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC3_VELZ:{Description:"Velocity Vertical Source (Tertiary)",DisplayName:"Velocity Vertical Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_YAW:{Description:"Yaw Source (Tertiary)",DisplayName:"Yaw Source (Tertiary)",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC_OPTIONS:{Bitmask:{0:"FuseAllVelocities"},Description:"EKF Source Options",DisplayName:"EKF Source Options",User:"Advanced"}},dX={ESC_TLM_MAV_OFS:{Description:"Offset to apply to ESC numbers when reporting as ESC_TELEMETRY packets over MAVLink. This allows high numbered motors to be displayed as low numbered ESCs for convenience on GCS displays. A value of 4 would send ESC on output 5 as ESC number 1 in ESC_TELEMETRY packets",DisplayName:"ESC Telemetry mavlink offset",Increment:"1",Range:{high:"31",low:"0"},User:"Standard"}},CX={FENCE_ACTION:{Description:"What action should be taken when fence is breached",DisplayName:"Fence Action",User:"Standard",Values:{0:"Report Only",1:"RTL",6:"Guided",7:"GuidedThrottlePass"}},FENCE_ALT_MAX:{Description:"Maximum altitude allowed before geofence triggers",DisplayName:"Fence Maximum Altitude",Increment:"1",Range:{high:"1000",low:"10"},Units:"m",User:"Standard"},FENCE_ALT_MIN:{Description:"Minimum altitude allowed before geofence triggers",DisplayName:"Fence Minimum Altitude",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FENCE_AUTOENABLE:{Description:"Auto-enable of fence",DisplayName:"Fence Auto-Enable",Increment:"1",Range:{high:"3",low:"0"},User:"Standard",Values:{0:"AutoEnableOff",1:"AutoEnableOnTakeoff",2:"AutoEnableDisableFloorOnLanding",3:"AutoEnableOnlyWhenArmed"}},FENCE_ENABLE:{Description:"Allows you to enable (1) or disable (0) the fence functionality",DisplayName:"Fence enable/disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},FENCE_MARGIN:{Description:"Distance that autopilot's should maintain from the fence to avoid a breach",DisplayName:"Fence Margin",Range:{high:"10",low:"1"},Units:"m",User:"Standard"},FENCE_OPTIONS:{Bitmask:{0:"Disable mode change following fence action until fence breach is cleared"},Description:"0:Disable mode change following fence action until fence breach is cleared",DisplayName:"Fence options",User:"Standard"},FENCE_RADIUS:{Description:"Circle fence radius which when breached will cause an RTL",DisplayName:"Circular Fence Radius",Range:{high:"10000",low:"30"},Units:"m",User:"Standard"},FENCE_RET_ALT:{Description:"Altitude the vehicle will transit to when a fence breach occurs",DisplayName:"Fence Return Altitude",Increment:"1",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},FENCE_RET_RALLY:{Description:"Should the vehicle return to fence return point or rally point",DisplayName:"Fence Return to Rally",Increment:"1",Range:{high:"1",low:"0"},User:"Standard",Values:{0:"Fence Return Point",1:"Nearest Rally Point"}},FENCE_TOTAL:{Description:"Number of polygon points saved in eeprom (do not update manually)",DisplayName:"Fence polygon point total",Range:{high:"20",low:"1"},User:"Standard"},FENCE_TYPE:{Bitmask:{0:"Max altitude",1:"Circle",2:"Polygon",3:"Min altitude"},Description:"Enabled fence types held as bitmask",DisplayName:"Fence Type",User:"Standard"}},mX={FFT_ATT_REF:{Description:"FFT attenuation level in dB for bandwidth calculation and peak detection. The bandwidth is calculated by comparing peak power output with the attenuated version. The default of 15 has shown to be a good compromise in both simulations and real flight.",DisplayName:"FFT attenuation for bandwidth calculation",Range:{high:"100",low:"0"},User:"Advanced"},FFT_BW_HOVER:{Description:"FFT learned bandwidth at hover for the attenuation frequencies.",DisplayName:"FFT learned bandwidth at hover",Range:{high:"200",low:"0"},User:"Advanced"},FFT_ENABLE:{Description:"Enable Gyro FFT analyser",DisplayName:"Enable",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},FFT_FREQ_HOVER:{Description:"The learned hover noise frequency",DisplayName:"FFT learned hover frequency",Range:{high:"250",low:"0"},User:"Advanced"},FFT_HMNC_FIT:{Description:"FFT harmonic fit frequency threshold percentage at which a signal of the appropriate frequency is determined to be the harmonic of another. Signals that have a harmonic relationship that varies at most by this percentage are considered harmonics of each other for the purpose of selecting the harmonic notch frequency. If a match is found then the lower frequency harmonic is always used as the basis for the dynamic harmonic notch. A value of zero completely disables harmonic matching.",DisplayName:"FFT harmonic fit frequency threshold",Range:{high:"100",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_HMNC_PEAK:{Description:"The FFT harmonic peak target that should be returned by FTN1.PkAvg. The resulting value will be used by the harmonic notch if configured to track the FFT frequency. By default the appropriate peak is auto-detected based on the harmonic fit between peaks and the energy-weighted average frequency on roll on pitch is used. Setting this to 1 will always target the highest energy peak. Setting this to 2 will target the highest energy peak that is lower in frequency than the highest energy peak. Setting this to 3 will target the highest energy peak that is higher in frequency than the highest energy peak. Setting this to 4 will target the highest energy peak on the roll axis only and only the roll frequency will be used (some vehicles have a much more pronounced peak on roll). Setting this to 5 will target the highest energy peak on the pitch axis only and only the pitch frequency will be used (some vehicles have a much more pronounced peak on roll).",DisplayName:"FFT harmonic peak target",User:"Advanced",Values:{0:"Auto",1:"Center Frequency",2:"Lower-Shoulder Frequency",3:"Upper-Shoulder Frequency",4:"Roll-Axis",5:"Pitch-Axis"}},FFT_MAXHZ:{Description:"Upper bound of FFT frequency detection in Hz. On smaller vehicles the maximum motor frequency is likely to be significantly higher than for larger vehicles.",DisplayName:"Maximum Frequency",Range:{high:"495",low:"20"},Units:"Hz",User:"Advanced"},FFT_MINHZ:{Description:"Lower bound of FFT frequency detection in Hz. On larger vehicles the minimum motor frequency is likely to be significantly lower than for smaller vehicles.",DisplayName:"Minimum Frequency",Range:{high:"400",low:"20"},Units:"Hz",User:"Advanced"},FFT_NUM_FRAMES:{Description:"Number of output frequency frames to retain and average in order to calculate final frequencies. Averaging output frames can drastically reduce noise and jitter at the cost of latency as long as the input is stable. The default is to perform no averaging. For rapidly changing frequencies (e.g. smaller aircraft) fewer frames should be averaged.",DisplayName:"FFT output frames to retain and average",Range:{high:"8",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_SAMPLE_MODE:{Description:"Sampling mode (and therefore rate). 0: Gyro rate sampling, 1: Fast loop rate sampling, 2: Fast loop rate / 2 sampling, 3: Fast loop rate / 3 sampling. Takes effect on reboot.",DisplayName:"Sample Mode",Range:{high:"4",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_SNR_REF:{Description:"FFT SNR reference threshold in dB at which a signal is determined to be present.",DisplayName:"FFT SNR reference threshold",Range:{high:"100.0",low:"0.0"},User:"Advanced"},FFT_THR_REF:{Description:"FFT learned thrust reference for the hover frequency and FFT minimum frequency.",DisplayName:"FFT learned thrust reference",Range:{high:"0.9",low:"0.01"},User:"Advanced"},FFT_WINDOW_OLAP:{Description:"Percentage of window to be overlapped before another frame is process. Takes effect on reboot. A good default is 50% overlap. Higher overlap results in more processed frames but not necessarily more temporal resolution. Lower overlap results in lost information at the frame edges.",DisplayName:"FFT window overlap",Range:{high:"0.9",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_WINDOW_SIZE:{Description:"Size of window to be used in FFT calculations. Takes effect on reboot. Must be a power of 2 and between 32 and 512. Larger windows give greater frequency resolution but poorer time resolution, consume more CPU time and may not be appropriate for all vehicles. Time and frequency resolution are given by the sample-rate / window-size. Windows of 256 are only really recommended for F7 class boards, windows of 512 or more H7 class.",DisplayName:"FFT window size",Range:{high:"1024",low:"32"},RebootRequired:"True",User:"Advanced"}},uX={FLOW_ADDR:{Description:"This is used to select between multiple possible I2C addresses for some sensor types. For PX4Flow you can choose 0 to 7 for the 8 possible addresses on the I2C bus.",DisplayName:"Address on the bus",Range:{high:"127",low:"0"},User:"Advanced"},FLOW_FXSCALER:{Description:"This sets the parts per thousand scale factor correction applied to the flow sensor X axis optical rate. It can be used to correct for variations in effective focal length. Each positive increment of 1 increases the scale factor applied to the X axis optical flow reading by 0.1%. Negative values reduce the scale factor.",DisplayName:"X axis optical flow scale factor correction",Increment:"1",Range:{high:"+200",low:"-200"},User:"Standard"},FLOW_FYSCALER:{Description:"This sets the parts per thousand scale factor correction applied to the flow sensor Y axis optical rate. It can be used to correct for variations in effective focal length. Each positive increment of 1 increases the scale factor applied to the Y axis optical flow reading by 0.1%. Negative values reduce the scale factor.",DisplayName:"Y axis optical flow scale factor correction",Increment:"1",Range:{high:"+200",low:"-200"},User:"Standard"},FLOW_ORIENT_YAW:{Description:"Specifies the number of centi-degrees that the flow sensor is yawed relative to the vehicle. A sensor with its X-axis pointing to the right of the vehicle X axis has a positive yaw angle.",DisplayName:"Flow sensor yaw alignment",Increment:"10",Range:{high:"+18000",low:"-17999"},Units:"cdeg",User:"Standard"},FLOW_POS_X:{Description:"X position of the optical flow sensor focal point in body frame. Positive X is forward of the origin.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},FLOW_POS_Y:{Description:"Y position of the optical flow sensor focal point in body frame. Positive Y is to the right of the origin.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},FLOW_POS_Z:{Description:"Z position of the optical flow sensor focal point in body frame. Positive Z is down from the origin.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},FLOW_TYPE:{Description:"Optical flow sensor type",DisplayName:"Optical flow sensor type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"PX4Flow",2:"Pixart",3:"Bebop",4:"CXOF",5:"MAVLink",6:"DroneCAN",7:"MSP",8:"UPFLOW"}}},hX={FOLL_ALT_TYPE:{Description:"Follow altitude type",DisplayName:"Follow altitude type",User:"Standard",Values:{0:"absolute",1:"relative"}},FOLL_DIST_MAX:{Description:"Follow distance maximum. targets further than this will be ignored",DisplayName:"Follow distance maximum",Range:{high:"1000",low:"1"},Units:"m",User:"Standard"},FOLL_ENABLE:{Description:"Enabled/disable following a target",DisplayName:"Follow enable/disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},FOLL_OFS_TYPE:{Description:"Follow offset type",DisplayName:"Follow offset type",User:"Standard",Values:{0:"North-East-Down",1:"Relative to lead vehicle heading"}},FOLL_OFS_X:{Description:"Follow offsets in meters north/forward. If positive, this vehicle fly ahead or north of lead vehicle. Depends on FOLL_OFS_TYPE",DisplayName:"Follow offsets in meters north/forward",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FOLL_OFS_Y:{Description:"Follow offsets in meters east/right. If positive, this vehicle will fly to the right or east of lead vehicle. Depends on FOLL_OFS_TYPE",DisplayName:"Follow offsets in meters east/right",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FOLL_OFS_Z:{Description:"Follow offsets in meters down. If positive, this vehicle will fly below the lead vehicle",DisplayName:"Follow offsets in meters down",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FOLL_POS_P:{Description:"Follow position error P gain. Converts the difference between desired vertical speed and actual speed into a desired acceleration that is passed to the throttle acceleration controller",DisplayName:"Follow position error P gain",Increment:"0.01",Range:{high:"1.00",low:"0.01"},User:"Standard"},FOLL_SYSID:{Description:"Follow target's mavlink system id",DisplayName:"Follow target's mavlink system id",Range:{high:"255",low:"0"},User:"Standard"},FOLL_YAW_BEHAVE:{Description:"Follow yaw behaviour",DisplayName:"Follow yaw behaviour",User:"Standard",Values:{0:"None",1:"Face Lead Vehicle",2:"Same as Lead vehicle",3:"Direction of Flight"}}},pX={FRSKY_DNLINK1_ID:{Description:"Change the first extra downlink sensor id (SPort only)",DisplayName:"First downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}},FRSKY_DNLINK2_ID:{Description:"Change the second extra downlink sensor id (SPort only)",DisplayName:"Second downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}},FRSKY_DNLINK_ID:{Description:"Change the default downlink sensor id (SPort only)",DisplayName:"Default downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26",27:"27","-1":"Disable"}},FRSKY_OPTIONS:{Bitmask:{0:"EnableAirspeedAndGroundspeed"},Description:"A bitmask to set some FRSky Telemetry specific options",DisplayName:"FRSky Telemetry Options",User:"Standard"},FRSKY_UPLINK_ID:{Description:"Change the uplink sensor id (SPort only)",DisplayName:"Uplink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}}},fX={GEN_OPTIONS:{Bitmask:{0:"Supress Maintenance-Required Warnings"},Description:"Bitmask of options for generators",DisplayName:"Generator Options",User:"Standard"},GEN_TYPE:{Description:"Generator type",DisplayName:"Generator type",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"IE 650w 800w Fuel Cell",2:"IE 2.4kW Fuel Cell",3:"Richenpower"}}},VX={GPS1_CAN_OVRIDE:{Description:"GPS Node id for first GPS. If 0 the gps will be automatically selected on a first-come-first-GPS basis.",DisplayName:"First DroneCAN GPS NODE ID",User:"Advanced"},GPS2_CAN_OVRIDE:{Description:"GPS Node id for second GPS. If 0 the gps will be automatically selected on a second-come-second-GPS basis.",DisplayName:"Second DroneCAN GPS NODE ID",User:"Advanced"},GPS_AUTO_CONFIG:{Description:"Controls if the autopilot should automatically configure the GPS based on the parameters and default settings",DisplayName:"Automatic GPS configuration",User:"Advanced",Values:{0:"Disables automatic configuration",1:"Enable automatic configuration for Serial GPSes only",2:"Enable automatic configuration for DroneCAN as well"}},GPS_AUTO_SWITCH:{Description:"Automatic switchover to GPS reporting best lock, 1:UseBest selects the GPS with highest status, if both are equal the GPS with highest satellite count is used 4:Use primary if 3D fix or better, will revert to 'UseBest' behaviour if 3D fix is lost on primary",DisplayName:"Automatic Switchover Setting",User:"Advanced",Values:{0:"Use primary",1:"UseBest",2:"Blend",4:"Use primary if 3D fix or better"}},GPS_BLEND_MASK:{Bitmask:{0:"Horiz Pos",1:"Vert Pos",2:"Speed"},Description:"Determines which of the accuracy measures Horizontal position, Vertical Position and Speed are used to calculate the weighting on each GPS receiver when soft switching has been selected by setting GPS_AUTO_SWITCH to 2(Blend)",DisplayName:"Multi GPS Blending Mask",User:"Advanced"},GPS_BLEND_TC:{Description:"Controls the slowest time constant applied to the calculation of GPS position and height offsets used to adjust different GPS receivers for steady state position differences.",DisplayName:"Blending time constant",Range:{high:"30.0",low:"5.0"},Units:"s",User:"Advanced"},GPS_CAN_NODEID1:{Description:"GPS Node id for first-discovered GPS.",DisplayName:"GPS Node ID 1",ReadOnly:"True",User:"Advanced"},GPS_CAN_NODEID2:{Description:"GPS Node id for second-discovered GPS.",DisplayName:"GPS Node ID 2",ReadOnly:"True",User:"Advanced"},GPS_COM_PORT:{Description:"The physical COM port on the connected device, currently only applies to SBF GPS",DisplayName:"GPS physical COM port",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},GPS_COM_PORT2:{Description:"The physical COM port on the connected device, currently only applies to SBF GPS",DisplayName:"GPS physical COM port",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},GPS_DELAY_MS:{Description:"Controls the amount of GPS measurement delay that the autopilot compensates for. Set to zero to use the default delay for the detected GPS type.",DisplayName:"GPS delay in milliseconds",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},GPS_DELAY_MS2:{Description:"Controls the amount of GPS measurement delay that the autopilot compensates for. Set to zero to use the default delay for the detected GPS type.",DisplayName:"GPS 2 delay in milliseconds",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},GPS_DRV_OPTIONS:{Bitmask:{0:"Use UART2 for moving baseline on ublox",1:"Use base station for GPS yaw on SBF",2:"Use baudrate 115200",3:"Use dedicated CAN port b/w GPSes for moving baseline",4:"Use ellipsoid height instead of AMSL for uBlox driver"},Description:"Additional backend specific options",DisplayName:"driver options",User:"Advanced"},GPS_GNSS_MODE:{Bitmask:{0:"GPS",1:"SBAS",2:"Galileo",3:"Beidou",4:"IMES",5:"QZSS",6:"GLONASS"},Description:"Bitmask for what GNSS system to use on the first GPS (all unchecked or zero to leave GPS as configured)",DisplayName:"GNSS system configuration",User:"Advanced"},GPS_GNSS_MODE2:{Bitmask:{0:"GPS",1:"SBAS",2:"Galileo",3:"Beidou",4:"IMES",5:"QZSS",6:"GLONASS"},Description:"Bitmask for what GNSS system to use on the second GPS (all unchecked or zero to leave GPS as configured)",DisplayName:"GNSS system configuration",User:"Advanced"},GPS_INJECT_TO:{Description:"The GGS can send raw serial packets to inject data to multiple GPSes.",DisplayName:"Destination for GPS_INJECT_DATA MAVLink packets",User:"Advanced",Values:{0:"send to first GPS",1:"send to 2nd GPS",127:"send to all"}},GPS_MIN_DGPS:{Description:"Sets the minimum type of differential GPS corrections required before allowing to switch into DGPS mode.",DisplayName:"Minimum Lock Type Accepted for DGPS",RebootRequired:"True",User:"Advanced",Values:{0:"Any",50:"FloatRTK",100:"IntegerRTK"}},GPS_MIN_ELEV:{Description:"This sets the minimum elevation of satellites above the horizon for them to be used for navigation. Setting this to -100 leaves the minimum elevation set to the GPS modules default.",DisplayName:"Minimum elevation",Range:{high:"90",low:"-100"},Units:"deg",User:"Advanced"},GPS_NAVFILTER:{Description:"Navigation filter engine setting",DisplayName:"Navigation filter setting",User:"Advanced",Values:{0:"Portable",2:"Stationary",3:"Pedestrian",4:"Automotive",5:"Sea",6:"Airborne1G",7:"Airborne2G",8:"Airborne4G"}},GPS_POS1_X:{Description:"X position of the first GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS1_Y:{Description:"Y position of the first GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS1_Z:{Description:"Z position of the first GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_X:{Description:"X position of the second GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_Y:{Description:"Y position of the second GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_Z:{Description:"Z position of the second GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_PRIMARY:{Description:"This GPS will be used when GPS_AUTO_SWITCH is 0 and used preferentially with GPS_AUTO_SWITCH = 4.",DisplayName:"Primary GPS",Increment:"1",User:"Advanced",Values:{0:"FirstGPS",1:"SecondGPS"}},GPS_RATE_MS:{Description:"Controls how often the GPS should provide a position update. Lowering below 5Hz(default) is not allowed. Raising the rate above 5Hz usually provides little benefit and for some GPS (eg Ublox M9N) can severely impact performance.",DisplayName:"GPS update rate in milliseconds",Range:{high:"200",low:"50"},Units:"ms",User:"Advanced",Values:{100:"10Hz",125:"8Hz",200:"5Hz"}},GPS_RATE_MS2:{Description:"Controls how often the GPS should provide a position update. Lowering below 5Hz(default) is not allowed. Raising the rate above 5Hz usually provides little benefit and for some GPS (eg Ublox M9N) can severely impact performance.",DisplayName:"GPS 2 update rate in milliseconds",Range:{high:"200",low:"50"},Units:"ms",User:"Advanced",Values:{100:"10Hz",125:"8Hz",200:"5Hz"}},GPS_RAW_DATA:{Description:"Handles logging raw data; on uBlox chips that support raw data this will log RXM messages into logger; on Septentrio this will log on the equipment's SD card and when set to 2, the autopilot will try to stop logging after disarming and restart after arming",DisplayName:"Raw data logging",RebootRequired:"True",User:"Advanced",Values:{0:"Ignore",1:"Always log",2:"Stop logging when disarmed (SBF only)",5:"Only log every five samples (uBlox only)"}},GPS_SAVE_CFG:{Description:"Determines whether the configuration for this GPS should be written to non-volatile memory on the GPS. Currently working for UBlox 6 series and above.",DisplayName:"Save GPS configuration",User:"Advanced",Values:{0:"Do not save config",1:"Save config",2:"Save only when needed"}},GPS_SBAS_MODE:{Description:"This sets the SBAS (satellite based augmentation system) mode if available on this GPS. If set to 2 then the SBAS mode is not changed in the GPS. Otherwise the GPS will be reconfigured to enable/disable SBAS. Disabling SBAS may be worthwhile in some parts of the world where an SBAS signal is available but the baseline is too long to be useful.",DisplayName:"SBAS Mode",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"NoChange"}},GPS_SBP_LOGMASK:{Description:"Masked with the SBP msg_type field to determine whether SBR1/SBR2 data is logged",DisplayName:"Swift Binary Protocol Logging Mask",User:"Advanced",Values:{0:"None (0x0000)","-1":"All (0xFFFF)","-256":"External only (0xFF00)"}},GPS_TYPE:{Description:"GPS type of 1st GPS",DisplayName:"1st GPS type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"AUTO",2:"uBlox",5:"NMEA",6:"SiRF",7:"HIL",8:"SwiftNav",9:"DroneCAN",10:"SBF",11:"GSOF",13:"ERB",14:"MAV",15:"NOVA",16:"HemisphereNMEA",17:"uBlox-MovingBaseline-Base",18:"uBlox-MovingBaseline-Rover",19:"MSP",20:"AllyStar",21:"ExternalAHRS",22:"DroneCAN-MovingBaseline-Base",23:"DroneCAN-MovingBaseline-Rover"}},GPS_TYPE2:{Description:"GPS type of 2nd GPS",DisplayName:"2nd GPS type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"AUTO",2:"uBlox",5:"NMEA",6:"SiRF",7:"HIL",8:"SwiftNav",9:"DroneCAN",10:"SBF",11:"GSOF",13:"ERB",14:"MAV",15:"NOVA",16:"HemisphereNMEA",17:"uBlox-MovingBaseline-Base",18:"uBlox-MovingBaseline-Rover",19:"MSP",20:"AllyStar",21:"ExternalAHRS",22:"DroneCAN-MovingBaseline-Base",23:"DroneCAN-MovingBaseline-Rover"}}},LX={GPS_MB1_OFS_X:{Description:"X position of the base GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_OFS_Y:{Description:"Y position of the base GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Y position offset ",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_OFS_Z:{Description:"Z position of the base GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_TYPE:{Description:"Controls the type of moving base used if using moving base.",DisplayName:"Moving base type",RebootRequired:"True",User:"Advanced",Values:{0:"Relative to alternate GPS instance",1:"RelativeToCustomBase"}}},HX={GPS_MB2_OFS_X:{Description:"X position of the base GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_OFS_Y:{Description:"Y position of the base GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Y position offset ",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_OFS_Z:{Description:"Z position of the base GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_TYPE:{Description:"Controls the type of moving base used if using moving base.",DisplayName:"Moving base type",RebootRequired:"True",User:"Advanced",Values:{0:"Relative to alternate GPS instance",1:"RelativeToCustomBase"}}},MX={GRIP_AUTOCLOSE:{Description:"Time in seconds that gripper close the gripper after opening; 0 to disable",DisplayName:"Gripper Autoclose time",Range:{high:"255",low:"0.25"},Units:"s",User:"Advanced"},GRIP_CAN_ID:{Description:"Refer to https://docs.zubax.com/opengrab_epm_v3#UAVCAN_interface",DisplayName:"EPM UAVCAN Hardpoint ID",Range:{high:"255",low:"0"},User:"Standard"},GRIP_ENABLE:{Description:"Gripper enable/disable",DisplayName:"Gripper Enable/Disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},GRIP_GRAB:{Description:"PWM value in microseconds sent to Gripper to initiate grabbing the cargo",DisplayName:"Gripper Grab PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_NEUTRAL:{Description:"PWM value in microseconds sent to grabber when not grabbing or releasing",DisplayName:"Neutral PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_REGRAB:{Description:"Time in seconds that EPM gripper will regrab the cargo to ensure grip has not weakened; 0 to disable",DisplayName:"EPM Gripper Regrab interval",Range:{high:"255",low:"0"},Units:"s",User:"Advanced"},GRIP_RELEASE:{Description:"PWM value in microseconds sent to Gripper to release the cargo",DisplayName:"Gripper Release PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_TYPE:{Description:"Gripper enable/disable",DisplayName:"Gripper Type",User:"Standard",Values:{0:"None",1:"Servo",2:"EPM"}}},gX={GUIDED_D:{Description:"D Gain which produces an output that is proportional to the rate of change of the error",DisplayName:"PID Derivative Gain"},GUIDED_FF:{Description:"FF Gain which produces an output value that is proportional to the demanded input",DisplayName:"FF FeedForward Gain"},GUIDED_FLTD:{Description:"Derivative filter frequency in Hz",DisplayName:"PID Derivative term filter frequency in Hz",Units:"Hz"},GUIDED_FLTE:{Description:"Error filter frequency in Hz",DisplayName:"PID Error filter frequency in Hz",Units:"Hz"},GUIDED_FLTT:{Description:"Target filter frequency in Hz",DisplayName:"PID Target filter frequency in Hz",Units:"Hz"},GUIDED_I:{Description:"I Gain which produces an output that is proportional to both the magnitude and the duration of the error",DisplayName:"PID Integral Gain"},GUIDED_IMAX:{Description:"The maximum/minimum value that the I term can output",DisplayName:"PID Integral Maximum"},GUIDED_P:{Description:"P Gain which produces an output value that is proportional to the current error value",DisplayName:"PID Proportional Gain"},GUIDED_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"}},AX={ICE_ENABLE:{Description:"This enables internal combustion engine control",DisplayName:"Enable ICEngine control",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},ICE_IDLE_DB:{Description:"This configures the deadband that is tolerated before adjusting the idle setpoint",DisplayName:"Deadband for Idle Governor"},ICE_IDLE_PCT:{Description:"This is the minimum percentage throttle output while running, this includes being disarmed, but not safe",DisplayName:"Throttle percentage for engine idle",Range:{high:"100",low:"0"},User:"Standard"},ICE_IDLE_RPM:{Description:"This configures the RPM that will be commanded by the idle governor. Set to -1 to disable",DisplayName:"RPM Setpoint for Idle Governor",User:"Advanced"},ICE_IDLE_SLEW:{Description:"This configures the slewrate used to adjust the idle setpoint in percentage points per second",DisplayName:"Slew Rate for idle control"},ICE_OPTIONS:{Bitmask:{0:"DisableIgnitionRCFailsafe",1:"DisableRedineGovernor",2:"ThrottleWhileDisarmed"},Description:"Options for ICE control. The DisableIgnitionRCFailsafe option will cause the ignition to be set off on any R/C failsafe. If ThrottleWhileDisarmed is set then throttle control will be allowed while disarmed for planes when in MANUAL mode.",DisplayName:"ICE options"},ICE_PWM_IGN_OFF:{Description:"This is the value sent to the ignition channel when off",DisplayName:"PWM value for ignition off",Range:{high:"2000",low:"1000"},User:"Standard"},ICE_PWM_IGN_ON:{Description:"This is the value sent to the ignition channel when on",DisplayName:"PWM value for ignition on",Range:{high:"2000",low:"1000"},User:"Standard"},ICE_PWM_STRT_OFF:{Description:"This is the value sent to the starter channel when off",DisplayName:"PWM value for starter off",Range:{high:"2000",low:"1000"},User:"Standard"},ICE_PWM_STRT_ON:{Description:"This is the value sent to the starter channel when on",DisplayName:"PWM value for starter on",Range:{high:"2000",low:"1000"},User:"Standard"},ICE_REDLINE_RPM:{Description:"Maximum RPM for the engine provided by the manufacturer. A value of 0 disables this feature. See ICE_OPTIONS to enable or disable the governor.",DisplayName:"RPM of the redline limit for the engine",Range:{high:"2000000",low:"0"},Units:"RPM",User:"Advanced"},ICE_RPM_CHAN:{Description:"This is which of the RPM instances to use for detecting the RPM of the engine",DisplayName:"RPM instance channel to use",User:"Standard",Values:{0:"None",1:"RPM1",2:"RPM2"}},ICE_RPM_THRESH:{Description:"This is the measured RPM above which the engine is considered to be running",DisplayName:"RPM threshold",Range:{high:"100000",low:"100"},User:"Standard"},ICE_STARTCHN_MIN:{Description:"This is a minimum PWM value for engine start channel for an engine stop to be commanded. Setting this value will avoid RC input glitches with low PWM values from causing an unwanted engine stop. A value of zero means any PWM below 1300 triggers an engine stop.",DisplayName:"Input channel for engine start minimum PWM",Range:{high:"1300",low:"0"},User:"Standard"},ICE_STARTER_TIME:{Description:"This is the number of seconds to run the starter when trying to start the engine",DisplayName:"Time to run starter",Range:{high:"5",low:"0.1"},Units:"s",User:"Standard"},ICE_START_CHAN:{Description:"This is an RC input channel for requesting engine start. Engine will try to start when channel is at or above 1700. Engine will stop when channel is at or below 1300. Between 1301 and 1699 the engine will not change state unless a MAVLink command or mission item commands a state change, or the vehicle is disarmed. See ICE_STARTCHN_MIN parameter to change engine stop PWM value and/or to enable debouncing of the START_CH to avoid accidental engine kills due to noise on channel.",DisplayName:"Input channel for engine start",User:"Standard",Values:{0:"None",1:"Chan1",2:"Chan2",3:"Chan3",4:"Chan4",5:"Chan5",6:"Chan6",7:"Chan7",8:"Chan8",9:"Chan9",10:"Chan10",11:"Chan11",12:"Chan12",13:"Chan13",14:"Chan14",15:"Chan15",16:"Chan16"}},ICE_START_DELAY:{Description:"Delay between start attempts",DisplayName:"Time to wait between starts",Range:{high:"10",low:"1"},Units:"s",User:"Standard"},ICE_START_PCT:{Description:"This is the percentage throttle output for engine start",DisplayName:"Throttle percentage for engine start",Range:{high:"100",low:"0"},User:"Standard"}},vX={INS_ACC1_CALTEMP:{Calibration:"1",Description:"Temperature that the 1st accelerometer was calibrated at",DisplayName:"Calibration temperature for 1st accelerometer",Units:"degC",User:"Advanced"},INS_ACC2OFFS_X:{Calibration:"1",Description:"Accelerometer2 offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2OFFS_Y:{Calibration:"1",Description:"Accelerometer2 offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2OFFS_Z:{Calibration:"1",Description:"Accelerometer2 offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2SCAL_X:{Calibration:"1",Description:"Accelerometer2 scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2SCAL_Y:{Calibration:"1",Description:"Accelerometer2 scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2SCAL_Z:{Calibration:"1",Description:"Accelerometer2 scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2_CALTEMP:{Calibration:"1",Description:"Temperature that the 2nd accelerometer was calibrated at",DisplayName:"Calibration temperature for 2nd accelerometer",Units:"degC",User:"Advanced"},INS_ACC2_ID:{Description:"Accelerometer2 sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer2 ID",ReadOnly:"True",User:"Advanced"},INS_ACC3OFFS_X:{Calibration:"1",Description:"Accelerometer3 offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3OFFS_Y:{Calibration:"1",Description:"Accelerometer3 offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3OFFS_Z:{Calibration:"1",Description:"Accelerometer3 offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3SCAL_X:{Calibration:"1",Description:"Accelerometer3 scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3SCAL_Y:{Calibration:"1",Description:"Accelerometer3 scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3SCAL_Z:{Calibration:"1",Description:"Accelerometer3 scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3_CALTEMP:{Calibration:"1",Description:"Temperature that the 3rd accelerometer was calibrated at",DisplayName:"Calibration temperature for 3rd accelerometer",Units:"degC",User:"Advanced"},INS_ACC3_ID:{Description:"Accelerometer3 sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer3 ID",ReadOnly:"True",User:"Advanced"},INS_ACCEL_FILTER:{Description:"Filter cutoff frequency for accelerometers. This can be set to a lower value to try to cope with very high vibration levels in aircraft. A value of zero means no filtering (not recommended!)",DisplayName:"Accel filter cutoff frequency",Range:{high:"256",low:"0"},Units:"Hz",User:"Advanced"},INS_ACCOFFS_X:{Calibration:"1",Description:"Accelerometer offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCOFFS_Y:{Calibration:"1",Description:"Accelerometer offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCOFFS_Z:{Calibration:"1",Description:"Accelerometer offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCSCAL_X:{Calibration:"1",Description:"Accelerometer scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACCSCAL_Y:{Calibration:"1",Description:"Accelerometer scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACCSCAL_Z:{Calibration:"1",Description:"Accelerometer scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC_BODYFIX:{Description:"The body-fixed accelerometer to be used for trim calculation",DisplayName:"Body-fixed accelerometer",User:"Advanced",Values:{1:"IMU 1",2:"IMU 2",3:"IMU 3"}},INS_ACC_ID:{Description:"Accelerometer sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer ID",ReadOnly:"True",User:"Advanced"},INS_ENABLE_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU",6:"SeventhIMU"},Description:"Bitmask of IMUs to enable. It can be used to prevent startup of specific detected IMUs",DisplayName:"IMU enable mask",User:"Advanced"},INS_FAST_SAMPLE:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU"},Description:"Mask of IMUs to enable fast sampling on, if available",DisplayName:"Fast sampling mask",User:"Advanced"},INS_GYR1_CALTEMP:{Calibration:"1",Description:"Temperature that the 1st gyroscope was calibrated at",DisplayName:"Calibration temperature for 1st gyroscope",Units:"degC",User:"Advanced"},INS_GYR2OFFS_X:{Calibration:"1",Description:"Gyro2 sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYR2OFFS_Y:{Calibration:"1",Description:"Gyro2 sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYR2OFFS_Z:{Calibration:"1",Description:"Gyro2 sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYR2_CALTEMP:{Calibration:"1",Description:"Temperature that the 2nd gyroscope was calibrated at",DisplayName:"Calibration temperature for 2nd gyroscope",Units:"degC",User:"Advanced"},INS_GYR2_ID:{Description:"Gyro2 sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro2 ID",ReadOnly:"True",User:"Advanced"},INS_GYR3OFFS_X:{Calibration:"1",Description:"Gyro3 sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYR3OFFS_Y:{Calibration:"1",Description:"Gyro3 sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYR3OFFS_Z:{Calibration:"1",Description:"Gyro3 sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYR3_CALTEMP:{Calibration:"1",Description:"Temperature that the 3rd gyroscope was calibrated at",DisplayName:"Calibration temperature for 3rd gyroscope",Units:"degC",User:"Advanced"},INS_GYR3_ID:{Description:"Gyro3 sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro3 ID",ReadOnly:"True",User:"Advanced"},INS_GYROFFS_X:{Calibration:"1",Description:"Gyro sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYROFFS_Y:{Calibration:"1",Description:"Gyro sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYROFFS_Z:{Calibration:"1",Description:"Gyro sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYRO_FILTER:{Description:"Filter cutoff frequency for gyroscopes. This can be set to a lower value to try to cope with very high vibration levels in aircraft. A value of zero means no filtering (not recommended!)",DisplayName:"Gyro filter cutoff frequency",Range:{high:"256",low:"0"},Units:"Hz",User:"Advanced"},INS_GYRO_RATE:{Description:"Gyro rate for IMUs with fast sampling enabled. The gyro rate is the sample rate at which the IMU filters operate and needs to be at least double the maximum filter frequency. If the sensor does not support the selected rate the next highest supported rate will be used. For IMUs which do not support fast sampling this setting is ignored and the default gyro rate of 1Khz is used.",DisplayName:"Gyro rate for IMUs with Fast Sampling enabled",RebootRequired:"True",User:"Advanced",Values:{0:"1kHz",1:"2kHz",2:"4kHz",3:"8kHz"}},INS_GYR_CAL:{Description:"Conrols when automatic gyro calibration is performed",DisplayName:"Gyro Calibration scheme",User:"Advanced",Values:{0:"Never",1:"Start-up only"}},INS_GYR_ID:{Description:"Gyro sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro ID",ReadOnly:"True",User:"Advanced"},INS_POS1_X:{Description:"X position of the first IMU Accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS1_Y:{Description:"Y position of the first IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS1_Z:{Description:"Z position of the first IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_X:{Description:"X position of the second IMU accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_Y:{Description:"Y position of the second IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_Z:{Description:"Z position of the second IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS3_X:{Description:"X position of the third IMU accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Range:{high:"10",low:"-10"},Units:"m",User:"Advanced"},INS_POS3_Y:{Description:"Y position of the third IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS3_Z:{Description:"Z position of the third IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_STILL_THRESH:{Description:"Threshold to tolerate vibration to determine if vehicle is motionless. This depends on the frame type and if there is a constant vibration due to motors before launch or after landing. Total motionless is about 0.05. Suggested values: Planes/rover use 0.1, multirotors use 1, tradHeli uses 5",DisplayName:"Stillness threshold for detecting if we are moving",Range:{high:"50",low:"0.05"},User:"Advanced"},INS_TCAL_OPTIONS:{Bitmask:{0:"PersistParams"},Description:"This enables optional temperature calibration features. Setting PersistParams will save the accelerometer and temperature calibration parameters in the bootloader sector on the next update of the bootloader.",DisplayName:"Options for temperature calibration",User:"Advanced"},INS_TRIM_OPTION:{Description:"Specifies how the accel cal routine determines the trims",DisplayName:"Accel cal trim option",User:"Advanced",Values:{0:"Don't adjust the trims",1:"Assume first orientation was level",2:"Assume ACC_BODYFIX is perfectly aligned to the vehicle"}},INS_USE:{Description:"Use first IMU for attitude, velocity and position estimates",DisplayName:"Use first IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_USE2:{Description:"Use second IMU for attitude, velocity and position estimates",DisplayName:"Use second IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_USE3:{Description:"Use third IMU for attitude, velocity and position estimates",DisplayName:"Use third IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}}},_X={INS_HNTC2_ATT:{Description:"Harmonic Notch Filter attenuation in dB. Values greater than 40dB will typically produce a hard notch rather than a modest attenuation of motor noise.",DisplayName:"Harmonic Notch Filter attenuation",Range:{high:"50",low:"5"},Units:"dB",User:"Advanced"},INS_HNTC2_BW:{Description:"Harmonic Notch Filter bandwidth in Hz. This is typically set to half the base frequency. The ratio of base frequency to bandwidth determines the notch quality factor and is fixed across harmonics.",DisplayName:"Harmonic Notch Filter bandwidth",Range:{high:"250",low:"5"},Units:"Hz",User:"Advanced"},INS_HNTC2_ENABLE:{Description:"Harmonic Notch Filter enable",DisplayName:"Harmonic Notch Filter enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_HNTC2_FM_RAT:{Description:"The minimum ratio below the configured frequency to take throttle based notch filters when flying at a throttle level below the reference throttle. Note that lower frequency notch filters will have more phase lag. If you want throttle based notch filtering to be effective at a throttle up to 30% below the configured notch frequency then set this parameter to 0.7. The default of 1.0 means the notch will not go below the frequency in the FREQ parameter.",DisplayName:"Throttle notch min freqency ratio",Range:{high:"1.0",low:"0.1"},User:"Advanced"},INS_HNTC2_FREQ:{Description:"Harmonic Notch Filter base center frequency in Hz. This should be set at most half the backend gyro rate (which is typically 1Khz). For helicopters using RPM sensor to dynamically set the notch frequency, use this parameter to provide a lower limit to the dynamic notch filter. Recommend setting it to half the operating rotor speed in Hz.",DisplayName:"Harmonic Notch Filter base frequency",Range:{high:"495",low:"10"},Units:"Hz",User:"Advanced"},INS_HNTC2_HMNCS:{Bitmask:{0:"1st harmonic",1:"2nd harmonic",2:"3rd harmonic",3:"4th hamronic",4:"5th harmonic",5:"6th harmonic",6:"7th harmonic",7:"8th harmonic"},Description:"Bitmask of harmonic frequencies to apply Harmonic Notch Filter to. This option takes effect on the next reboot. A value of 0 disables this filter. The first harmonic refers to the base frequency.",DisplayName:"Harmonic Notch Filter harmonics",RebootRequired:"True",User:"Advanced"},INS_HNTC2_MODE:{Description:"Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based updates should only be used with multicopters.",DisplayName:"Harmonic Notch Filter dynamic frequency tracking mode",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Disabled",1:"Throttle",2:"RPM Sensor",3:"ESC Telemetry",4:"Dynamic FFT",5:"Second RPM Sensor"}},INS_HNTC2_OPTS:{Bitmask:{0:"Double notch",1:"Dynamic harmonic",2:"Update at loop rate",3:"EnableOnAllIMUs",4:"Triple notch"},Description:"Harmonic Notch Filter options. Triple and double-notches can provide deeper attenuation across a wider bandwidth with reduced latency than single notches and are suitable for larger aircraft. Dynamic harmonics attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz. If both double and triple notches are specified only double notches will take effect.",DisplayName:"Harmonic Notch Filter options",RebootRequired:"True",User:"Advanced"},INS_HNTC2_REF:{Description:"A reference value of zero disables dynamic updates on the Harmonic Notch Filter and a positive value enables dynamic updates on the Harmonic Notch Filter. For throttle-based scaling, this parameter is the reference value associated with the specified frequency to facilitate frequency scaling of the Harmonic Notch Filter. For RPM and ESC telemetry based tracking, this parameter is set to 1 to enable the Harmonic Notch Filter using the RPM sensor or ESC telemetry set to measure rotor speed. The sensor data is converted to Hz automatically for use in the Harmonic Notch Filter. This reference value may also be used to scale the sensor data, if required. For example, rpm sensor data is required to measure heli motor RPM. Therefore the reference value can be used to scale the RPM sensor to the rotor RPM.",DisplayName:"Harmonic Notch Filter reference value",Range:{high:"1.0",low:"0.0"},RebootRequired:"True",User:"Advanced"}},SX={INS_HNTCH_ATT:{Description:"Harmonic Notch Filter attenuation in dB. Values greater than 40dB will typically produce a hard notch rather than a modest attenuation of motor noise.",DisplayName:"Harmonic Notch Filter attenuation",Range:{high:"50",low:"5"},Units:"dB",User:"Advanced"},INS_HNTCH_BW:{Description:"Harmonic Notch Filter bandwidth in Hz. This is typically set to half the base frequency. The ratio of base frequency to bandwidth determines the notch quality factor and is fixed across harmonics.",DisplayName:"Harmonic Notch Filter bandwidth",Range:{high:"250",low:"5"},Units:"Hz",User:"Advanced"},INS_HNTCH_ENABLE:{Description:"Harmonic Notch Filter enable",DisplayName:"Harmonic Notch Filter enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_HNTCH_FM_RAT:{Description:"The minimum ratio below the configured frequency to take throttle based notch filters when flying at a throttle level below the reference throttle. Note that lower frequency notch filters will have more phase lag. If you want throttle based notch filtering to be effective at a throttle up to 30% below the configured notch frequency then set this parameter to 0.7. The default of 1.0 means the notch will not go below the frequency in the FREQ parameter.",DisplayName:"Throttle notch min freqency ratio",Range:{high:"1.0",low:"0.1"},User:"Advanced"},INS_HNTCH_FREQ:{Description:"Harmonic Notch Filter base center frequency in Hz. This should be set at most half the backend gyro rate (which is typically 1Khz). For helicopters using RPM sensor to dynamically set the notch frequency, use this parameter to provide a lower limit to the dynamic notch filter. Recommend setting it to half the operating rotor speed in Hz.",DisplayName:"Harmonic Notch Filter base frequency",Range:{high:"495",low:"10"},Units:"Hz",User:"Advanced"},INS_HNTCH_HMNCS:{Bitmask:{0:"1st harmonic",1:"2nd harmonic",2:"3rd harmonic",3:"4th hamronic",4:"5th harmonic",5:"6th harmonic",6:"7th harmonic",7:"8th harmonic"},Description:"Bitmask of harmonic frequencies to apply Harmonic Notch Filter to. This option takes effect on the next reboot. A value of 0 disables this filter. The first harmonic refers to the base frequency.",DisplayName:"Harmonic Notch Filter harmonics",RebootRequired:"True",User:"Advanced"},INS_HNTCH_MODE:{Description:"Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based updates should only be used with multicopters.",DisplayName:"Harmonic Notch Filter dynamic frequency tracking mode",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Disabled",1:"Throttle",2:"RPM Sensor",3:"ESC Telemetry",4:"Dynamic FFT",5:"Second RPM Sensor"}},INS_HNTCH_OPTS:{Bitmask:{0:"Double notch",1:"Dynamic harmonic",2:"Update at loop rate",3:"EnableOnAllIMUs",4:"Triple notch"},Description:"Harmonic Notch Filter options. Triple and double-notches can provide deeper attenuation across a wider bandwidth with reduced latency than single notches and are suitable for larger aircraft. Dynamic harmonics attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz. If both double and triple notches are specified only double notches will take effect.",DisplayName:"Harmonic Notch Filter options",RebootRequired:"True",User:"Advanced"},INS_HNTCH_REF:{Description:"A reference value of zero disables dynamic updates on the Harmonic Notch Filter and a positive value enables dynamic updates on the Harmonic Notch Filter. For throttle-based scaling, this parameter is the reference value associated with the specified frequency to facilitate frequency scaling of the Harmonic Notch Filter. For RPM and ESC telemetry based tracking, this parameter is set to 1 to enable the Harmonic Notch Filter using the RPM sensor or ESC telemetry set to measure rotor speed. The sensor data is converted to Hz automatically for use in the Harmonic Notch Filter. This reference value may also be used to scale the sensor data, if required. For example, rpm sensor data is required to measure heli motor RPM. Therefore the reference value can be used to scale the RPM sensor to the rotor RPM.",DisplayName:"Harmonic Notch Filter reference value",Range:{high:"1.0",low:"0.0"},RebootRequired:"True",User:"Advanced"}},DX={INS_LOG_BAT_CNT:{Description:"Number of samples to take when logging streams of IMU sensor readings. Will be rounded down to a multiple of 32. This option takes effect on the next reboot.",DisplayName:"sample count per batch",Increment:"32",RebootRequired:"True",User:"Advanced"},INS_LOG_BAT_LGCT:{Description:"Number of samples to push to count every INS_LOG_BAT_LGIN",DisplayName:"logging count",Increment:"1"},INS_LOG_BAT_LGIN:{Description:"Interval between pushing samples to the AP_Logger log",DisplayName:"logging interval",Increment:"10",Units:"ms"},INS_LOG_BAT_MASK:{Bitmask:{0:"IMU1",1:"IMU2",2:"IMU3"},Description:"Bitmap of which IMUs to log batch data for. This option takes effect on the next reboot.",DisplayName:"Sensor Bitmask",RebootRequired:"True",User:"Advanced"},INS_LOG_BAT_OPT:{Bitmask:{0:"Sensor-Rate Logging (sample at full sensor rate seen by AP)",1:"Sample post-filtering",2:"Sample pre- and post-filter"},Description:"Options for the BatchSampler.",DisplayName:"Batch Logging Options Mask",User:"Advanced"}},yX={INS_TCAL1_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL1_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL1_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},RX={INS_TCAL2_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL2_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL2_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},bX={INS_TCAL3_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL3_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL3_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},NX={LAND_ABORT_DEG:{Description:"This parameter is used when using a rangefinder during landing for altitude correction from baro drift (RNGFND_LANDING=1) and the altitude correction indicates your actual altitude is higher than the intended slope path. Normally it would pitch down steeply but that can result in a crash with high airspeed so this allows remembering the baro offset and self-abort the landing and come around for another landing with the correct baro offset applied for a perfect slope. An auto-abort go-around will only happen once, next attempt will not auto-abort again. This operation happens entirely automatically in AUTO mode. This value is the delta degrees threshold to trigger the go-around compared to the original slope. Example: if set to 5 deg and the mission planned slope is 15 deg then if the new slope is 21 then it will go-around. Set to 0 to disable. Requires LAND_SLOPE_RCALC > 0.",DisplayName:"Landing auto-abort slope threshold",Increment:"0.1",Range:{high:"90",low:"0"},Units:"deg",User:"Advanced"},LAND_ABORT_THR:{Description:"Allow a landing abort to trigger with an input throttle >= 90%. This works with or without stick-mixing enabled.",DisplayName:"Landing abort using throttle",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},LAND_DISARMDELAY:{Description:"After a landing has completed using a LAND waypoint, automatically disarm after this many seconds have passed. Use 0 to not disarm.",DisplayName:"Landing disarm delay",Increment:"1",Range:{high:"127",low:"0"},Units:"s",User:"Advanced"},LAND_FLAP_PERCNT:{Description:"The amount of flaps (as a percentage) to apply in the landing approach and flare of an automatic landing",DisplayName:"Landing flap percentage",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Advanced"},LAND_FLARE_ALT:{Description:"Altitude in autoland at which to lock heading and flare to the LAND_PITCH_CD pitch. Note that this option is secondary to LAND_FLARE_SEC. For a good landing it preferable that the flare is triggered by LAND_FLARE_SEC.",DisplayName:"Landing flare altitude",Increment:"0.1",Range:{high:"30",low:"0"},Units:"m",User:"Advanced"},LAND_FLARE_SEC:{Description:"Vertical time before landing point at which to lock heading and flare with the motor stopped. This is vertical time, and is calculated based solely on the current height above the ground and the current descent rate. Set to 0 if you only wish to flare based on altitude (see LAND_FLARE_ALT).",DisplayName:"Landing flare time",Increment:"0.1",Range:{high:"10",low:"0"},Units:"s",User:"Advanced"},LAND_OPTIONS:{Bitmask:{0:"honor min throttle during landing flare"},Description:"Bitmask of options to use with landing.",DisplayName:"Landing options bitmask",User:"Advanced"},LAND_PF_ALT:{Description:"Altitude to trigger pre-flare flight stage where LAND_PF_ARSPD controls airspeed. The pre-flare flight stage trigger works just like LAND_FLARE_ALT but higher. Disabled when LAND_PF_ARSPD is 0.",DisplayName:"Landing pre-flare altitude",Increment:"0.1",Range:{high:"30",low:"0"},Units:"m",User:"Advanced"},LAND_PF_ARSPD:{Description:"Desired airspeed during pre-flare flight stage. This is useful to reduce airspeed just before the flare. Use 0 to disable.",DisplayName:"Landing pre-flare airspeed",Increment:"0.1",Range:{high:"30",low:"0"},Units:"m/s",User:"Advanced"},LAND_PF_SEC:{Description:"Vertical time to ground to trigger pre-flare flight stage where LAND_PF_ARSPD controls airspeed. This pre-flare flight stage trigger works just like LAND_FLARE_SEC but earlier. Disabled when LAND_PF_ARSPD is 0.",DisplayName:"Landing pre-flare time",Increment:"0.1",Range:{high:"10",low:"0"},Units:"s",User:"Advanced"},LAND_PITCH_CD:{Description:"Used in autoland to give the minimum pitch in the final stage of landing (after the flare). This parameter can be used to ensure that the final landing attitude is appropriate for the type of undercarriage on the aircraft. Note that it is a minimum pitch only - the landing code will control pitch above this value to try to achieve the configured landing sink rate.",DisplayName:"Landing Pitch",Increment:"10",Range:{high:"2000",low:"-2000"},Units:"cdeg",User:"Advanced"},LAND_SLOPE_RCALC:{Description:"This parameter is used when using a rangefinder during landing for altitude correction from baro drift (RNGFND_LANDING=1) and the altitude correction indicates your altitude is lower than the intended slope path. This value is the threshold of the correction to re-calculate the landing approach slope. Set to zero to keep the original slope all the way down and any detected baro drift will be corrected by pitching/throttling up to snap back to resume the original slope path. Otherwise, when a rangefinder altitude correction exceeds this threshold it will trigger a slope re-calculate to give a shallower slope. This also smoothes out the approach when flying over objects such as trees. Recommend a value of 2m.",DisplayName:"Landing slope re-calc threshold",Increment:"0.5",Range:{high:"5",low:"0"},Units:"m",User:"Advanced"},LAND_THEN_NEUTRL:{Description:"When enabled, after an autoland and auto-disarm via LAND_DISARMDELAY happens then set all servos to neutral. This is helpful when an aircraft has a rough landing upside down or a crazy angle causing the servos to strain.",DisplayName:"Set servos to neutral after landing",User:"Advanced",Values:{0:"Disabled",1:"Servos to Neutral",2:"Servos to Zero PWM"}},LAND_THR_SLEW:{Description:"This parameter sets the slew rate for the throttle during auto landing. When this is zero the THR_SLEWRATE parameter is used during landing. The value is a percentage throttle change per second, so a value of 20 means to advance the throttle over 5 seconds on landing. Values below 50 are not recommended as it may cause a stall when airspeed is low and you can not throttle up fast enough.",DisplayName:"Landing throttle slew rate",Increment:"1",Range:{high:"127",low:"0"},Units:"%",User:"Standard"},LAND_TYPE:{Description:"Specifies the auto-landing type to use",DisplayName:"Auto-landing type",User:"Standard",Values:{0:"Standard Glide Slope",1:"Deepstall"}}},wX={LAND_DS_ABORTALT:{Description:"The minimum altitude which the aircraft must be above to abort a deepstall landing",DisplayName:"Deepstall minimum abort altitude",Range:{high:"50",low:"0"},Units:"m",User:"Advanced"},LAND_DS_AIL_SCL:{Description:"A scalar to reduce or increase the aileron control",DisplayName:"Aileron landing gain scalaing",Range:{high:"2.0",low:"0"},User:"Advanced"},LAND_DS_APP_EXT:{Description:"The horizontal distance from which the aircraft will approach before the stall",DisplayName:"Deepstall approach extension",Range:{high:"200",low:"10"},Units:"m",User:"Advanced"},LAND_DS_ARSP_MAX:{Description:"The maximum aispeed where the deepstall steering controller is allowed to have control",DisplayName:"Deepstall enabled airspeed",Range:{high:"20",low:"5"},Units:"m/s",User:"Advanced"},LAND_DS_ARSP_MIN:{Description:"Deepstall lowest airspeed where the deepstall controller isn't allowed full control",DisplayName:"Deepstall minimum derating airspeed",Range:{high:"20",low:"5"},Units:"m/s",User:"Advanced"},LAND_DS_D:{Description:"D gain",DisplayName:"D gain",User:"Standard"},LAND_DS_ELEV_PWM:{Description:"The PWM value in microseconds for the elevator at full deflection in deepstall",DisplayName:"Deepstall elevator PWM",Range:{high:"2100",low:"900"},Units:"PWM",User:"Advanced"},LAND_DS_I:{Description:"I gain",DisplayName:"I gain",User:"Standard"},LAND_DS_IMAX:{Description:"Maximum integrator value",DisplayName:"IMax",User:"Standard"},LAND_DS_L1:{Description:"Deepstall L1 navigational controller period",DisplayName:"Deepstall L1 period",Range:{high:"50",low:"5"},Units:"s",User:"Advanced"},LAND_DS_L1_I:{Description:"Deepstall L1 integratior gain",DisplayName:"Deepstall L1 I gain",Range:{high:"1",low:"0"},User:"Advanced"},LAND_DS_L1_TCON:{Description:"Time constant for deepstall L1 control",DisplayName:"Deepstall L1 time constant",Range:{high:"1",low:"0"},Units:"s",User:"Advanced"},LAND_DS_P:{Description:"P gain",DisplayName:"P gain",User:"Standard"},LAND_DS_SLEW_SPD:{Description:"The speed at which the elevator slews to deepstall",DisplayName:"Deepstall slew speed",Range:{high:"2",low:"0"},Units:"s",User:"Advanced"},LAND_DS_SLOPE_A:{Description:"The a component of distance = a*wind + b",DisplayName:"Deepstall slope a",User:"Advanced"},LAND_DS_SLOPE_B:{Description:"The a component of distance = a*wind + b",DisplayName:"Deepstall slope b",User:"Advanced"},LAND_DS_V_DWN:{Description:"The downward velocity of the aircraft while stalled",DisplayName:"Deepstall velocity down",Range:{high:"20",low:"0"},Units:"m/s",User:"Advanced"},LAND_DS_V_FWD:{Description:"The forward velocity of the aircraft while stalled",DisplayName:"Deepstall forward velocity",Range:{high:"20",low:"0"},Units:"m/s",User:"Advanced"},LAND_DS_YAW_LIM:{Description:"The yaw rate limit while navigating in deepstall",DisplayName:"Deepstall yaw rate limit",Range:{high:"90",low:"0"},Units:"deg/s",User:"Advanced"}},TX={LGR_DEPLOY_ALT:{Description:"Altitude where the landing gear will be deployed. This should be lower than the RETRACT_ALT. If zero then altitude is not used for deploying landing gear. Only applies when vehicle is armed.",DisplayName:"Landing gear deployment altitude",Increment:"1",Range:{high:"1000",low:"0"},Units:"m",User:"Standard"},LGR_DEPLOY_PIN:{Description:`Pin number to use for detection of gear deployment. If set to -1 feedback is disabled. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Chassis deployment feedback pin",RebootRequired:"True",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},LGR_DEPLOY_POL:{Description:"Polarity for feedback pin. If this is 1 then the pin should be high when gear are deployed. If set to 0 then then deployed gear level is low.",DisplayName:"Chassis deployment feedback pin polarity",User:"Standard",Values:{0:"Low",1:"High"}},LGR_ENABLE:{Description:"Enable landing gear control",DisplayName:"Enable landing gear",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},LGR_OPTIONS:{Bitmask:{0:"Retract after Takeoff",1:"Deploy during Land"},Description:"Options to retract or deploy landing gear in Auto or Guided mode",DisplayName:"Landing gear auto retract/deploy options",User:"Standard"},LGR_RETRACT_ALT:{Description:"Altitude where the landing gear will be retracted. This should be higher than the DEPLOY_ALT. If zero then altitude is not used for retracting landing gear. Only applies when vehicle is armed.",DisplayName:"Landing gear retract altitude",Increment:"1",Range:{high:"1000",low:"0"},Units:"m",User:"Standard"},LGR_STARTUP:{Description:"Landing Gear Startup behaviour control",DisplayName:"Landing Gear Startup position",User:"Standard",Values:{0:"WaitForPilotInput",1:"Retract",2:"Deploy"}},LGR_WOW_PIN:{Description:`Pin number to use for feedback of weight on wheels condition. If set to -1 feedback is disabled. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Weight on wheels feedback pin",RebootRequired:"True",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},LGR_WOW_POL:{Description:"Polarity for feedback pin. If this is 1 then the pin should be high when there is weight on wheels. If set to 0 then then weight on wheels level is low.",DisplayName:"Weight on wheels feedback pin polarity",User:"Standard",Values:{0:"Low",1:"High"}}},EX={LOG_BACKEND_TYPE:{Bitmask:{0:"File",1:"MAVLink",2:"Block"},Description:"Bitmap of what Logger backend types to enable. Block-based logging is available on SITL and boards with dataflash chips. Multiple backends can be selected.",DisplayName:"AP_Logger Backend Storage type",User:"Standard"},LOG_BLK_RATEMAX:{Description:"This sets the maximum rate that streaming log messages will be logged to the mavlink backend. A value of zero means that rate limiting is disabled.",DisplayName:"Maximum logging rate for block backend",Increment:"0.1",Range:{high:"1000",low:"0"},Units:"Hz",User:"Standard"},LOG_DISARMED:{Description:"If LOG_DISARMED is set to 1 then logging will be enabled while disarmed. This can make for very large logfiles but can help a lot when tracking down startup issues",DisplayName:"Enable logging while disarmed",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},LOG_FILE_BUFSIZE:{Description:'The File and Block backends use a buffer to store data before writing to the block device. Raising this value may reduce "gaps" in your SD card logging. This buffer size may be reduced depending on available memory. PixHawk requires at least 4 kilobytes. Maximum value available here is 64 kilobytes.',DisplayName:"Maximum AP_Logger File and Block Backend buffer size (in kilobytes)",User:"Standard"},LOG_FILE_DSRMROT:{Description:"When set, the current log file is closed when the vehicle is disarmed. If LOG_DISARMED is set then a fresh log will be opened. Applies to the File and Block logging backends.",DisplayName:"Stop logging to current file on disarm",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},LOG_FILE_MB_FREE:{Description:"Set this such that the free space is larger than your largest typical flight log",DisplayName:"Old logs on the SD card will be deleted to maintain this amount of free space",Range:{high:"1000",low:"10"},Units:"MB",User:"Standard"},LOG_FILE_RATEMAX:{Description:"This sets the maximum rate that streaming log messages will be logged to the file backend. A value of zero means that rate limiting is disabled.",DisplayName:"Maximum logging rate for file backend",Increment:"0.1",Range:{high:"1000",low:"0"},Units:"Hz",User:"Standard"},LOG_FILE_TIMEOUT:{Description:"This controls the amount of time before failing writes to a log file cause the file to be closed and logging stopped.",DisplayName:"Timeout before giving up on file writes",Units:"s",User:"Standard"},LOG_MAV_BUFSIZE:{Description:"Maximum amount of memory to allocate to AP_Logger-over-mavlink",DisplayName:"Maximum AP_Logger MAVLink Backend buffer size",Units:"kB",User:"Advanced"},LOG_MAV_RATEMAX:{Description:"This sets the maximum rate that streaming log messages will be logged to the mavlink backend. A value of zero means that rate limiting is disabled.",DisplayName:"Maximum logging rate for mavlink backend",Increment:"0.1",Range:{high:"1000",low:"0"},Units:"Hz",User:"Standard"},LOG_REPLAY:{Description:"If LOG_REPLAY is set to 1 then the EKF2 state estimator will log detailed information needed for diagnosing problems with the Kalman filter. It is suggested that you also raise LOG_FILE_BUFSIZE to give more buffer space for logging and use a high quality microSD card to ensure no sensor data is lost",DisplayName:"Enable logging of information needed for Replay",User:"Standard",Values:{0:"Disabled",1:"Enabled"}}},PX={MIS_OPTIONS:{Bitmask:{0:"Clear Mission on reboot",1:"Use distance to land calc on battery failsafe",2:"ContinueAfterLand"},Description:"Bitmask of what options to use in missions.",DisplayName:"Mission options bitmask",User:"Advanced"},MIS_RESTART:{Description:"Controls mission starting point when entering Auto mode (either restart from beginning of mission or resume from last command run)",DisplayName:"Mission Restart when entering Auto mode",User:"Advanced",Values:{0:"Resume Mission",1:"Restart Mission"}},MIS_TOTAL:{Description:"The number of mission mission items that has been loaded by the ground station. Do not change this manually.",DisplayName:"Total mission commands",Increment:"1",Range:{high:"32766",low:"0"},ReadOnly:"True",User:"Advanced"}},IX={MNT1_DEFLT_MODE:{Description:"Mount default operating mode on startup and after control is returned from autopilot",DisplayName:"Mount default operating mode",User:"Standard",Values:{0:"Retracted",1:"Neutral",2:"MavLink Targeting",3:"RC Targeting",4:"GPS Point",6:"Home Location"}},MNT1_LEAD_PTCH:{Description:"Servo mount pitch angle output leads the vehicle angle by this amount of time based on current pitch rate. Increase until the servo is responsive but does not overshoot",DisplayName:"Mount Pitch stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT1_LEAD_RLL:{Description:"Servo mount roll angle output leads the vehicle angle by this amount of time based on current roll rate. Increase until the servo is responsive but does not overshoot",DisplayName:"Mount Roll stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT1_NEUTRAL_X:{Description:"Mount roll angle when in neutral position",DisplayName:"Mount roll angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_NEUTRAL_Y:{Description:"Mount pitch angle when in neutral position",DisplayName:"Mount pitch angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_NEUTRAL_Z:{Description:"Mount yaw angle when in neutral position",DisplayName:"Mount yaw angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_PITCH_MAX:{Description:"Mount Pitch angle maximum",DisplayName:"Mount Pitch angle maximum",Increment:"1",Range:{high:"90",low:"-90"},Units:"deg",User:"Standard"},MNT1_PITCH_MIN:{Description:"Mount Pitch angle minimum",DisplayName:"Mount Pitch angle minimum",Increment:"1",Range:{high:"90",low:"-90"},Units:"deg",User:"Standard"},MNT1_RC_RATE:{Description:"Pilot rate control's maximum rate. Set to zero to use angle control",DisplayName:"Mount RC Rate",Increment:"1",Range:{high:"90",low:"0"},Units:"deg/s",User:"Standard"},MNT1_RETRACT_X:{Description:"Mount roll angle when in retracted position",DisplayName:"Mount roll angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_RETRACT_Y:{Description:"Mount pitch angle when in retracted position",DisplayName:"Mount pitch angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_RETRACT_Z:{Description:"Mount yaw angle when in retracted position",DisplayName:"Mount yaw angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT1_ROLL_MAX:{Description:"Mount Roll angle maximum",DisplayName:"Mount Roll angle maximum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT1_ROLL_MIN:{Description:"Mount Roll angle minimum",DisplayName:"Mount Roll angle minimum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT1_TYPE:{Description:"Mount Type",DisplayName:"Mount Type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"Servo",2:"3DR Solo",3:"Alexmos Serial",4:"SToRM32 MAVLink",5:"SToRM32 Serial",6:"Gremsy",7:"BrushlessPWM"}},MNT1_YAW_MAX:{Description:"Mount Yaw angle maximum",DisplayName:"Mount Yaw angle maximum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT1_YAW_MIN:{Description:"Mount Yaw angle minimum",DisplayName:"Mount Yaw angle minimum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"}},OX={MNT2_DEFLT_MODE:{Description:"Mount default operating mode on startup and after control is returned from autopilot",DisplayName:"Mount default operating mode",User:"Standard",Values:{0:"Retracted",1:"Neutral",2:"MavLink Targeting",3:"RC Targeting",4:"GPS Point",6:"Home Location"}},MNT2_LEAD_PTCH:{Description:"Servo mount pitch angle output leads the vehicle angle by this amount of time based on current pitch rate. Increase until the servo is responsive but does not overshoot",DisplayName:"Mount Pitch stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT2_LEAD_RLL:{Description:"Servo mount roll angle output leads the vehicle angle by this amount of time based on current roll rate. Increase until the servo is responsive but does not overshoot",DisplayName:"Mount Roll stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT2_NEUTRAL_X:{Description:"Mount roll angle when in neutral position",DisplayName:"Mount roll angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_NEUTRAL_Y:{Description:"Mount pitch angle when in neutral position",DisplayName:"Mount pitch angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_NEUTRAL_Z:{Description:"Mount yaw angle when in neutral position",DisplayName:"Mount yaw angle when in neutral position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_PITCH_MAX:{Description:"Mount Pitch angle maximum",DisplayName:"Mount Pitch angle maximum",Increment:"1",Range:{high:"90",low:"-90"},Units:"deg",User:"Standard"},MNT2_PITCH_MIN:{Description:"Mount Pitch angle minimum",DisplayName:"Mount Pitch angle minimum",Increment:"1",Range:{high:"90",low:"-90"},Units:"deg",User:"Standard"},MNT2_RC_RATE:{Description:"Pilot rate control's maximum rate. Set to zero to use angle control",DisplayName:"Mount RC Rate",Increment:"1",Range:{high:"90",low:"0"},Units:"deg/s",User:"Standard"},MNT2_RETRACT_X:{Description:"Mount roll angle when in retracted position",DisplayName:"Mount roll angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_RETRACT_Y:{Description:"Mount pitch angle when in retracted position",DisplayName:"Mount pitch angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_RETRACT_Z:{Description:"Mount yaw angle when in retracted position",DisplayName:"Mount yaw angle when in retracted position",Increment:"1",Range:{high:"180.0",low:"-180.0"},Units:"deg",User:"Standard"},MNT2_ROLL_MAX:{Description:"Mount Roll angle maximum",DisplayName:"Mount Roll angle maximum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT2_ROLL_MIN:{Description:"Mount Roll angle minimum",DisplayName:"Mount Roll angle minimum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT2_TYPE:{Description:"Mount Type",DisplayName:"Mount Type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"Servo",2:"3DR Solo",3:"Alexmos Serial",4:"SToRM32 MAVLink",5:"SToRM32 Serial",6:"Gremsy",7:"BrushlessPWM"}},MNT2_YAW_MAX:{Description:"Mount Yaw angle maximum",DisplayName:"Mount Yaw angle maximum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"},MNT2_YAW_MIN:{Description:"Mount Yaw angle minimum",DisplayName:"Mount Yaw angle minimum",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"}},UX={MSP_OPTIONS:{Bitmask:{0:"EnableTelemetryMode",1:"DisableDJIWorkarounds",2:"EnableBTFLFonts"},Description:"A bitmask to set some MSP specific options",DisplayName:"MSP OSD Options",User:"Standard"},MSP_OSD_NCELLS:{Description:"Used for average cell voltage calculation",DisplayName:"Cell count override",User:"Standard",Values:{0:"Auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14"}}},xX={NAVL1_DAMPING:{Description:"Damping ratio for L1 control. Increase this in increments of 0.05 if you are getting overshoot in path tracking. You should not need a value below 0.7 or above 0.85.",DisplayName:"L1 control damping ratio",Increment:"0.05",Range:{high:"1.0",low:"0.6"},User:"Advanced"},NAVL1_LIM_BANK:{Description:"The sealevel bank angle limit for a continous loiter. (Used to calculate airframe loading limits at higher altitudes). Setting to 0, will instead just scale the loiter radius directly",DisplayName:"Loiter Radius Bank Angle Limit",Range:{high:"89",low:"0"},Units:"deg",User:"Advanced"},NAVL1_PERIOD:{Description:"Period in seconds of L1 tracking loop. This parameter is the primary control for agressiveness of turns in auto mode. This needs to be larger for less responsive airframes. The default of 20 is quite conservative, but for most RC aircraft will lead to reasonable flight. For smaller more agile aircraft a value closer to 15 is appropriate, or even as low as 10 for some very agile aircraft. When tuning, change this value in small increments, as a value that is much too small (say 5 or 10 below the right value) can lead to very radical turns, and a risk of stalling.",DisplayName:"L1 control period",Increment:"1",Range:{high:"60",low:"1"},Units:"s",User:"Standard"},NAVL1_XTRACK_I:{Description:"Crosstrack error integrator gain. This gain is applied to the crosstrack error to ensure it converges to zero. Set to zero to disable. Smaller values converge slower, higher values will cause crosstrack error oscillation.",DisplayName:"L1 control crosstrack integrator gain",Increment:"0.01",Range:{high:"0.1",low:"0"},User:"Advanced"}},FX={NTF_BUZZ_ON_LVL:{Description:"Specifies pin level that indicates buzzer should play",DisplayName:"Buzzer-on pin logic level",User:"Advanced",Values:{0:"LowIsOn",1:"HighIsOn"}},NTF_BUZZ_PIN:{Description:`Enables to connect active buzzer to arbitrary pin. Requires 3-pin buzzer or additional MOSFET! Some the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Buzzer pin",User:"Advanced",Values:{0:"Disabled"}},NTF_BUZZ_TYPES:{Bitmask:{0:"Built-in buzzer",1:"DShot",2:"DroneCAN"},Description:"Controls what types of Buzzer will be enabled",DisplayName:"Buzzer Driver Types",User:"Advanced"},NTF_BUZZ_VOLUME:{Description:"Control the volume of the buzzer",DisplayName:"Buzzer volume",Range:{high:"100",low:"0"},Units:"%"},NTF_DISPLAY_TYPE:{Description:"This sets up the type of on-board I2C display. Disabled by default.",DisplayName:"Type of on-board I2C display",User:"Advanced",Values:{0:"Disable",1:"ssd1306",2:"sh1106",10:"SITL"}},NTF_LED_BRIGHT:{Description:"Select the RGB LED brightness level. When USB is connected brightness will never be higher than low regardless of the setting.",DisplayName:"LED Brightness",User:"Advanced",Values:{0:"Off",1:"Low",2:"Medium",3:"High"}},NTF_LED_LEN:{Description:"The number of Serial LED's to use for notifications (NeoPixel's and ProfiLED)",DisplayName:"Serial LED String Length",Range:{high:"32",low:"1"},RebootRequired:"True",User:"Advanced"},NTF_LED_OVERRIDE:{Description:'Specifies the source for the colours and brightness for the LED. OutbackChallenge conforms to the MedicalExpress (https://uavchallenge.org/medical-express/) rules, essentially "Green" is disarmed (safe-to-approach), "Red" is armed (not safe-to-approach). Traffic light is a simplified color set, red when armed, yellow when the safety switch is not surpressing outputs (but disarmed), and green when outputs are surpressed and disarmed, the LED will blink faster if disarmed and failing arming checks.',DisplayName:"Specifies colour source for the RGBLed",User:"Advanced",Values:{0:"Standard",1:"MAVLink/Scripting/AP_Periph",2:"OutbackChallenge",3:"TrafficLight"}},NTF_LED_TYPES:{Bitmask:{0:"Built-in LED",1:"Internal ToshibaLED",2:"External ToshibaLED",3:"External PCA9685",4:"Oreo LED",5:"DroneCAN",6:"NCP5623 External",7:"NCP5623 Internal",8:"NeoPixel",9:"ProfiLED",10:"Scripting",11:"DShot",12:"ProfiLED_SPI"},Description:"Controls what types of LEDs will be enabled",DisplayName:"LED Driver Types",User:"Advanced"},NTF_OREO_THEME:{Description:"Enable/Disable Solo Oreo LED driver, 0 to disable, 1 for Aircraft theme, 2 for Rover theme",DisplayName:"OreoLED Theme",User:"Advanced",Values:{0:"Disabled",1:"Aircraft",2:"Rover"}}},kX={OSD_ARM_SCR:{Description:"Screen to be shown on Arm event. Zero to disable the feature.",DisplayName:"Arm screen",Range:{high:"4",low:"0"},User:"Standard"},OSD_BTN_DELAY:{Description:"Debounce time in ms for stick commanded parameter navigation.",DisplayName:"Button delay",Range:{high:"3000",low:"0"},User:"Advanced"},OSD_CELL_COUNT:{Description:"Used for average cell voltage display. -1 disables, 0 uses cell count autodetection for well charged LIPO/LIION batteries at connection, other values manually select cell count used.",DisplayName:"Battery cell count",Increment:"1",User:"Advanced"},OSD_CHAN:{Description:"This sets the channel used to switch different OSD screens.",DisplayName:"Screen switch transmitter channel",User:"Standard",Values:{0:"Disable",5:"Chan5",6:"Chan6",7:"Chan7",8:"Chan8",9:"Chan9",10:"Chan10",11:"Chan11",12:"Chan12",13:"Chan13",14:"Chan14",15:"Chan15",16:"Chan16"}},OSD_DSARM_SCR:{Description:"Screen to be shown on disarm event. Zero to disable the feature.",DisplayName:"Disarm screen",Range:{high:"4",low:"0"},User:"Standard"},OSD_FONT:{Description:"This sets which OSD font to use. It is an integer from 0 to the number of fonts available",DisplayName:"OSD Font",RebootRequired:"True",User:"Standard"},OSD_FS_SCR:{Description:"Screen to be shown on failsafe event. Zero to disable the feature.",DisplayName:"Failsafe screen",Range:{high:"4",low:"0"},User:"Standard"},OSD_H_OFFSET:{Description:"Sets horizontal offset of the osd inside image",DisplayName:"OSD horizontal offset",Range:{high:"63",low:"0"},RebootRequired:"True",User:"Standard"},OSD_MSG_TIME:{Description:"Sets message duration seconds",DisplayName:"Message display duration in seconds",Range:{high:"20",low:"1"},User:"Standard"},OSD_OPTIONS:{Bitmask:{0:"UseDecimalPack",1:"InvertedWindPointer",2:"InvertedAHRoll",3:"Convert feet to miles at 5280ft instead of 10000ft",4:"DisableCrosshair"},Description:"This sets options that change the display",DisplayName:"OSD Options",User:"Standard"},OSD_SW_METHOD:{Description:"This sets the method used to switch different OSD screens.",DisplayName:"Screen switch method",User:"Standard",Values:{0:"switch to next screen if channel value was changed",1:"select screen based on pwm ranges specified for each screen",2:"switch to next screen after low to high transition and every 1s while channel value is high"}},OSD_TYPE:{Description:"OSD type. TXONLY makes the OSD parameter selection available to other modules even if there is no native OSD support on the board, for instance CRSF.",DisplayName:"OSD type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"MAX7456",2:"SITL",3:"MSP",4:"TXONLY"}},OSD_UNITS:{Description:"Sets the units to use in displaying items",DisplayName:"Display Units",User:"Standard",Values:{0:"Metric",1:"Imperial",2:"SI",3:"Aviation"}},OSD_V_OFFSET:{Description:"Sets vertical offset of the osd inside image",DisplayName:"OSD vertical offset",Range:{high:"31",low:"0"},RebootRequired:"True",User:"Standard"},OSD_W_AVGCELLV:{Description:"Set level at which AVGCELLV item will flash",DisplayName:"AVGCELLV warn level",Range:{high:"100",low:"0"},User:"Standard"},OSD_W_BATVOLT:{Description:"Set level at which BAT_VOLT item will flash",DisplayName:"BAT_VOLT warn level",Range:{high:"100",low:"0"},User:"Standard"},OSD_W_NSAT:{Description:"Set level at which NSAT item will flash",DisplayName:"NSAT warn level",Range:{high:"30",low:"1"},User:"Standard"},OSD_W_RESTVOLT:{Description:"Set level at which RESTVOLT item will flash",DisplayName:"RESTVOLT warn level",Range:{high:"100",low:"0"},User:"Standard"},OSD_W_RSSI:{Description:"Set level at which RSSI item will flash",DisplayName:"RSSI warn level (in %)",Range:{high:"99",low:"0"},User:"Standard"},OSD_W_TERR:{Description:"Set level below which TER_HGT item will flash. -1 disables.",DisplayName:"Terrain warn level",Range:{high:"3000",low:"-1"},Units:"m",User:"Standard"}},BX={OSD1_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD1_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD1_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD1_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD1_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD1_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD1_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD1_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD1_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD1_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD1_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD1_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD1_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD1_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD1_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD1_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD1_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD1_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD1_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD1_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD1_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD1_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD1_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD1_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD1_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD1_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD1_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD1_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD1_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD1_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD1_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD1_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD1_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD1_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD1_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD1_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD1_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD1_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD1_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD1_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD1_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD1_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD1_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD1_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD1_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD1_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD1_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD1_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD1_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD1_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD1_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD1_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD1_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD1_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD1_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD1_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD1_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD1_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD1_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD1_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD1_FONT:{Description:"Sets the font index for this screen (MSP DisplayPort only)",DisplayName:"Sets the font index for this screen (MSP DisplayPort only)",Range:{high:"15",low:"0"},User:"Standard"},OSD1_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD1_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD1_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD1_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD1_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD1_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD1_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD1_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD1_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD1_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD1_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD1_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD1_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD1_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD1_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD1_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD1_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD1_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD1_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD1_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD1_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD1_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD1_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD1_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD1_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD1_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD1_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD1_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD1_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD1_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD1_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD1_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD1_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD1_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD1_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD1_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD1_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD1_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD1_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD1_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD1_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD1_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD1_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD1_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD1_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD1_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD1_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD1_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD1_TXT_RES:{Description:"Sets the overlay text resolution for this screen to either LD 30x16 or HD 50x18 (MSP DisplayPort only)",DisplayName:"Sets the overlay text resolution (MSP DisplayPort only)",User:"Standard",Values:{0:"30x16",1:"50x18"}},OSD1_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD1_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD1_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD1_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD1_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD1_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD1_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD1_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD1_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD1_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},zX={OSD2_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD2_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD2_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD2_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD2_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD2_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD2_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD2_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD2_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD2_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD2_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD2_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD2_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD2_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD2_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD2_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD2_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD2_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD2_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD2_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD2_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD2_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD2_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD2_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD2_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD2_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD2_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD2_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD2_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD2_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD2_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD2_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD2_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD2_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD2_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD2_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD2_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD2_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD2_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD2_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD2_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD2_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD2_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD2_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD2_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD2_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD2_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD2_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD2_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD2_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD2_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD2_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD2_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD2_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD2_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD2_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD2_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD2_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD2_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD2_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD2_FONT:{Description:"Sets the font index for this screen (MSP DisplayPort only)",DisplayName:"Sets the font index for this screen (MSP DisplayPort only)",Range:{high:"15",low:"0"},User:"Standard"},OSD2_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD2_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD2_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD2_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD2_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD2_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD2_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD2_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD2_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD2_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD2_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD2_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD2_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD2_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD2_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD2_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD2_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD2_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD2_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD2_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD2_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD2_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD2_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD2_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD2_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD2_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD2_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD2_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD2_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD2_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD2_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD2_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD2_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD2_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD2_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD2_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD2_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD2_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD2_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD2_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD2_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD2_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD2_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD2_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD2_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD2_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD2_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD2_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD2_TXT_RES:{Description:"Sets the overlay text resolution for this screen to either LD 30x16 or HD 50x18 (MSP DisplayPort only)",DisplayName:"Sets the overlay text resolution (MSP DisplayPort only)",User:"Standard",Values:{0:"30x16",1:"50x18"}},OSD2_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD2_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD2_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD2_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD2_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD2_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD2_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD2_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD2_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD2_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},ZX={OSD3_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD3_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD3_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD3_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD3_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD3_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD3_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD3_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD3_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD3_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD3_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD3_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD3_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD3_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD3_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD3_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD3_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD3_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD3_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD3_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD3_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD3_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD3_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD3_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD3_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD3_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD3_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD3_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD3_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD3_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD3_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD3_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD3_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD3_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD3_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD3_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD3_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD3_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD3_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD3_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD3_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD3_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD3_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD3_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD3_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD3_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD3_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD3_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD3_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD3_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD3_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD3_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD3_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD3_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD3_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD3_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD3_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD3_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD3_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD3_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD3_FONT:{Description:"Sets the font index for this screen (MSP DisplayPort only)",DisplayName:"Sets the font index for this screen (MSP DisplayPort only)",Range:{high:"15",low:"0"},User:"Standard"},OSD3_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD3_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD3_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD3_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD3_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD3_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD3_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD3_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD3_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD3_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD3_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD3_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD3_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD3_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD3_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD3_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD3_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD3_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD3_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD3_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD3_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD3_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD3_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD3_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD3_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD3_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD3_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD3_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD3_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD3_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD3_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD3_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD3_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD3_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD3_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD3_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD3_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD3_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD3_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD3_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD3_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD3_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD3_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD3_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD3_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD3_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD3_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD3_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD3_TXT_RES:{Description:"Sets the overlay text resolution for this screen to either LD 30x16 or HD 50x18 (MSP DisplayPort only)",DisplayName:"Sets the overlay text resolution (MSP DisplayPort only)",User:"Standard",Values:{0:"30x16",1:"50x18"}},OSD3_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD3_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD3_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD3_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD3_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD3_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD3_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD3_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD3_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD3_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},GX={OSD4_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD4_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD4_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD4_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD4_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD4_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD4_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD4_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD4_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD4_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD4_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD4_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD4_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD4_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD4_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD4_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD4_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD4_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD4_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD4_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD4_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD4_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD4_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD4_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD4_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD4_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD4_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD4_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD4_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD4_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD4_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD4_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD4_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD4_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD4_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD4_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD4_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD4_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD4_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD4_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD4_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD4_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD4_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD4_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD4_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD4_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD4_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD4_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD4_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD4_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD4_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD4_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD4_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD4_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD4_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD4_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD4_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD4_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD4_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD4_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD4_FONT:{Description:"Sets the font index for this screen (MSP DisplayPort only)",DisplayName:"Sets the font index for this screen (MSP DisplayPort only)",Range:{high:"15",low:"0"},User:"Standard"},OSD4_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD4_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD4_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD4_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD4_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD4_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD4_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD4_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD4_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD4_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD4_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD4_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD4_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD4_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD4_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD4_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD4_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD4_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD4_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD4_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD4_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD4_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD4_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD4_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD4_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD4_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD4_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD4_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD4_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD4_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD4_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD4_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD4_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD4_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD4_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD4_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD4_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD4_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD4_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD4_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD4_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD4_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD4_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD4_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD4_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD4_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD4_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD4_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD4_TXT_RES:{Description:"Sets the overlay text resolution for this screen to either LD 30x16 or HD 50x18 (MSP DisplayPort only)",DisplayName:"Sets the overlay text resolution (MSP DisplayPort only)",User:"Standard",Values:{0:"30x16",1:"50x18"}},OSD4_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD4_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD4_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD4_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD4_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD4_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD4_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD4_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD4_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD4_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},WX={OSD5_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD5_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD5_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_SAVE_X:{Description:"Horizontal position of Save button on screen",DisplayName:"SAVE_X",Range:{high:"25",low:"0"},User:"Advanced"},OSD5_SAVE_Y:{Description:"Vertical position of Save button on screen",DisplayName:"SAVE_Y",Range:{high:"15",low:"0"},User:"Advanced"}},XX={OSD5_PARAM1_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM1_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM1_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM1_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM1_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM1_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM1_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM1_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM1_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM1_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},YX={OSD5_PARAM2_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM2_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM2_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM2_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM2_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM2_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM2_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM2_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM2_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM2_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},$X={OSD5_PARAM3_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM3_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM3_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM3_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM3_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM3_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM3_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM3_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM3_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM3_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},qX={OSD5_PARAM4_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM4_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM4_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM4_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM4_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM4_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM4_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM4_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM4_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM4_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},KX={OSD5_PARAM5_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM5_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM5_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM5_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM5_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM5_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM5_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM5_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM5_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM5_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},jX={OSD5_PARAM6_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM6_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM6_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM6_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM6_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM6_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM6_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM6_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM6_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM6_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},QX={OSD5_PARAM7_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM7_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM7_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM7_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM7_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM7_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM7_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM7_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM7_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM7_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},JX={OSD5_PARAM8_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM8_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM8_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM8_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM8_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM8_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM8_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM8_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM8_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM8_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},eY={OSD5_PARAM9_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM9_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM9_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM9_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM9_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM9_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM9_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM9_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM9_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM9_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},tY={OSD6_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD6_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD6_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_SAVE_X:{Description:"Horizontal position of Save button on screen",DisplayName:"SAVE_X",Range:{high:"25",low:"0"},User:"Advanced"},OSD6_SAVE_Y:{Description:"Vertical position of Save button on screen",DisplayName:"SAVE_Y",Range:{high:"15",low:"0"},User:"Advanced"}},iY={OSD6_PARAM1_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM1_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM1_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM1_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM1_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM1_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM1_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM1_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM1_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM1_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},aY={OSD6_PARAM2_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM2_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM2_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM2_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM2_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM2_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM2_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM2_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM2_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM2_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},rY={OSD6_PARAM3_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM3_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM3_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM3_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM3_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM3_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM3_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM3_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM3_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM3_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},nY={OSD6_PARAM4_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM4_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM4_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM4_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM4_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM4_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM4_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM4_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM4_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM4_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},oY={OSD6_PARAM5_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM5_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM5_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM5_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM5_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM5_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM5_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM5_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM5_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM5_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},sY={OSD6_PARAM6_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM6_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM6_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM6_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM6_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM6_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM6_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM6_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM6_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM6_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},lY={OSD6_PARAM7_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM7_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM7_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM7_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM7_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM7_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM7_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM7_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM7_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM7_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},cY={OSD6_PARAM8_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM8_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM8_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM8_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM8_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM8_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM8_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM8_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM8_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM8_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},dY={OSD6_PARAM9_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM9_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM9_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM9_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM9_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM9_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM9_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM9_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM9_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM9_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},CY={PTCH2SRV_RLL:{Description:"Gain added to pitch to keep aircraft from descending or ascending in turns. Increase in increments of 0.05 to reduce altitude loss. Decrease for altitude gain.",DisplayName:"Roll compensation",Increment:"0.05",Range:{high:"1.5",low:"0.7"},User:"Standard"},PTCH2SRV_RMAX_DN:{Description:"This sets the maximum nose down pitch rate that the attitude controller will demand (degrees/sec) in angle stabilized modes. Setting it to zero disables the limit.",DisplayName:"Pitch down max rate",Increment:"1",Range:{high:"100",low:"0"},Units:"deg/s",User:"Advanced"},PTCH2SRV_RMAX_UP:{Description:"This sets the maximum nose up pitch rate that the attitude controller will demand (degrees/sec) in angle stabilized modes. Setting it to zero disables the limit.",DisplayName:"Pitch up max rate",Increment:"1",Range:{high:"100",low:"0"},Units:"deg/s",User:"Advanced"},PTCH2SRV_TCONST:{Description:"Time constant in seconds from demanded to achieved pitch angle. Most models respond well to 0.5. May be reduced for faster responses, but setting lower than a model can achieve will not help.",DisplayName:"Pitch Time Constant",Increment:"0.1",Range:{high:"1.0",low:"0.4"},Units:"s",User:"Advanced"},PTCH_RATE_D:{Description:"Pitch axis rate controller D gain. Compensates for short-term change in desired roll rate vs actual roll rate",DisplayName:"Pitch axis rate controller D gain",Increment:"0.001",Range:{high:"0.03",low:"0.001"},User:"Standard"},PTCH_RATE_FF:{Description:"Pitch axis rate controller feed forward",DisplayName:"Pitch axis rate controller feed forward",Increment:"0.001",Range:{high:"3.0",low:"0"},User:"Standard"},PTCH_RATE_FLTD:{Description:"Pitch axis rate controller derivative frequency in Hz",DisplayName:"Pitch axis rate controller derivative frequency in Hz",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Standard"},PTCH_RATE_FLTE:{Description:"Pitch axis rate controller error frequency in Hz",DisplayName:"Pitch axis rate controller error frequency in Hz",Increment:"1",Range:{high:"50",low:"2"},Units:"Hz",User:"Standard"},PTCH_RATE_FLTT:{Description:"Pitch axis rate controller target frequency in Hz",DisplayName:"Pitch axis rate controller target frequency in Hz",Increment:"1",Range:{high:"50",low:"2"},Units:"Hz",User:"Standard"},PTCH_RATE_I:{Description:"Pitch axis rate controller I gain. Corrects long-term difference in desired roll rate vs actual roll rate",DisplayName:"Pitch axis rate controller I gain",Increment:"0.01",Range:{high:"0.6",low:"0.01"},User:"Standard"},PTCH_RATE_IMAX:{Description:"Pitch axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Pitch axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},PTCH_RATE_P:{Description:"Pitch axis rate controller P gain. Converts the difference between desired roll rate and actual roll rate into a motor speed output",DisplayName:"Pitch axis rate controller P gain",Increment:"0.005",Range:{high:"0.35",low:"0.08"},User:"Standard"},PTCH_RATE_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Pitch slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"}},mY={ACRO_LOCKING:{Description:"Enable attitude locking when sticks are released",DisplayName:"ACRO mode attitude locking",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},ACRO_PITCH_RATE:{Description:"The maximum pitch rate at full stick deflection in ACRO mode",DisplayName:"ACRO mode pitch rate",Increment:"1",Range:{high:"500",low:"10"},Units:"deg/s",User:"Standard"},ACRO_ROLL_RATE:{Description:"The maximum roll rate at full stick deflection in ACRO mode",DisplayName:"ACRO mode roll rate",Increment:"1",Range:{high:"500",low:"10"},Units:"deg/s",User:"Standard"},ACRO_YAW_RATE:{Description:"The maximum yaw rate at full stick deflection in ACRO mode. If this is zero then rudder is directly controlled by rudder stick input. This option is only available if you also set YAW_RATE_ENABLE to 1.",DisplayName:"ACRO mode yaw rate",Increment:"1",Range:{high:"500",low:"0"},Units:"deg/s",User:"Standard"},ALT_HOLD_FBWCM:{Description:"This is the minimum altitude in centimeters that FBWB and CRUISE modes will allow. If you attempt to descend below this altitude then the plane will level off. A value of zero means no limit.",DisplayName:"Minimum altitude for FBWB mode",Units:"cm",User:"Standard"},ALT_HOLD_RTL:{Description:"Target altitude above home for RTL mode. Maintains current altitude if set to -1. Rally point altitudes are used if plane does not return to home.",DisplayName:"RTL altitude",Units:"cm",User:"Standard"},ALT_OFFSET:{Description:"This is added to the target altitude in automatic flight. It can be used to add a global altitude offset to a mission",DisplayName:"Altitude offset",Increment:"1",Range:{high:"32767",low:"-32767"},Units:"m",User:"Advanced"},ARSPD_FBW_MAX:{Description:"Maximum airspeed demanded in automatic throttle modes. Should be set slightly less than level flight speed at THR_MAX and also at least 50% above ARSPD_FBW_MIN to allow for accurate TECS altitude control.",DisplayName:"Maximum Airspeed",Increment:"1",Range:{high:"100",low:"5"},Units:"m/s",User:"Standard"},ARSPD_FBW_MIN:{Description:"Minimum airspeed demanded in automatic throttle modes. Should be set to 20% higher than level flight stall speed.",DisplayName:"Minimum Airspeed",Increment:"1",Range:{high:"100",low:"5"},Units:"m/s",User:"Standard"},AUTOTUNE_LEVEL:{Description:"Level of aggressiveness of pitch and roll PID gains. Lower values result in a 'softer' tune. Level 6 recommended for most planes. A value of 0 means to keep the current values of RMAX and TCONST for the controllers, tuning only the PID values",DisplayName:"Autotune level",Increment:"1",Range:{high:"10",low:"0"},User:"Standard"},CRASH_ACC_THRESH:{Description:"X-Axis deceleration threshold to notify the crash detector that there was a possible impact which helps disarm the motor quickly after a crash. This value should be much higher than normal negative x-axis forces during normal flight, check flight log files to determine the average IMU.x values for your aircraft and motor type. Higher value means less sensative (triggers on higher impact). For electric planes that don't vibrate much during fight a value of 25 is good (that's about 2.5G). For petrol/nitro planes you'll want a higher value. Set to 0 to disable the collision detector.",DisplayName:"Crash Deceleration Threshold",Increment:"1",Range:{high:"127",low:"10"},Units:"m/s/s",User:"Advanced"},CRASH_DETECT:{Bitmask:{0:"Disarm"},Description:"Automatically detect a crash during AUTO flight and perform the bitmask selected action(s). Disarm will turn off motor for safety and to help against burning out ESC and motor. Set to 0 to disable crash detection.",DisplayName:"Crash Detection",User:"Advanced",Values:{0:"Disabled"}},DSPOILER_AILMTCH:{Description:"This scales down the inner flaps so less than full downwards range can be used for differential spoiler and full span ailerons, 100 is use full range, upwards travel is unaffected",DisplayName:"Differential spoiler aileron matching",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Advanced"},DSPOILER_CROW_W1:{Description:"This is amount of deflection applied to the two outer surfaces for differential spoilers for flaps to give crow flaps. It is a number from 0 to 100. At zero no crow flaps are applied. A recommended starting value is 25.",DisplayName:"Differential spoiler crow flaps outer weight",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Advanced"},DSPOILER_CROW_W2:{Description:"This is amount of deflection applied to the two inner surfaces for differential spoilers for flaps to give crow flaps. It is a number from 0 to 100. At zero no crow flaps are applied. A recommended starting value is 45.",DisplayName:"Differential spoiler crow flaps inner weight",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Advanced"},DSPOILER_OPTS:{Bitmask:{0:"pitch control",1:"full span",2:"Progressive crow"},Description:"Differential spoiler and crow flaps options",DisplayName:"Differential spoiler and crow flaps options",User:"Advanced",Values:{0:"none",1:"D spoilers have pitch input",2:"use both control surfaces on each wing for roll",4:"Progressive crow flaps only first (0-50% flap in) then crow flaps (50 - 100% flap in)"}},DSPOILR_RUD_RATE:{Description:"Sets the amount of deflection that the rudder output will apply to the differential spoilers, as a percentage. The default value of 100 results in full rudder applying full deflection. A value of 0 will result in the differential spoilers exactly following the elevons (no rudder effect).",DisplayName:"Differential spoilers rudder rate",Range:{high:"100",low:"-100"},Units:"%",User:"Standard"},FBWB_CLIMB_RATE:{Description:"This sets the rate in m/s at which FBWB and CRUISE modes will change its target altitude for full elevator deflection. Note that the actual climb rate of the aircraft can be lower than this, depending on your airspeed and throttle control settings. If you have this parameter set to the default value of 2.0, then holding the elevator at maximum deflection for 10 seconds would change the target altitude by 20 meters.",DisplayName:"Fly By Wire B altitude change rate",Increment:"0.1",Range:{high:"10",low:"1"},Units:"m/s",User:"Standard"},FBWB_ELEV_REV:{Description:"Reverse sense of elevator in FBWB and CRUISE modes. When set to 0 up elevator (pulling back on the stick) means to lower altitude. When set to 1, up elevator means to raise altitude.",DisplayName:"Fly By Wire elevator reverse",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},FLAP_1_PERCNT:{Description:"The percentage change in flap position when FLAP_1_SPEED is reached. Use zero to disable flaps",DisplayName:"Flap 1 percentage",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Advanced"},FLAP_1_SPEED:{Description:"The speed in meters per second at which to engage FLAP_1_PERCENT of flaps. Note that FLAP_1_SPEED should be greater than or equal to FLAP_2_SPEED",DisplayName:"Flap 1 speed",Increment:"1",Range:{high:"100",low:"0"},Units:"m/s",User:"Advanced"},FLAP_2_PERCNT:{Description:"The percentage change in flap position when FLAP_2_SPEED is reached. Use zero to disable flaps",DisplayName:"Flap 2 percentage",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Advanced"},FLAP_2_SPEED:{Description:"The speed in meters per second at which to engage FLAP_2_PERCENT of flaps. Note that FLAP_1_SPEED should be greater than or equal to FLAP_2_SPEED",DisplayName:"Flap 2 speed",Increment:"1",Range:{high:"100",low:"0"},Units:"m/s",User:"Advanced"},FLAP_SLEWRATE:{Description:"maximum percentage change in flap output per second. A setting of 25 means to not change the flap by more than 25% of the full flap range in one second. A value of 0 means no rate limiting.",DisplayName:"Flap slew rate",Increment:"1",Range:{high:"100",low:"0"},Units:"%/s",User:"Advanced"},FLIGHT_OPTIONS:{Bitmask:{0:"Rudder mixing in direct flight modes only (Manual / Stabilize / Acro)",1:"Use centered throttle in Cruise or FBWB to indicate trim airspeed",2:"Disable attitude check for takeoff arming",3:"Force target airspeed to trim airspeed in Cruise or FBWB",4:"Climb to ALT_HOLD_RTL before turning for RTL",5:"Enable yaw damper in acro mode",6:"Surpress speed scaling during auto takeoffs to be 1 or less to prevent oscillations without airpseed sensor.",7:"EnableDefaultAirspeed for takeoff",8:"Remove the TRIM_PITCH_CD on the GCS horizon",9:"Remove the TRIM_PITCH_CD on the OSD horizon",10:"Adjust mid-throttle to be TRIM_THROTTLE in non-auto throttle modes except MANUAL",11:"Disable suppression of fixed wing rate gains in ground mode",12:"Enable FBWB style loiter altitude control"},Description:"Flight mode specific options",DisplayName:"Flight mode options",User:"Advanced"},FLTMODE1:{Description:"Flight mode for switch position 1 (910 to 1230 and above 2049)",DisplayName:"FlightMode1",User:"Standard",Values:{0:"Manual",1:"CIRCLE",2:"STABILIZE",3:"TRAINING",4:"ACRO",5:"FBWA",6:"FBWB",7:"CRUISE",8:"AUTOTUNE",10:"Auto",11:"RTL",12:"Loiter",13:"TAKEOFF",14:"AVOID_ADSB",15:"Guided",17:"QSTABILIZE",18:"QHOVER",19:"QLOITER",20:"QLAND",21:"QRTL",22:"QAUTOTUNE",23:"QACRO",24:"THERMAL",25:"Loiter to QLand"}},FLTMODE2:{Description:"Flight mode for switch position 2 (1231 to 1360)",DisplayName:"FlightMode2",User:"Standard",Values:{0:"Manual",1:"CIRCLE",2:"STABILIZE",3:"TRAINING",4:"ACRO",5:"FBWA",6:"FBWB",7:"CRUISE",8:"AUTOTUNE",10:"Auto",11:"RTL",12:"Loiter",13:"TAKEOFF",14:"AVOID_ADSB",15:"Guided",17:"QSTABILIZE",18:"QHOVER",19:"QLOITER",20:"QLAND",21:"QRTL",22:"QAUTOTUNE",23:"QACRO",24:"THERMAL",25:"Loiter to QLand"}},FLTMODE3:{Description:"Flight mode for switch position 3 (1361 to 1490)",DisplayName:"FlightMode3",User:"Standard",Values:{0:"Manual",1:"CIRCLE",2:"STABILIZE",3:"TRAINING",4:"ACRO",5:"FBWA",6:"FBWB",7:"CRUISE",8:"AUTOTUNE",10:"Auto",11:"RTL",12:"Loiter",13:"TAKEOFF",14:"AVOID_ADSB",15:"Guided",17:"QSTABILIZE",18:"QHOVER",19:"QLOITER",20:"QLAND",21:"QRTL",22:"QAUTOTUNE",23:"QACRO",24:"THERMAL",25:"Loiter to QLand"}},FLTMODE4:{Description:"Flight mode for switch position 4 (1491 to 1620)",DisplayName:"FlightMode4",User:"Standard",Values:{0:"Manual",1:"CIRCLE",2:"STABILIZE",3:"TRAINING",4:"ACRO",5:"FBWA",6:"FBWB",7:"CRUISE",8:"AUTOTUNE",10:"Auto",11:"RTL",12:"Loiter",13:"TAKEOFF",14:"AVOID_ADSB",15:"Guided",17:"QSTABILIZE",18:"QHOVER",19:"QLOITER",20:"QLAND",21:"QRTL",22:"QAUTOTUNE",23:"QACRO",24:"THERMAL",25:"Loiter to QLand"}},FLTMODE5:{Description:"Flight mode for switch position 5 (1621 to 1749)",DisplayName:"FlightMode5",User:"Standard",Values:{0:"Manual",1:"CIRCLE",2:"STABILIZE",3:"TRAINING",4:"ACRO",5:"FBWA",6:"FBWB",7:"CRUISE",8:"AUTOTUNE",10:"Auto",11:"RTL",12:"Loiter",13:"TAKEOFF",14:"AVOID_ADSB",15:"Guided",17:"QSTABILIZE",18:"QHOVER",19:"QLOITER",20:"QLAND",21:"QRTL",22:"QAUTOTUNE",23:"QACRO",24:"THERMAL",25:"Loiter to QLand"}},FLTMODE6:{Description:"Flight mode for switch position 6 (1750 to 2049)",DisplayName:"FlightMode6",User:"Standard",Values:{0:"Manual",1:"CIRCLE",2:"STABILIZE",3:"TRAINING",4:"ACRO",5:"FBWA",6:"FBWB",7:"CRUISE",8:"AUTOTUNE",10:"Auto",11:"RTL",12:"Loiter",13:"TAKEOFF",14:"AVOID_ADSB",15:"Guided",17:"QSTABILIZE",18:"QHOVER",19:"QLOITER",20:"QLAND",21:"QRTL",22:"QAUTOTUNE",23:"QACRO",24:"THERMAL",25:"Loiter to QLand"}},FLTMODE_CH:{Description:"RC Channel to use for flight mode control",DisplayName:"Flightmode channel",Increment:"1",Range:{high:"16",low:"1"},User:"Advanced"},FORMAT_VERSION:{Description:"This value is incremented when changes are made to the eeprom format",DisplayName:"Eeprom format version number",User:"Advanced"},FS_EKF_THRESH:{Description:"Allows setting the maximum acceptable compass and velocity variance used to check navigation health in VTOL modes",DisplayName:"EKF failsafe variance threshold",User:"Advanced",Values:{"0.6":"Strict","0.8":"Default","1.0":"Relaxed"}},FS_GCS_ENABL:{Description:"Enable ground control station telemetry failsafe. Failsafe will trigger after FS_LONG_TIMEOUT seconds of no MAVLink heartbeat messages. There are three possible enabled settings. Setting FS_GCS_ENABL to 1 means that GCS failsafe will be triggered when the aircraft has not received a MAVLink HEARTBEAT message. Setting FS_GCS_ENABL to 2 means that GCS failsafe will be triggered on either a loss of HEARTBEAT messages, or a RADIO_STATUS message from a MAVLink enabled 3DR radio indicating that the ground station is not receiving status updates from the aircraft, which is indicated by the RADIO_STATUS.remrssi field being zero (this may happen if you have a one way link due to asymmetric noise on the ground station and aircraft radios).Setting FS_GCS_ENABL to 3 means that GCS failsafe will be triggered by Heartbeat(like option one), but only in AUTO mode. WARNING: Enabling this option opens up the possibility of your plane going into failsafe mode and running the motor on the ground it it loses contact with your ground station. If this option is enabled on an electric plane then you should enable ARMING_REQUIRED.",DisplayName:"GCS failsafe enable",User:"Standard",Values:{0:"Disabled",1:"Heartbeat",2:"HeartbeatAndREMRSSI",3:"HeartbeatAndAUTO"}},FS_LONG_ACTN:{Description:"The action to take on a long (FS_LONG_TIMEOUT seconds) failsafe event. If the aircraft was in a stabilization or manual mode when failsafe started and a long failsafe occurs then it will change to RTL mode if FS_LONG_ACTN is 0 or 1, and will change to FBWA if FS_LONG_ACTN is set to 2. If the aircraft was in an auto mode (such as AUTO or GUIDED) when the failsafe started then it will continue in the auto mode if FS_LONG_ACTN is set to 0, will change to RTL mode if FS_LONG_ACTN is set to 1 and will change to FBWA mode if FS_LONG_ACTN is set to 2. If FS_LONG_ACTION is set to 3, the parachute will be deployed (make sure the chute is configured and enabled).",DisplayName:"Long failsafe action",User:"Standard",Values:{0:"Continue",1:"ReturnToLaunch",2:"Glide",3:"Deploy Parachute"}},FS_LONG_TIMEOUT:{Description:"The time in seconds that a failsafe condition has to persist before a long failsafe event will occur. This defaults to 5 seconds.",DisplayName:"Long failsafe timeout",Increment:"0.5",Range:{high:"300",low:"1"},Units:"s",User:"Standard"},FS_SHORT_ACTN:{Description:"The action to take on a short (FS_SHORT_TIMEOUT) failsafe event. A short failsafe event can be triggered either by loss of RC control (see THR_FS_VALUE) or by loss of GCS control (see FS_GCS_ENABL). If in CIRCLE or RTL mode this parameter is ignored. A short failsafe event in stabilization and manual modes will cause a change to CIRCLE mode if FS_SHORT_ACTN is 0 or 1, a change to FBWA mode with zero throttle if FS_SHORT_ACTN is 2, and a change to FBWB mode if FS_SHORT_ACTN is 4. In all other modes (AUTO, GUIDED and LOITER) a short failsafe event will cause no mode change if FS_SHORT_ACTN is set to 0, will cause a change to CIRCLE mode if set to 1, will change to FBWA mode with zero throttle if set to 2, or will change to FBWB if set to 4. Please see the documentation for FS_LONG_ACTN for the behaviour after FS_LONG_TIMEOUT seconds of failsafe.",DisplayName:"Short failsafe action",User:"Standard",Values:{0:"CIRCLE/no change(if already in AUTO|GUIDED|LOITER)",1:"CIRCLE",2:"FBWA at zero throttle",3:"Disable",4:"FBWB"}},FS_SHORT_TIMEOUT:{Description:"The time in seconds that a failsafe condition has to persist before a short failsafe event will occur. This defaults to 1.5 seconds",DisplayName:"Short failsafe timeout",Increment:"0.5",Range:{high:"100",low:"1"},Units:"s",User:"Standard"},FWD_BAT_IDX:{Description:"Which battery monitor should be used for doing compensation for the forward throttle",DisplayName:"Forward throttle battery compensation index",User:"Advanced",Values:{0:"First battery",1:"Second battery"}},FWD_BAT_VOLT_MAX:{Description:"Forward throttle battery voltage compensation maximum voltage (voltage above this will have no additional scaling effect on thrust). Recommend 4.2 * cell count, 0 = Disabled. Recommend THR_MAX is set to no more than 100 x FWD_BAT_VOLT_MIN / FWD_BAT_VOLT_MAX, THR_MIN is set to no less than -100 x FWD_BAT_VOLT_MIN / FWD_BAT_VOLT_MAX and climb descent rate limits are set accordingly.",DisplayName:"Forward throttle battery voltage compensation maximum voltage",Increment:"0.1",Range:{high:"35",low:"6"},Units:"V",User:"Advanced"},FWD_BAT_VOLT_MIN:{Description:"Forward throttle battery voltage compensation minimum voltage (voltage below this will have no additional scaling effect on thrust). Recommend 3.5 * cell count, 0 = Disabled. Recommend THR_MAX is set to no more than 100 x FWD_BAT_VOLT_MIN / FWD_BAT_VOLT_MAX, THR_MIN is set to no less than -100 x FWD_BAT_VOLT_MIN / FWD_BAT_VOLT_MAX and climb descent rate limits are set accordingly.",DisplayName:"Forward throttle battery voltage compensation minimum voltage",Increment:"0.1",Range:{high:"35",low:"6"},Units:"V",User:"Advanced"},GCS_PID_MASK:{Bitmask:{0:"Roll",1:"Pitch",2:"Yaw",3:"Steering",4:"Landing"},Description:"bitmask of PIDs to send MAVLink PID_TUNING messages for",DisplayName:"GCS PID tuning mask",User:"Advanced"},GLIDE_SLOPE_MIN:{Description:"This controls the minimum altitude change for a waypoint before a glide slope will be used instead of an immediate altitude change. The default value is 15 meters, which helps to smooth out waypoint missions where small altitude changes happen near waypoints. If you don't want glide slopes to be used in missions then you can set this to zero, which will disable glide slope calculations. Otherwise you can set it to a minimum number of meters of altitude error to the destination waypoint before a glide slope will be used to change altitude.",DisplayName:"Glide slope minimum",Increment:"1",Range:{high:"1000",low:"0"},Units:"m",User:"Advanced"},GLIDE_SLOPE_THR:{Description:"This controls the height above the glide slope the plane may be before rebuilding a glide slope. This is useful for smoothing out an autotakeoff",DisplayName:"Glide slope threshold",Increment:"1",Range:{high:"100",low:"0"},Units:"m",User:"Advanced"},GROUND_STEER_ALT:{Description:"Altitude at which to use the ground steering controller on the rudder. If non-zero then the STEER2SRV controller will be used to control the rudder for altitudes within this limit of the home altitude.",DisplayName:"Ground steer altitude",Increment:"0.1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},GROUND_STEER_DPS:{Description:"Ground steering rate in degrees per second for full rudder stick deflection",DisplayName:"Ground steer rate",Increment:"1",Range:{high:"360",low:"10"},Units:"deg/s",User:"Advanced"},HOME_RESET_ALT:{Description:"When the aircraft is within this altitude of the home waypoint, while disarmed it will automatically update the home position. Set to 0 to continously reset it.",DisplayName:"Home reset altitude threshold",Range:{high:"127",low:"-1"},Units:"m",User:"Advanced",Values:{0:"Always reset","-1":"Never reset"}},INITIAL_MODE:{Description:"This selects the mode to start in on boot. This is useful for when you want to start in AUTO mode on boot without a receiver.",DisplayName:"Initial flight mode",User:"Advanced",Values:{0:"Manual",1:"CIRCLE",2:"STABILIZE",3:"TRAINING",4:"ACRO",5:"FBWA",6:"FBWB",7:"CRUISE",8:"AUTOTUNE",10:"Auto",11:"RTL",12:"Loiter",13:"TAKEOFF",14:"AVOID_ADSB",15:"Guided",17:"QSTABILIZE",18:"QHOVER",19:"QLOITER",20:"QLAND",21:"QRTL",22:"QAUTOTUNE",23:"QACRO",24:"THERMAL",25:"Loiter to QLand"}},KFF_RDDRMIX:{Description:"Amount of rudder to add during aileron movement. Increase if nose initially yaws away from roll. Reduces adverse yaw.",DisplayName:"Rudder Mix",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},KFF_THR2PTCH:{Description:"Pitch up to add in proportion to throttle. 100% throttle will add this number of degrees to the pitch target.",DisplayName:"Throttle to Pitch Mix",Increment:"0.01",Range:{high:"5",low:"0"},User:"Advanced"},LEVEL_ROLL_LIMIT:{Description:"This controls the maximum bank angle in degrees during flight modes where level flight is desired, such as in the final stages of landing, and during auto takeoff. This should be a small angle (such as 5 degrees) to prevent a wing hitting the runway during takeoff or landing. Setting this to zero will completely disable heading hold on auto takeoff and final landing approach.",DisplayName:"Level flight roll limit",Increment:"1",Range:{high:"45",low:"0"},Units:"deg",User:"Standard"},LIM_PITCH_MAX:{Description:"Maximum pitch up angle commanded in modes with stabilized limits.",DisplayName:"Maximum Pitch Angle",Increment:"10",Range:{high:"9000",low:"0"},Units:"cdeg",User:"Standard"},LIM_PITCH_MIN:{Description:"Maximum pitch down angle commanded in modes with stabilized limits",DisplayName:"Minimum Pitch Angle",Increment:"10",Range:{high:"0",low:"-9000"},Units:"cdeg",User:"Standard"},LIM_ROLL_CD:{Description:"Maximum bank angle commanded in modes with stabilized limits. Increase this value for sharper turns, but decrease to prevent accelerated stalls.",DisplayName:"Maximum Bank Angle",Increment:"10",Range:{high:"9000",low:"0"},Units:"cdeg",User:"Standard"},LOG_BITMASK:{Bitmask:{0:"Fast Attitude",1:"Medium Attitude",2:"GPS",3:"Performance",4:"Control Tuning",5:"Navigation Tuning",7:"IMU",8:"Mission Commands",9:"Battery Monitor",10:"Compass",11:"TECS",12:"Camera",13:"RC Input-Output",14:"Rangefinder",19:"Raw IMU",20:"Fullrate Attitude",21:"Video Stabilization"},Description:"Bitmap of what on-board log types to enable. This value is made up of the sum of each of the log types you want to be saved. It is usually best just to enable all basic log types by setting this to 65535.",DisplayName:"Log bitmask",User:"Advanced"},MANUAL_RCMASK:{Bitmask:{0:"Chan1",1:"Chan2",2:"Chan3",3:"Chan4",4:"Chan5",5:"Chan6",6:"Chan7",7:"Chan8",8:"Chan9",9:"Chan10",10:"Chan11",11:"Chan12",12:"Chan13",13:"Chan14",14:"Chan15",15:"Chan16"},Description:"Mask of R/C channels to pass directly to corresponding output channel when in MANUAL mode. When in any mode except MANUAL the channels selected with this option behave normally. This parameter is designed to allow for complex mixing strategies to be used for MANUAL flight using transmitter based mixing. Note that when this option is used you need to be very careful with pre-flight checks to ensure that the output is correct both in MANUAL and non-MANUAL modes.",DisplayName:"Manual R/C pass-through mask",User:"Advanced"},MAN_EXPO_PITCH:{Description:"Percentage exponential for pitch input in MANUAL, ACRO and TRAINING modes",DisplayName:"Manual input expo for pitch",Increment:"1",Range:{high:"100",low:"0"},User:"Standard"},MAN_EXPO_ROLL:{Description:"Percentage exponential for roll input in MANUAL, ACRO and TRAINING modes",DisplayName:"Manual control expo for roll",Increment:"1",Range:{high:"100",low:"0"},User:"Standard"},MAN_EXPO_RUDDER:{Description:"Percentage exponential for rudder input in MANUAL, ACRO and TRAINING modes",DisplayName:"Manual input expo for rudder",Increment:"1",Range:{high:"100",low:"0"},User:"Standard"},MIN_GNDSPD_CM:{Description:"Minimum ground speed in cm/s when under airspeed control",DisplayName:"Minimum ground speed",Units:"cm/s",User:"Advanced"},MIXING_GAIN:{Description:"The gain for the Vtail and elevon output mixers. The default is 0.5, which ensures that the mixer doesn't saturate, allowing both input channels to go to extremes while retaining control over the output. Hardware mixers often have a 1.0 gain, which gives more servo throw, but can saturate. If you don't have enough throw on your servos with VTAIL_OUTPUT or ELEVON_OUTPUT enabled then you can raise the gain using MIXING_GAIN. The mixer allows outputs in the range 900 to 2100 microseconds.",DisplayName:"Mixing Gain",Range:{high:"1.2",low:"0.5"},User:"Standard"},MIXING_OFFSET:{Description:"The offset for the Vtail and elevon output mixers, as a percentage. This can be used in combination with MIXING_GAIN to configure how the control surfaces respond to input. The response to aileron or elevator input can be increased by setting this parameter to a positive or negative value. A common usage is to enter a positive value to increase the aileron response of the elevons of a flying wing. The default value of zero will leave the aileron-input response equal to the elevator-input response.",DisplayName:"Mixing Offset",Range:{high:"1000",low:"-1000"},Units:"d%",User:"Standard"},ONESHOT_MASK:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15"},Description:"Mask of output channels to use oneshot on",DisplayName:"Oneshot output mask",User:"Advanced"},OVERRIDE_CHAN:{Description:"If set to a non-zero value then this is an RC input channel number to use for giving IO manual control in case the main FMU microcontroller on a board with a IO co-processor fails. When this RC input channel goes above 1750 the FMU microcontroller will no longer be involved in controlling the servos and instead the IO microcontroller will directly control the servos. Note that IO manual control will be automatically activated if the FMU crashes for any reason. This parameter allows you to test for correct manual behaviour without actually crashing the FMU. This parameter is can be set to a non-zero value either for ground testing purposes or for giving the effect of an external override control board. Note that you may set OVERRIDE_CHAN to the same channel as FLTMODE_CH to get IO based override when in flight mode 6. Note that when override is triggered due to a FMU crash the 6 auxiliary output channels on the FMU will no longer be updated, so all the flight controls you need must be assigned to the first 8 channels on boards with an IOMCU.",DisplayName:"IO override channel",Increment:"1",Range:{high:"16",low:"0"},User:"Advanced"},RNGFND_LANDING:{Description:"This enables the use of a rangefinder for automatic landing. The rangefinder will be used both on the landing approach and for final flare",DisplayName:"Enable rangefinder for landing",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},RTL_AUTOLAND:{Description:"Automatically begin landing sequence after arriving at RTL location. This requires the addition of a DO_LAND_START mission item, which acts as a marker for the start of a landing sequence. The closest landing sequence will be chosen to the current location. If this is set to 0 and there is a DO_LAND_START mission item then you will get an arming check failure. You can set to a value of 3 to avoid the arming check failure and use the DO_LAND_START for go-around without it changing RTL behaviour. For a value of 1 a rally point will be used instead of HOME if in range (see rally point documentation).",DisplayName:"RTL auto land",User:"Standard",Values:{0:"Disable",1:"Fly HOME then land",2:"Go directly to landing sequence",3:"OnlyForGoAround"}},RTL_CLIMB_MIN:{Description:"The vehicle will climb this many m during the initial climb portion of the RTL. During this time the roll will be limited to LEVEL_ROLL_LIMIT degrees.",DisplayName:"RTL minimum climb",Increment:"1",Range:{high:"30",low:"0"},Units:"m",User:"Standard"},RTL_RADIUS:{Description:"Defines the radius of the loiter circle when in RTL mode. If this is zero then WP_LOITER_RAD is used. If the radius is negative then a counter-clockwise is used. If positive then a clockwise loiter is used.",DisplayName:"RTL loiter radius",Increment:"1",Range:{high:"32767",low:"-32767"},Units:"m",User:"Standard"},RUDDER_ONLY:{Description:"Enable rudder only mode. The rudder will control attitude in attitude controlled modes (such as FBWA). You should setup your transmitter to send roll stick inputs to the RCMAP_YAW channel (normally channel 4). The rudder servo should be attached to the RCMAP_YAW channel as well. Note that automatic ground steering will be disabled for rudder only aircraft. You should also set KFF_RDDRMIX to 1.0. You will also need to setup the YAW2SRV_DAMP yaw damping appropriately for your aircraft. A value of 0.5 for YAW2SRV_DAMP is a good starting point.",DisplayName:"Rudder only aircraft",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},RUDD_DT_GAIN:{Description:"gain control from rudder to differential thrust",DisplayName:"rudder differential thrust gain",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},SCALING_SPEED:{Description:"Airspeed in m/s to use when calculating surface speed scaling. Note that changing this value will affect all PID values",DisplayName:"speed used for speed scaling calculations",Increment:"0.1",Range:{high:"50",low:"0"},Units:"m/s",User:"Advanced"},STAB_PITCH_DOWN:{Description:"Degrees of down pitch added when throttle is below TRIM_THROTTLE in FBWA and AUTOTUNE modes. Scales linearly so full value is added when THR_MIN is reached. Helps to keep airspeed higher in glides or landing approaches and prevents accidental stalls. 2 degrees recommended for most planes.",DisplayName:"Low throttle pitch down trim",Increment:"0.1",Range:{high:"15",low:"0"},Units:"deg",User:"Advanced"},STALL_PREVENTION:{Description:"Enables roll limits at low airspeed in roll limiting flight modes. Roll limits based on aerodynamic load factor in turns and scale on ARSPD_FBW_MIN that must be set correctly. Without airspeed sensor, uses synthetic airspeed from wind speed estimate that may both be inaccurate.",DisplayName:"Enable stall prevention",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},STICK_MIXING:{Description:'When enabled, this adds user stick input to the control surfaces in auto modes, allowing the user to have some degree of flight control without changing modes. There are two types of stick mixing available. If you set STICK_MIXING to 1 then it will use "fly by wire" mixing, which controls the roll and pitch in the same way that the FBWA mode does. This is the safest option if you usually fly ArduPlane in FBWA or FBWB mode. If you set STICK_MIXING to 2 then it will enable direct mixing mode, which is what the STABILIZE mode uses. That will allow for much more extreme maneuvers while in AUTO mode. If you set STICK_MIXING to 3 then it will apply to the yaw while in quadplane modes only, such as while doing an automatic VTOL takeoff or landing.',DisplayName:"Stick Mixing",User:"Advanced",Values:{0:"Disabled",1:"FBWMixing",2:"DirectMixing",3:"VTOL Yaw only"}},SYSID_ENFORCE:{Description:"This controls whether packets from other than the expected GCS system ID will be accepted",DisplayName:"GCS sysid enforcement",User:"Advanced",Values:{0:"NotEnforced",1:"Enforced"}},SYSID_MYGCS:{Description:"The identifier of the ground station in the MAVLink protocol. Don't change this unless you also modify the ground station to match.",DisplayName:"Ground station MAVLink system ID",Range:{high:"255",low:"1"},User:"Advanced"},SYSID_THISMAV:{Description:"Allows setting an individual MAVLink system id for this vehicle to distinguish it from others on the same network",DisplayName:"MAVLink system ID of this vehicle",Range:{high:"255",low:"1"},User:"Advanced"},SYS_NUM_RESETS:{Description:"Number of APM board resets",DisplayName:"Num Resets",ReadOnly:"True",User:"Advanced"},TELEM_DELAY:{Description:"The amount of time (in seconds) to delay radio telemetry to prevent an Xbee bricking on power up",DisplayName:"Telemetry startup delay",Increment:"1",Range:{high:"30",low:"0"},Units:"s",User:"Standard"},TERRAIN_FOLLOW:{Bitmask:{0:"Enable all modes",1:"FBWB",2:"Cruise",3:"Auto",4:"RTL",5:"Avoid_ADSB",6:"Guided",7:"Loiter",8:"Circle",9:"QRTL",10:"QLand",11:"Qloiter"},Description:"This enables terrain following for CRUISE mode, FBWB mode, RTL and for rally points. To use this option you also need to set TERRAIN_ENABLE to 1, which enables terrain data fetching from the GCS, and you need to have a GCS that supports sending terrain data to the aircraft. When terrain following is enabled then CRUISE and FBWB mode will hold height above terrain rather than height above home. In RTL the return to launch altitude will be considered to be a height above the terrain. Rally point altitudes will be taken as height above the terrain. This option does not affect mission items, which have a per-waypoint flag for whether they are height above home or height above the terrain. To use terrain following missions you need a ground station which can set the waypoint type to be a terrain height waypoint when creating the mission.",DisplayName:"Use terrain following",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},TERRAIN_LOOKAHD:{Description:"This controls how far ahead the terrain following code looks to ensure it stays above upcoming terrain. A value of zero means no lookahead, so the controller will track only the terrain directly below the aircraft. The lookahead will never extend beyond the next waypoint when in AUTO mode.",DisplayName:"Terrain lookahead",Range:{high:"10000",low:"0"},Units:"m",User:"Standard"},THROTTLE_NUDGE:{Description:"When enabled, this uses the throttle input in auto-throttle modes to 'nudge' the throttle or airspeed to higher or lower values. When you have an airspeed sensor the nudge affects the target airspeed, so that throttle inputs above 50% will increase the target airspeed from TRIM_ARSPD_CM up to a maximum of ARSPD_FBW_MAX. When no airspeed sensor is enabled the throttle nudge will push up the target throttle for throttle inputs above 50%.",DisplayName:"Throttle nudge enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},THR_FAILSAFE:{Description:"0 disables the failsafe. 1 enables failsafe on loss of RC input. This is detected either by throttle values below THR_FS_VALUE, loss of receiver valid pulses/data, or by the FS bit in receivers that provide it, like SBUS. A programmable failsafe action will occur and RC inputs, if present, will be ignored. A value of 2 means that the RC inputs won't be used when RC failsafe is detected by any of the above methods, but it won't trigger an RC failsafe action.",DisplayName:"Throttle and RC Failsafe Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled",2:"EnabledNoFailsafe"}},THR_FS_VALUE:{Description:"The PWM level on the throttle input channel below which throttle failsafe triggers. Note that this should be well below the normal minimum for your throttle channel.",DisplayName:"Throttle Failsafe Value",Increment:"1",Range:{high:"2200",low:"925"},User:"Standard"},THR_MAX:{Description:"Maximum throttle percentage used in all modes except manual, provided THR_PASS_STAB is not set.",DisplayName:"Maximum Throttle",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},THR_MIN:{Description:"Minimum throttle percentage used in all modes except manual, provided THR_PASS_STAB is not set. Negative values allow reverse thrust if hardware supports it.",DisplayName:"Minimum Throttle",Increment:"1",Range:{high:"100",low:"-100"},Units:"%",User:"Standard"},THR_PASS_STAB:{Description:"If this is set then when in STABILIZE, FBWA or ACRO modes the throttle is a direct passthru from the transmitter. This means the THR_MIN and THR_MAX settings are not used in these modes. This is useful for petrol engines where you setup a throttle cut switch that suppresses the throttle below the normal minimum.",DisplayName:"Throttle passthru in stabilize",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},THR_SLEWRATE:{Description:"Maximum change in throttle percentage per second. Lower limit based on 1 microsend of servo increase per loop. Divide SCHED_LOOP_RATE by approximately 10 to determine minimum achievable value.",DisplayName:"Throttle slew rate",Increment:"1",Range:{high:"127",low:"0"},Units:"%/s",User:"Standard"},THR_SUPP_MAN:{Description:"When throttle is suppressed in auto mode it is normally forced to zero. If you enable this option, then while suppressed it will be manual throttle. This is useful on petrol engines to hold the idle throttle manually while waiting for takeoff",DisplayName:"Throttle suppress manual passthru",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},TKOFF_ACCEL_CNT:{Description:"This is the number of acceleration events to require for arming with TKOFF_THR_MINACC. The default is 1, which means a single forward acceleration above TKOFF_THR_MINACC will arm. By setting this higher than 1 you can require more forward/backward movements to arm.",DisplayName:"Takeoff throttle acceleration count",Range:{high:"10",low:"1"},User:"Standard"},TKOFF_FLAP_PCNT:{Description:"The amount of flaps (as a percentage) to apply in automatic takeoff",DisplayName:"Takeoff flap percentage",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Advanced"},TKOFF_PLIM_SEC:{Description:"This parameter reduces the pitch minimum limit of an auto-takeoff just a few seconds before it reaches the target altitude. This reduces overshoot by allowing the flight controller to start leveling off a few seconds before reaching the target height. When set to zero, the mission pitch min is enforced all the way to and through the target altitude, otherwise the pitch min slowly reduces to zero in the final segment. This is the pitch_min, not the demand. The flight controller should still be commanding to gain altitude to finish the takeoff but with this param it is not forcing it higher than it wants to be.",DisplayName:"Takeoff pitch limit reduction",Increment:"0.5",Range:{high:"10",low:"0"},Units:"s",User:"Advanced"},TKOFF_ROTATE_SPD:{Description:'This parameter sets the airspeed at which the aircraft will "rotate", setting climb pitch specified in the mission. If TKOFF_ROTATE_SPD is zero then the climb pitch will be used as soon as takeoff is started. For hand launch and catapult launches a TKOFF_ROTATE_SPD of zero should be set. For all ground launches TKOFF_ROTATE_SPD should be set above the stall speed, usually by about 10 to 30 percent',DisplayName:"Takeoff rotate speed",Increment:"0.1",Range:{high:"30",low:"0"},Units:"m/s",User:"Standard"},TKOFF_TDRAG_ELEV:{Description:`This parameter sets the amount of elevator to apply during the initial stage of a takeoff. It is used to hold the tail wheel of a taildragger on the ground during the initial takeoff stage to give maximum steering. This option should be combined with the TKOFF_TDRAG_SPD1 option and the GROUND_STEER_ALT option along with tuning of the ground steering controller. A value of zero means to bypass the initial "tail hold" stage of takeoff. Set to zero for hand and catapult launch. For tail-draggers you should normally set this to 100, meaning full up elevator during the initial stage of takeoff. For most tricycle undercarriage aircraft a value of zero will work well, but for some tricycle aircraft a small negative value (say around -20 to -30) will apply down elevator which will hold the nose wheel firmly on the ground during initial acceleration. Only use a negative value if you find that the nosewheel doesn't grip well during takeoff. Too much down elevator on a tricycle undercarriage may cause instability in steering as the plane pivots around the nosewheel. Add down elevator 10 percent at a time.`,DisplayName:"Takeoff tail dragger elevator",Increment:"1",Range:{high:"100",low:"-100"},Units:"%",User:"Standard"},TKOFF_TDRAG_SPD1:{Description:'This parameter sets the airspeed at which to stop holding the tail down and transition to rudder control of steering on the ground. When TKOFF_TDRAG_SPD1 is reached the pitch of the aircraft will be held level until TKOFF_ROTATE_SPD is reached, at which point the takeoff pitch specified in the mission will be used to "rotate" the pitch for takeoff climb. Set TKOFF_TDRAG_SPD1 to zero to go straight to rotation. This should be set to zero for hand launch and catapult launch. It should also be set to zero for tricycle undercarriages unless you are using the method above to genetly hold the nose wheel down. For tail dragger aircraft it should be set just below the stall speed.',DisplayName:"Takeoff tail dragger speed1",Increment:"0.1",Range:{high:"30",low:"0"},Units:"m/s",User:"Standard"},TKOFF_THR_DELAY:{Description:"This parameter sets the time delay (in 1/10ths of a second) that the ground speed check is delayed after the forward acceleration check controlled by TKOFF_THR_MINACC has passed. For hand launches with pusher propellers it is essential that this is set to a value of no less than 2 (0.2 seconds) to ensure that the aircraft is safely clear of the throwers arm before the motor can start. For bungee launches a larger value can be used (such as 30) to give time for the bungee to release from the aircraft before the motor is started.",DisplayName:"Takeoff throttle delay",Increment:"1",Range:{high:"127",low:"0"},Units:"ds",User:"Standard"},TKOFF_THR_MAX:{Description:"The maximum throttle setting during automatic takeoff. If this is zero then THR_MAX is used for takeoff as well.",DisplayName:"Maximum Throttle for takeoff",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Advanced"},TKOFF_THR_MINACC:{Description:'Minimum forward acceleration in m/s/s before arming the ground speed check in auto-takeoff. This is meant to be used for hand launches. Setting this value to 0 disables the acceleration test which means the ground speed check will always be armed which could allow GPS velocity jumps to start the engine. For hand launches and bungee launches this should be set to around 15. Also see TKOFF_ACCEL_CNT paramter for control of full "shake to arm".',DisplayName:"Takeoff throttle min acceleration",Increment:"0.1",Range:{high:"30",low:"0"},Units:"m/s/s",User:"Standard"},TKOFF_THR_MINSPD:{Description:"Minimum GPS ground speed in m/s used by the speed check that un-suppresses throttle in auto-takeoff. This can be be used for catapult launches where you want the motor to engage only after the plane leaves the catapult, but it is preferable to use the TKOFF_THR_MINACC and TKOFF_THR_DELAY parameters for catapult launches due to the errors associated with GPS measurements. For hand launches with a pusher prop it is strongly advised that this parameter be set to a value no less than 4 m/s to provide additional protection against premature motor start. Note that the GPS velocity will lag the real velocity by about 0.5 seconds. The ground speed check is delayed by the TKOFF_THR_DELAY parameter.",DisplayName:"Takeoff throttle min speed",Increment:"0.1",Range:{high:"30",low:"0"},Units:"m/s",User:"Standard"},TKOFF_THR_SLEW:{Description:"This parameter sets the slew rate for the throttle during auto takeoff. When this is zero the THR_SLEWRATE parameter is used during takeoff. For rolling takeoffs it can be a good idea to set a lower slewrate for takeoff to give a slower acceleration which can improve ground steering control. The value is a percentage throttle change per second, so a value of 20 means to advance the throttle over 5 seconds on takeoff. Values below 20 are not recommended as they may cause the plane to try to climb out with too little throttle. A value of -1 means no limit on slew rate in takeoff.",DisplayName:"Takeoff throttle slew rate",Increment:"1",Range:{high:"127",low:"-1"},Units:"%/s",User:"Standard"},TKOFF_TIMEOUT:{Description:"This is the timeout for an automatic takeoff. If this is non-zero and the aircraft does not reach a ground speed of at least 4 m/s within this number of seconds then the takeoff is aborted and the vehicle disarmed. If the value is zero then no timeout applies.",DisplayName:"Takeoff timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Standard"},TRIM_ARSPD_CM:{Description:"Target airspeed in cm/s in automatic throttle modes. Value is as an indicated (calibrated/apparent) airspeed.",DisplayName:"Target airspeed",Units:"cm/s",User:"Standard"},TRIM_PITCH_CD:{Description:"Offset applied to AHRS pitch used for in-flight pitch trimming. Correct ground leveling is better than changing this parameter.",DisplayName:"Pitch angle offset",Increment:"10",Range:{high:"4500",low:"-4500"},Units:"cdeg",User:"Advanced"},TRIM_THROTTLE:{Description:"Target percentage of throttle to apply for flight in automatic throttle modes and throttle percentage that maintains TRIM_ARSPD_CM. Caution: low battery voltages at the end of flights may require higher throttle to maintain airspeed.",DisplayName:"Throttle cruise percentage",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},USE_REV_THRUST:{Bitmask:{0:"AUTO_ALWAYS",1:"AUTO_LAND",2:"AUTO_LOITER_TO_ALT",3:"AUTO_LOITER_ALL",4:"AUTO_WAYPOINTS",5:"LOITER",6:"RTL",7:"CIRCLE",8:"CRUISE",9:"FBWB",10:"GUIDED",11:"AUTO_LANDING_PATTERN",12:"FBWA",13:"ACRO",14:"STABILIZE",15:"THERMAL"},Description:"This controls when to use reverse thrust. If set to zero then reverse thrust is never used. If set to a non-zero value then the bits correspond to flight stages where reverse thrust may be used. The most commonly used value for USE_REV_THRUST is 2, which means AUTO_LAND only. That enables reverse thrust in the landing stage of AUTO mode. Another common choice is 1, which means to use reverse thrust in all auto flight stages. Reverse thrust is always used in MANUAL mode if enabled with THR_MIN < 0. In non-autothrottle controlled modes, if reverse thrust is not used, then THR_MIN is effectively set to 0 for that mode.",DisplayName:"Bitmask for when to allow negative reverse thrust",User:"Advanced",Values:{0:"MANUAL ONLY",1:"AutoAlways",2:"AutoLanding"}},WP_LOITER_RAD:{Description:"Defines the distance from the waypoint center, the plane will maintain during a loiter. If you set this value to a negative number then the default loiter direction will be counter-clockwise instead of clockwise.",DisplayName:"Waypoint Loiter Radius",Increment:"1",Range:{high:"32767",low:"-32767"},Units:"m",User:"Standard"},WP_MAX_RADIUS:{Description:'Sets the maximum distance to a waypoint for the waypoint to be considered complete. This overrides the "cross the finish line" logic that is normally used to consider a waypoint complete. For normal AUTO behaviour this parameter should be set to zero. Using a non-zero value is only recommended when it is critical that the aircraft does approach within the given radius, and should loop around until it has done so. This can cause the aircraft to loop forever if its turn radius is greater than the maximum radius set.',DisplayName:"Waypoint Maximum Radius",Increment:"1",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},WP_RADIUS:{Description:'Defines the maximum distance from a waypoint that when crossed indicates the waypoint may be complete. To avoid the aircraft looping around the waypoint in case it misses by more than the WP_RADIUS an additional check is made to see if the aircraft has crossed a "finish line" passing through the waypoint and perpendicular to the flight path from the previous waypoint. If that finish line is crossed then the waypoint is considered complete. Note that the navigation controller may decide to turn later than WP_RADIUS before a waypoint, based on how sharp the turn is and the speed of the aircraft. It is safe to set WP_RADIUS much larger than the usual turn radius of your aircraft and the navigation controller will work out when to turn. If you set WP_RADIUS too small then you will tend to overshoot the turns.',DisplayName:"Waypoint Radius",Increment:"1",Range:{high:"32767",low:"1"},Units:"m",User:"Standard"}},uY={Q_ACCEL_Z:{Description:"The vertical acceleration used when pilot is controlling the altitude",DisplayName:"Pilot vertical acceleration",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s/s",User:"Standard"},Q_ACRO_PIT_RATE:{Description:"The maximum pitch rate at full stick deflection in QACRO mode",DisplayName:"QACRO mode pitch rate",Increment:"1",Range:{high:"500",low:"10"},Units:"deg/s",User:"Standard"},Q_ACRO_RLL_RATE:{Description:"The maximum roll rate at full stick deflection in QACRO mode",DisplayName:"QACRO mode roll rate",Increment:"1",Range:{high:"500",low:"10"},Units:"deg/s",User:"Standard"},Q_ACRO_YAW_RATE:{Description:"The maximum yaw rate at full stick deflection in QACRO mode",DisplayName:"QACRO mode yaw rate",Increment:"1",Range:{high:"500",low:"10"},Units:"deg/s",User:"Standard"},Q_ANGLE_MAX:{Description:"Maximum lean angle in all VTOL flight modes",DisplayName:"Angle Max",Increment:"10",Range:{high:"8000",low:"1000"},Units:"cdeg",User:"Advanced"},Q_ASSIST_ALT:{Description:"This is the altitude below which quadplane assistance will be triggered. This acts the same way as Q_ASSIST_ANGLE and Q_ASSIST_SPEED, but triggers if the aircraft drops below the given altitude while the VTOL motors are not running. A value of zero disables this feature. The altutude is calculated as being above ground level. The height above ground is given from a Lidar used if available and RNGFND_LANDING=1. Otherwise it comes from terrain data if TERRAIN_FOLLOW=1 and comes from height above home otherwise.",DisplayName:"Quadplane assistance altitude",Increment:"1",Range:{high:"120",low:"0"},Units:"m",User:"Standard"},Q_ASSIST_ANGLE:{Description:"This is the angular error in attitude beyond which the quadplane VTOL motors will provide stability assistance. This will only be used if Q_ASSIST_SPEED is also non-zero. Assistance will be given if the attitude is outside the normal attitude limits by at least 5 degrees and the angular error in roll or pitch is greater than this angle for at least Q_ASSIST_DELAY seconds. Set to zero to disable angle assistance.",DisplayName:"Quadplane assistance angle",Increment:"1",Range:{high:"90",low:"0"},Units:"deg",User:"Standard"},Q_ASSIST_DELAY:{Description:"This is delay between the assistance thresholds being met and the assistance starting.",DisplayName:"Quadplane assistance delay",Increment:"0.1",Range:{high:"2",low:"0"},Units:"s",User:"Standard"},Q_ASSIST_SPEED:{Description:"This is the speed below which the quad motors will provide stability and lift assistance in fixed wing modes. Zero means no assistance except during transition. Note that if this is set to zero then other Q_ASSIST features are also disabled. A higher value will lead to more false positives which can waste battery. A lower value will result in less false positive, but will result in assistance taking longer to trigger. If unsure then set to 3 m/s below the minimum airspeed you will fly at. If you don't have an airspeed sensor then use 5 m/s below the minimum airspeed you fly at. If you want to disable the arming check Q_ASSIST_SPEED then set to -1.",DisplayName:"Quadplane assistance speed",Increment:"0.1",Range:{high:"100",low:"0"},Units:"m/s",User:"Standard"},Q_BACKTRANS_MS:{Description:"Pitch angle will increase from 0 to angle max over this duration when switching into VTOL flight in a postion control mode. 0 Disables.",DisplayName:"SLT and Tiltrotor back transition pitch limit duration",Range:{high:"10000",low:"0"},Units:"ms"},Q_ENABLE:{Description:"This enables QuadPlane functionality, assuming multicopter motors start on output 5. If this is set to 2 then when starting AUTO mode it will initially be in VTOL AUTO mode.",DisplayName:"Enable QuadPlane",RebootRequired:"True",User:"Standard",Values:{0:"Disable",1:"Enable",2:"Enable VTOL AUTO"}},Q_ESC_CAL:{Description:"This is used to calibrate the throttle range of the VTOL motors. Please read https://ardupilot.org/plane/docs/quadplane-esc-calibration.html before using. This parameter is automatically set back to 0 on every boot. This parameter only takes effect in QSTABILIZE mode. When set to 1 the output of all motors will come directly from the throttle stick when armed, and will be zero when disarmed. When set to 2 the output of all motors will be maximum when armed and zero when disarmed. Make sure you remove all properllers before using.",DisplayName:"ESC Calibration",User:"Standard",Values:{0:"Disabled",1:"ThrottleInput",2:"FullInput"}},Q_FRAME_CLASS:{Description:"Controls major frame class for multicopter component",DisplayName:"Frame Class",User:"Standard",Values:{0:"Undefined",1:"Quad",2:"Hexa",3:"Octa",4:"OctaQuad",5:"Y6",7:"Tri",10:"Single/Dual",12:"DodecaHexa",14:"Deca",15:"Scripting Matrix",17:"Dynamic Scripting Matrix"}},Q_FRAME_TYPE:{Description:"Controls motor mixing for multicopter component",DisplayName:"Frame Type (+, X or V)",User:"Standard",Values:{0:"Plus",1:"X",2:"V",3:"H",4:"V-Tail",5:"A-Tail",10:"Y6B",11:"Y6F",12:"BetaFlightX",13:"DJIX",14:"ClockwiseX",15:"I",16:"MOTOR_FRAME_TYPE_NYT_PLUS",17:"MOTOR_FRAME_TYPE_NYT_X",18:"BetaFlightXReversed"}},Q_FWD_MANTHR_MAX:{Description:"Maximum value for manual forward throttle; used with RC option FWD_THR (209)",DisplayName:"VTOL manual forward throttle max percent",Range:{high:"100",low:"0"}},Q_FW_LND_APR_RAD:{Description:"This provides the radius used, when using a fixed wing landing approach. If set to 0 then the WP_LOITER_RAD will be selected.",DisplayName:"Quadplane fixed wing landing approach radius",Increment:"5",Range:{high:"200",low:"0"},Units:"m",User:"Advanced"},Q_GUIDED_MODE:{Description:"This enables use of VTOL in guided mode. When enabled the aircraft will switch to VTOL flight when the guided destination is reached and hover at the destination.",DisplayName:"Enable VTOL in GUIDED mode",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},Q_LAND_ALTCHG:{Description:"The maximum altitude change allowed during land detection. You can raise this value if you find that landing detection takes a long time to complete. It is the maximum change in altitude over a period of 4 seconds for landing to be detected",DisplayName:"Land detection altitude change threshold",Increment:"0.05",Range:{high:"0.6",low:"0.1"},Units:"m",User:"Standard"},Q_LAND_FINAL_ALT:{Description:"The altitude at which we should switch to Q_LAND_SPEED descent rate",DisplayName:"Land final altitude",Increment:"0.1",Range:{high:"50",low:"0.5"},Units:"m",User:"Standard"},Q_LAND_ICE_CUT:{Description:"This controls stopping an internal combustion engine in the final landing stage of a VTOL. This is important for aircraft where the forward thrust engine may experience prop-strike if left running during landing. This requires the engine controls are enabled using the ICE_* parameters.",DisplayName:"Cut IC engine on landing",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},Q_LAND_SPEED:{Description:"The descent speed for the final stage of landing in cm/s",DisplayName:"Land speed",Increment:"10",Range:{high:"200",low:"30"},Units:"cm/s",User:"Standard"},Q_MAV_TYPE:{Description:"This controls the mavlink type given in HEARTBEAT messages. For some GCS types a particular setting will be needed for correct operation.",DisplayName:"MAVLink type identifier",Values:{0:"AUTO",1:"FIXED_WING",2:"QUADROTOR",3:"COAXIAL",4:"HELICOPTER",7:"AIRSHIP",8:"FREE_BALLOON",9:"ROCKET",10:"GROUND_ROVER",11:"SURFACE_BOAT",12:"SUBMARINE",16:"FLAPPING_WING",17:"KITE",19:"VTOL_DUOROTOR",20:"VTOL_QUADROTOR",21:"VTOL_TILTROTOR"}},Q_NAVALT_MIN:{Description:"This is the altitude in meters above which navigation begins in auto takeoff. Below this altitude the target roll and pitch will be zero. A value of zero disables the feature",DisplayName:"Minimum navigation altitude",Range:{high:"5",low:"0"},User:"Advanced"},Q_OPTIONS:{Bitmask:{0:"Level Transition",1:"Allow FW Takeoff",2:"Allow FW Land",3:"Vtol Takeoff Frame",4:"Always use FW spiral approach",5:"Use QRTL",6:"Use Governor",7:"Force Qassist",8:"Mtrs_Only_Qassist",10:"Disarmed Yaw Tilt",11:"Delay Spoolup",12:"disable Qassist based on synthetic airspeed",13:"Disable Ground Effect Compensation",14:"Ignore forward flight angle limits in Qmodes",15:"ThrLandControl",16:"DisableApproach",17:"EnableLandReposition",18:"ARMVtol",19:"CompleteTransition if Q_TRANS_FAIL",20:"Force RTL mode on VTOL failsafes overriding bit 5(USE QRTL)"},Description:"Level Transition:Keep wings within LEVEL_ROLL_LIMIT and only use forward motor(s) for climb during transition, Allow FW Takeoff: If bit is not set then NAV_TAKEOFF command on quadplanes will instead perform a NAV_VTOL takeoff, Allow FW Land:If bit is not set then NAV_LAND command on quadplanes will instead perform a NAV_VTOL_LAND, Vtol Takeoff Frame: command NAV_VTOL_TAKEOFF altitude is as set by the command's reference frame rather than a delta above current location, Always use FW spiral approach:Always use Use a fixed wing spiral approach for VTOL landings, USE QRTL:instead of QLAND for rc failsafe when in VTOL modes, Use Governor:Use ICE Idle Governor in MANUAL for forward motor, Force Qassist: on always,Mtrs_Only_Qassist: in tailsitters only, uses VTOL motors and not flying surfaces for QASSIST, Airmode_On_Arm:Airmode enabled when arming by aux switch, Disarmed Yaw Tilt:Enable motor tilt for yaw when disarmed, Delay Spoolup:Delay VTOL spoolup for 2 seconds after arming, ThrLandControl: enable throttle stick control of landing rate, DisableApproach: Disable use of approach and airbrake stages in VTOL landing, EnableLandResposition: enable pilot controlled repositioning in AUTO land. Descent will pause while repositioning. ARMVTOL: Arm only in VTOL or AUTO modes. CompleteTransition: to fixed wing if Q_TRANS_FAIL timer times out instead of QLAND. Force RTL mode: forces RTL mode on rc failsafe in VTOL modes overriding bit 5(USE_QRTL).",DisplayName:"quadplane options"},Q_PLT_Y_EXPO:{Description:"Pilot controlled yaw expo to allow faster rotation when stick at edges",DisplayName:"Pilot controlled yaw expo",Range:{high:"1.0",low:"-0.5"},User:"Advanced",Values:{0:"Disabled","0.1":"Very Low","0.2":"Low","0.3":"Medium","0.4":"High","0.5":"Very High"}},Q_PLT_Y_RATE:{Description:"Pilot controlled yaw rate max. Used in all pilot controlled modes except QAcro",DisplayName:"Pilot controlled yaw rate",Range:{high:"360",low:"1"},Units:"deg/s",User:"Standard"},Q_PLT_Y_RATE_TC:{Description:"Pilot yaw rate control input time constant. Low numbers lead to sharper response, higher numbers to softer response.",DisplayName:"Pilot yaw rate control input time constant",Increment:"0.01",Range:{high:"1",low:"0"},Units:"s",User:"Standard",Values:{"0.05":"Very Crisp","0.1":"Crisp","0.15":"Medium","0.2":"Soft","0.5":"Very Soft"}},Q_RC_SPEED:{Description:"This is the PWM refresh rate in Hz for QuadPlane quad motors",DisplayName:"RC output speed in Hz",Increment:"10",Range:{high:"500",low:"50"},Units:"Hz",User:"Standard"},Q_RTL_ALT:{Description:"The altitude which QRTL mode heads to initially",DisplayName:"QRTL return altitude",Increment:"1",Range:{high:"200",low:"1"},Units:"m",User:"Standard"},Q_RTL_MODE:{Description:"If this is set to 1 then an RTL will change to QRTL when within RTL_RADIUS meters of the RTL destination, VTOL approach: vehicle will RTL at RTL alt and circle with a radius of Q_FW_LND_APR_RAD down to Q_RTL_ALT and then transition into the wind and QRTL, see 'AUTO VTOL Landing', QRTL Always: do a QRTL instead of RTL",DisplayName:"VTOL RTL mode",User:"Standard",Values:{0:"Disabled",1:"Enabled",2:"VTOL approach",3:"QRTL Always"}},Q_THROTTLE_EXPO:{Description:"Amount of curvature in throttle curve: 0 is linear, 1 is cubic",DisplayName:"Throttle expo strength",Increment:".1",Range:{high:"1",low:"0"},User:"Advanced"},Q_TKOFF_ARSP_LIM:{Description:"Airspeed limit during takeoff. If the airspeed exceeds this level the vehicle will switch to QLAND. This is useful for ensuring that you don't takeoff into excessively strong wind. If set to 0 there is no limit on airspeed during takeoff.",DisplayName:"Takeoff airspeed limit",Increment:"1",Range:{high:"20",low:"0"},Units:"m/s",User:"Advanced"},Q_TKOFF_FAIL_SCL:{Description:"Scalar for how long past the expected takeoff time a takeoff should be considered as failed and the vehicle will switch to QLAND. If set to 0 there is no limit on takeoff time.",DisplayName:"Takeoff time failure scalar",Increment:"5.1",Range:{high:"5.0",low:"1.1"},User:"Advanced"},Q_TRANSITION_MS:{Description:"Transition time in milliseconds after minimum airspeed is reached",DisplayName:"Transition time",Range:{high:"30000",low:"1"},Units:"ms",User:"Advanced"},Q_TRANS_DECEL:{Description:"This is deceleration rate that will be used in calculating the stopping distance when transitioning from fixed wing flight to multicopter flight.",DisplayName:"Transition deceleration",Increment:"0.1",Range:{high:"5",low:"0.2"},Units:"m/s/s",User:"Standard"},Q_TRANS_FAIL:{Description:"Maximum time allowed for forward transitions, exceeding this time will cancel the transition and the aircraft will immediately change to the mode set by Q_TRANS_FAIL_ACT or finish the transition depending on Q_OPTIONS bit 19. 0 for no limit.",DisplayName:"Quadplane transition failure time",Increment:"1",Range:{high:"20",low:"0"},Units:"s",User:"Advanced"},Q_TRANS_FAIL_ACT:{Description:"This sets the mode that is changed to when Q_TRANS_FAIL time elapses, if set. See also Q_OPTIONS bit 19: CompleteTransition if Q_TRANS_FAIL",DisplayName:"Quadplane transition failure action",Values:{0:"QLand",1:"QRTL","-1":"Warn only"}},Q_TRAN_PIT_MAX:{Description:"Maximum pitch during transition to auto fixed wing flight",DisplayName:"Transition max pitch",Increment:"1",Range:{high:"30",low:"0"},Units:"deg",User:"Standard"},Q_TRIM_PITCH:{Description:"This sets the compensation for the pitch angle trim difference between calibrated AHRS level and vertical flight pitch. NOTE! this is relative to calibrated AHRS trim, not forward flight trim which includes TRIM_PITCH_CD. For tailsitters, this is relative to a baseline of 90 degrees in AHRS.",DisplayName:"Quadplane AHRS trim pitch",Increment:"0.1",Range:{high:"+10",low:"-10"},RebootRequired:"True",Units:"deg",User:"Advanced"},Q_VELZ_MAX:{Description:"The maximum ascending vertical velocity the pilot may request in cm/s",DisplayName:"Pilot maximum vertical speed up",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s",User:"Standard"},Q_VELZ_MAX_DN:{Description:"The maximum vertical velocity the pilot may request in cm/s going down. If 0, uses Q_VELZ_MAX value.",DisplayName:"Pilot maximum vertical speed down",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s",User:"Standard"},Q_VFWD_ALT:{Description:"Controls altitude to disable forward velocity assist when below this relative altitude. This is useful to keep the forward velocity propeller from hitting the ground. Rangefinder height data is incorporated when available.",DisplayName:"Forward velocity alt cutoff",Increment:"0.25",Range:{high:"10",low:"0"},Units:"m",User:"Standard"},Q_VFWD_GAIN:{Description:"Controls use of forward motor in vtol modes. If this is zero then the forward motor will not be used for position control in VTOL modes. A value of 0.05 is a good place to start if you want to use the forward motor for position control. No forward motor will be used in QSTABILIZE or QHOVER modes. Use QLOITER for position hold with the forward motor.",DisplayName:"Forward velocity hold gain",Increment:"0.01",Range:{high:"0.5",low:"0"},User:"Standard"},Q_YAW_RATE_MAX:{Description:"This is the maximum yaw rate for pilot input on rudder stick in degrees/second",DisplayName:"Maximum yaw rate",Increment:"1",Range:{high:"500",low:"50"},Units:"deg/s",User:"Standard"}},hY={Q_AUTOTUNE_AGGR:{Description:"Autotune aggressiveness. Defines the bounce back used to detect size of the D term.",DisplayName:"Autotune aggressiveness",Range:{high:"0.10",low:"0.05"},User:"Standard"},Q_AUTOTUNE_AXES:{Bitmask:{0:"Roll",1:"Pitch",2:"Yaw"},Description:"1-byte bitmap of axes to autotune",DisplayName:"Autotune axis bitmask",User:"Standard"},Q_AUTOTUNE_MIN_D:{Description:"Defines the minimum D gain",DisplayName:"AutoTune minimum D",Range:{high:"0.006",low:"0.001"},User:"Standard"}},pY={Q_A_ACCEL_P_MAX:{Description:"Maximum acceleration in pitch axis",DisplayName:"Acceleration Max for Pitch",Increment:"1000",Range:{high:"180000",low:"0"},Units:"cdeg/s/s",User:"Advanced",Values:{0:"Disabled",3e4:"VerySlow",72e3:"Slow",108e3:"Medium",162e3:"Fast"}},Q_A_ACCEL_R_MAX:{Description:"Maximum acceleration in roll axis",DisplayName:"Acceleration Max for Roll",Increment:"1000",Range:{high:"180000",low:"0"},Units:"cdeg/s/s",User:"Advanced",Values:{0:"Disabled",3e4:"VerySlow",72e3:"Slow",108e3:"Medium",162e3:"Fast"}},Q_A_ACCEL_Y_MAX:{Description:"Maximum acceleration in yaw axis",DisplayName:"Acceleration Max for Yaw",Increment:"1000",Range:{high:"72000",low:"0"},Units:"cdeg/s/s",User:"Advanced",Values:{0:"Disabled",9e3:"VerySlow",18e3:"Slow",36e3:"Medium",54e3:"Fast"}},Q_A_ANGLE_BOOST:{Description:"Angle Boost increases output throttle as the vehicle leans to reduce loss of altitude",DisplayName:"Angle Boost",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},Q_A_ANG_LIM_TC:{Description:"Angle Limit (to maintain altitude) Time Constant",DisplayName:"Angle Limit (to maintain altitude) Time Constant",Range:{high:"10.0",low:"0.5"},User:"Advanced"},Q_A_ANG_PIT_P:{Description:"Pitch axis angle controller P gain. Converts the error between the desired pitch angle and actual angle to a desired pitch rate",DisplayName:"Pitch axis angle controller P gain",Range:{high:"12.000",low:"3.000"},User:"Standard"},Q_A_ANG_RLL_P:{Description:"Roll axis angle controller P gain. Converts the error between the desired roll angle and actual angle to a desired roll rate",DisplayName:"Roll axis angle controller P gain",Range:{high:"12.000",low:"3.000"},User:"Standard"},Q_A_ANG_YAW_P:{Description:"Yaw axis angle controller P gain. Converts the error between the desired yaw angle and actual angle to a desired yaw rate",DisplayName:"Yaw axis angle controller P gain",Range:{high:"12.000",low:"3.000"},User:"Standard"},Q_A_INPUT_TC:{Description:"Attitude control input time constant. Low numbers lead to sharper response, higher numbers to softer response",DisplayName:"Attitude control input time constant",Increment:"0.01",Range:{high:"1",low:"0"},Units:"s",User:"Standard",Values:{"0.05":"Very Crisp","0.1":"Crisp","0.15":"Medium","0.2":"Soft","0.5":"Very Soft"}},Q_A_RATE_FF_ENAB:{Description:"Controls whether body-frame rate feedfoward is enabled or disabled",DisplayName:"Rate Feedforward Enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},Q_A_RATE_P_MAX:{Description:"Maximum angular velocity in pitch axis",DisplayName:"Angular Velocity Max for Pitch",Increment:"1",Range:{high:"1080",low:"0"},Units:"deg/s",User:"Advanced",Values:{0:"Disabled",60:"Slow",180:"Medium",360:"Fast"}},Q_A_RATE_R_MAX:{Description:"Maximum angular velocity in roll axis",DisplayName:"Angular Velocity Max for Roll",Increment:"1",Range:{high:"1080",low:"0"},Units:"deg/s",User:"Advanced",Values:{0:"Disabled",60:"Slow",180:"Medium",360:"Fast"}},Q_A_RATE_Y_MAX:{Description:"Maximum angular velocity in yaw axis",DisplayName:"Angular Velocity Max for Yaw",Increment:"1",Range:{high:"1080",low:"0"},Units:"deg/s",User:"Advanced",Values:{0:"Disabled",60:"Slow",180:"Medium",360:"Fast"}},Q_A_RAT_PIT_D:{Description:"Pitch axis rate controller D gain. Compensates for short-term change in desired pitch rate vs actual pitch rate",DisplayName:"Pitch axis rate controller D gain",Increment:"0.001",Range:{high:"0.05",low:"0.0"},User:"Standard"},Q_A_RAT_PIT_FF:{Description:"Pitch axis rate controller feed forward",DisplayName:"Pitch axis rate controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0"},User:"Standard"},Q_A_RAT_PIT_FLTD:{Description:"Pitch axis rate controller derivative frequency in Hz",DisplayName:"Pitch axis rate controller derivative frequency in Hz",Increment:"1",Range:{high:"100",low:"5"},Units:"Hz",User:"Standard"},Q_A_RAT_PIT_FLTE:{Description:"Pitch axis rate controller error frequency in Hz",DisplayName:"Pitch axis rate controller error frequency in Hz",Increment:"1",Range:{high:"100",low:"0"},Units:"Hz",User:"Standard"},Q_A_RAT_PIT_FLTT:{Description:"Pitch axis rate controller target frequency in Hz",DisplayName:"Pitch axis rate controller target frequency in Hz",Increment:"1",Range:{high:"100",low:"5"},Units:"Hz",User:"Standard"},Q_A_RAT_PIT_I:{Description:"Pitch axis rate controller I gain. Corrects long-term difference in desired pitch rate vs actual pitch rate",DisplayName:"Pitch axis rate controller I gain",Increment:"0.01",Range:{high:"2.0",low:"0.01"},User:"Standard"},Q_A_RAT_PIT_IMAX:{Description:"Pitch axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Pitch axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},Q_A_RAT_PIT_P:{Description:"Pitch axis rate controller P gain. Converts the difference between desired pitch rate and actual pitch rate into a motor speed output",DisplayName:"Pitch axis rate controller P gain",Increment:"0.005",Range:{high:"0.50",low:"0.01"},User:"Standard"},Q_A_RAT_PIT_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Pitch slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},Q_A_RAT_RLL_D:{Description:"Roll axis rate controller D gain. Compensates for short-term change in desired roll rate vs actual roll rate",DisplayName:"Roll axis rate controller D gain",Increment:"0.001",Range:{high:"0.05",low:"0.0"},User:"Standard"},Q_A_RAT_RLL_FF:{Description:"Roll axis rate controller feed forward",DisplayName:"Roll axis rate controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0"},User:"Standard"},Q_A_RAT_RLL_FLTD:{Description:"Roll axis rate controller derivative frequency in Hz",DisplayName:"Roll axis rate controller derivative frequency in Hz",Increment:"1",Range:{high:"100",low:"5"},Units:"Hz",User:"Standard"},Q_A_RAT_RLL_FLTE:{Description:"Roll axis rate controller error frequency in Hz",DisplayName:"Roll axis rate controller error frequency in Hz",Increment:"1",Range:{high:"100",low:"0"},Units:"Hz",User:"Standard"},Q_A_RAT_RLL_FLTT:{Description:"Roll axis rate controller target frequency in Hz",DisplayName:"Roll axis rate controller target frequency in Hz",Increment:"1",Range:{high:"100",low:"5"},Units:"Hz",User:"Standard"},Q_A_RAT_RLL_I:{Description:"Roll axis rate controller I gain. Corrects long-term difference in desired roll rate vs actual roll rate",DisplayName:"Roll axis rate controller I gain",Increment:"0.01",Range:{high:"2.0",low:"0.01"},User:"Standard"},Q_A_RAT_RLL_IMAX:{Description:"Roll axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Roll axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},Q_A_RAT_RLL_P:{Description:"Roll axis rate controller P gain. Converts the difference between desired roll rate and actual roll rate into a motor speed output",DisplayName:"Roll axis rate controller P gain",Increment:"0.005",Range:{high:"0.5",low:"0.01"},User:"Standard"},Q_A_RAT_RLL_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Roll slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},Q_A_RAT_YAW_D:{Description:"Yaw axis rate controller D gain. Compensates for short-term change in desired yaw rate vs actual yaw rate",DisplayName:"Yaw axis rate controller D gain",Increment:"0.001",Range:{high:"0.02",low:"0.000"},User:"Standard"},Q_A_RAT_YAW_FF:{Description:"Yaw axis rate controller feed forward",DisplayName:"Yaw axis rate controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0"},User:"Standard"},Q_A_RAT_YAW_FLTD:{Description:"Yaw axis rate controller derivative frequency in Hz",DisplayName:"Yaw axis rate controller derivative frequency in Hz",Increment:"1",Range:{high:"50",low:"5"},Units:"Hz",User:"Standard"},Q_A_RAT_YAW_FLTE:{Description:"Yaw axis rate controller error frequency in Hz",DisplayName:"Yaw axis rate controller error frequency in Hz",Increment:"1",Range:{high:"20",low:"0"},Units:"Hz",User:"Standard"},Q_A_RAT_YAW_FLTT:{Description:"Yaw axis rate controller target frequency in Hz",DisplayName:"Yaw axis rate controller target frequency in Hz",Increment:"1",Range:{high:"50",low:"1"},Units:"Hz",User:"Standard"},Q_A_RAT_YAW_I:{Description:"Yaw axis rate controller I gain. Corrects long-term difference in desired yaw rate vs actual yaw rate",DisplayName:"Yaw axis rate controller I gain",Increment:"0.01",Range:{high:"1.0",low:"0.010"},User:"Standard"},Q_A_RAT_YAW_IMAX:{Description:"Yaw axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Yaw axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},Q_A_RAT_YAW_P:{Description:"Yaw axis rate controller P gain. Converts the difference between desired yaw rate and actual yaw rate into a motor speed output",DisplayName:"Yaw axis rate controller P gain",Increment:"0.005",Range:{high:"2.50",low:"0.10"},User:"Standard"},Q_A_RAT_YAW_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Yaw slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},Q_A_SLEW_YAW:{Description:"Maximum rate the yaw target can be updated in Loiter, RTL, Auto flight modes",DisplayName:"Yaw target slew rate",Increment:"100",Range:{high:"18000",low:"500"},Units:"cdeg/s",User:"Advanced"},Q_A_THR_MIX_MAN:{Description:"Throttle vs attitude control prioritisation used during manual flight (higher values mean we prioritise attitude control over throttle)",DisplayName:"Throttle Mix Manual",Range:{high:"0.9",low:"0.1"},User:"Advanced"},Q_A_THR_MIX_MAX:{Description:"Throttle vs attitude control prioritisation used during active flight (higher values mean we prioritise attitude control over throttle)",DisplayName:"Throttle Mix Maximum",Range:{high:"0.9",low:"0.5"},User:"Advanced"},Q_A_THR_MIX_MIN:{Description:"Throttle vs attitude control prioritisation used when landing (higher values mean we prioritise attitude control over throttle)",DisplayName:"Throttle Mix Minimum",Range:{high:"0.25",low:"0.1"},User:"Advanced"}},fY={Q_LOIT_ACC_MAX:{Description:"Loiter maximum correction acceleration in cm/s/s. Higher values cause the copter to correct position errors more aggressively.",DisplayName:"Loiter maximum correction acceleration",Increment:"1",Range:{high:"981",low:"100"},Units:"cm/s/s",User:"Advanced"},Q_LOIT_ANG_MAX:{Description:"Loiter maximum pilot requested lean angle. Set to zero for 2/3 of Q_P_ANGLE_MAX/Q_ANGLE_MAX. The maximum vehicle lean angle is still limited by Q_P_ANGLE_MAX/Q_ANGLE_MAX",DisplayName:"Loiter pilot angle max",Increment:"1",Range:{high:"45",low:"0"},Units:"deg",User:"Advanced"},Q_LOIT_BRK_ACCEL:{Description:"Loiter braking acceleration in cm/s/s. Higher values stop the copter more quickly when the stick is centered.",DisplayName:"Loiter braking acceleration",Increment:"1",Range:{high:"250",low:"25"},Units:"cm/s/s",User:"Advanced"},Q_LOIT_BRK_DELAY:{Description:"Loiter brake start delay (in seconds)",DisplayName:"Loiter brake start delay (in seconds)",Increment:"0.1",Range:{high:"2",low:"0"},Units:"s",User:"Advanced"},Q_LOIT_BRK_JERK:{Description:"Loiter braking jerk in cm/s/s/s. Higher values will remove braking faster if the pilot moves the sticks during a braking maneuver.",DisplayName:"Loiter braking jerk",Increment:"1",Range:{high:"5000",low:"500"},Units:"cm/s/s/s",User:"Advanced"},Q_LOIT_SPEED:{Description:"Defines the maximum speed in cm/s which the aircraft will travel horizontally while in loiter mode",DisplayName:"Loiter Horizontal Maximum Speed",Increment:"50",Range:{high:"3500",low:"20"},Units:"cm/s",User:"Standard"}},VY={Q_M_BAT_CURR_MAX:{Description:"Maximum current over which maximum throttle is limited (0 = Disabled)",DisplayName:"Motor Current Max",Range:{high:"200",low:"0"},Units:"A",User:"Advanced"},Q_M_BAT_CURR_TC:{Description:"Time constant used to limit the maximum current",DisplayName:"Motor Current Max Time Constant",Range:{high:"10",low:"0"},Units:"s",User:"Advanced"},Q_M_BAT_IDX:{Description:"Which battery monitor should be used for doing compensation",DisplayName:"Battery compensation index",User:"Advanced",Values:{0:"First battery",1:"Second battery"}},Q_M_BAT_VOLT_MAX:{Description:"Battery voltage compensation maximum voltage (voltage above this will have no additional scaling effect on thrust). Recommend 4.2 * cell count, 0 = Disabled",DisplayName:"Battery voltage compensation maximum voltage",Range:{high:"53",low:"6"},Units:"V",User:"Advanced"},Q_M_BAT_VOLT_MIN:{Description:"Battery voltage compensation minimum voltage (voltage below this will have no additional scaling effect on thrust). Recommend 3.3 * cell count, 0 = Disabled",DisplayName:"Battery voltage compensation minimum voltage",Range:{high:"42",low:"6"},Units:"V",User:"Advanced"},Q_M_BOOST_SCALE:{Description:"Booster motor output scaling factor vs main throttle. The output to the BoostThrottle servo will be the main throttle times this scaling factor. A higher scaling factor will put more of the load on the booster motor. A value of 1 will set the BoostThrottle equal to the main throttle.",DisplayName:"Motor boost scale",Increment:"0.1",Range:{high:"5",low:"0"},User:"Advanced"},Q_M_HOVER_LEARN:{Description:"Enable/Disable automatic learning of hover throttle",DisplayName:"Hover Value Learning",User:"Advanced",Values:{0:"Disabled",1:"Learn",2:"Learn and Save"}},Q_M_PWM_MAX:{Description:"This sets the max PWM value in microseconds that will ever be output to the motors",DisplayName:"PWM output maximum",Range:{high:"2000",low:"0"},Units:"PWM",User:"Advanced"},Q_M_PWM_MIN:{Description:"This sets the min PWM output value in microseconds that will ever be output to the motors",DisplayName:"PWM output minimum",Range:{high:"2000",low:"0"},Units:"PWM",User:"Advanced"},Q_M_PWM_TYPE:{Description:"This selects the output PWM type, allowing for normal PWM continuous output, OneShot, brushed or DShot motor output",DisplayName:"Output PWM type",RebootRequired:"True",User:"Advanced",Values:{0:"Normal",1:"OneShot",2:"OneShot125",3:"Brushed",4:"DShot150",5:"DShot300",6:"DShot600",7:"DShot1200",8:"PWMRange"}},Q_M_SAFE_DISARM:{Description:"Disables motor PWM output when disarmed",DisplayName:"Motor PWM output disabled when disarmed",User:"Advanced",Values:{0:"PWM enabled while disarmed",1:"PWM disabled while disarmed"}},Q_M_SAFE_TIME:{Description:"Time taken to disable and enable the motor PWM output when disarmed and armed.",DisplayName:"Time taken to disable and enable the motor PWM output when disarmed and armed.",Increment:"0.001",Range:{high:"5",low:"0"},Units:"s",User:"Advanced"},Q_M_SLEW_DN_TIME:{Description:"Time in seconds to slew output from full to zero. This is used to limit the rate at which output can change. Range is constrained between 0 and 0.5.",DisplayName:"Output slew time for decreasing throttle",Increment:"0.001",Range:{high:".5",low:"0"},Units:"s",User:"Advanced"},Q_M_SLEW_UP_TIME:{Description:"Time in seconds to slew output from zero to full. This is used to limit the rate at which output can change. Range is constrained between 0 and 0.5.",DisplayName:"Output slew time for increasing throttle",Increment:"0.001",Range:{high:".5",low:"0"},Units:"s",User:"Advanced"},Q_M_SPIN_ARM:{Description:"Point at which the motors start to spin expressed as a number from 0 to 1 in the entire output range. Should be lower than MOT_SPIN_MIN.",DisplayName:"Motor Spin armed",User:"Advanced",Values:{"0.0":"Low","0.1":"Default","0.2":"High"}},Q_M_SPIN_MAX:{Description:"Point at which the thrust saturates expressed as a number from 0 to 1 in the entire output range",DisplayName:"Motor Spin maximum",User:"Advanced",Values:{"0.9":"Low","0.95":"Default","1.0":"High"}},Q_M_SPIN_MIN:{Description:"Point at which the thrust starts expressed as a number from 0 to 1 in the entire output range. Should be higher than MOT_SPIN_ARM.",DisplayName:"Motor Spin minimum",User:"Advanced",Values:{"0.0":"Low","0.15":"Default","0.25":"High"}},Q_M_SPOOL_TIME:{Description:"Time in seconds to spool up the motors from zero to min throttle. ",DisplayName:"Spool up time",Increment:"0.1",Range:{high:"2",low:"0"},Units:"s",User:"Advanced"},Q_M_THST_EXPO:{Description:"Motor thrust curve exponent (0.0 for linear to 1.0 for second order curve)",DisplayName:"Thrust Curve Expo",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},Q_M_THST_HOVER:{Description:"Motor thrust needed to hover expressed as a number from 0 to 1",DisplayName:"Thrust Hover Value",Range:{high:"0.8",low:"0.2"},User:"Advanced"},Q_M_YAW_HEADROOM:{Description:"Yaw control is given at least this pwm in microseconds range",DisplayName:"Matrix Yaw Min",Range:{high:"500",low:"0"},Units:"PWM",User:"Advanced"},Q_M_YAW_SV_ANGLE:{Description:"Yaw servo's maximum lean angle (Tricopter only)",DisplayName:"Yaw Servo Max Lean Angle",Increment:"1",Range:{high:"80",low:"5"},Units:"deg",User:"Standard"}},LY={Q_P_ACCZ_D:{Description:"Acceleration (vertical) controller D gain. Compensates for short-term change in desired vertical acceleration vs actual acceleration",DisplayName:"Acceleration (vertical) controller D gain",Range:{high:"0.400",low:"0.000"},User:"Standard"},Q_P_ACCZ_FF:{Description:"Acceleration (vertical) controller feed forward",DisplayName:"Acceleration (vertical) controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0"},User:"Standard"},Q_P_ACCZ_FLTD:{Description:"Acceleration (vertical) controller derivative frequency in Hz",DisplayName:"Acceleration (vertical) controller derivative frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},Q_P_ACCZ_FLTE:{Description:"Acceleration (vertical) controller error frequency in Hz",DisplayName:"Acceleration (vertical) controller error frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},Q_P_ACCZ_FLTT:{Description:"Acceleration (vertical) controller target frequency in Hz",DisplayName:"Acceleration (vertical) controller target frequency in Hz",Increment:"1",Range:{high:"50",low:"1"},Units:"Hz",User:"Standard"},Q_P_ACCZ_I:{Description:"Acceleration (vertical) controller I gain. Corrects long-term difference in desired vertical acceleration and actual acceleration",DisplayName:"Acceleration (vertical) controller I gain",Range:{high:"3.000",low:"0.000"},User:"Standard"},Q_P_ACCZ_IMAX:{Description:"Acceleration (vertical) controller I gain maximum. Constrains the maximum pwm that the I term will generate",DisplayName:"Acceleration (vertical) controller I gain maximum",Range:{high:"1000",low:"0"},Units:"d%",User:"Standard"},Q_P_ACCZ_P:{Description:"Acceleration (vertical) controller P gain. Converts the difference between desired vertical acceleration and actual acceleration into a motor output",DisplayName:"Acceleration (vertical) controller P gain",Increment:"0.05",Range:{high:"1.500",low:"0.200"},User:"Standard"},Q_P_ACCZ_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Accel (vertical) slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},Q_P_ACC_XY_FILT:{Description:"Lower values will slow the response of the navigation controller and reduce twitchiness",DisplayName:"XY Acceleration filter cutoff frequency",Increment:"0.1",Range:{high:"5",low:"0.5"},Units:"Hz",User:"Advanced"},Q_P_ANGLE_MAX:{Description:"Maximum lean angle autopilot can request. Set to zero to use ANGLE_MAX parameter value",DisplayName:"Position Control Angle Max",Increment:"1",Range:{high:"45",low:"0"},Units:"deg",User:"Advanced"},Q_P_JERK_XY:{Description:"Jerk limit of the horizontal kinematic path generation used to determine how quickly the aircraft varies the acceleration target",DisplayName:"Jerk limit for the horizontal kinematic input shaping",Increment:"1",Range:{high:"20",low:"1"},Units:"m/s/s/s",User:"Advanced"},Q_P_JERK_Z:{Description:"Jerk limit of the vertical kinematic path generation used to determine how quickly the aircraft varies the acceleration target",DisplayName:"Jerk limit for the vertical kinematic input shaping",Increment:"1",Range:{high:"50",low:"5"},Units:"m/s/s/s",User:"Advanced"},Q_P_POSXY_P:{Description:"Position controller P gain. Converts the distance (in the latitude direction) to the target location into a desired speed which is then passed to the loiter latitude rate controller",DisplayName:"Position (horizontal) controller P gain",Range:{high:"2.000",low:"0.500"},User:"Standard"},Q_P_POSZ_P:{Description:"Position (vertical) controller P gain. Converts the difference between the desired altitude and actual altitude into a climb or descent rate which is passed to the throttle rate controller",DisplayName:"Position (vertical) controller P gain",Range:{high:"3.000",low:"1.000"},User:"Standard"},Q_P_VELXY_D:{Description:"Velocity (horizontal) D gain. Corrects short-term changes in velocity",DisplayName:"Velocity (horizontal) D gain",Increment:"0.001",Range:{high:"1.00",low:"0.00"},User:"Advanced"},Q_P_VELXY_FF:{Description:"Velocity (horizontal) feed forward gain. Converts the difference between desired velocity to a target acceleration",DisplayName:"Velocity (horizontal) feed forward gain",Increment:"0.01",Range:{high:"6",low:"0"},User:"Advanced"},Q_P_VELXY_FLTD:{Description:"Velocity (horizontal) input filter. This filter (in Hz) is applied to the input for D term",DisplayName:"Velocity (horizontal) input filter",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},Q_P_VELXY_FLTE:{Description:"Velocity (horizontal) input filter. This filter (in Hz) is applied to the input for P and I terms",DisplayName:"Velocity (horizontal) input filter",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},Q_P_VELXY_I:{Description:"Velocity (horizontal) I gain. Corrects long-term difference between desired and actual velocity to a target acceleration",DisplayName:"Velocity (horizontal) I gain",Increment:"0.01",Range:{high:"1.00",low:"0.02"},User:"Advanced"},Q_P_VELXY_IMAX:{Description:"Velocity (horizontal) integrator maximum. Constrains the target acceleration that the I gain will output",DisplayName:"Velocity (horizontal) integrator maximum",Increment:"10",Range:{high:"4500",low:"0"},Units:"cm/s/s",User:"Advanced"},Q_P_VELXY_P:{Description:"Velocity (horizontal) P gain. Converts the difference between desired and actual velocity to a target acceleration",DisplayName:"Velocity (horizontal) P gain",Increment:"0.1",Range:{high:"6.0",low:"0.1"},User:"Advanced"},Q_P_VELZ_D:{Description:"Velocity (vertical) controller D gain. Corrects short-term changes in velocity",DisplayName:"Velocity (vertical) controller D gain",Increment:"0.001",Range:{high:"1.00",low:"0.00"},User:"Advanced"},Q_P_VELZ_FF:{Description:"Velocity (vertical) controller Feed Forward gain. Produces an output that is proportional to the magnitude of the target",DisplayName:"Velocity (vertical) controller Feed Forward gain",Increment:"0.01",Range:{high:"1",low:"0"},User:"Advanced"},Q_P_VELZ_FLTD:{Description:"Velocity (vertical) input filter for D term. This filter (in Hz) is applied to the input for D terms",DisplayName:"Velocity (vertical) input filter for D term",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},Q_P_VELZ_FLTE:{Description:"Velocity (vertical) error filter. This filter (in Hz) is applied to the input for P and I terms",DisplayName:"Velocity (vertical) error filter",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},Q_P_VELZ_I:{Description:"Velocity (vertical) controller I gain. Corrects long-term difference in desired velocity to a target acceleration",DisplayName:"Velocity (vertical) controller I gain",Increment:"0.01",Range:{high:"1.00",low:"0.02"},User:"Advanced"},Q_P_VELZ_IMAX:{Description:"Velocity (vertical) controller I gain maximum. Constrains the target acceleration that the I gain will output",DisplayName:"Velocity (vertical) controller I gain maximum",Range:{high:"8.000",low:"1.000"},User:"Standard"},Q_P_VELZ_P:{Description:"Velocity (vertical) controller P gain. Converts the difference between desired vertical speed and actual speed into a desired acceleration that is passed to the throttle acceleration controller",DisplayName:"Velocity (vertical) controller P gain",Range:{high:"8.000",low:"1.000"},User:"Standard"}},HY={Q_TAILSIT_ANGLE:{Description:"This is the pitch angle at which tailsitter aircraft will change from VTOL control to fixed wing control.",DisplayName:"Tailsitter fixed wing transition angle",Range:{high:"80",low:"5"},Units:"deg"},Q_TAILSIT_ANG_VT:{Description:"This is the pitch angle at which tailsitter aircraft will change from fixed wing control to VTOL control, if zero Q_TAILSIT_ANGLE will be used",DisplayName:"Tailsitter VTOL transition angle",Range:{high:"80",low:"5"},Units:"deg"},Q_TAILSIT_DSKLD:{Description:"This is the vehicle weight in kg divided by the total disk area of all propellers in m^2. Only used with Q_TAILSIT_GSCMSK = 4",DisplayName:"Tailsitter disk loading",Range:{high:"50",low:"0"},Units:"kg/m/m",User:"Standard"},Q_TAILSIT_ENABLE:{Description:'This enables Tailsitter functionality. A value of 2 forces Qassist active and always stabilize in forward flight with airmode for stabalisation at 0 throttle, for use on vehicles with no control surfaces, vehicle will not arm in forward flight modes, see also Q_OPTIONS "Mtrs_Only_Qassist"',DisplayName:"Enable Tailsitter",RebootRequired:"True",User:"Standard",Values:{0:"Disable",1:"Enable",2:"Enable Always"}},Q_TAILSIT_GSCMAX:{Description:"Maximum gain scaling for tailsitter Q_TAILSIT_GSCMSK options",DisplayName:"Maximum tailsitter gain scaling",Range:{high:"5",low:"1"},User:"Standard"},Q_TAILSIT_GSCMIN:{Description:"Minimum gain scaling for tailsitter Q_TAILSIT_GSCMSK options",DisplayName:"Minimum tailsitter gain scaling",Range:{high:"1",low:"0.1"},User:"Standard"},Q_TAILSIT_GSCMSK:{Bitmask:{0:"Throttle",1:"ATT_THR",2:"Disk Theory",3:"Altitude correction"},Description:"Bitmask of gain scaling methods to be applied: Throttle: scale gains with throttle, ATT_THR: reduce gain at high throttle/tilt, 2:Disk theory velocity calculation, requires Q_TAILSIT_DSKLD to be set, ATT_THR must not be set, 3:Altitude correction, scale with air density",DisplayName:"Tailsitter gain scaling mask",User:"Standard"},Q_TAILSIT_INPUT:{Bitmask:{0:"PlaneMode",1:"BodyFrameRoll"},Description:"This controls whether stick input when hovering as a tailsitter follows the conventions for fixed wing hovering or multicopter hovering. When PlaneMode is not enabled (bit0 = 0) the roll stick will roll the aircraft in earth frame and yaw stick will yaw in earth frame. When PlaneMode input is enabled, the roll and yaw sticks are swapped so that the roll stick controls earth-frame yaw and rudder controls earth-frame roll. When body-frame roll is enabled (bit1 = 1), the yaw stick controls earth-frame yaw rate and the roll stick controls roll in the tailsitter's body frame when flying level.",DisplayName:"Tailsitter input type bitmask"},Q_TAILSIT_MIN_VO:{Description:"Use in conjunction with disk therory gain scaling and Q_TAILSIT_DSKLD to specify minumum airspeed over control surfaces, this will be used to boost throttle, when decending for example, 0 disables",DisplayName:"Tailsitter Disk loading minimum outflow speed",Range:{high:"15",low:"0"}},Q_TAILSIT_MOTMX:{Bitmask:{0:"Motor 1",1:"Motor 2",2:"Motor 3",3:"Motor 4",4:"Motor 5",5:"Motor 6",6:"Motor 7",7:"Motor 8"},Description:"Bitmask of motors to remain active in forward flight for a 'Copter' tailsitter. Non-zero indicates airframe is a Copter tailsitter and uses copter style motor layouts determined by Q_FRAME_CLASS and Q_FRAME_TYPE. This should be zero for non-Copter tailsitters.",DisplayName:"Tailsitter motor mask",User:"Standard"},Q_TAILSIT_RAT_FW:{Description:"The pitch rate at which tailsitter aircraft will pitch down in the transition from VTOL to forward flight",DisplayName:"Tailsitter VTOL to forward flight transition rate",Range:{high:"500",low:"10"},Units:"deg/s"},Q_TAILSIT_RAT_VT:{Description:"The pitch rate at which tailsitter aircraft will pitch up in the transition from forward flight to VTOL",DisplayName:"Tailsitter forward flight to VTOL transition rate",Range:{high:"500",low:"10"},Units:"deg/s"},Q_TAILSIT_RLL_MX:{Description:"Maximum Allowed roll angle for tailsitters. If this is zero then Q_ANGLE_MAX is used.",DisplayName:"Maximum Roll angle",Range:{high:"80",low:"0"},Units:"deg",User:"Standard"},Q_TAILSIT_THR_VT:{Description:"Throttle used during FW->VTOL transition, -1 uses hover throttle",DisplayName:"Tailsitter forward flight to VTOL transition throttle",Range:{high:"100",low:"-1"},Units:"%"},Q_TAILSIT_VFGAIN:{Description:"This controls the amount of vectored thrust control used in forward flight for a vectored tailsitter",DisplayName:"Tailsitter vector thrust gain in forward flight",Increment:"0.01",Range:{high:"1",low:"0"}},Q_TAILSIT_VHGAIN:{Description:"This controls the amount of vectored thrust control used in hover for a vectored tailsitter",DisplayName:"Tailsitter vector thrust gain in hover",Increment:"0.01",Range:{high:"1",low:"0"}},Q_TAILSIT_VHPOW:{Description:"This controls the amount of extra pitch given to the vectored control when at high pitch errors",DisplayName:"Tailsitter vector thrust gain power",Increment:"0.1",Range:{high:"4",low:"0"}},Q_TAILSIT_VT_P_P:{Description:"Scale from PID output to control surface, for use where a single axis is actuated by both motors and Tilt/control surface on a copter style tailsitter, increase to favor control surfaces and reduce motor output by reducing gains",DisplayName:"Tailsitter VTOL control surface pitch gain",Range:{high:"2",low:"0"}},Q_TAILSIT_VT_R_P:{Description:"Scale from PID output to control surface, for use where a single axis is actuated by both motors and Tilt/control surface on a copter style tailsitter, increase to favor control surfaces and reduce motor output by reducing gains",DisplayName:"Tailsitter VTOL control surface roll gain",Range:{high:"2",low:"0"}},Q_TAILSIT_VT_Y_P:{Description:"Scale from PID output to control surface, for use where a single axis is actuated by both motors and Tilt/control surface on a copter style tailsitter, increase to favor control surfaces and reduce motor output by reducing gains",DisplayName:"Tailsitter VTOL control surface yaw gain",Range:{high:"2",low:"0"}}},MY={Q_TILT_ENABLE:{Description:"This enables Tiltrotor functionality",DisplayName:"Enable Tiltrotor functionality",RebootRequired:"True",User:"Standard",Values:{0:"Disable",1:"Enable"}},Q_TILT_FIX_ANGLE:{Description:"This is the angle the motors tilt down when at maximum output for forward flight. Set this to a non-zero value to enable vectoring for roll/pitch in forward flight on tilt-vectored aircraft",DisplayName:"Fixed wing tiltrotor angle",Range:{high:"30",low:"0"},Units:"deg",User:"Standard"},Q_TILT_FIX_GAIN:{Description:"This is the gain for use of tilting motors in fixed wing flight for tilt vectored quadplanes",DisplayName:"Fixed wing tiltrotor gain",Range:{high:"1",low:"0"},User:"Standard"},Q_TILT_MASK:{Description:"This is a bitmask of motors that are tiltable in a tiltrotor (or tiltwing). The mask is in terms of the standard motor order for the frame type.",DisplayName:"Tiltrotor mask",User:"Standard"},Q_TILT_MAX:{Description:"This is the maximum angle of the tiltable motors at which multicopter control will be enabled. Beyond this angle the plane will fly solely as a fixed wing aircraft and the motors will tilt to their maximum angle at the TILT_RATE",DisplayName:"Tiltrotor maximum VTOL angle",Increment:"1",Range:{high:"80",low:"20"},Units:"deg",User:"Standard"},Q_TILT_RATE_DN:{Description:"This is the maximum speed at which the motor angle will change for a tiltrotor when moving from hover to forward flight. When this is zero the Q_TILT_RATE_UP value is used.",DisplayName:"Tiltrotor downwards tilt rate",Increment:"1",Range:{high:"300",low:"10"},Units:"deg/s",User:"Standard"},Q_TILT_RATE_UP:{Description:"This is the maximum speed at which the motor angle will change for a tiltrotor when moving from forward flight to hover",DisplayName:"Tiltrotor upwards tilt rate",Increment:"1",Range:{high:"300",low:"10"},Units:"deg/s",User:"Standard"},Q_TILT_TYPE:{Description:"This is the type of tiltrotor when TILT_MASK is non-zero. A continuous tiltrotor can tilt the rotors to any angle on demand. A binary tiltrotor assumes a retract style servo where the servo is either fully forward or fully up. In both cases the servo can't move faster than Q_TILT_RATE. A vectored yaw tiltrotor will use the tilt of the motors to control yaw in hover, Bicopter tiltrottor must use the tailsitter frame class (10)",DisplayName:"Tiltrotor type",Values:{0:"Continuous",1:"Binary",2:"VectoredYaw",3:"Bicopter"}},Q_TILT_WING_FLAP:{Description:"For use on tilt wings, the wing will tilt up to this angle for flap, transition will be complete when the wing reaches this angle from the forward fight position, 0 disables",DisplayName:"Tiltrotor tilt angle that will be used as flap",Increment:"1",Range:{high:"15",low:"0"},Units:"deg",User:"Standard"},Q_TILT_YAW_ANGLE:{Description:"This is the angle of the tilt servos when in VTOL mode and at minimum output. This needs to be set for Q_TILT_TYPE=3 to enable vectored control for yaw of tricopter tilt quadplanes. This is also used to limit the forwards travel of bicopter tilts when in VTOL modes",DisplayName:"Tilt minimum angle for vectored yaw",Range:{high:"30",low:"0"}}},gY={Q_WP_ACCEL:{Description:"Defines the horizontal acceleration in cm/s/s used during missions",DisplayName:"Waypoint Acceleration ",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s/s",User:"Standard"},Q_WP_ACCEL_Z:{Description:"Defines the vertical acceleration in cm/s/s used during missions",DisplayName:"Waypoint Vertical Acceleration",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s/s",User:"Standard"},Q_WP_JERK:{Description:"Defines the horizontal jerk in m/s/s used during missions",DisplayName:"Waypoint Jerk",Range:{high:"20",low:"1"},Units:"m/s/s/s",User:"Standard"},Q_WP_RADIUS:{Description:"Defines the distance from a waypoint, that when crossed indicates the wp has been hit.",DisplayName:"Waypoint Radius",Increment:"1",Range:{high:"1000",low:"5"},Units:"cm",User:"Standard"},Q_WP_RFND_USE:{Description:"This controls if waypoint missions use rangefinder for terrain following",DisplayName:"Waypoint missions use rangefinder for terrain following",User:"Advanced",Values:{0:"Disable",1:"Enable"}},Q_WP_SPEED:{Description:"Defines the speed in cm/s which the aircraft will attempt to maintain horizontally during a WP mission",DisplayName:"Waypoint Horizontal Speed Target",Increment:"50",Range:{high:"2000",low:"20"},Units:"cm/s",User:"Standard"},Q_WP_SPEED_DN:{Description:"Defines the speed in cm/s which the aircraft will attempt to maintain while descending during a WP mission",DisplayName:"Waypoint Descent Speed Target",Increment:"10",Range:{high:"500",low:"10"},Units:"cm/s",User:"Standard"},Q_WP_SPEED_UP:{Description:"Defines the speed in cm/s which the aircraft will attempt to maintain while climbing during a WP mission",DisplayName:"Waypoint Climb Speed Target",Increment:"50",Range:{high:"1000",low:"10"},Units:"cm/s",User:"Standard"},Q_WP_TER_MARGIN:{Description:"Waypoint Terrain following altitude margin. Vehicle will stop if distance from target altitude is larger than this margin (in meters)",DisplayName:"Waypoint Terrain following altitude margin",Range:{high:"100",low:"0.1"},Units:"m",User:"Advanced"}},AY={Q_WVANE_ANG_MIN:{Description:"The minimum target roll/pitch angle before active weathervaning will start. This provides a dead zone that is particularly useful for poorly trimmed quadplanes.",DisplayName:"Weathervaning min angle",Increment:"0.1",Range:{high:"10",low:"0"},Units:"deg",User:"Standard"},Q_WVANE_ENABLE:{Description:"Enable weather vaning. When active, the aircraft will automatically yaw into wind when in a VTOL position controlled mode. Pilot yaw commands overide the weathervaning action.",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Nose into wind",2:"Nose or tail into wind",3:"Side into wind",4:"tail into wind"}},Q_WVANE_GAIN:{Description:"This converts the target roll/pitch angle of the aircraft into the correcting (into wind) yaw rate. e.g. Gain = 2, roll = 30 deg, pitch = 0 deg, yaw rate = 60 deg/s.",DisplayName:"Weathervaning gain",Increment:"0.1",Range:{high:"4",low:"0.5"},User:"Standard"},Q_WVANE_HGT_MIN:{Description:"Above this height weathervaning is permitted. If RNGFND_LANDING is enabled or terrain is enabled then this parameter sets height AGL. Otherwise this parameter sets height above home. Set zero to ignore minimum height requirement to activate weathervaning",DisplayName:"Weathervaning min height",Increment:"1",Range:{high:"50",low:"0"},Units:"m",User:"Standard"},Q_WVANE_LAND:{Description:"Override the weather vaning behaviour when in landing",DisplayName:"Landing override",User:"Standard",Values:{0:"Disabled",1:"Nose into wind",2:"Nose or tail into wind",3:"Side into wind",4:"tail into wind","-1":"No override"}},Q_WVANE_OPTIONS:{Bitmask:{0:"Use pitch when nose or tail-in for faster weathervaning"},Description:"Options impacting weathervaning behaviour",DisplayName:"Weathervaning options",User:"Standard"},Q_WVANE_SPD_MAX:{Description:"Below this ground speed weathervaning is permitted. Set to 0 to ignore this condition when checking if vehicle should weathervane.",DisplayName:"Weathervaning max ground speed",Increment:"0.1",Range:{high:"50",low:"0"},Units:"m/s",User:"Standard"},Q_WVANE_TAKEOFF:{Description:"Override the weather vaning behaviour when in takeoffs",DisplayName:"Takeoff override",User:"Standard",Values:{0:"Disabled",1:"Nose into wind",2:"Nose or tail into wind",3:"Side into wind",4:"tail into wind","-1":"No override"}},Q_WVANE_VELZ_MAX:{Description:"The maximum climb or descent speed that the vehicle will still attempt to weathervane. Set to 0 to ignore this condition to get the aircraft to weathervane at any climb/descent rate. This is particularly useful for aircraft with low disc loading that struggle with yaw control in decent.",DisplayName:"Weathervaning max vertical speed",Increment:"0.1",Range:{high:"5",low:"0"},Units:"m/s",User:"Standard"}},vY={RALLY_INCL_HOME:{Description:"Controls if Home is included as a Rally point (i.e. as a safe landing place) for RTL",DisplayName:"Rally Include Home",User:"Standard",Values:{0:"DoNotIncludeHome",1:"IncludeHome"}},RALLY_LIMIT_KM:{Description:"Maximum distance to rally point. If the closest rally point is more than this number of kilometers from the current position and the home location is closer than any of the rally points from the current position then do RTL to home rather than to the closest rally point. This prevents a leftover rally point from a different airfield being used accidentally. If this is set to 0 then the closest rally point is always used.",DisplayName:"Rally Limit",Increment:"0.1",Units:"km",User:"Advanced"},RALLY_TOTAL:{Description:"Number of rally points currently loaded",DisplayName:"Rally Total",User:"Advanced"}},_Y={RC_OPTIONS:{Bitmask:{0:"Ignore RC Receiver",1:"Ignore MAVLink Overrides",2:"Ignore Receiver Failsafe bit but allow other RC failsafes if setup",3:"FPort Pad",4:"Log RC input bytes",5:"Arming check throttle for 0 input",6:"Skip the arming check for neutral Roll/Pitch/Yaw sticks",7:"Allow Switch reverse",8:"Use passthrough for CRSF telemetry",9:"Suppress CRSF mode/rate message for ELRS systems",10:"Enable multiple receiver support",11:"CRSF RSSI shows Link Quality"},Description:"RC input options",DisplayName:"RC options",User:"Advanced"},RC_OVERRIDE_TIME:{Description:"Timeout after which RC overrides will no longer be used, and RC input will resume, 0 will disable RC overrides, -1 will never timeout, and continue using overrides until they are disabled",DisplayName:"RC override timeout",Range:{high:"120.0",low:"0.0"},Units:"s",User:"Advanced"},RC_PROTOCOLS:{Bitmask:{0:"All",1:"PPM",2:"IBUS",3:"SBUS",4:"SBUS_NI",5:"DSM",6:"SUMD",7:"SRXL",8:"SRXL2",9:"CRSF",10:"ST24",11:"FPORT",12:"FPORT2",13:"FastSBUS"},Description:"Bitmask of enabled RC protocols. Allows narrowing the protocol detection to only specific types of RC receivers which can avoid issues with incorrect detection. Set to 1 to enable all protocols.",DisplayName:"RC protocols enabled",User:"Advanced"}},SY={RC10_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC10_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC10_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC10_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC10_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC10_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},DY={RC11_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC11_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC11_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC11_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC11_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC11_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},yY={RC12_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC12_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC12_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC12_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC12_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC12_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},RY={RC13_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC13_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC13_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC13_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC13_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC13_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},bY={RC14_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC14_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC14_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC14_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC14_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC14_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},NY={RC15_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC15_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC15_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC15_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC15_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC15_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},wY={RC16_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC16_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC16_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC16_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC16_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC16_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},TY={RC1_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC1_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC1_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC1_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC1_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC1_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},EY={RC2_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC2_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC2_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC2_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC2_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC2_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},PY={RC3_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC3_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC3_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC3_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC3_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC3_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},IY={RC4_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC4_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC4_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC4_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC4_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC4_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},OY={RC5_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC5_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC5_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC5_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC5_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC5_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},UY={RC6_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC6_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC6_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC6_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC6_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC6_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},xY={RC7_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC7_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC7_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC7_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC7_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC7_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},FY={RC8_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC8_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC8_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC8_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC8_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC8_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},kY={RC9_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC9_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC9_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC9_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"ModeRTL",9:"Camera Trigger",11:"Fence",16:"ModeAuto",22:"Parachute Release",24:"Auto Mission Reset",27:"Retract Mount1",28:"Relay On/Off",29:"Landing Gear",30:"Lost Plane Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",38:"ADSB Avoidance En",41:"ArmDisarm (4.1 and lower)",43:"InvertedFlight",46:"RC Override Enable",51:"ModeManual",52:"ModeACRO",55:"ModeGuided",56:"ModeLoiter",58:"Clear Waypoints",62:"Compass Learn",64:"Reverse Throttle",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",72:"ModeCircle",77:"ModeTakeoff",78:"RunCam Control",79:"RunCam OSD Control",81:"Disarm",82:"QAssist 3pos",84:"Air Mode",85:"Generator",86:"Non Auto Terrain Follow Disable",87:"Crow Select",88:"Soaring Enable",89:"Landing Flare",90:"EKF Pos Source",91:"Airspeed Ratio Calibration",92:"FBWA",94:"VTX Power",95:"FBWA taildragger takeoff mode",96:"trigger re-reading of mode switch",98:"ModeTraining",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",107:"EnableFixedWingAutotune",108:"ModeQRTL",150:"CRUISE",153:"ArmDisarm (4.2 and higher)",154:"ArmDisarm with Quadplane AirMode (4.2 and higher)",155:"set roll pitch and yaw trim to current servo and RC",157:"Force FS Action to FBWA",158:"Optflow Calibration",160:"Weathervane Enable",162:"FFT Tune",163:"Mount Lock",164:"Pause Stream Logging",165:"Arm/Emergency Motor Stop",208:"Flap",209:"Forward Throttle",210:"Airbrakes",212:"Mount1 Roll",213:"Mount1 Pitch",214:"Mount1 Yaw",215:"Mount2 Roll",216:"Mount2 Pitch",217:"Mount2 Yaw",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC9_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC9_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},BY={RCMAP_PITCH:{Description:"Pitch channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Pitch is normally on channel 2, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Pitch channel",Increment:"1",Range:{high:"16",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_ROLL:{Description:"Roll channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Roll is normally on channel 1, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Roll channel",Increment:"1",Range:{high:"16",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_THROTTLE:{Description:"Throttle channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Throttle is normally on channel 3, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Throttle channel",Increment:"1",Range:{high:"16",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_YAW:{Description:"Yaw channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Yaw (also known as rudder) is normally on channel 4, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Yaw channel",Increment:"1",Range:{high:"16",low:"1"},RebootRequired:"True",User:"Advanced"}},zY={RELAY_DEFAULT:{Description:"The state of the relay on boot.",DisplayName:"Default relay state",User:"Standard",Values:{0:"Off",1:"On",2:"NoChange"}},RELAY_PIN:{Description:`Digital pin number for first relay control. This is the pin used for camera shutter control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"First Relay Pin",User:"Standard",Values:{27:"BBBMini Pin P8.17",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN2:{Description:`Digital pin number for 2nd relay control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Second Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",65:"BBBMini Pin P8.18",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN3:{Description:`Digital pin number for 3rd relay control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Third Relay Pin",User:"Standard",Values:{22:"BBBMini Pin P8.19",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN4:{Description:`Digital pin number for 4th relay control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Fourth Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",63:"BBBMini Pin P8.34",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN5:{Description:`Digital pin number for 5th relay control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Fifth Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",62:"BBBMini Pin P8.13",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN6:{Description:`Digital pin number for 6th relay control. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Sixth Relay Pin",User:"Standard",Values:{37:"BBBMini Pin P8.14",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}}},ZY={RLL2SRV_RMAX:{Description:"This sets the maximum roll rate that the attitude controller will demand (degrees/sec) in angle stabilized modes. Setting it to zero disables this limit.",DisplayName:"Maximum Roll Rate",Increment:"1",Range:{high:"180",low:"0"},Units:"deg/s",User:"Advanced"},RLL2SRV_TCONST:{Description:"Time constant in seconds from demanded to achieved roll angle. Most models respond well to 0.5. May be reduced for faster responses, but setting lower than a model can achieve will not help.",DisplayName:"Roll Time Constant",Increment:"0.1",Range:{high:"1.0",low:"0.4"},Units:"s",User:"Advanced"},RLL_RATE_D:{Description:"Roll axis rate controller D gain. Compensates for short-term change in desired roll rate vs actual roll rate",DisplayName:"Roll axis rate controller D gain",Increment:"0.001",Range:{high:"0.03",low:"0.001"},User:"Standard"},RLL_RATE_FF:{Description:"Roll axis rate controller feed forward",DisplayName:"Roll axis rate controller feed forward",Increment:"0.001",Range:{high:"3.0",low:"0"},User:"Standard"},RLL_RATE_FLTD:{Description:"Roll axis rate controller derivative frequency in Hz",DisplayName:"Roll axis rate controller derivative frequency in Hz",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Standard"},RLL_RATE_FLTE:{Description:"Roll axis rate controller error frequency in Hz",DisplayName:"Roll axis rate controller error frequency in Hz",Increment:"1",Range:{high:"50",low:"2"},Units:"Hz",User:"Standard"},RLL_RATE_FLTT:{Description:"Roll axis rate controller target frequency in Hz",DisplayName:"Roll axis rate controller target frequency in Hz",Increment:"1",Range:{high:"50",low:"2"},Units:"Hz",User:"Standard"},RLL_RATE_I:{Description:"Roll axis rate controller I gain. Corrects long-term difference in desired roll rate vs actual roll rate",DisplayName:"Roll axis rate controller I gain",Increment:"0.01",Range:{high:"0.6",low:"0.01"},User:"Standard"},RLL_RATE_IMAX:{Description:"Roll axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Roll axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},RLL_RATE_P:{Description:"Roll axis rate controller P gain. Converts the difference between desired roll rate and actual roll rate into a motor speed output",DisplayName:"Roll axis rate controller P gain",Increment:"0.005",Range:{high:"0.35",low:"0.08"},User:"Standard"},RLL_RATE_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Roll slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"}},GY={RNGFND1_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND1_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND1_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND1_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND1_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND1_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND1_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND1_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND1_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND1_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND1_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND1_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND1_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND1_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND1_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND1_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND1_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND1_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},WY={RNGFND2_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND2_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND2_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND2_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND2_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND2_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND2_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND2_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND2_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND2_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND2_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND2_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND2_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND2_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND2_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND2_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND2_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND2_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},XY={RNGFND3_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND3_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND3_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND3_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND3_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND3_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND3_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND3_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND3_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND3_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND3_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND3_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND3_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND3_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND3_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND3_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND3_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND3_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},YY={RNGFND4_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND4_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND4_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND4_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND4_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND4_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND4_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND4_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND4_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND4_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND4_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND4_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND4_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND4_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND4_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND4_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND4_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND4_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},$Y={RNGFND5_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND5_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND5_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND5_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND5_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND5_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND5_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND5_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND5_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND5_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND5_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND5_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND5_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND5_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND5_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND5_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND5_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND5_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},qY={RNGFND6_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND6_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND6_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND6_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND6_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND6_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND6_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND6_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND6_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND6_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND6_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND6_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND6_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND6_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND6_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND6_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND6_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND6_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},KY={RNGFND7_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND7_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND7_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND7_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND7_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND7_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND7_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND7_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND7_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND7_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND7_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND7_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND7_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND7_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND7_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND7_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND7_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND7_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},jY={RNGFND8_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND8_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND8_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND8_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND8_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND8_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND8_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND8_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND8_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND8_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND8_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND8_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND8_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND8_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND8_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND8_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND8_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND8_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},QY={RNGFND9_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND9_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND9_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND9_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND9_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND9_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND9_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND9_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND9_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND9_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND9_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND9_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND9_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND9_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND9_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFND9_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND9_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND9_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},JY={RNGFNDA_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFNDA_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFNDA_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFNDA_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFNDA_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFNDA_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFNDA_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFNDA_PIN:{Description:`Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V. For PWM input, the pin must be configured as a digital GPIO, see the Wiki's "GPIOs" section for details.`,DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFNDA_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFNDA_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFNDA_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFNDA_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFNDA_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFNDA_STOP_PIN:{Description:`Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFNDA_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",35:"TeraRangerSerial",100:"SITL"}},RNGFNDA_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFNDA_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFNDA_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},e$={RPM1_ESC_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which support ESC rpm telemetry. RPM telemetry of the selected channels will be averaged",DisplayName:"Bitmask of ESC telemetry channels to average",User:"Advanced"},RPM1_MAX:{Description:"Maximum RPM to report. Only used on type = GPIO.",DisplayName:"Maximum RPM",Increment:"1",User:"Standard"},RPM1_MIN:{Description:"Minimum RPM to report. Only used on type = GPIO.",DisplayName:"Minimum RPM",Increment:"1",User:"Standard"},RPM1_MIN_QUAL:{Description:"Minimum data quality to be used",DisplayName:"Minimum Quality",Increment:"0.1",User:"Advanced"},RPM1_PIN:{Description:`Which digital GPIO pin to use. Only used on type = GPIO. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Input pin number",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},RPM1_SCALING:{Description:"Scaling factor between sensor reading and RPM.",DisplayName:"RPM scaling",Increment:"0.001",User:"Standard"},RPM1_TYPE:{Description:"What type of RPM sensor is connected",DisplayName:"RPM type",User:"Standard",Values:{0:"None",1:"Not Used",2:"GPIO",3:"EFI",4:"Harmonic Notch",5:"ESC Telemetry Motors Bitmask",6:"Generator"}}},t$={RPM2_ESC_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which support ESC rpm telemetry. RPM telemetry of the selected channels will be averaged",DisplayName:"Bitmask of ESC telemetry channels to average",User:"Advanced"},RPM2_MAX:{Description:"Maximum RPM to report. Only used on type = GPIO.",DisplayName:"Maximum RPM",Increment:"1",User:"Standard"},RPM2_MIN:{Description:"Minimum RPM to report. Only used on type = GPIO.",DisplayName:"Minimum RPM",Increment:"1",User:"Standard"},RPM2_MIN_QUAL:{Description:"Minimum data quality to be used",DisplayName:"Minimum Quality",Increment:"0.1",User:"Advanced"},RPM2_PIN:{Description:`Which digital GPIO pin to use. Only used on type = GPIO. Some common values are given, but see the Wiki's "GPIOs" page for how to determine the pin number for a given autopilot.`,DisplayName:"Input pin number",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},RPM2_SCALING:{Description:"Scaling factor between sensor reading and RPM.",DisplayName:"RPM scaling",Increment:"0.001",User:"Standard"},RPM2_TYPE:{Description:"What type of RPM sensor is connected",DisplayName:"RPM type",User:"Standard",Values:{0:"None",1:"Not Used",2:"GPIO",3:"EFI",4:"Harmonic Notch",5:"ESC Telemetry Motors Bitmask",6:"Generator"}}},i$={RSSI_ANA_PIN:{Description:"Pin used to read the RSSI voltage or PWM value",DisplayName:"Receiver RSSI sensing pin",User:"Standard",Values:{8:"V5 Nano",11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS"}},RSSI_CHANNEL:{Description:"The channel number where RSSI will be output by the radio receiver (5 and above).",DisplayName:"Receiver RSSI channel number",Range:{high:"16",low:"0"},User:"Standard"},RSSI_CHAN_HIGH:{Description:"PWM value that the radio receiver will put on the RSSI_CHANNEL or RSSI_ANA_PIN when the signal strength is the strongest. Some radio receivers output inverted values so this value may be higher than RSSI_CHAN_LOW",DisplayName:"Receiver RSSI PWM high value",Range:{high:"2000",low:"0"},Units:"PWM",User:"Standard"},RSSI_CHAN_LOW:{Description:"PWM value that the radio receiver will put on the RSSI_CHANNEL or RSSI_ANA_PIN when the signal strength is the weakest. Some radio receivers output inverted values so this value may be lower than RSSI_CHAN_HIGH",DisplayName:"RSSI PWM low value",Range:{high:"2000",low:"0"},Units:"PWM",User:"Standard"},RSSI_PIN_HIGH:{Description:"RSSI pin's voltage received on the RSSI_ANA_PIN when the signal strength is the strongest. Some radio receivers put out inverted values so this value may be lower than RSSI_PIN_LOW. When using pin 103, the maximum value of the parameter is 3.3V.",DisplayName:"RSSI pin's highest voltage",Increment:"0.01",Range:{high:"5.0",low:"0"},Units:"V",User:"Standard"},RSSI_PIN_LOW:{Description:"RSSI pin's voltage received on the RSSI_ANA_PIN when the signal strength is the weakest. Some radio receivers put out inverted values so this value may be higher than RSSI_PIN_HIGH. When using pin 103, the maximum value of the parameter is 3.3V.",DisplayName:"RSSI pin's lowest voltage",Increment:"0.01",Range:{high:"5.0",low:"0"},Units:"V",User:"Standard"},RSSI_TYPE:{Description:"Radio Receiver RSSI type. If your radio receiver supports RSSI of some kind, set it here, then set its associated RSSI_XXXXX parameters, if any.",DisplayName:"RSSI Type",User:"Standard",Values:{0:"Disabled",1:"AnalogPin",2:"RCChannelPwmValue",3:"ReceiverProtocol",4:"PWMInputPin",5:"TelemetryRadioRSSI"}}},a$={SCHED_DEBUG:{Description:'Set to non-zero to enable scheduler debug messages. When set to show "Slips" the scheduler will display a message whenever a scheduled task is delayed due to too much CPU load. When set to ShowOverruns the scheduled will display a message whenever a task takes longer than the limit promised in the task table.',DisplayName:"Scheduler debug level",User:"Advanced",Values:{0:"Disabled",2:"ShowSlips",3:"ShowOverruns"}},SCHED_LOOP_RATE:{Description:"This controls the rate of the main control loop in Hz. This should only be changed by developers. This only takes effect on restart. Values over 400 are considered highly experimental.",DisplayName:"Scheduling main loop rate",RebootRequired:"True",User:"Advanced",Values:{50:"50Hz",100:"100Hz",200:"200Hz",250:"250Hz",300:"300Hz",400:"400Hz"}},SCHED_OPTIONS:{Bitmask:{0:"Enable per-task perf info"},Description:"This controls optional aspects of the scheduler.",DisplayName:"Scheduling options",User:"Advanced"}},r$={SCR_DEBUG_OPTS:{Bitmask:{0:"No Scripts to run message if all scripts have stopped",1:"Runtime messages for memory usage and execution time",2:"Suppress logging scripts to dataflash",3:"log runtime memory usage and execution time",4:"Disable pre-arm check"},Description:"Debugging options",DisplayName:"Scripting Debug Level",User:"Advanced"},SCR_DIR_DISABLE:{Bitmask:{0:"ROMFS",1:"APM/scripts"},Description:"This will stop scripts being loaded from the given locations",DisplayName:"Directory disable",RebootRequired:"True",User:"Advanced"},SCR_ENABLE:{Description:"Controls if scripting is enabled",DisplayName:"Enable Scripting",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Lua Scripts"}},SCR_HEAP_SIZE:{Description:"Amount of memory available for scripting",DisplayName:"Scripting Heap Size",Increment:"1024",Range:{high:"1048576",low:"1024"},RebootRequired:"True",User:"Advanced"},SCR_USER1:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter1",User:"Standard"},SCR_USER2:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter2",User:"Standard"},SCR_USER3:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter3",User:"Standard"},SCR_USER4:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter4",User:"Standard"},SCR_USER5:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter5",User:"Standard"},SCR_USER6:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter6",User:"Standard"},SCR_VM_I_COUNT:{Description:"The number virtual machine instructions that can be run before considering a script to have taken an excessive amount of time",DisplayName:"Scripting Virtual Machine Instruction Count",Increment:"10000",Range:{high:"1000000",low:"1000"},User:"Advanced"}},n$={SERIAL0_BAUD:{Description:"The baud rate used on the USB console. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial0 baud rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL0_PROTOCOL:{Description:"Control what protocol to use on the console. ",DisplayName:"Console protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVlink1",2:"MAVLink2"}},SERIAL1_BAUD:{Description:"The baud rate used on the Telem1 port. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Telem1 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL1_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire. The Swap option allows the RX and TX pins to be swapped on STM32F7 based boards.",DisplayName:"Telem1 options",RebootRequired:"True",User:"Advanced"},SERIAL1_PROTOCOL:{Description:"Control what protocol to use on the Telem1 port. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Telem1 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL2_BAUD:{Description:"The baud rate of the Telem2 port. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Telemetry 2 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL2_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Telem2 options",RebootRequired:"True",User:"Advanced"},SERIAL2_PROTOCOL:{Description:"Control what protocol to use on the Telem2 port. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Telemetry 2 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL3_BAUD:{Description:"The baud rate used for the Serial 3 (GPS). Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 3 (GPS) Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL3_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial3 options",RebootRequired:"True",User:"Advanced"},SERIAL3_PROTOCOL:{Description:"Control what protocol Serial 3 (GPS) should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial 3 (GPS) protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL4_BAUD:{Description:"The baud rate used for Serial4. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 4 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL4_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial4 options",RebootRequired:"True",User:"Advanced"},SERIAL4_PROTOCOL:{Description:"Control what protocol Serial4 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial4 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL5_BAUD:{Description:"The baud rate used for Serial5. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 5 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL5_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial5 options",RebootRequired:"True",User:"Advanced"},SERIAL5_PROTOCOL:{Description:"Control what protocol Serial5 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial5 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL6_BAUD:{Description:"The baud rate used for Serial6. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 6 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL6_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial6 options",RebootRequired:"True",User:"Advanced"},SERIAL6_PROTOCOL:{Description:"Control what protocol Serial6 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial6 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL7_BAUD:{Description:"The baud rate used for Serial7. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 7 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL7_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial7 options",RebootRequired:"True",User:"Advanced"},SERIAL7_PROTOCOL:{Description:"Control what protocol Serial7 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial7 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL8_BAUD:{Description:"The baud rate used for Serial8. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 8 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL8_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial8 options",RebootRequired:"True",User:"Advanced"},SERIAL8_PROTOCOL:{Description:"Control what protocol Serial8 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial8 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL9_BAUD:{Description:"The baud rate used for Serial8. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 9 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL9_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial9 options",RebootRequired:"True",User:"Advanced"},SERIAL9_PROTOCOL:{Description:"Control what protocol Serial9 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial9 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"EFI Serial",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort",43:"MAVLink High Latency",44:"IRC Tramp","-1":"None"}},SERIAL_PASS1:{Description:"This sets one side of pass-through between two serial ports. Once both sides are set then all data received on either port will be passed to the other port",DisplayName:"Serial passthru first port",User:"Advanced",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},SERIAL_PASS2:{Description:"This sets one side of pass-through between two serial ports. Once both sides are set then all data received on either port will be passed to the other port",DisplayName:"Serial passthru second port",User:"Advanced",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},SERIAL_PASSTIMO:{Description:"This sets a timeout for serial pass-through in seconds. When the pass-through is enabled by setting the SERIAL_PASS1 and SERIAL_PASS2 parameters then it remains in effect until no data comes from the first port for SERIAL_PASSTIMO seconds. This allows the port to revent to its normal usage (such as MAVLink connection to a GCS) when it is no longer needed. A value of 0 means no timeout.",DisplayName:"Serial passthru timeout",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"}},o$={SERVO_32_ENABLE:{Description:"This allows for up to 32 outputs, enabling parameters for outputs above 16",DisplayName:"Enable outputs 17 to 31",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},SERVO_AUTO_TRIM:{Description:"This enables automatic servo trim in flight. Servos will be trimed in stabilized flight modes when the aircraft is close to level. Changes to servo trim will be saved every 10 seconds and will persist between flights. The automatic trim won't go more than 20% away from a centered trim.",DisplayName:"Automatic servo trim",User:"Advanced",Values:{0:"Disable",1:"Enable"}},SERVO_DSHOT_ESC:{Description:"This sets the DShot ESC type for all outputs. The ESC type affects the range of DShot commands available. None means that no dshot commands will be executed.",DisplayName:"Servo DShot ESC type",User:"Advanced",Values:{0:"None",1:"BLHeli32/Kiss",2:"BLHeli_S"}},SERVO_DSHOT_RATE:{Description:"This sets the DShot output rate for all outputs as a multiple of the loop rate. 0 sets the output rate to be fixed at 1Khz for low loop rates. This value should never be set below 500Hz.",DisplayName:"Servo DShot output rate",User:"Advanced",Values:{0:"1Khz",1:"loop-rate",2:"double loop-rate",3:"triple loop-rate",4:"quadruple loop rate"}},SERVO_GPIO_MASK:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16",16:"Servo 17",17:"Servo 18",18:"Servo 19",19:"Servo 20",20:"Servo 21",21:"Servo 22",22:"Servo 23",23:"Servo 24",24:"Servo 25",25:"Servo 26",26:"Servo 27",27:"Servo 28",28:"Servo 29",29:"Servo 30",30:"Servo 31",31:"Servo 32"},Description:"This sets a bitmask of outputs which will be available as GPIOs. Any auxiliary output with either the function set to -1 or with the corresponding bit set in this mask will be available for use as a GPIO pin",DisplayName:"Servo GPIO mask",RebootRequired:"True",User:"Advanced"},SERVO_RATE:{Description:"This sets the default output rate in Hz for all outputs.",DisplayName:"Servo default output rate",Range:{high:"400",low:"25"},Units:"Hz",User:"Advanced"}},s$={SERVO10_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO10_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO10_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO10_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO10_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},l$={SERVO11_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO11_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO11_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO11_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO11_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},c$={SERVO12_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO12_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO12_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO12_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO12_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},d$={SERVO13_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO13_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO13_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO13_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO13_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},C$={SERVO14_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO14_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO14_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO14_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO14_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},m$={SERVO15_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO15_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO15_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO15_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO15_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},u$={SERVO16_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO16_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO16_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO16_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO16_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},h$={SERVO17_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO17_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO17_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO17_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO17_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},p$={SERVO18_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO18_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO18_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO18_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO18_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},f$={SERVO19_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO19_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO19_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO19_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO19_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},V$={SERVO1_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO1_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO1_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO1_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO1_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},L$={SERVO20_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO20_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO20_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO20_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO20_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},H$={SERVO21_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO21_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO21_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO21_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO21_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},M$={SERVO22_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO22_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO22_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO22_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO22_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},g$={SERVO23_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO23_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO23_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO23_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO23_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},A$={SERVO24_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO24_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO24_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO24_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO24_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},v$={SERVO25_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO25_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO25_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO25_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO25_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},_$={SERVO26_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO26_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO26_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO26_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO26_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},S$={SERVO27_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO27_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO27_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO27_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO27_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},D$={SERVO28_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO28_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO28_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO28_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO28_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},y$={SERVO29_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO29_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO29_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO29_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO29_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},R$={SERVO2_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO2_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO2_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO2_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO2_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},b$={SERVO30_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO30_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO30_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO30_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO30_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},N$={SERVO31_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO31_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO31_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO31_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO31_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},w$={SERVO32_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO32_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO32_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO32_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO32_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},T$={SERVO3_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO3_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO3_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO3_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO3_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},E$={SERVO4_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO4_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO4_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO4_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO4_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},P$={SERVO5_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO5_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO5_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO5_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO5_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},I$={SERVO6_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO6_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO6_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO6_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO6_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},O$={SERVO7_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO7_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO7_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO7_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO7_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},U$={SERVO8_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO8_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO8_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO8_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO8_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},x$={SERVO9_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"Mount1Yaw",7:"Mount1Pitch",8:"Mount1Roll",9:"Mount1Retract",10:"CameraTrigger",12:"Mount2Yaw",13:"Mount2Pitch",14:"Mount2Roll",15:"Mount2Retract",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7/TailTiltServo",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",110:"Airbrakes",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",138:"Alarm",139:"Alarm Inverted",140:"RCIN1Scaled",141:"RCIN2Scaled",142:"RCIN3Scaled",143:"RCIN4Scaled",144:"RCIN5Scaled",145:"RCIN6Scaled",146:"RCIN7Scaled",147:"RCIN8Scaled",148:"RCIN9Scaled",149:"RCIN10Scaled",150:"RCIN11Scaled",151:"RCIN12Scaled",152:"RCIN13Scaled",153:"RCIN14Scaled",154:"RCIN15Scaled",155:"RCIN16Scaled","-1":"GPIO"}},SERVO9_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO9_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO9_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO9_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},F$={SERVO_BLH_3DMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16",16:"Channel 17",17:"Channel 18",18:"Channel 19",19:"Channel 20",20:"Channel 21",21:"Channel 22",22:"Channel 23",23:"Channel 24",24:"Channel 25",25:"Channel 26",26:"Channel 27",27:"Channel 28",28:"Channel 29",29:"Channel 30",30:"Channel 31",31:"Channel 32"},Description:"Mask of channels which are dynamically reversible. This is used to configure ESCs in '3D' mode, allowing for the motor to spin in either direction",DisplayName:"BLHeli bitmask of 3D channels",RebootRequired:"True",User:"Advanced"},SERVO_BLH_AUTO:{Description:"If set to 1 this auto-enables BLHeli pass-thru support for all multicopter motors",DisplayName:"BLHeli pass-thru auto-enable for multicopter motors",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},SERVO_BLH_BDMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16",16:"Channel 17",17:"Channel 18",18:"Channel 19",19:"Channel 20",20:"Channel 21",21:"Channel 22",22:"Channel 23",23:"Channel 24",24:"Channel 25",25:"Channel 26",26:"Channel 27",27:"Channel 28",28:"Channel 29",29:"Channel 30",30:"Channel 31",31:"Channel 32"},Description:"Mask of channels which support bi-directional dshot. This is used for ESCs which have firmware that supports bi-directional dshot allowing fast rpm telemetry values to be returned for the harmonic notch.",DisplayName:"BLHeli bitmask of bi-directional dshot channels",RebootRequired:"True",User:"Advanced"},SERVO_BLH_DEBUG:{Description:"When set to 1 this enabled verbose debugging output over MAVLink when the blheli protocol is active. This can be used to diagnose failures.",DisplayName:"BLHeli debug level",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},SERVO_BLH_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16",16:"Channel 17",17:"Channel 18",18:"Channel 19",19:"Channel 20",20:"Channel 21",21:"Channel 22",22:"Channel 23",23:"Channel 24",24:"Channel 25",25:"Channel 26",26:"Channel 27",27:"Channel 28",28:"Channel 29",29:"Channel 30",30:"Channel 31",31:"Channel 32"},Description:"Enable of BLHeli pass-thru servo protocol support to specific channels. This mask is in addition to motors enabled using SERVO_BLH_AUTO (if any)",DisplayName:"BLHeli Channel Bitmask",RebootRequired:"True",User:"Advanced"},SERVO_BLH_OTYPE:{Description:"When set to a non-zero value this overrides the output type for the output channels given by SERVO_BLH_MASK. This can be used to enable DShot on outputs that are not part of the multicopter motors group.",DisplayName:"BLHeli output type override",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"OneShot",2:"OneShot125",3:"Brushed",4:"DShot150",5:"DShot300",6:"DShot600",7:"DShot1200"}},SERVO_BLH_POLES:{Description:"This allows calculation of true RPM from ESC's eRPM. The default is 14.",DisplayName:"BLHeli Motor Poles",Range:{high:"127",low:"1"},RebootRequired:"True",User:"Advanced"},SERVO_BLH_PORT:{Description:"This sets the mavlink channel to use for blheli pass-thru. The channel number is determined by the number of serial ports configured to use mavlink. So 0 is always the console, 1 is the next serial port using mavlink, 2 the next after that and so on.",DisplayName:"Control port",User:"Advanced",Values:{0:"Console",1:"Mavlink Serial Channel1",2:"Mavlink Serial Channel2",3:"Mavlink Serial Channel3",4:"Mavlink Serial Channel4",5:"Mavlink Serial Channel5"}},SERVO_BLH_RVMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16",16:"Channel 17",17:"Channel 18",18:"Channel 19",19:"Channel 20",20:"Channel 21",21:"Channel 22",22:"Channel 23",23:"Channel 24",24:"Channel 25",25:"Channel 26",26:"Channel 27",27:"Channel 28",28:"Channel 29",29:"Channel 30",30:"Channel 31",31:"Channel 32"},Description:"Mask of channels which are reversed. This is used to configure ESCs in reversed mode",DisplayName:"BLHeli bitmask of reversed channels",RebootRequired:"True",User:"Advanced"},SERVO_BLH_TEST:{Description:"Setting SERVO_BLH_TEST to a motor number enables an internal test of the BLHeli ESC protocol to the corresponding ESC. The debug output is displayed on the USB console.",DisplayName:"BLHeli internal interface test",User:"Advanced",Values:{0:"Disabled",1:"TestMotor1",2:"TestMotor2",3:"TestMotor3",4:"TestMotor4",5:"TestMotor5",6:"TestMotor6",7:"TestMotor7",8:"TestMotor8"}},SERVO_BLH_TMOUT:{Description:"This sets the inactivity timeout for the BLHeli protocol in seconds. If no packets are received in this time normal MAVLink operations are resumed. A value of 0 means no timeout",DisplayName:"BLHeli protocol timeout",Range:{high:"300",low:"0"},Units:"s",User:"Standard"},SERVO_BLH_TRATE:{Description:"This sets the rate in Hz for requesting telemetry from ESCs. It is the rate per ESC. Setting to zero disables telemetry requests",DisplayName:"BLHeli telemetry rate",Range:{high:"500",low:"0"},Units:"Hz",User:"Standard"}},k$={SERVO_FTW_MASK:{Bitmask:{0:"SERVO1",1:"SERVO2",2:"SERVO3",3:"SERVO4",4:"SERVO5",5:"SERVO6",6:"SERVO7",7:"SERVO8",8:"SERVO9",9:"SERVO10",10:"SERVO11",11:"SERVO12"},Description:"Servo channel mask specifying FETtec ESC output.",DisplayName:"Servo channel output bitmask",RebootRequired:"True",User:"Standard"},SERVO_FTW_POLES:{Description:"Number of motor electrical poles",DisplayName:"Nr. electrical poles",Range:{high:"50",low:"2"},User:"Standard"},SERVO_FTW_RVMASK:{Bitmask:{0:"SERVO1",1:"SERVO2",2:"SERVO3",3:"SERVO4",4:"SERVO5",5:"SERVO6",6:"SERVO7",7:"SERVO8",8:"SERVO9",9:"SERVO10",10:"SERVO11",11:"SERVO12"},Description:"Servo channel mask to reverse rotation of FETtec ESC outputs.",DisplayName:"Servo channel reverse rotation bitmask",User:"Standard"}},B$={SERVO_ROB_POSMAX:{Description:"Position maximum at servo max value. This should be within the position control range of the servos, normally 0 to 4095",DisplayName:"Robotis servo position max",Range:{high:"4095",low:"0"},User:"Standard"},SERVO_ROB_POSMIN:{Description:"Position minimum at servo min value. This should be within the position control range of the servos, normally 0 to 4095",DisplayName:"Robotis servo position min",Range:{high:"4095",low:"0"},User:"Standard"}},z$={SERVO_SBUS_RATE:{Description:"This sets the SBUS output frame rate in Hz.",DisplayName:"SBUS default output rate",Range:{high:"250",low:"25"},Units:"Hz",User:"Advanced"}},Z$={SERVO_VOLZ_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16",16:"Channel17",17:"Channel18",18:"Channel19",19:"Channel20",20:"Channel21",21:"Channel22",22:"Channel23",23:"Channel24",24:"Channel25",25:"Channel26",26:"Channel27",28:"Channel29",29:"Channel30",30:"Channel31",31:"Channel32"},Description:"Enable of volz servo protocol to specific channels",DisplayName:"Channel Bitmask",User:"Standard"}},G$={SOAR_ALT_CUTOFF:{Description:"Cut off throttle at this alt.",DisplayName:"Maximum power altitude, relative to the home location",Range:{high:"5000.0",low:"0"},Units:"m",User:"Advanced"},SOAR_ALT_MAX:{Description:"Don't thermal any higher than this.",DisplayName:"Maximum soaring altitude, relative to the home location",Range:{high:"5000.0",low:"0"},Units:"m",User:"Advanced"},SOAR_ALT_MIN:{Description:"Don't get any lower than this.",DisplayName:"Minimum soaring altitude, relative to the home location",Range:{high:"1000.0",low:"0"},Units:"m",User:"Advanced"},SOAR_CRSE_ARSPD:{Description:"If non-zero this airspeed will be used when cruising. If set to -1, airspeed will be selected based on speed-to-fly theory.",DisplayName:"Specific setting for airspeed when cruising.",Range:{high:"50",low:"5"},User:"Advanced"},SOAR_DIST_AHEAD:{Description:"Initial guess of the distance to the thermal center",DisplayName:"Distance to thermal center",Range:{high:"100",low:"0"},Units:"m",User:"Advanced"},SOAR_ENABLE:{Description:"Toggles the soaring mode on and off",DisplayName:"Is the soaring mode enabled or not",User:"Advanced",Values:{0:"Disable",1:"Enable"}},SOAR_MAX_DRIFT:{Description:"The previous mode will be restored if the horizontal distance to the thermalling start location exceeds this value. -1 to disable.",DisplayName:"(Optional) Maximum drift distance to allow when thermalling.",Range:{high:"1000",low:"0"},User:"Advanced"},SOAR_MAX_RADIUS:{Description:"RTL will be entered when a thermal is exited and the plane is more than this distance from home. -1 to disable.",DisplayName:"(Optional) Maximum distance from home",Range:{high:"1000",low:"0"},User:"Advanced"},SOAR_MIN_CRSE_S:{Description:"Minimum number of seconds to spend cruising",DisplayName:"Minimum cruising time",Range:{high:"600",low:"0"},Units:"s",User:"Advanced"},SOAR_MIN_THML_S:{Description:"Minimum number of seconds to spend thermalling",DisplayName:"Minimum thermalling time",Range:{high:"600",low:"0"},Units:"s",User:"Advanced"},SOAR_POLAR_B:{Description:"Induced drag coeffient",DisplayName:"Induced drag coeffient",Range:{high:"0.05",low:"0.005"},User:"Advanced"},SOAR_POLAR_CD0:{Description:"Zero lift drag coefficient",DisplayName:"Zero lift drag coef.",Range:{high:"0.5",low:"0.005"},User:"Advanced"},SOAR_POLAR_K:{Description:"Cl factor 2*m*g/(rho*S)",DisplayName:"Cl factor",Range:{high:"400",low:"20"},Units:"m.m/s/s",User:"Advanced"},SOAR_Q1:{Description:"Standard deviation of noise in process for strength",DisplayName:"Process noise",Range:{high:"0.01",low:"0.0001"},User:"Advanced"},SOAR_Q2:{Description:"Standard deviation of noise in process for position and radius",DisplayName:"Process noise",Range:{high:"1",low:"0.01"},User:"Advanced"},SOAR_R:{Description:"Standard deviation of noise in measurement",DisplayName:"Measurement noise",Range:{high:"1",low:"0.01"},User:"Advanced"},SOAR_THML_ARSPD:{Description:"If non-zero this airspeed will be used when thermalling.",DisplayName:"Specific setting for airspeed when thermalling.",Range:{high:"50",low:"5"},User:"Advanced"},SOAR_THML_BANK:{Description:"This parameter sets the bank angle to use when thermalling. Typically 30 - 45 degrees works well.",DisplayName:"Thermalling bank angle",Range:{high:"50",low:"20"},Units:"deg",User:"Advanced"},SOAR_THML_FLAP:{Description:"This sets the flap when in LOITER with soaring active. Overrides the usual auto flap behaviour.",DisplayName:"Flap percent to be used during thermalling flight.",Range:{high:"100",low:"0"},User:"Advanced"},SOAR_VSPEED:{Description:"Rate of climb to trigger themalling speed",DisplayName:"Vertical v-speed",Range:{high:"10",low:"0"},Units:"m/s",User:"Advanced"}},W$={SR0_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR0_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},X$={SR1_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR1_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},Y$={SR2_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR2_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},$$={SR3_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR3_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},q$={SR4_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR4_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},K$={SR5_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR5_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},j$={SR6_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"},SR6_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},RebootRequired:"True",Units:"Hz",User:"Advanced"}},Q$={STAT_BOOTCNT:{Description:"Number of times board has been booted",DisplayName:"Boot Count",ReadOnly:"True",User:"Standard"},STAT_FLTTIME:{Description:"Total FlightTime (seconds)",DisplayName:"Total FlightTime",ReadOnly:"True",Units:"s",User:"Standard"},STAT_RESET:{Description:"Seconds since January 1st 2016 (Unix epoch+1451606400) since statistics reset (set to 0 to reset statistics)",DisplayName:"Statistics Reset Time",ReadOnly:"True",Units:"s",User:"Standard"},STAT_RUNTIME:{Description:"Total time autopilot has run",DisplayName:"Total RunTime",ReadOnly:"True",Units:"s",User:"Standard"}},J$={STEER2SRV_D:{Description:"This adjusts the damping of the steering control loop. This gain helps to reduce steering jitter with vibration. It should be increased in 0.01 increments as too high a value can lead to a high frequency steering oscillation that could overstress the vehicle.",DisplayName:"Damping Gain",Increment:"0.01",Range:{high:"0.1",low:"0"},User:"Standard"},STEER2SRV_DRTFCT:{Description:'Degrees of steering wheel to derate at each additional m/s of speed above "Derating speed". Should be set so that at higher speeds the plane does not roll to the wing in turns.',DisplayName:"Derating factor",Increment:"0.1",Range:{high:"50.0",low:"0.0"},Units:"deg/m/s",User:"Advanced"},STEER2SRV_DRTMIN:{Description:"The angle that limits smallest angle of steering wheel at maximum speed. Even if it should derate below, it will stop derating at this angle.",DisplayName:"Minimum angle of wheel",Increment:"10",Range:{high:"4500",low:"0"},Units:"cdeg",User:"Advanced"},STEER2SRV_DRTSPD:{Description:"Speed after that the maximum degree of steering will start to derate. Set this speed to a maximum speed that a plane can do controlled turn at maximum angle of steering wheel without rolling to wing. If 0 then no derating is used.",DisplayName:"Derating speed",Increment:"0.1",Range:{high:"30.0",low:"0.0"},Units:"m/s",User:"Advanced"},STEER2SRV_FF:{Description:"The feed forward gain for steering this is the ratio of the achieved turn rate to applied steering. A value of 1 means that the vehicle would yaw at a rate of 45 degrees per second with full steering deflection at 1m/s ground speed.",DisplayName:"Steering feed forward",Increment:"0.1",Range:{high:"10.0",low:"0.0"},User:"Standard"},STEER2SRV_I:{Description:"This is the gain from the integral of steering angle. Increasing this gain causes the controller to trim out steady offsets due to an out of trim vehicle.",DisplayName:"Integrator Gain",Increment:"0.05",Range:{high:"1.0",low:"0"},User:"Standard"},STEER2SRV_IMAX:{Description:"This limits the number of degrees of steering in centi-degrees over which the integrator will operate. At the default setting of 1500 centi-degrees, the integrator will be limited to +- 15 degrees of servo travel. The maximum servo deflection is +- 45 centi-degrees, so the default value represents a 1/3rd of the total control throw which is adequate unless the vehicle is severely out of trim.",DisplayName:"Integrator limit",Increment:"10",Range:{high:"4500",low:"0"},Units:"cdeg",User:"Advanced"},STEER2SRV_MINSPD:{Description:"This is the minimum assumed ground speed in meters/second for steering. Having a minimum speed prevents oscillations when the vehicle first starts moving. The vehicle can still drive slower than this limit, but the steering calculations will be done based on this minimum speed.",DisplayName:"Minimum speed",Increment:"0.1",Range:{high:"5",low:"0"},Units:"m/s",User:"Standard"},STEER2SRV_P:{Description:"The proportional gain for steering. This should be approximately equal to the diameter of the turning circle of the vehicle at low speed and maximum steering angle",DisplayName:"Steering turning gain",Increment:"0.1",Range:{high:"10.0",low:"0.1"},User:"Standard"},STEER2SRV_TCONST:{Description:"This controls the time constant in seconds from demanded to achieved steering angle. A value of 0.75 is a good default and will work with nearly all rovers. Ground steering in aircraft needs a bit smaller time constant, and a value of 0.5 is recommended for best ground handling in fixed wing aircraft. A value of 0.75 means that the controller will try to correct any deviation between the desired and actual steering angle in 0.75 seconds. Advanced users may want to reduce this time to obtain a faster response but there is no point setting a time less than the vehicle can achieve.",DisplayName:"Steering Time Constant",Increment:"0.1",Range:{high:"1.0",low:"0.4"},Units:"s",User:"Advanced"}},eq={TECS_APPR_SMAX:{Description:"The sink rate max for the landing approach stage of landing. This will need to be large for steep landing approaches especially when using reverse thrust. If 0, then use TECS_SINK_MAX.",DisplayName:"Sink rate max for landing approach stage",Increment:"0.1",Range:{high:"20.0",low:"0.0"},Units:"m/s",User:"Advanced"},TECS_CLMB_MAX:{Description:"Maximum demanded climb rate. Do not set higher than the climb speed at THR_MAX at TRIM_ARSPD_CM when the battery is at low voltage. Reduce value if airspeed cannot be maintained on ascent. Increase value if throttle does not increase significantly to ascend.",DisplayName:"Maximum Climb Rate (metres/sec)",Increment:"0.1",Range:{high:"20.0",low:"0.1"},User:"Standard"},TECS_HGT_OMEGA:{Description:"This is the cross-over frequency of the complementary filter used to fuse vertical acceleration and baro alt to obtain an estimate of height rate and height.",DisplayName:"Height complementary filter frequency (radians/sec)",Increment:"0.05",Range:{high:"5.0",low:"1.0"},User:"Advanced"},TECS_INTEG_GAIN:{Description:"Integrator gain to trim out long-term speed and height errors.",DisplayName:"Controller integrator",Increment:"0.02",Range:{high:"0.5",low:"0.0"},User:"Advanced"},TECS_LAND_ARSPD:{Description:"When performing an autonomus landing, this value is used as the goal airspeed during approach. Note that this parameter is not useful if your platform does not have an airspeed sensor (use TECS_LAND_THR instead). If negative then this value is not used during landing.",DisplayName:"Airspeed during landing approach (m/s)",Increment:"1",Range:{high:"127",low:"-1"},User:"Standard"},TECS_LAND_DAMP:{Description:"This is the sink rate gain for the pitch demand loop when in final landing stage of flight. It should be larger than TECS_PTCH_DAMP to allow for better sink rate control during flare.",DisplayName:"Controller sink rate to pitch gain during flare",Increment:"0.1",Range:{high:"1.0",low:"0.1"},User:"Advanced"},TECS_LAND_IGAIN:{Description:"This is the integrator gain on the control loop during landing. When set to 0 then TECS_INTEG_GAIN is used. Increase to increase the rate at which speed and height offsets are trimmed out. Typically values lower than TECS_INTEG_GAIN work best",DisplayName:"Controller integrator during landing",Increment:"0.02",Range:{high:"0.5",low:"0.0"},User:"Advanced"},TECS_LAND_PDAMP:{Description:"This is the damping gain for the pitch demand loop during landing. Increase to add damping to correct for oscillations in speed and height. If set to 0 then TECS_PTCH_DAMP will be used instead.",DisplayName:"Pitch damping gain when landing",Increment:"0.1",Range:{high:"1.0",low:"0.1"},User:"Advanced"},TECS_LAND_PMAX:{Description:"This limits the pitch used during the final stage of automatic landing. During the final landing stage most planes need to keep their pitch small to avoid stalling. A maximum of 10 degrees is usually good. A value of zero means to use the normal pitch limits.",DisplayName:"Maximum pitch during final stage of landing",Increment:"1",Range:{high:"40",low:"-5"},User:"Advanced"},TECS_LAND_SINK:{Description:"The sink rate in meters/second for the final stage of landing.",DisplayName:"Sink rate for final landing stage",Increment:"0.1",Range:{high:"2.0",low:"0.0"},User:"Advanced"},TECS_LAND_SPDWGT:{Description:"Same as SPDWEIGHT parameter, with the exception that this parameter is applied during landing flight stages. A value closer to 2 will result in the plane ignoring height error during landing and our experience has been that the plane will therefore keep the nose up -- sometimes good for a glider landing (with the side effect that you will likely glide a ways past the landing point). A value closer to 0 results in the plane ignoring speed error -- use caution when lowering the value below 1 -- ignoring speed could result in a stall. Values between 0 and 2 are valid values for a fixed landing weight. When using -1 the weight will be scaled during the landing. At the start of the landing approach it starts with TECS_SPDWEIGHT and scales down to 0 by the time you reach the land point. Example: Halfway down the landing approach you'll effectively have a weight of TECS_SPDWEIGHT/2.",DisplayName:"Weighting applied to speed control during landing.",Increment:"0.1",Range:{high:"2.0",low:"-1.0"},User:"Advanced"},TECS_LAND_SRC:{Description:"When zero, the flare sink rate (TECS_LAND_SINK) is a fixed sink demand. With this enabled the flare sinkrate will increase/decrease the flare sink demand as you get further beyond the LAND waypoint. Has no effect before the waypoint. This value is added to TECS_LAND_SINK proportional to distance traveled after wp. With an increasing sink rate you can still land in a given distance if you're traveling too fast and cruise passed the land point. A positive value will force the plane to land sooner proportional to distance passed land point. A negative number will tell the plane to slowly climb allowing for a pitched-up stall landing. Recommend 0.2 as initial value.",DisplayName:"Land sink rate change",Increment:"0.1",Range:{high:"2.0",low:"-2.0"},Units:"m/s/m",User:"Advanced"},TECS_LAND_TCONST:{Description:"This is the time constant of the TECS control algorithm when in final landing stage of flight. It should be smaller than TECS_TIME_CONST to allow for faster flare",DisplayName:"Land controller time constant (sec)",Increment:"0.2",Range:{high:"5.0",low:"1.0"},User:"Advanced"},TECS_LAND_TDAMP:{Description:"Damping gain for the throttle demand loop during an auto-landing. Same as TECS_THR_DAMP but only in effect during an auto-land. Increase to add throttle activity to dampen oscillations in speed and height. When set to 0 landing throttle damping is controlled by TECS_THR_DAMP.",DisplayName:"Controller throttle damping when landing",Increment:"0.1",Range:{high:"1.0",low:"0.1"},User:"Advanced"},TECS_LAND_THR:{Description:"Use this parameter instead of LAND_ARSPD if your platform does not have an airspeed sensor. It is the cruise throttle during landing approach. If this value is negative then it is disabled and TECS_LAND_ARSPD is used instead.",DisplayName:"Cruise throttle during landing approach (percentage)",Increment:"0.1",Range:{high:"100",low:"-1"},User:"Standard"},TECS_OPTIONS:{Bitmask:{0:"GliderOnly"},Description:"This allows the enabling of special features in the speed/height controller",DisplayName:"Extra TECS options",User:"Advanced"},TECS_PITCH_MAX:{Description:"Overrides LIM_PITCH_MAX in automatic throttle modes to reduce climb rates. Uses LIM_PITCH_MAX if set to 0. For proper TECS tuning, set to the angle that the aircraft can climb at TRIM_ARSPD_CM and THR_MAX.",DisplayName:"Maximum pitch in auto flight",Increment:"1",Range:{high:"45",low:"0"},User:"Advanced"},TECS_PITCH_MIN:{Description:"Overrides LIM_PITCH_MIN in automatic throttle modes to reduce descent rates. Uses LIM_PITCH_MIN if set to 0. For proper TECS tuning, set to the angle that the aircraft can descend at without overspeeding.",DisplayName:"Minimum pitch in auto flight",Increment:"1",Range:{high:"0",low:"-45"},User:"Advanced"},TECS_PTCH_DAMP:{Description:"Damping gain for pitch control from TECS control. Increasing may correct for oscillations in speed and height, but too much may cause additional oscillation and degraded control.",DisplayName:"Controller pitch damping",Increment:"0.1",Range:{high:"1.0",low:"0.1"},User:"Advanced"},TECS_PTCH_FF_K:{Description:"This parameter sets the gain between demanded airspeed and pitch. It has units of radians per metre per second and should generally be negative. A good starting value is -0.04 for gliders and -0.08 for draggy airframes. The default (0.0) disables this feed-forward.",DisplayName:"Gain for pitch feed-forward.",Range:{high:"0.0",low:"-5.0"},User:"Advanced"},TECS_PTCH_FF_V0:{Description:"This parameter sets the airspeed at which no feed-forward is applied between demanded airspeed and pitch. It should correspond to the airspeed in metres per second at which the plane glides at neutral pitch including STAB_PITCH_DOWN.",DisplayName:"Baseline airspeed for pitch feed-forward.",Range:{high:"50.0",low:"5.0"},User:"Advanced"},TECS_RLL2THR:{Description:"Gain from bank angle to throttle to compensate for loss of airspeed from drag in turns. Set to approximately 10x the sink rate in m/s caused by a 45-degree turn. High efficiency models may need less while less efficient aircraft may need more. Should be tuned in an automatic mission with waypoints and turns greater than 90 degrees. Tune with PTCH2SRV_RLL and KFF_RDDRMIX to achieve constant airspeed, constant altitude turns.",DisplayName:"Bank angle compensation gain",Increment:"1.0",Range:{high:"30.0",low:"5.0"},User:"Advanced"},TECS_SINK_MAX:{Description:"Maximum demanded descent rate. Do not set higher than the vertical speed the aircraft can maintain at THR_MIN, TECS_PITCH_MIN, and ARSPD_FBW_MAX.",DisplayName:"Maximum Descent Rate (metres/sec)",Increment:"0.1",Range:{high:"20.0",low:"0.0"},User:"Standard"},TECS_SINK_MIN:{Description:"Minimum sink rate when at THR_MIN and TRIM_ARSPD_CM.",DisplayName:"Minimum Sink Rate (metres/sec)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},User:"Standard"},TECS_SPDWEIGHT:{Description:"Mixing of pitch and throttle correction for height and airspeed errors. Pitch controls altitude and throttle controls airspeed if set to 0. Pitch controls airspeed and throttle controls altitude if set to 2 (good for gliders). Blended if set to 1.",DisplayName:"Weighting applied to speed control",Increment:"0.1",Range:{high:"2.0",low:"0.0"},User:"Advanced"},TECS_SPD_OMEGA:{Description:"This is the cross-over frequency of the complementary filter used to fuse longitudinal acceleration and airspeed to obtain a lower noise and lag estimate of airspeed.",DisplayName:"Speed complementary filter frequency (radians/sec)",Increment:"0.05",Range:{high:"2.0",low:"0.5"},User:"Advanced"},TECS_SYNAIRSPEED:{Description:"This enable the use of synthetic airspeed for aircraft that don't have a real airspeed sensor. This is useful for development testing where the user is aware of the considerable limitations of the synthetic airspeed system, such as very poor estimates when a wind estimate is not accurate. Do not enable this option unless you fully understand the limitations of a synthetic airspeed estimate.",DisplayName:"Enable the use of synthetic airspeed",User:"Advanced",Values:{0:"Disable",1:"Enable"}},TECS_THR_DAMP:{Description:"Damping gain for throttle demand loop. Increase to add throttle activity to dampen oscillations in speed and height.",DisplayName:"Controller throttle damping",Increment:"0.1",Range:{high:"1.0",low:"0.1"},User:"Advanced"},TECS_TIME_CONST:{Description:"Time constant of the TECS control algorithm. Small values make faster altitude corrections but can cause overshoot and aggressive behavior.",DisplayName:"Controller time constant (sec)",Increment:"0.2",Range:{high:"10.0",low:"3.0"},User:"Advanced"},TECS_TKOFF_IGAIN:{Description:"This is the integrator gain on the control loop during takeoff. When set to 0 then TECS_INTEG_GAIN is used. Increase to increase the rate at which speed and height offsets are trimmed out. Typically values higher than TECS_INTEG_GAIN work best",DisplayName:"Controller integrator during takeoff",Increment:"0.02",Range:{high:"0.5",low:"0.0"},User:"Advanced"},TECS_VERT_ACC:{Description:"Maximum vertical acceleration used to correct speed or height errors.",DisplayName:"Vertical Acceleration Limit (metres/sec^2)",Increment:"0.5",Range:{high:"10.0",low:"1.0"},User:"Advanced"}},tq={TERRAIN_ENABLE:{Description:"enable terrain data. This enables the vehicle storing a database of terrain data on the SD card. The terrain data is requested from the ground station as needed, and stored for later use on the SD card. To be useful the ground station must support TERRAIN_REQUEST messages and have access to a terrain database, such as the SRTM database.",DisplayName:"Terrain data enable",User:"Advanced",Values:{0:"Disable",1:"Enable"}},TERRAIN_MARGIN:{Description:"Margin in centi-meters to accept terrain data from the GCS. This can be used to allow older terrain data generated with less accurate latitude/longitude scaling to be used",DisplayName:"Acceptance margin",Range:{high:"50000",low:"0.05"},Units:"m",User:"Advanced"},TERRAIN_OFS_MAX:{Description:"The maximum adjustment of terrain altitude based on the assumption that the vehicle is on the ground when it is armed. When the vehicle is armed the location of the vehicle is recorded, and when terrain data is available for that location a height adjustment for terrain data is calculated that aligns the terrain height at that location with the altitude recorded at arming. This height adjustment is applied to all terrain data. This parameter clamps the amount of adjustment. A value of zero disables the use of terrain height adjustment.",DisplayName:"Terrain reference offset maximum",Range:{high:"50",low:"0"},Units:"m",User:"Advanced"},TERRAIN_OPTIONS:{Bitmask:{0:"Disable Download"},Description:"Options to change behaviour of terrain system",DisplayName:"Terrain options",User:"Advanced"},TERRAIN_SPACING:{Description:"Distance between terrain grid points in meters. This controls the horizontal resolution of the terrain data that is stored on te SD card and requested from the ground station. If your GCS is using the ArduPilot SRTM database like Mission Planner or MAVProxy, then a resolution of 100 meters is appropriate. Grid spacings lower than 100 meters waste SD card space if the GCS cannot provide that resolution. The grid spacing also controls how much data is kept in memory during flight. A larger grid spacing will allow for a larger amount of data in memory. A grid spacing of 100 meters results in the vehicle keeping 12 grid squares in memory with each grid square having a size of 2.7 kilometers by 3.2 kilometers. Any additional grid squares are stored on the SD once they are fetched from the GCS and will be loaded as needed.",DisplayName:"Terrain grid spacing",Increment:"1",Units:"m",User:"Advanced"}},iq={TKOFF_ALT:{Description:"This is the target altitude for TAKEOFF mode",DisplayName:"Takeoff mode altitude",Increment:"1",Range:{high:"200",low:"0"},Units:"m",User:"Standard"},TKOFF_DIST:{Description:"This is the distance from the takeoff location where the plane will loiter. The loiter point will be in the direction of takeoff (the direction the plane is facing when the motor starts)",DisplayName:"Takeoff mode distance",Increment:"1",Range:{high:"500",low:"0"},Units:"m",User:"Standard"},TKOFF_LVL_ALT:{Description:"This is the altitude below which wings are held level for TAKEOFF mode",DisplayName:"Takeoff mode altitude level altitude",Increment:"1",Range:{high:"50",low:"0"},Units:"m",User:"Standard"},TKOFF_LVL_PITCH:{Description:"This is the target pitch for the initial climb to TKOFF_LVL_ALT",DisplayName:"Takeoff mode altitude initial pitch",Increment:"1",Range:{high:"30",low:"0"},Units:"deg",User:"Standard"}},aq={TUNE_CHAN:{Description:"This sets the channel for transmitter tuning. This should be connected to a knob or slider on your transmitter. It needs to be setup to use the PWM range given by TUNE_CHAN_MIN to TUNE_CHAN_MAX",DisplayName:"Transmitter tuning channel",User:"Standard",Values:{0:"Disable",5:"Chan5",6:"Chan6",7:"Chan7",8:"Chan8",9:"Chan9",10:"Chan10",11:"Chan11",12:"Chan12",13:"Chan13",14:"Chan14",15:"Chan15",16:"Chan16"}},TUNE_CHAN_MAX:{Description:"This sets the PWM upper limit for the tuning channel",DisplayName:"Transmitter tuning channel maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},TUNE_CHAN_MIN:{Description:"This sets the PWM lower limit for the tuning channel",DisplayName:"Transmitter tuning channel minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},TUNE_ERR_THRESH:{Description:"This sets the controller error threshold above which an alarm will sound and a message will be sent to the GCS to warn of controller instability while tuning. The error is the rms value of the P+D corrections in the loop. High values in hover indicate possible instability due to too high PID gains or excessively high D to P gain ratios.-1 will disable this message.",DisplayName:"Controller error threshold",Range:{high:"1",low:"0"},User:"Standard"},TUNE_MODE_REVERT:{Description:"This controls whether tuning values will revert on a flight mode change.",DisplayName:"Revert on mode change",User:"Standard",Values:{0:"Disable",1:"Enable"}},TUNE_PARAM:{Description:"This sets which parameter or set of parameters will be tuned. Values greater than 100 indicate a set of parameters rather than a single parameter. Parameters less than 50 are for QuadPlane vertical lift motors only.",DisplayName:"Transmitter tuning parameter or set of parameters",User:"Standard",Values:{0:"None",1:"RateRollPI",2:"RateRollP",3:"RateRollI",4:"RateRollD",5:"RatePitchPI",6:"RatePitchP",7:"RatePitchI",8:"RatePitchD",9:"RateYawPI",10:"RateYawP",11:"RateYawI",12:"RateYawD",13:"AngleRollP",14:"AnglePitchP",15:"AngleYawP",16:"PosXYP",17:"PosZP",18:"VelXYP",19:"VelXYI",20:"VelZP",21:"AccelZP",22:"AccelZI",23:"AccelZD",24:"RatePitchFF",25:"RateRollFF",26:"RateYawFF",50:"FixedWingRollP",51:"FixedWingRollI",52:"FixedWingRollD",53:"FixedWingRollFF",54:"FixedWingPitchP",55:"FixedWingPitchI",56:"FixedWingPitchD",57:"FixedWingPitchFF",101:"Set_RateRollPitch",102:"Set_RateRoll",103:"Set_RatePitch",104:"Set_RateYaw",105:"Set_AngleRollPitch",106:"Set_VelXY",107:"Set_AccelZ",108:"Set_RatePitchDP",109:"Set_RateRollDP",110:"Set_RateYawDP"}},TUNE_RANGE:{Description:"This sets the range over which tuning will change a parameter. A value of 2 means the tuning parameter will go from 0.5 times the start value to 2x the start value over the range of the tuning channel",DisplayName:"Transmitter tuning range",User:"Standard"},TUNE_SELECTOR:{Description:"This sets the channel for the transmitter tuning selector switch. This should be a 2 position switch, preferably spring loaded. A PWM above 1700 means high, below 1300 means low. If no selector is set then you won't be able to switch between parameters during flight or re-center the tuning knob",DisplayName:"Transmitter tuning selector channel",User:"Standard",Values:{0:"Disable",1:"Chan1",2:"Chan3",3:"Chan3",4:"Chan4",5:"Chan5",6:"Chan6",7:"Chan7",8:"Chan8",9:"Chan9",10:"Chan10",11:"Chan11",12:"Chan12",13:"Chan13",14:"Chan14",15:"Chan15",16:"Chan16"}}},rq={VISO_DELAY_MS:{Description:"Visual odometry sensor delay relative to inertial measurements",DisplayName:"Visual odometry sensor delay",Range:{high:"250",low:"0"},Units:"ms",User:"Advanced"},VISO_ORIENT:{Description:"Visual odometery camera orientation",DisplayName:"Visual odometery camera orientation",User:"Advanced",Values:{0:"Forward",2:"Right",4:"Back",6:"Left",24:"Up",25:"Down"}},VISO_POS_M_NSE:{Description:"Visual odometry position measurement noise minimum (meters). This value will be used if the sensor provides a lower noise value (or no noise value)",DisplayName:"Visual odometry position measurement noise ",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},VISO_POS_X:{Description:"X position of the camera in body frame. Positive X is forward of the origin.",DisplayName:"Visual odometry camera X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_POS_Y:{Description:"Y position of the camera in body frame. Positive Y is to the right of the origin.",DisplayName:"Visual odometry camera Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_POS_Z:{Description:"Z position of the camera in body frame. Positive Z is down from the origin.",DisplayName:"Visual odometry camera Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_SCALE:{Description:"Visual odometry scaling factor applied to position estimates from sensor",DisplayName:"Visual odometry scaling factor",User:"Advanced"},VISO_TYPE:{Description:"Visual odometry camera connection type",DisplayName:"Visual odometry camera connection type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"MAVLink",2:"IntelT265",3:"VOXL(ModalAI)"}},VISO_VEL_M_NSE:{Description:"Visual odometry velocity measurement noise in m/s",DisplayName:"Visual odometry velocity measurement noise",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},VISO_YAW_M_NSE:{Description:"Visual odometry yaw measurement noise minimum (radians), This value will be used if the sensor provides a lower noise value (or no noise value)",DisplayName:"Visual odometry yaw measurement noise",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},nq={VTX_BAND:{Description:"Video Transmitter Band",DisplayName:"Video Transmitter Band",User:"Standard",Values:{0:"Band A",1:"Band B",2:"Band E",3:"Airwave",4:"RaceBand",5:"Low RaceBand"}},VTX_CHANNEL:{Description:"Video Transmitter Channel",DisplayName:"Video Transmitter Channel",Range:{high:"7",low:"0"},User:"Standard"},VTX_ENABLE:{Description:"Toggles the Video Transmitter on and off",DisplayName:"Is the Video Transmitter enabled or not",Values:{0:"Disable",1:"Enable"}},VTX_FREQ:{Description:"Video Transmitter Frequency. The frequency is derived from the setting of BAND and CHANNEL",DisplayName:"Video Transmitter Frequency",Range:{high:"6000",low:"5000"},ReadOnly:"True",User:"Standard"},VTX_MAX_POWER:{Description:"Video Transmitter Maximum Power Level. Different VTXs support different power levels, this prevents the power aux switch from requesting too high a power level. The switch supports 6 power levels and the selected power will be a subdivision between 0 and this setting.",DisplayName:"Video Transmitter Max Power Level",Range:{high:"1000",low:"25"}},VTX_OPTIONS:{Bitmask:{0:"Pitmode",1:"Pitmode until armed",2:"Pitmode when disarmed",3:"Unlocked",4:"Add leading zero byte to requests",5:"Use 1 stop-bit in SmartAudio",6:"Ignore CRC in SmartAudio",7:"Ignore status updates in CRSF and blindly set VTX options"},Description:"Video Transmitter Options. Pitmode puts the VTX in a low power state. Unlocked enables certain restricted frequencies and power levels. Do not enable the Unlocked option unless you have appropriate permissions in your jurisdiction to transmit at high power levels. One stop-bit may be required for VTXs that erroneously mimic iNav behaviour.",DisplayName:"Video Transmitter Options",User:"Advanced"},VTX_POWER:{Description:"Video Transmitter Power Level. Different VTXs support different power levels, the power level chosen will be rounded down to the nearest supported power level",DisplayName:"Video Transmitter Power Level",Range:{high:"1000",low:"1"}}},oq={YAW2SRV_DAMP:{Description:"Gain from yaw rate to rudder. Most effective at yaw damping and should be tuned after KFF_RDDRMIX. Also disables YAW2SRV_INT if set to 0.",DisplayName:"Yaw damping",Increment:"0.25",Range:{high:"2",low:"0"},User:"Advanced"},YAW2SRV_IMAX:{Description:"Limit of yaw integrator gain in centi-degrees of servo travel. Servos are assumed to have +/- 4500 centi-degrees of travel, so a value of 1500 allows trim of up to 1/3 of servo travel range.",DisplayName:"Integrator limit",Increment:"1",Range:{high:"4500",low:"0"},User:"Advanced"},YAW2SRV_INT:{Description:"Integral gain from lateral acceleration error. Effectively trims rudder to eliminate long-term sideslip.",DisplayName:"Sideslip control integrator",Increment:"0.25",Range:{high:"2",low:"0"},User:"Advanced"},YAW2SRV_RLL:{Description:"Gain to the yaw rate required to keep it consistent with the turn rate in a coordinated turn. Corrects for yaw tendencies after the turn is established. Increase yaw into the turn by raising. Increase yaw out of the turn by decreasing. Values outside of 0.9-1.1 range indicate airspeed calibration problems.",DisplayName:"Yaw coordination gain",Increment:"0.05",Range:{high:"1.2",low:"0.8"},User:"Advanced"},YAW2SRV_SLIP:{Description:"Gain from lateral acceleration to demanded yaw rate for aircraft with enough fuselage area to detect lateral acceleration and sideslips. Do not enable for flying wings and gliders. Actively coordinates flight more than just yaw damping. Set after YAW2SRV_DAMP and YAW2SRV_INT are tuned.",DisplayName:"Sideslip control gain",Increment:"0.25",Range:{high:"4",low:"0"},User:"Advanced"},YAW_RATE_D:{Description:"Yaw axis rate controller D gain. Compensates for short-term change in desired yaw rate vs actual yaw rate",DisplayName:"Yaw axis rate controller D gain",Increment:"0.001",Range:{high:"0.03",low:"0.001"},User:"Standard"},YAW_RATE_ENABLE:{Description:"Enable yaw rate controller for aerobatic flight",DisplayName:"Yaw rate enable",User:"Advanced",Values:{0:"Disable",1:"Enable"}},YAW_RATE_FF:{Description:"Yaw axis rate controller feed forward",DisplayName:"Yaw axis rate controller feed forward",Increment:"0.001",Range:{high:"3.0",low:"0"},User:"Standard"},YAW_RATE_FLTD:{Description:"Yaw axis rate controller derivative frequency in Hz",DisplayName:"Yaw axis rate controller derivative frequency in Hz",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Standard"},YAW_RATE_FLTE:{Description:"Yaw axis rate controller error frequency in Hz",DisplayName:"Yaw axis rate controller error frequency in Hz",Increment:"1",Range:{high:"50",low:"2"},Units:"Hz",User:"Standard"},YAW_RATE_FLTT:{Description:"Yaw axis rate controller target frequency in Hz",DisplayName:"Yaw axis rate controller target frequency in Hz",Increment:"1",Range:{high:"50",low:"2"},Units:"Hz",User:"Standard"},YAW_RATE_I:{Description:"Yaw axis rate controller I gain. Corrects long-term difference in desired yaw rate vs actual yaw rate",DisplayName:"Yaw axis rate controller I gain",Increment:"0.01",Range:{high:"0.6",low:"0.01"},User:"Standard"},YAW_RATE_IMAX:{Description:"Yaw axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Yaw axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},YAW_RATE_P:{Description:"Yaw axis rate controller P gain. Converts the difference between desired yaw rate and actual yaw rate into a motor speed output",DisplayName:"Yaw axis rate controller P gain",Increment:"0.005",Range:{high:"0.35",low:"0.08"},User:"Standard"},YAW_RATE_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Yaw slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"}},sq={version:0},uB1={ADSB_:oW,AFS_:sW,AHRS_:lW,AIS_:cW,ARMING_:dW,ARSPD:CW,AVD_:mW,BARO:uW,BARO1_WCF_:hW,BARO2_WCF_:pW,BARO3_WCF_:fW,BATT2_:VW,BATT3_:LW,BATT4_:HW,BATT5_:MW,BATT6_:gW,BATT7_:AW,BATT8_:vW,BATT9_:_W,BATT_:SW,BRD_:DW,BRD_RADIO:yW,BRD_RTC:RW,BTN_:bW,CAM_:NW,CAM_RC_:wW,CAN_:TW,CAN_D1_:EW,CAN_D1_KDE_:PW,CAN_D1_PC_:IW,CAN_D1_TST_:OW,CAN_D1_UC_:UW,CAN_D2_:xW,CAN_D2_KDE_:FW,CAN_D2_PC_:kW,CAN_D2_TST_:BW,CAN_D2_UC_:zW,CAN_D3_:ZW,CAN_D3_KDE_:GW,CAN_D3_PC_:WW,CAN_D3_TST_:XW,CAN_D3_UC_:YW,CAN_P1_:$W,CAN_P2_:qW,CAN_P3_:KW,CAN_SLCAN_:jW,CHUTE_:QW,COMPASS_:JW,COMPASS_PMOT:eX,CUST_ROT:tX,CUST_ROT1_:iX,CUST_ROT2_:aX,DID_:rX,EAHRS:nX,EFI:oX,EK2_:sX,EK3_:lX,EK3_SRC:cX,ESC_TLM:dX,FENCE_:CX,FFT_:mX,FLOW:uX,FOLL:hX,FRSKY_:pX,GEN_:fX,GPS:VX,GPS_MB1_:LX,GPS_MB2_:HX,GRIP_:MX,GUIDED_:gX,ICE_:AX,INS_:vX,INS_HNTC2_:_X,INS_HNTCH_:SX,INS_LOG_:DX,INS_TCAL1_:yX,INS_TCAL2_:RX,INS_TCAL3_:bX,LAND_:NX,LAND_DS_:wX,LGR_:TX,LOG:EX,MIS_:PX,MNT1:IX,MNT2:OX,MSP:UX,NAVL1_:xX,NTF_:FX,OSD:kX,OSD1_:BX,OSD2_:zX,OSD3_:ZX,OSD4_:GX,OSD5_:WX,OSD5_PARAM1:XX,OSD5_PARAM2:YX,OSD5_PARAM3:$X,OSD5_PARAM4:qX,OSD5_PARAM5:KX,OSD5_PARAM6:jX,OSD5_PARAM7:QX,OSD5_PARAM8:JX,OSD5_PARAM9:eY,OSD6_:tY,OSD6_PARAM1:iY,OSD6_PARAM2:aY,OSD6_PARAM3:rY,OSD6_PARAM4:nY,OSD6_PARAM5:oY,OSD6_PARAM6:sY,OSD6_PARAM7:lY,OSD6_PARAM8:cY,OSD6_PARAM9:dY,PTCH:CY,Plane:mY,Q_:uY,Q_AUTOTUNE_:hY,Q_A_:pY,Q_LOIT_:fY,Q_M_:VY,Q_P:LY,Q_TAILSIT_:HY,Q_TILT_:MY,Q_WP_:gY,Q_WVANE_:AY,RALLY_:vY,RC:_Y,RC10_:SY,RC11_:DY,RC12_:yY,RC13_:RY,RC14_:bY,RC15_:NY,RC16_:wY,RC1_:TY,RC2_:EY,RC3_:PY,RC4_:IY,RC5_:OY,RC6_:UY,RC7_:xY,RC8_:FY,RC9_:kY,RCMAP_:BY,RELAY_:zY,RLL:ZY,RNGFND1_:GY,RNGFND2_:WY,RNGFND3_:XY,RNGFND4_:YY,RNGFND5_:$Y,RNGFND6_:qY,RNGFND7_:KY,RNGFND8_:jY,RNGFND9_:QY,RNGFNDA_:JY,RPM1_:e$,RPM2_:t$,RSSI_:i$,SCHED_:a$,SCR_:r$,SERIAL:n$,SERVO:o$,SERVO10_:s$,SERVO11_:l$,SERVO12_:c$,SERVO13_:d$,SERVO14_:C$,SERVO15_:m$,SERVO16_:u$,SERVO17_:h$,SERVO18_:p$,SERVO19_:f$,SERVO1_:V$,SERVO20_:L$,SERVO21_:H$,SERVO22_:M$,SERVO23_:g$,SERVO24_:A$,SERVO25_:v$,SERVO26_:_$,SERVO27_:S$,SERVO28_:D$,SERVO29_:y$,SERVO2_:R$,SERVO30_:b$,SERVO31_:N$,SERVO32_:w$,SERVO3_:T$,SERVO4_:E$,SERVO5_:P$,SERVO6_:I$,SERVO7_:O$,SERVO8_:U$,SERVO9_:x$,SERVO_BLH_:F$,SERVO_FTW_:k$,SERVO_ROB_:B$,SERVO_SBUS_:z$,SERVO_VOLZ_:Z$,SOAR_:G$,SR0_:W$,SR1_:X$,SR2_:Y$,SR3_:$$,SR4_:q$,SR5_:K$,SR6_:j$,STAT:Q$,STEER2SRV_:J$,TECS_:eq,TERRAIN_:tq,TKOFF_:iq,TUNE_:aq,VISO:rq,VTX_:nq,YAW:oq,json:sq},hB1=Object.freeze(Object.defineProperty({__proto__:null,ADSB_:oW,AFS_:sW,AHRS_:lW,AIS_:cW,ARMING_:dW,ARSPD:CW,AVD_:mW,BARO:uW,BARO1_WCF_:hW,BARO2_WCF_:pW,BARO3_WCF_:fW,BATT2_:VW,BATT3_:LW,BATT4_:HW,BATT5_:MW,BATT6_:gW,BATT7_:AW,BATT8_:vW,BATT9_:_W,BATT_:SW,BRD_:DW,BRD_RADIO:yW,BRD_RTC:RW,BTN_:bW,CAM_:NW,CAM_RC_:wW,CAN_:TW,CAN_D1_:EW,CAN_D1_KDE_:PW,CAN_D1_PC_:IW,CAN_D1_TST_:OW,CAN_D1_UC_:UW,CAN_D2_:xW,CAN_D2_KDE_:FW,CAN_D2_PC_:kW,CAN_D2_TST_:BW,CAN_D2_UC_:zW,CAN_D3_:ZW,CAN_D3_KDE_:GW,CAN_D3_PC_:WW,CAN_D3_TST_:XW,CAN_D3_UC_:YW,CAN_P1_:$W,CAN_P2_:qW,CAN_P3_:KW,CAN_SLCAN_:jW,CHUTE_:QW,COMPASS_:JW,COMPASS_PMOT:eX,CUST_ROT:tX,CUST_ROT1_:iX,CUST_ROT2_:aX,DID_:rX,EAHRS:nX,EFI:oX,EK2_:sX,EK3_:lX,EK3_SRC:cX,ESC_TLM:dX,FENCE_:CX,FFT_:mX,FLOW:uX,FOLL:hX,FRSKY_:pX,GEN_:fX,GPS:VX,GPS_MB1_:LX,GPS_MB2_:HX,GRIP_:MX,GUIDED_:gX,ICE_:AX,INS_:vX,INS_HNTC2_:_X,INS_HNTCH_:SX,INS_LOG_:DX,INS_TCAL1_:yX,INS_TCAL2_:RX,INS_TCAL3_:bX,LAND_:NX,LAND_DS_:wX,LGR_:TX,LOG:EX,MIS_:PX,MNT1:IX,MNT2:OX,MSP:UX,NAVL1_:xX,NTF_:FX,OSD:kX,OSD1_:BX,OSD2_:zX,OSD3_:ZX,OSD4_:GX,OSD5_:WX,OSD5_PARAM1:XX,OSD5_PARAM2:YX,OSD5_PARAM3:$X,OSD5_PARAM4:qX,OSD5_PARAM5:KX,OSD5_PARAM6:jX,OSD5_PARAM7:QX,OSD5_PARAM8:JX,OSD5_PARAM9:eY,OSD6_:tY,OSD6_PARAM1:iY,OSD6_PARAM2:aY,OSD6_PARAM3:rY,OSD6_PARAM4:nY,OSD6_PARAM5:oY,OSD6_PARAM6:sY,OSD6_PARAM7:lY,OSD6_PARAM8:cY,OSD6_PARAM9:dY,PTCH:CY,Plane:mY,Q_:uY,Q_AUTOTUNE_:hY,Q_A_:pY,Q_LOIT_:fY,Q_M_:VY,Q_P:LY,Q_TAILSIT_:HY,Q_TILT_:MY,Q_WP_:gY,Q_WVANE_:AY,RALLY_:vY,RC:_Y,RC10_:SY,RC11_:DY,RC12_:yY,RC13_:RY,RC14_:bY,RC15_:NY,RC16_:wY,RC1_:TY,RC2_:EY,RC3_:PY,RC4_:IY,RC5_:OY,RC6_:UY,RC7_:xY,RC8_:FY,RC9_:kY,RCMAP_:BY,RELAY_:zY,RLL:ZY,RNGFND1_:GY,RNGFND2_:WY,RNGFND3_:XY,RNGFND4_:YY,RNGFND5_:$Y,RNGFND6_:qY,RNGFND7_:KY,RNGFND8_:jY,RNGFND9_:QY,RNGFNDA_:JY,RPM1_:e$,RPM2_:t$,RSSI_:i$,SCHED_:a$,SCR_:r$,SERIAL:n$,SERVO:o$,SERVO10_:s$,SERVO11_:l$,SERVO12_:c$,SERVO13_:d$,SERVO14_:C$,SERVO15_:m$,SERVO16_:u$,SERVO17_:h$,SERVO18_:p$,SERVO19_:f$,SERVO1_:V$,SERVO20_:L$,SERVO21_:H$,SERVO22_:M$,SERVO23_:g$,SERVO24_:A$,SERVO25_:v$,SERVO26_:_$,SERVO27_:S$,SERVO28_:D$,SERVO29_:y$,SERVO2_:R$,SERVO30_:b$,SERVO31_:N$,SERVO32_:w$,SERVO3_:T$,SERVO4_:E$,SERVO5_:P$,SERVO6_:I$,SERVO7_:O$,SERVO8_:U$,SERVO9_:x$,SERVO_BLH_:F$,SERVO_FTW_:k$,SERVO_ROB_:B$,SERVO_SBUS_:z$,SERVO_VOLZ_:Z$,SOAR_:G$,SR0_:W$,SR1_:X$,SR2_:Y$,SR3_:$$,SR4_:q$,SR5_:K$,SR6_:j$,STAT:Q$,STEER2SRV_:J$,TECS_:eq,TERRAIN_:tq,TKOFF_:iq,TUNE_:aq,VISO:rq,VTX_:nq,YAW:oq,json:sq,default:uB1},Symbol.toStringTag,{value:"Module"}));var lq=(e=>(e[e.PRE_FLIGHT=-1]="PRE_FLIGHT",e[e.MANUAL=0]="MANUAL",e[e.CIRCLE=1]="CIRCLE",e[e.STABILIZE=2]="STABILIZE",e[e.TRAINING=3]="TRAINING",e[e.ACRO=4]="ACRO",e[e.FLY_BY_WIRE_A=5]="FLY_BY_WIRE_A",e[e.FLY_BY_WIRE_B=6]="FLY_BY_WIRE_B",e[e.CRUISE=7]="CRUISE",e[e.AUTOTUNE=8]="AUTOTUNE",e[e.AUTO=10]="AUTO",e[e.RTL=11]="RTL",e[e.LOITER=12]="LOITER",e[e.TAKEOFF=13]="TAKEOFF",e[e.AVOID_ADSB=14]="AVOID_ADSB",e[e.GUIDED=15]="GUIDED",e[e.INITIALISING=16]="INITIALISING",e[e.QSTABILIZE=17]="QSTABILIZE",e[e.QHOVER=18]="QHOVER",e[e.QLOITER=19]="QLOITER",e[e.QLAND=20]="QLAND",e[e.QRTL=21]="QRTL",e[e.QAUTOTUNE=22]="QAUTOTUNE",e[e.QACRO=23]="QACRO",e[e.THERMAL=24]="THERMAL",e[e.LOITER_ALT_QLAND=25]="LOITER_ALT_QLAND",e))(lq||{});class pB1 extends jC{constructor(i){super(a0.Plane,i);S1(this,"_mode",-1);S1(this,"_metadata",hB1)}mode(){return this._mode}modesAvailable(){const i=new Map;return Object.entries(lq).filter(([a])=>isNaN(Number(a))).forEach(([a,r])=>{i.set(a,r)}),i}onMAVLinkPackage(i){switch(i.message.type){case se.HEARTBEAT:{const a=i.message;if(a.base_mode.bits===0){this._mode=-1,this.onMode.emit();return}if(!(a.base_mode.bits&_n.MAV_MODE_FLAG_CUSTOM_MODE_ENABLED)){console.log(`no custom: ${JSON.stringify(a.base_mode)}`);return}this._mode=a.custom_mode,this.onMode.emit()}}}}const cq={AFS_AMSL_ERR_GPS:{Description:"This sets margin for error in GPS derived altitude limit. This error margin is only used if the barometer has failed. If the barometer fails then the GPS will be used to enforce the AMSL_LIMIT, but this margin will be subtracted from the AMSL_LIMIT first, to ensure that even with the given amount of GPS altitude error the pressure altitude is not breached. OBC users should set this to comply with their D2 safety case. A value of -1 will mean that barometer failure will lead to immediate termination.",DisplayName:"Error margin for GPS based AMSL limit",Units:"m",User:"Advanced"},AFS_AMSL_LIMIT:{Description:"This sets the AMSL (above mean sea level) altitude limit. If the pressure altitude determined by QNH exceeds this limit then flight termination will be forced. Note that this limit is in meters, whereas pressure altitude limits are often quoted in feet. A value of zero disables the pressure altitude limit.",DisplayName:"AMSL limit",Units:"m",User:"Advanced"},AFS_DUAL_LOSS:{Description:'This enables the dual loss termination part of the AFS system. If this parameter is 1 and both GPS and the ground control station fail simultaneously, this will be considered a "dual loss" and cause termination.',DisplayName:"Enable dual loss terminate due to failure of both GCS and GPS simultaneously",User:"Advanced"},AFS_ENABLE:{Description:"This enables the advanced failsafe system. If this is set to zero (disable) then all the other AFS options have no effect",DisplayName:"Enable Advanced Failsafe",User:"Advanced"},AFS_GEOFENCE:{Description:"This enables the geofence part of the AFS. Will only be in effect if AFS_ENABLE is also 1",DisplayName:"Enable geofence Advanced Failsafe",User:"Advanced"},AFS_HB_PIN:{Description:"This sets a digital output pin which is cycled at 10Hz when termination is not activated. Note that if a FS_TERM_PIN is set then the heartbeat pin will continue to cycle at 10Hz when termination is activated, to allow the termination board to distinguish between autopilot crash and termination.",DisplayName:"Heartbeat Pin",User:"Advanced",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},AFS_MAN_PIN:{Description:"This sets a digital output pin to set high when in manual mode",DisplayName:"Manual Pin",User:"Advanced"},AFS_MAX_COM_LOSS:{Description:"Maximum number of comms loss events before the aircraft stops returning to mission on comms recovery. Use zero to allow for any number of comms loss events.",DisplayName:"Maximum number of comms loss events",User:"Advanced"},AFS_MAX_GPS_LOSS:{Description:"Maximum number of GPS loss events before the aircraft stops returning to mission on GPS recovery. Use zero to allow for any number of GPS loss events.",DisplayName:"Maximum number of GPS loss events",User:"Advanced"},AFS_MAX_RANGE:{Description:"This is the maximum range of the vehicle in kilometers from first arming. If the vehicle goes beyond this range then the TERM_ACTION is performed. A value of zero disables this feature.",DisplayName:"Max allowed range",Units:"km",User:"Advanced"},AFS_QNH_PRESSURE:{Description:"This sets the QNH pressure in millibars to be used for pressure altitude in the altitude limit. A value of zero disables the altitude limit.",DisplayName:"QNH pressure",Units:"hPa",User:"Advanced"},AFS_RC:{Description:"This enables the RC part of the AFS. Will only be in effect if AFS_ENABLE is also 1",DisplayName:"Enable RC Advanced Failsafe",User:"Advanced"},AFS_RC_FAIL_TIME:{Description:"This is the time in seconds in manual mode that failsafe termination will activate if RC input is lost. For the OBC rules this should be (1.5). Use 0 to disable.",DisplayName:"RC failure time",Units:"s",User:"Advanced"},AFS_RC_MAN_ONLY:{Description:"If this parameter is set to 1, then an RC loss will only cause the plane to terminate in manual control modes. If it is 0, then the plane will terminate in any flight mode.",DisplayName:"Enable RC Termination only in manual control modes",User:"Advanced"},AFS_TERMINATE:{Description:"Can be set in flight to force termination of the heartbeat signal",DisplayName:"Force Terminate",User:"Advanced"},AFS_TERM_ACTION:{Description:"This can be used to force an action on flight termination. Normally this is handled by an external failsafe board, but you can setup ArduPilot to handle it here. Please consult the wiki for more information on the possible values of the parameter",DisplayName:"Terminate action",User:"Advanced"},AFS_TERM_PIN:{Description:"This sets a digital output pin to set high on flight termination",DisplayName:"Terminate Pin",User:"Advanced",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},AFS_WP_COMMS:{Description:"Waypoint number to navigate to on comms loss",DisplayName:"Comms Waypoint",User:"Advanced"},AFS_WP_GPS_LOSS:{Description:"Waypoint number to navigate to on GPS lock loss",DisplayName:"GPS Loss Waypoint",User:"Advanced"}},dq={AHRS_COMP_BETA:{Description:"This controls the time constant for the cross-over frequency used to fuse AHRS (airspeed and heading) and GPS data to estimate ground velocity. Time constant is 0.1/beta. A larger time constant will use GPS data less and a small time constant will use air data less.",DisplayName:"AHRS Velocity Complementary Filter Beta Coefficient",Increment:".01",Range:{high:"0.5",low:"0.001"},User:"Advanced"},AHRS_CUSTOM_PIT:{Description:"Autopilot mounting position pitch offset. Positive values = pitch up, negative values = pitch down. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation pitch offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_CUSTOM_ROLL:{Description:"Autopilot mounting position roll offset. Positive values = roll right, negative values = roll left. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation roll offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_CUSTOM_YAW:{Description:"Autopilot mounting position yaw offset. Positive values = yaw right, negative values = yaw left. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation yaw offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_EKF_TYPE:{Description:"This controls which NavEKF Kalman filter version is used for attitude and position estimation",DisplayName:"Use NavEKF Kalman filter for attitude and position estimation",User:"Advanced",Values:{0:"Disabled",2:"Enable EKF2",3:"Enable EKF3",11:"ExternalAHRS"}},AHRS_GPS_GAIN:{Description:"This controls how much to use the GPS to correct the attitude. This should never be set to zero for a plane as it would result in the plane losing control in turns. For a plane please use the default value of 1.0.",DisplayName:"AHRS GPS gain",Increment:".01",Range:{high:"1.0",low:"0.0"},User:"Advanced"},AHRS_GPS_MINSATS:{Description:"Minimum number of satellites visible to use GPS for velocity based corrections attitude correction. This defaults to 6, which is about the point at which the velocity numbers from a GPS become too unreliable for accurate correction of the accelerometers.",DisplayName:"AHRS GPS Minimum satellites",Increment:"1",Range:{high:"10",low:"0"},User:"Advanced"},AHRS_GPS_USE:{Description:"This controls whether to use dead-reckoning or GPS based navigation. If set to 0 then the GPS won't be used for navigation, and only dead reckoning will be used. A value of zero should never be used for normal flight. Currently this affects only the DCM-based AHRS: the EKF uses GPS according to its own parameters. A value of 2 means to use GPS for height as well as position - both in DCM estimation and when determining altitude-above-home.",DisplayName:"AHRS use GPS for DCM navigation and position-down",User:"Advanced",Values:{0:"Disabled",1:"Use GPS for DCM position",2:"Use GPS for DCM position and height"}},AHRS_ORIENTATION:{Description:"Overall board orientation relative to the standard orientation for the board type. This rotates the IMU and compass readings to allow the board to be oriented in your vehicle at any 90 or 45 degree angle. The label for each option is specified in the order of rotations for that orientation. This option takes affect on next boot. After changing you will need to re-level your vehicle.",DisplayName:"Board Orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Yaw45Roll180",10:"Yaw90Roll180",11:"Yaw135Roll180",12:"Pitch180",13:"Yaw225Roll180",14:"Yaw270Roll180",15:"Yaw315Roll180",16:"Roll90",17:"Yaw45Roll90",18:"Yaw90Roll90",19:"Yaw135Roll90",20:"Roll270",21:"Yaw45Roll270",22:"Yaw90Roll270",23:"Yaw135Roll270",24:"Pitch90",25:"Pitch270",26:"Yaw90Pitch180",27:"Yaw270Pitch180",28:"Pitch90Roll90",29:"Pitch90Roll180",30:"Pitch90Roll270",31:"Pitch180Roll90",32:"Pitch180Roll270",33:"Pitch270Roll90",34:"Pitch270Roll180",35:"Pitch270Roll270",36:"Yaw90Pitch180Roll90",37:"Yaw270Roll90",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Pitch315Roll90",42:"Roll45",43:"Roll315",100:"Custom"}},AHRS_RP_P:{Description:"This controls how fast the accelerometers correct the attitude",DisplayName:"AHRS RP_P",Increment:".01",Range:{high:"0.4",low:"0.1"},User:"Advanced"},AHRS_TRIM_X:{Description:"Compensates for the roll angle difference between the control board and the frame. Positive values make the vehicle roll right.",DisplayName:"AHRS Trim Roll",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Standard"},AHRS_TRIM_Y:{Description:"Compensates for the pitch angle difference between the control board and the frame. Positive values make the vehicle pitch up/back.",DisplayName:"AHRS Trim Pitch",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Standard"},AHRS_TRIM_Z:{Description:"Not Used",DisplayName:"AHRS Trim Yaw",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Advanced"},AHRS_WIND_MAX:{Description:"This sets the maximum allowable difference between ground speed and airspeed. This allows the plane to cope with a failing airspeed sensor. A value of zero means to use the airspeed as is. See ARSPD_OPTIONS and ARSPD_MAX_WIND to disable airspeed sensors.",DisplayName:"Maximum wind",Increment:"1",Range:{high:"127",low:"0"},Units:"m/s",User:"Advanced"},AHRS_YAW_P:{Description:"This controls the weight the compass or GPS has on the heading. A higher value means the heading will track the yaw source (GPS or compass) more rapidly.",DisplayName:"Yaw P",Increment:".01",Range:{high:"0.4",low:"0.1"},User:"Advanced"}},Cq={AIS_LIST_MAX:{Description:"AIS list size of nearest vessels. Longer lists take longer to refresh with lower SRx_ADSB values.",DisplayName:"AIS vessel list size",Range:{high:"100",low:"1"},User:"Advanced"},AIS_LOGGING:{Bitmask:{0:"Log all AIVDM messages",1:"Log only unsupported AIVDM messages",2:"Log decoded messages"},Description:"Bitmask of AIS logging options",DisplayName:"AIS logging options",User:"Advanced"},AIS_TIME_OUT:{Description:"if no updates are received in this time a vessel will be removed from the list",DisplayName:"AIS vessel time out",Range:{high:"2000",low:"1"},Units:"s",User:"Advanced"},AIS_TYPE:{Description:"AIS receiver type",DisplayName:"AIS receiver type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"NMEA AIVDM message"}}},mq={ARMING_ACCTHRESH:{Description:"Accelerometer error threshold used to determine inconsistent accelerometers. Compares this error range to other accelerometers to detect a hardware or calibration error. Lower value means tighter check and harder to pass arming check. Not all accelerometers are created equal.",DisplayName:"Accelerometer error threshold",Range:{high:"3.0",low:"0.25"},Units:"m/s/s",User:"Advanced"},ARMING_CHECK:{Bitmask:{0:"All",1:"Barometer",2:"Compass",3:"GPS lock",4:"INS",5:"Parameters",6:"RC Channels",7:"Board voltage",8:"Battery Level",10:"Logging Available",11:"Hardware safety switch",12:"GPS Configuration",13:"System",14:"Mission",15:"Rangefinder",16:"Camera",17:"AuxAuth",18:"VisualOdometry",19:"FFT"},Description:"Checks prior to arming motor. This is a bitmask of checks that will be performed before allowing arming. For most users it is recommended to leave this at the default of 1 (all checks enabled). You can select whatever checks you prefer by adding together the values of each check type to set this parameter. For example, to only allow arming when you have GPS lock and no RC failsafe you would set ARMING_CHECK to 72.",DisplayName:"Arm Checks to Perform (bitmask)",User:"Standard"},ARMING_MIS_ITEMS:{Bitmask:{0:"Land",1:"VTOL Land",2:"DO_LAND_START",3:"Takeoff",4:"VTOL Takeoff",5:"Rallypoint"},Description:"Bitmask of mission items that are required to be planned in order to arm the aircraft",DisplayName:"Required mission items",User:"Advanced"},ARMING_REQUIRE:{Description:"Arming disabled until some requirements are met. If 0, there are no requirements (arm immediately). If 1, require rudder stick or GCS arming before arming motors and sends the minimum throttle PWM value to the throttle channel when disarmed. If 2, require rudder stick or GCS arming and send 0 PWM to throttle channel when disarmed. See the ARMING_CHECK_* parameters to see what checks are done before arming. Note, if setting this parameter to 0 a reboot is required to arm the plane. Also note, even with this parameter at 0, if ARMING_CHECK parameter is not also zero the plane may fail to arm throttle at boot due to a pre-arm check failure.",DisplayName:"Require Arming Motors ",User:"Advanced",Values:{0:"Disabled",1:"THR_MIN PWM when disarmed",2:"0 PWM when disarmed"}},ARMING_RUDDER:{Description:"Allow arm/disarm by rudder input. When enabled arming can be done with right rudder, disarming with left rudder. Rudder arming only works in manual throttle modes with throttle at zero +- deadzone (RCx_DZ)",DisplayName:"Arming with Rudder enable/disable",User:"Advanced",Values:{0:"Disabled",1:"ArmingOnly",2:"ArmOrDisarm"}}},uq={ARSPD2_AUTOCAL:{Description:"If this is enabled then the autopilot will automatically adjust the ARSPD_RATIO during flight, based upon an estimation filter using ground speed and true airspeed. The automatic calibration will save the new ratio to EEPROM every 2 minutes if it changes by more than 5%. This option should be enabled for a calibration flight then disabled again when calibration is complete. Leaving it enabled all the time is not recommended.",DisplayName:"Automatic airspeed ratio calibration for 2nd airspeed sensor",User:"Advanced"},ARSPD2_BUS:{Description:"The bus number of the I2C bus to look for the sensor on",DisplayName:"Airspeed I2C bus for 2nd sensor",User:"Advanced",Values:{0:"Bus0(internal)",1:"Bus1(external)",2:"Bus2(auxillary)"}},ARSPD2_DEVID:{Description:"Airspeed2 sensor ID, taking into account its type, bus and instance",DisplayName:"Airspeed2 ID",ReadOnly:"True",User:"Advanced"},ARSPD2_OFFSET:{Description:"Airspeed calibration offset",DisplayName:"Airspeed offset for 2nd airspeed sensor",Increment:"0.1",User:"Advanced"},ARSPD2_PIN:{Description:"Pin number indicating location of analog airspeed sensors. Pixhawk/Cube if set to 15. ",DisplayName:"Airspeed pin for 2nd airspeed sensor",User:"Advanced"},ARSPD2_PSI_RANGE:{Description:"This parameter allows you to to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",DisplayName:"The PSI range of the device for 2nd sensor",User:"Advanced"},ARSPD2_RATIO:{Description:"Airspeed calibration ratio",DisplayName:"Airspeed ratio for 2nd airspeed sensor",Increment:"0.1",User:"Advanced"},ARSPD2_SKIP_CAL:{Description:"This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",DisplayName:"Skip airspeed calibration on startup for 2nd sensor",User:"Advanced",Values:{0:"Disable",1:"Enable"}},ARSPD2_TUBE_ORDR:{Description:"This parameter allows you to control whether the order in which the tubes are attached to your pitot tube matters. If you set this to 0 then the first (often the top) connector on the sensor needs to be the stagnation pressure (the pressure at the tip of the pitot tube). If set to 1 then the second (often the bottom) connector needs to be the stagnation pressure. If set to 2 (the default) then the airspeed driver will accept either order. The reason you may wish to specify the order is it will allow your airspeed sensor to detect if the aircraft is receiving excessive pressure on the static port compared to the stagnation port such as during a stall, which would otherwise be seen as a positive airspeed.",DisplayName:"Control pitot tube order of 2nd airspeed sensor",User:"Advanced",Values:{0:"Normal",1:"Swapped",2:"Auto Detect"}},ARSPD2_TYPE:{Description:"Type of 2nd airspeed sensor",DisplayName:"Second Airspeed type",User:"Standard",Values:{0:"None",1:"I2C-MS4525D0",2:"Analog",3:"I2C-MS5525",4:"I2C-MS5525 (0x76)",5:"I2C-MS5525 (0x77)",6:"I2C-SDP3X",7:"I2C-DLVR-5in",8:"DroneCAN",9:"I2C-DLVR-10in",10:"I2C-DLVR-20in",11:"I2C-DLVR-30in",12:"I2C-DLVR-60in",13:"NMEA water speed",14:"MSP",15:"ASP5033"}},ARSPD2_USE:{Description:"use airspeed for flight control. When set to 0 airspeed sensor can be logged and displayed on a GCS but won't be used for flight. When set to 1 it will be logged and used. When set to 2 it will be only used when the throttle is zero, which can be useful in gliders with airspeed sensors behind a propeller",DisplayName:"Enable use of 2nd airspeed sensor",User:"Standard",Values:{0:"Don't Use",1:"use",2:"UseWhenZeroThrottle"}},ARSPD_AUTOCAL:{Description:"Enables automatic adjustment of ARSPD_RATIO during a calibration flight based on estimation of ground speed and true airspeed. New ratio saved every 2 minutes if change is > 5%. Should not be left enabled.",DisplayName:"Automatic airspeed ratio calibration",User:"Advanced"},ARSPD_BUS:{Description:"Bus number of the I2C bus where the airspeed sensor is connected",DisplayName:"Airspeed I2C bus",User:"Advanced",Values:{0:"Bus0(internal)",1:"Bus1(external)",2:"Bus2(auxillary)"}},ARSPD_DEVID:{Description:"Airspeed sensor ID, taking into account its type, bus and instance",DisplayName:"Airspeed ID",ReadOnly:"True",User:"Advanced"},ARSPD_OFFSET:{Description:"Airspeed calibration offset",DisplayName:"Airspeed offset",Increment:"0.1",User:"Advanced"},ARSPD_OPTIONS:{Bitmask:{0:"SpeedMismatchDisable",1:"AllowSpeedMismatchRecovery",2:"DisableVoltageCorrection"},Description:"Bitmask of options to use with airspeed. 0:Disable use based on airspeed/groundspeed mismatch (see ARSPD_WIND_MAX), 1:Automatically reenable use based on airspeed/groundspeed mismatch recovery (see ARSPD_WIND_MAX) 2:Disable voltage correction",DisplayName:"Airspeed options bitmask",User:"Advanced"},ARSPD_PIN:{Description:"The pin number that the airspeed sensor is connected to for analog sensors. Set to 15 on the Pixhawk for the analog airspeed port. ",DisplayName:"Airspeed pin",User:"Advanced"},ARSPD_PRIMARY:{Description:"This selects which airspeed sensor will be the primary if multiple sensors are found",DisplayName:"Primary airspeed sensor",User:"Advanced",Values:{0:"FirstSensor",1:"2ndSensor"}},ARSPD_PSI_RANGE:{Description:"This parameter allows you to to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",DisplayName:"The PSI range of the device",User:"Advanced"},ARSPD_RATIO:{Description:"Calibrates pitot tube pressure to velocity. Increasing this value will indicate a higher airspeed at any given dynamic pressure.",DisplayName:"Airspeed ratio",Increment:"0.1",User:"Advanced"},ARSPD_SKIP_CAL:{Description:"This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",DisplayName:"Skip airspeed calibration on startup",User:"Advanced",Values:{0:"Disable",1:"Enable"}},ARSPD_TUBE_ORDER:{Description:"This parameter allows you to control whether the order in which the tubes are attached to your pitot tube matters. If you set this to 0 then the first (often the top) connector on the sensor needs to be the stagnation pressure (the pressure at the tip of the pitot tube). If set to 1 then the second (often the bottom) connector needs to be the stagnation pressure. If set to 2 (the default) then the airspeed driver will accept either order. The reason you may wish to specify the order is it will allow your airspeed sensor to detect if the aircraft is receiving excessive pressure on the static port compared to the stagnation port such as during a stall, which would otherwise be seen as a positive airspeed.",DisplayName:"Control pitot tube order",User:"Advanced",Values:{0:"Normal",1:"Swapped",2:"Auto Detect"}},ARSPD_TYPE:{Description:"Type of airspeed sensor",DisplayName:"Airspeed type",User:"Standard",Values:{0:"None",1:"I2C-MS4525D0",2:"Analog",3:"I2C-MS5525",4:"I2C-MS5525 (0x76)",5:"I2C-MS5525 (0x77)",6:"I2C-SDP3X",7:"I2C-DLVR-5in",8:"DroneCAN",9:"I2C-DLVR-10in",10:"I2C-DLVR-20in",11:"I2C-DLVR-30in",12:"I2C-DLVR-60in",13:"NMEA water speed",14:"MSP",15:"ASP5033"}},ARSPD_USE:{Description:"Enables airspeed use for automatic throttle modes and replaces control from THR_TRIM. Continues to display and log airspeed if set to 0. Uses airspeed for control if set to 1. Only uses airspeed when throttle = 0 if set to 2 (useful for gliders with airspeed sensors behind propellers).",DisplayName:"Airspeed use",User:"Standard",Values:{0:"DoNotUse",1:"Use",2:"UseWhenZeroThrottle"}},ARSPD_WIND_MAX:{Description:"If the difference between airspeed and ground speed is greater than this value the sensor will be marked unhealthy. Using ARSPD_OPTION this health value can be used to disable the sensor.",DisplayName:"Maximum airspeed and ground speed difference",Units:"m/s",User:"Advanced"},ARSPD_WIND_WARN:{Description:"If the difference between airspeed and ground speed is greater than this value the sensor will issue a warning. If 0 ARSPD_WIND_MAX is used.",DisplayName:"Airspeed and ground speed difference that gives a warning",Units:"m/s",User:"Advanced"}},hq={ATC_ACCEL_MAX:{Description:"Speed control acceleration (and deceleration) maximum in m/s/s. 0 to disable acceleration limiting",DisplayName:"Speed control acceleration (and deceleration) maximum in m/s/s",Increment:"0.1",Range:{high:"10.0",low:"0.0"},Units:"m/s/s",User:"Standard"},ATC_BAL_D:{Description:"Pitch control D gain. Compensates for short-term change in desired pitch vs actual",DisplayName:"Pitch control D gain",Increment:"0.001",Range:{high:"0.100",low:"0.000"},User:"Standard"},ATC_BAL_FF:{Description:"Pitch control feed forward",DisplayName:"Pitch control feed forward",Increment:"0.001",Range:{high:"0.500",low:"0.000"},User:"Standard"},ATC_BAL_FILT:{Description:"Pitch control input filter. Lower values reduce noise but add delay.",DisplayName:"Pitch control filter frequency",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_BAL_FLTD:{Description:"Derivative filter frequency in Hz",DisplayName:"Pitch control Derivative term filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_BAL_FLTE:{Description:"Error filter frequency in Hz",DisplayName:"Pitch control Error filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_BAL_FLTT:{Description:"Target filter frequency in Hz",DisplayName:"Pitch control Target filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_BAL_I:{Description:"Pitch control I gain for BalanceBots. Corrects long term error between the desired pitch (in radians) and actual pitch",DisplayName:"Pitch control I gain",Increment:"0.01",Range:{high:"2.000",low:"0.000"},User:"Standard"},ATC_BAL_IMAX:{Description:"Pitch control I gain maximum. Constrains the maximum motor output (range -1 to +1) that the I term will generate",DisplayName:"Pitch control I gain maximum",Increment:"0.01",Range:{high:"1.000",low:"0.000"},User:"Standard"},ATC_BAL_P:{Description:"Pitch control P gain for BalanceBots. Converts the error between the desired pitch (in radians) and actual pitch to a motor output (in the range -1 to +1)",DisplayName:"Pitch control P gain",Increment:"0.01",Range:{high:"2.000",low:"0.000"},User:"Standard"},ATC_BAL_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Pitch control slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},ATC_BAL_SPD_FF:{Description:"Pitch control feed forward from speed",DisplayName:"Pitch control feed forward from speed",Increment:"0.01",Range:{high:"10.0",low:"0.0"},User:"Standard"},ATC_BRAKE:{Description:"Speed control brake enable/disable. Allows sending a reversed output to the motors to slow the vehicle.",DisplayName:"Speed control brake enable/disable",User:"Standard",Values:{0:"Disable",1:"Enable"}},ATC_DECEL_MAX:{Description:"Speed control and deceleration maximum in m/s/s. 0 to use ATC_ACCEL_MAX for deceleration",DisplayName:"Speed control deceleration maximum in m/s/s",Increment:"0.1",Range:{high:"10.0",low:"0.0"},Units:"m/s/s",User:"Standard"},ATC_SAIL_D:{Description:"Sail Heel control D gain. Compensates for short-term change in desired heel angle vs actual",DisplayName:"Sail Heel control D gain",Increment:"0.001",Range:{high:"0.100",low:"0.000"},User:"Standard"},ATC_SAIL_FF:{Description:"Sail Heel control feed forward",DisplayName:"Sail Heel control feed forward",Increment:"0.001",Range:{high:"0.500",low:"0.000"},User:"Standard"},ATC_SAIL_FILT:{Description:"Sail Heel control input filter. Lower values reduce noise but add delay.",DisplayName:"Sail Heel control filter frequency",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_SAIL_FLTD:{Description:"Derivative filter frequency in Hz",DisplayName:"Sail Heel Derivative term filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_SAIL_FLTE:{Description:"Error filter frequency in Hz",DisplayName:"Sail Heel Error filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_SAIL_FLTT:{Description:"Target filter frequency in Hz",DisplayName:"Sail Heel Target filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_SAIL_I:{Description:"Sail Heel control I gain for sailboats. Corrects long term error between the desired heel angle (in radians) and actual",DisplayName:"Sail Heel control I gain",Increment:"0.01",Range:{high:"2.000",low:"0.000"},User:"Standard"},ATC_SAIL_IMAX:{Description:"Sail Heel control I gain maximum. Constrains the maximum I term contribution to the main sail output (range -1 to +1)",DisplayName:"Sail Heel control I gain maximum",Increment:"0.01",Range:{high:"1.000",low:"0.000"},User:"Standard"},ATC_SAIL_P:{Description:"Sail Heel control P gain for sailboats. Converts the error between the desired heel angle (in radians) and actual heel to a main sail output (in the range -1 to +1)",DisplayName:"Sail Heel control P gain",Increment:"0.01",Range:{high:"2.000",low:"0.000"},User:"Standard"},ATC_SAIL_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Sail heel slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},ATC_SPEED_D:{Description:"Speed control D gain. Compensates for short-term change in desired speed vs actual",DisplayName:"Speed control D gain",Increment:"0.001",Range:{high:"0.400",low:"0.000"},User:"Standard"},ATC_SPEED_FF:{Description:"Speed control feed forward",DisplayName:"Speed control feed forward",Increment:"0.001",Range:{high:"0.500",low:"0.000"},User:"Standard"},ATC_SPEED_FILT:{Description:"Speed control input filter. Lower values reduce noise but add delay.",DisplayName:"Speed control filter frequency",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_SPEED_FLTD:{Description:"Derivative filter frequency in Hz",DisplayName:"Speed control Derivative term filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_SPEED_FLTE:{Description:"Error filter frequency in Hz",DisplayName:"Speed control Error filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_SPEED_FLTT:{Description:"Target filter frequency in Hz",DisplayName:"Speed control Target filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_SPEED_I:{Description:"Speed control I gain. Corrects long term error between the desired speed (in m/s) and actual speed",DisplayName:"Speed control I gain",Increment:"0.01",Range:{high:"2.000",low:"0.000"},User:"Standard"},ATC_SPEED_IMAX:{Description:"Speed control I gain maximum. Constrains the maximum motor output (range -1 to +1) that the I term will generate",DisplayName:"Speed control I gain maximum",Increment:"0.01",Range:{high:"1.000",low:"0.000"},User:"Standard"},ATC_SPEED_P:{Description:"Speed control P gain. Converts the error between the desired speed (in m/s) and actual speed to a motor output (in the range -1 to +1)",DisplayName:"Speed control P gain",Increment:"0.01",Range:{high:"2.000",low:"0.010"},User:"Standard"},ATC_SPEED_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Speed control slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},ATC_STOP_SPEED:{Description:"Speed control stop speed. Motor outputs to zero once vehicle speed falls below this value",DisplayName:"Speed control stop speed",Increment:"0.01",Range:{high:"0.50",low:"0.00"},Units:"m/s",User:"Standard"},ATC_STR_ACC_MAX:{Description:"Steering control angular acceleration maximum (in deg/s/s). 0 to disable acceleration limiting",DisplayName:"Steering control angular acceleration maximum",Increment:"0.1",Range:{high:"1000",low:"0"},Units:"deg/s/s",User:"Standard"},ATC_STR_ANG_P:{Description:"Steering control angle P gain. Converts the error between the desired heading/yaw (in radians) and actual heading/yaw to a desired turn rate (in rad/sec)",DisplayName:"Steering control angle P gain",Increment:"0.1",Range:{high:"10.000",low:"1.000"},User:"Standard"},ATC_STR_RAT_D:{Description:"Steering control D gain. Compensates for short-term change in desired turn rate vs actual",DisplayName:"Steering control D gain",Increment:"0.001",Range:{high:"0.400",low:"0.000"},User:"Standard"},ATC_STR_RAT_FF:{Description:"Steering control feed forward",DisplayName:"Steering control feed forward",Increment:"0.001",Range:{high:"3.000",low:"0.000"},User:"Standard"},ATC_STR_RAT_FILT:{Description:"Steering control input filter. Lower values reduce noise but add delay.",DisplayName:"Steering control filter frequency",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_STR_RAT_FLTD:{Description:"Derivative filter frequency in Hz",DisplayName:"Steering control Derivative term filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_STR_RAT_FLTE:{Description:"Error filter frequency in Hz",DisplayName:"Steering control Error filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_STR_RAT_FLTT:{Description:"Target filter frequency in Hz",DisplayName:"Steering control Target filter frequency in Hz",Increment:"0.1",Range:{high:"100.000",low:"0.000"},Units:"Hz",User:"Standard"},ATC_STR_RAT_I:{Description:"Steering control I gain. Corrects long term error between the desired turn rate (in rad/s) and actual",DisplayName:"Steering control I gain",Increment:"0.001",Range:{high:"2.000",low:"0.000"},User:"Standard"},ATC_STR_RAT_IMAX:{Description:"Steering control I gain maximum. Constrains the steering output (range -1 to +1) that the I term will generate",DisplayName:"Steering control I gain maximum",Increment:"0.01",Range:{high:"1.000",low:"0.000"},User:"Standard"},ATC_STR_RAT_MAX:{Description:"Steering control rotation rate maximum in deg/s. 0 to remove rate limiting",DisplayName:"Steering control rotation rate maximum",Increment:"0.1",Range:{high:"1000",low:"0"},Units:"deg/s",User:"Standard"},ATC_STR_RAT_P:{Description:"Steering control rate P gain. Converts the turn rate error (in radians/sec) to a steering control output (in the range -1 to +1)",DisplayName:"Steering control rate P gain",Increment:"0.001",Range:{high:"2.000",low:"0.000"},User:"Standard"},ATC_STR_RAT_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Steering slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},ATC_TURN_MAX_G:{Description:"The maximum turning acceleration (in units of gravities) that the rover can handle while remaining stable. The navigation code will keep the lateral acceleration below this level to avoid rolling over or slipping the wheels in turns",DisplayName:"Turning maximum G force",Increment:"0.01",Range:{high:"10",low:"0.1"},Units:"gravities",User:"Standard"}},pq={AVOID_ACCEL_MAX:{Description:"Maximum acceleration with which obstacles will be avoided with. Set zero to disable acceleration limits",DisplayName:"Avoidance maximum acceleration",Range:{high:"9",low:"0"},Units:"m/s/s",User:"Standard"},AVOID_BACKUP_DZ:{Description:"Distance beyond AVOID_MARGIN parameter, after which vehicle will backaway from obstacles. Increase this parameter if you see vehicle going back and forth in front of obstacle.",DisplayName:"Avoidance deadzone between stopping and backing away from obstacle",Range:{high:"2",low:"0"},Units:"m",User:"Standard"},AVOID_BACKUP_SPD:{Description:"Maximum speed that will be used to back away from obstacles in GPS modes (m/s). Set zero to disable",DisplayName:"Avoidance maximum backup speed",Range:{high:"2",low:"0"},Units:"m/s",User:"Standard"},AVOID_ENABLE:{Bitmask:{0:"UseFence",1:"UseProximitySensor",2:"UseBeaconFence"},Description:"Enabled/disable avoidance input sources",DisplayName:"Avoidance control enable/disable",User:"Standard"},AVOID_MARGIN:{Description:"Vehicle will attempt to stay at least this distance (in meters) from objects while in GPS modes",DisplayName:"Avoidance distance margin in GPS modes",Range:{high:"10",low:"1"},Units:"m",User:"Standard"}},fq={BARO1_DEVID:{Description:"Barometer sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID",ReadOnly:"True",User:"Advanced"},BARO1_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Ground Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO2_DEVID:{Description:"Barometer2 sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID2",ReadOnly:"True",User:"Advanced"},BARO2_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Ground Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO3_DEVID:{Description:"Barometer3 sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID3",ReadOnly:"True",User:"Advanced"},BARO3_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Absolute Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO_ALT_OFFSET:{Description:"altitude offset in meters added to barometric altitude. This is used to allow for automatic adjustment of the base barometric altitude by a ground station equipped with a barometer. The value is added to the barometric altitude read by the aircraft. It is automatically reset to 0 when the barometer is calibrated on each reboot or when a preflight calibration is performed.",DisplayName:"altitude offset",Increment:"0.1",Units:"m",User:"Advanced"},BARO_EXT_BUS:{Description:"This selects the bus number for looking for an I2C barometer. When set to -1 it will probe all external i2c buses based on the GND_PROBE_EXT parameter.",DisplayName:"External baro bus",User:"Advanced",Values:{0:"Bus0",1:"Bus1","-1":"Disabled"}},BARO_FLTR_RNG:{Description:"This sets the range around the average value that new samples must be within to be accepted. This can help reduce the impact of noise on sensors that are on long I2C cables. The value is a percentage from the average value. A value of zero disables this filter.",DisplayName:"Range in which sample is accepted",Increment:"1",Range:{high:"100",low:"0"},Units:"%"},BARO_GND_TEMP:{Description:"User provided ambient ground temperature in degrees Celsius. This is used to improve the calculation of the altitude the vehicle is at. This parameter is not persistent and will be reset to 0 every time the vehicle is rebooted. A value of 0 means use the internal measurement ambient temperature.",DisplayName:"ground temperature",Increment:"1",Units:"degC",User:"Advanced",Volatile:"True"},BARO_PRIMARY:{Description:"This selects which barometer will be the primary if multiple barometers are found",DisplayName:"Primary barometer",User:"Advanced",Values:{0:"FirstBaro",1:"2ndBaro",2:"3rdBaro"}},BARO_PROBE_EXT:{Bitmask:{0:"BMP085",1:"BMP280",2:"MS5611",3:"MS5607",4:"MS5637",5:"FBM320",6:"DPS280",7:"LPS25H",8:"Keller",9:"MS5837",10:"BMP388",11:"SPL06",12:"MSP"},Description:"This sets which types of external i2c barometer to look for. It is a bitmask of barometer types. The I2C buses to probe is based on GND_EXT_BUS. If BARO_EXT_BUS is -1 then it will probe all external buses, otherwise it will probe just the bus number given in GND_EXT_BUS.",DisplayName:"External barometers to probe",User:"Advanced"},BARO_SPEC_GRAV:{Description:"This sets the specific gravity of the fluid when flying an underwater ROV.",DisplayName:"Specific Gravity (For water depth measurement)",Values:{"1.0":"Freshwater","1.024":"Saltwater"}}},Vq={BARO1_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO1_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},Lq={BARO2_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO2_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},Hq={BARO3_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO3_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},Mq={BATT2_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT2_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT2_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT2__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT2_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT2_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT2__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT2_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT2_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT2_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT2_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT2_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT2_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT2_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT2_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT2_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT2_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT2_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT2_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT2_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT2_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT2_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo"}},BATT2_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT2_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT2_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT2_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT2_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT2_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT2_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},gq={BATT3_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT3_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT3_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT3__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT3_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT3_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT3__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT3_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT3_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT3_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT3_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT3_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT3_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT3_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT3_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT3_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT3_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT3_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT3_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT3_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT3_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT3_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo"}},BATT3_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT3_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT3_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT3_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT3_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT3_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT3_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},Aq={BATT4_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT4_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT4_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT4__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT4_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT4_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT4__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT4_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT4_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT4_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT4_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT4_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT4_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT4_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT4_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT4_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT4_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT4_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT4_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT4_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT4_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT4_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo"}},BATT4_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT4_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT4_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT4_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT4_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT4_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT4_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},vq={BATT5_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT5_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT5_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT5__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT5_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT5_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT5__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT5_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT5_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT5_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT5_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT5_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT5_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT5_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT5_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT5_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT5_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT5_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT5_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT5_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT5_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT5_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo"}},BATT5_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT5_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT5_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT5_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT5_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT5_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT5_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},_q={BATT6_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT6_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT6_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT6__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT6_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT6_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT6__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT6_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT6_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT6_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT6_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT6_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT6_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT6_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT6_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT6_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT6_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT6_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT6_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT6_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT6_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT6_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo"}},BATT6_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT6_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT6_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT6_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT6_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT6_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT6_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},Sq={BATT7_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT7_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT7_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT7__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT7_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT7_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT7__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT7_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT7_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT7_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT7_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT7_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT7_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT7_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT7_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT7_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT7_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT7_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT7_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT7_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT7_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT7_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo"}},BATT7_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT7_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT7_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT7_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT7_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT7_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT7_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},Dq={BATT8_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT8_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT8_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT8__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT8_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT8_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT8__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT8_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT8_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT8_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT8_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT8_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT8_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT8_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT8_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT8_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT8_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT8_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT8_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT8_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT8_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT8_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo"}},BATT8_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT8_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT8_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT8_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT8_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT8_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT8_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},yq={BATT9_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT9_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT9_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT9__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT9_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT9_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT9__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT9_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT9_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT9_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT9_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT9_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT9_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT9_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT9_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT9_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT9_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT9_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT9_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT9_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT9_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT9_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo"}},BATT9_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT9_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT9_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT9_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT9_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT9_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT9_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},Rq={BATT_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT_CURR_MULT:{Description:"Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",DisplayName:"Scales reported power monitor current",Range:{high:"10",low:".1"},User:"Advanced"},BATT_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",1:"RTL",2:"Hold",3:"SmartRTL",4:"SmartRTL or Hold",5:"Terminate"}},BATT_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT_I2C_ADDR:{Description:"Battery monitor I2C address",DisplayName:"Battery monitor I2C address",Range:{high:"127",low:"0"},RebootRequired:"True",User:"Advanced"},BATT_I2C_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},RebootRequired:"True",User:"Advanced"},BATT_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"DroneCAN-BatteryInfo",9:"ESC",10:"Sum Of Selected Monitors",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye",20:"MPPT",21:"INA2XX",22:"LTC2946",23:"Torqeedo"}},BATT_OPTIONS:{Bitmask:{0:"Ignore DroneCAN SoC",1:"MPPT reports input voltage and current",2:"MPPT Powered off when disarmed",3:"MPPT Powered on when armed",4:"MPPT Powered off at boot",5:"MPPT Powered on at boot",6:"Send resistance compensated voltage to GCS"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT_SUM_MASK:{Bitmask:{0:"monitor 1",1:"monitor 2",2:"monitor 3",3:"monitor 4",4:"monitor 5",5:"monitor 6",6:"monitor 7",7:"monitor 8",8:"monitor 9"},Description:"0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",DisplayName:"Battery Sum mask",User:"Standard"},BATT_VLT_OFFSET:{Description:"Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",DisplayName:"Volage offset",Units:"V",User:"Advanced"},BATT_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},bq={BCN_ALT:{Description:"Beacon origin's altitude above sealevel in meters",DisplayName:"Beacon origin's altitude above sealevel in meters",Increment:"1",Range:{high:"10000",low:"0"},Units:"m",User:"Advanced"},BCN_LATITUDE:{Description:"Beacon origin's latitude",DisplayName:"Beacon origin's latitude",Increment:"0.000001",Range:{high:"90",low:"-90"},Units:"deg",User:"Advanced"},BCN_LONGITUDE:{Description:"Beacon origin's longitude",DisplayName:"Beacon origin's longitude",Increment:"0.000001",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},BCN_ORIENT_YAW:{Description:"Beacon systems rotation from north in degrees",DisplayName:"Beacon systems rotation from north in degrees",Increment:"1",Range:{high:"+180",low:"-180"},Units:"deg",User:"Advanced"},BCN_TYPE:{Description:"What type of beacon based position estimation device is connected",DisplayName:"Beacon based position estimation device type",User:"Advanced",Values:{0:"None",1:"Pozyx",2:"Marvelmind",3:"Nooploop",10:"SITL"}}},Nq={BRD_ALT_CONFIG:{Description:"Select an alternative hardware configuration. A value of zero selects the default configuration for this board. Other values are board specific. Please see the documentation for your board for details on any alternative configuration values that may be available.",DisplayName:"Alternative HW config",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},BRD_BOOT_DELAY:{Description:"This adds a delay in milliseconds to boot to ensure peripherals initialise fully",DisplayName:"Boot delay",Range:{high:"10000",low:"0"},Units:"ms",User:"Advanced"},BRD_HEAT_I:{Description:"Board Heater integrator gain",DisplayName:"Board Heater I gain",Increment:"0.1",Range:{high:"1",low:"0"},User:"Advanced"},BRD_HEAT_IMAX:{Description:"Board Heater integrator maximum",DisplayName:"Board Heater IMAX",Increment:"1",Range:{high:"100",low:"0"},User:"Advanced"},BRD_HEAT_LOWMGN:{Description:"Arming check will fail if temp is lower than this margin below BRD_HEAT_TARG. 0 disables the low temperature check",DisplayName:"Board heater temp lower margin",Range:{high:"20",low:"0"},Units:"degC",User:"Advanced"},BRD_HEAT_P:{Description:"Board Heater P gain",DisplayName:"Board Heater P gain",Increment:"1",Range:{high:"500",low:"1"},User:"Advanced"},BRD_HEAT_TARG:{Description:"Board heater target temperature for boards with controllable heating units. DO NOT SET to -1 on the Cube. Set to -1 to disable the heater, please reboot after setting to -1.",DisplayName:"Board heater temperature target",Range:{high:"80",low:"-1"},Units:"degC",User:"Advanced"},BRD_IO_ENABLE:{Description:"This allows for the IO co-processor on FMUv1 and FMUv2 to be disabled",DisplayName:"Enable IO co-processor",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BRD_OPTIONS:{Bitmask:{0:"Enable hardware watchdog",1:"Disable MAVftp",2:"Enable set of internal parameters",3:"Enable Debug Pins",4:"Unlock flash on reboot",5:"Write protect firmware flash on reboot",6:"Write protect bootloader flash on reboot"},Description:"Board specific option flags",DisplayName:"Board options",User:"Advanced"},BRD_PWM_VOLT_SEL:{Description:"This sets the voltage max for PWM output pulses. 0 for 3.3V and 1 for 5V output.",DisplayName:"Set PWM Out Voltage",User:"Advanced",Values:{0:"3.3V",1:"5V"}},BRD_SAFETYENABLE:{Description:"This controls the default state of the safety switch at startup. When set to 1 the safety switch will start in the safe state (flashing) at boot. When set to zero the safety switch will start in the unsafe state (solid) at startup. Note that if a safety switch is fitted the user can still control the safety state after startup using the switch. The safety state can also be controlled in software using a MAVLink message.",DisplayName:"Enable use of safety arming switch",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},BRD_SAFETYOPTION:{Bitmask:{0:"ActiveForSafetyEnable",1:"ActiveForSafetyDisable",2:"ActiveWhenArmed",3:"Force safety on when the aircraft disarms"},Description:"This controls the activation of the safety button. It allows you to control if the safety button can be used for safety enable and/or disable, and whether the button is only active when disarmed",DisplayName:"Options for safety button behavior",User:"Standard"},BRD_SAFETY_MASK:{Bitmask:{0:"Output1",1:"Output2",2:"Output3",3:"Output4",4:"Output5",5:"Output6",6:"Output7",7:"Output8",8:"Output9",9:"Output10",10:"Output11",11:"Output12",12:"Output13",13:"Output14"},Description:"A bitmask which controls what outputs can move while the safety switch has not been pressed",DisplayName:"Outputs which ignore the safety switch state",RebootRequired:"True",User:"Advanced"},BRD_SBUS_OUT:{Description:"This sets the SBUS output frame rate in Hz",DisplayName:" SBUS output rate",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"50Hz",2:"75Hz",3:"100Hz",4:"150Hz",5:"200Hz",6:"250Hz",7:"300Hz"}},BRD_SD_SLOWDOWN:{Description:"This is a scaling factor to slow down microSD operation. It can be used on flight board and microSD card combinations where full speed is not reliable. For normal full speed operation a value of 0 should be used.",DisplayName:"microSD slowdown",Increment:"1",Range:{high:"32",low:"0"},User:"Advanced"},BRD_SER1_RTSCTS:{Description:"Enable flow control on serial 1 (telemetry 1). You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup. Note that the PX4v1 does not have hardware flow control pins on this port, so you should leave this disabled.",DisplayName:"Serial 1 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER2_RTSCTS:{Description:"Enable flow control on serial 2 (telemetry 2). You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 2 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER3_RTSCTS:{Description:"Enable flow control on serial 3. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 3 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER4_RTSCTS:{Description:"Enable flow control on serial 4. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 4 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER5_RTSCTS:{Description:"Enable flow control on serial 5. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 5 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SERIAL_NUM:{Description:"User-defined serial number of this vehicle, it can be any arbitrary number you want and has no effect on the autopilot",DisplayName:"User-defined serial number",Range:{high:"32767",low:"-32768"},User:"Standard"},BRD_TYPE:{Description:"This allows selection of a PX4 or VRBRAIN board type. If set to zero then the board type is auto-detected (PX4)",DisplayName:"Board type",RebootRequired:"True",User:"Advanced",Values:{0:"AUTO",1:"PX4V1",2:"Pixhawk",3:"Cube/Pixhawk2",4:"Pixracer",5:"PixhawkMini",6:"Pixhawk2Slim",13:"Intel Aero FC",14:"Pixhawk Pro",20:"AUAV2.1",21:"PCNC1",22:"MINDPXV2",23:"SP01",24:"CUAVv5/FMUV5",30:"VRX BRAIN51",32:"VRX BRAIN52",33:"VRX BRAIN52E",34:"VRX UBRAIN51",35:"VRX UBRAIN52",36:"VRX CORE10",38:"VRX BRAIN54",39:"PX4 FMUV6",100:"PX4 OLDDRIVERS"}},BRD_VBUS_MIN:{Description:"Minimum voltage on the autopilot power rail to allow the aircraft to arm. 0 to disable the check.",DisplayName:"Autopilot board voltage requirement",Increment:"0.1",Range:{high:"5.5",low:"4.0"},Units:"V",User:"Advanced"},BRD_VSERVO_MIN:{Description:"Minimum voltage on the servo rail to allow the aircraft to arm. 0 to disable the check.",DisplayName:"Servo voltage requirement",Increment:"0.1",Range:{high:"12.0",low:"3.3"},Units:"V",User:"Advanced"}},wq={BRD_RADIO_ABLVL:{Description:"This sets the minimum RSSI of an auto-bind packet for it to be accepted. This should be set so that auto-bind will only happen at short range to minimise the change of an auto-bind happening accidentially",DisplayName:"Auto-bind level",Range:{high:"31",low:"0"},User:"Advanced"},BRD_RADIO_ABTIME:{Description:"When non-zero this sets the time with no transmitter packets before we start looking for auto-bind packets.",DisplayName:"Auto-bind time",Range:{high:"120",low:"0"},User:"Advanced"},BRD_RADIO_BZOFS:{Description:"Set transmitter buzzer note adjustment (adjust frequency up)",DisplayName:"Transmitter buzzer adjustment",Range:{high:"40",low:"0"},User:"Advanced"},BRD_RADIO_DEBUG:{Description:"radio debug level",DisplayName:"debug level",Range:{high:"4",low:"0"},User:"Advanced"},BRD_RADIO_DISCRC:{Description:"disable receive CRC (for debug)",DisplayName:"disable receive CRC",User:"Advanced",Values:{0:"NotDisabled",1:"Disabled"}},BRD_RADIO_FCCTST:{Description:"If this is enabled then the radio will continuously transmit as required for FCC testing. The transmit channel is set by the value of the parameter. The radio will not work for RC input while this is enabled",DisplayName:"Put radio into FCC test mode",User:"Advanced",Values:{0:"Disabled",1:"MinChannel",2:"MidChannel",3:"MaxChannel",4:"MinChannelCW",5:"MidChannelCW",6:"MaxChannelCW"}},BRD_RADIO_PPSCH:{Description:"Channel to show received packet-per-second rate, or zero for disabled",DisplayName:"Packet rate channel",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_PROT:{Description:"Select air protocol",DisplayName:"protocol",User:"Advanced",Values:{0:"Auto",1:"DSM2",2:"DSMX"}},BRD_RADIO_SIGCH:{Description:"Channel to show receive RSSI signal strength, or zero for disabled",DisplayName:"RSSI signal strength",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_STKMD:{Description:"This selects between different stick input modes. The default is mode2, which has throttle on the left stick and pitch on the right stick. You can instead set mode1, which has throttle on the right stick and pitch on the left stick.",DisplayName:"Stick input mode",User:"Advanced",Values:{1:"Mode1",2:"Mode2"}},BRD_RADIO_TELEM:{Description:"If this is non-zero then telemetry packets will be sent over DSM",DisplayName:"Enable telemetry",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BRD_RADIO_TESTCH:{Description:"This sets the radio to a fixed test channel for factory testing. Using a fixed channel avoids the need for binding in factory testing.",DisplayName:"Set radio to factory test channel",User:"Advanced",Values:{0:"Disabled",1:"TestChan1",2:"TestChan2",3:"TestChan3",4:"TestChan4",5:"TestChan5",6:"TestChan6",7:"TestChan7",8:"TestChan8"}},BRD_RADIO_TPPSCH:{Description:"Channel to show telemetry packets-per-second value, as received at TX",DisplayName:"Telemetry PPS channel",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_TSIGCH:{Description:"Channel to show telemetry RSSI value as received by TX",DisplayName:"RSSI value channel for telemetry data on transmitter",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_TXMAX:{Description:"Set transmitter maximum transmit power (from 1 to 8)",DisplayName:"Transmitter transmit power",Range:{high:"8",low:"1"},User:"Advanced"},BRD_RADIO_TXPOW:{Description:"Set telemetry transmit power. This is the power level (from 1 to 8) for telemetry packets sent from the RX to the TX",DisplayName:"Telemetry Transmit power",Range:{high:"8",low:"1"},User:"Advanced"},BRD_RADIO_TYPE:{Description:"This enables support for direct attached radio receivers",DisplayName:"Set type of direct attached radio",Values:{0:"None",1:"CYRF6936",2:"CC2500",3:"BK2425"}}},Tq={BRD_RTC_TYPES:{Bitmask:{0:"GPS",1:"MAVLINK_SYSTEM_TIME",2:"HW"},Description:"Specifies which sources of UTC time will be accepted",DisplayName:"Allowed sources of RTC time",User:"Advanced"},BRD_RTC_TZ_MIN:{Description:"Adds offset in +- minutes from UTC to calculate local time",DisplayName:"Timezone offset from UTC",Range:{high:"+840",low:"-720"},User:"Advanced"}},Eq={BTN_ENABLE:{Description:"This enables the button checking module. When this is disabled the parameters for setting button inputs are not visible",DisplayName:"Enable button reporting",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BTN_FUNC1:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 1 RC Channel function",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_FUNC2:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 2 RC Channel function",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_FUNC3:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 3 RC Channel function",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_FUNC4:{Description:"Auxiliary RC Options function executed on pin change",DisplayName:"Button Pin 4 RC Channel function",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},BTN_OPTIONS1:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 1. PWM input detects PWM above or below 1800/1200us instead of logic level. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 1 Options",User:"Standard"},BTN_OPTIONS2:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 2. PWM input detects PWM above or below 1800/1200us instead of logic level. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 2 Options",User:"Standard"},BTN_OPTIONS3:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 3. PWM input detects PWM above or below 1800/1200us instead of logic level. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 3 Options"},BTN_OPTIONS4:{Bitmask:{0:"PWM Input",1:"InvertInput"},Description:"Options for Pin 4. PWM input detects PWM above or below 1800/1200us instead of logic level. Invert changes HIGH state to be logic low voltage on pin, or below 1200us, if PWM input.",DisplayName:"Button Pin 4 Options",User:"Standard"},BTN_PIN1:{Description:"Digital pin number for first button input. ",DisplayName:"First button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_PIN2:{Description:"Digital pin number for second button input. ",DisplayName:"Second button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_PIN3:{Description:"Digital pin number for third button input. ",DisplayName:"Third button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_PIN4:{Description:"Digital pin number for fourth button input. ",DisplayName:"Fourth button Pin",User:"Standard",Values:{50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6","-1":"Disabled"}},BTN_REPORT_SEND:{Description:"The duration in seconds that a BUTTON_CHANGE report is repeatedly sent to the GCS regarding a button changing state. Note that the BUTTON_CHANGE message is MAVLink2 only.",DisplayName:"Report send time",Range:{high:"3600",low:"0"},User:"Standard"}},Pq={CAM_AUTO_ONLY:{Description:"When enabled, trigging by distance is done in AUTO mode only.",DisplayName:"Distance-trigging in AUTO mode only",User:"Standard",Values:{0:"Always",1:"Only when in AUTO"}},CAM_DURATION:{Description:"How long the shutter will be held open in 10ths of a second (i.e. enter 10 for 1second, 50 for 5seconds)",DisplayName:"Duration that shutter is held open",Range:{high:"50",low:"0"},Units:"ds",User:"Standard"},CAM_FEEDBACK_PIN:{Description:"pin number to use for save accurate camera feedback messages. If set to -1 then don't use a pin flag for this, otherwise this is a pin number which if held high after a picture trigger order, will save camera messages when camera really takes a picture. A universal camera hot shoe is needed. The pin should be held high for at least 2 milliseconds for reliable trigger detection. See also the CAM_FEEDBACK_POL option.",DisplayName:"Camera feedback pin",RebootRequired:"True",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},CAM_FEEDBACK_POL:{Description:"Polarity for feedback pin. If this is 1 then the feedback pin should go high on trigger. If set to 0 then it should go low",DisplayName:"Camera feedback pin polarity",User:"Standard",Values:{0:"TriggerLow",1:"TriggerHigh"}},CAM_MAX_ROLL:{Description:"Postpone shooting if roll is greater than limit. (0=Disable, will shoot regardless of roll).",DisplayName:"Maximum photo roll angle.",Range:{high:"180",low:"0"},Units:"deg",User:"Standard"},CAM_MIN_INTERVAL:{Description:"Postpone shooting if previous picture was taken less than preset time(ms) ago.",DisplayName:"Minimum time between photos",Range:{high:"10000",low:"0"},Units:"ms",User:"Standard"},CAM_RELAY_ON:{Description:"This sets whether the relay goes high or low when it triggers. Note that you should also set RELAY_DEFAULT appropriately for your camera",DisplayName:"Relay ON value",User:"Standard",Values:{0:"Low",1:"High"}},CAM_SERVO_OFF:{Description:"PWM value in microseconds to move servo to when shutter is deactivated",DisplayName:"Servo OFF PWM value",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CAM_SERVO_ON:{Description:"PWM value in microseconds to move servo to when shutter is activated",DisplayName:"Servo ON PWM value",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CAM_TRIGG_DIST:{Description:"Distance in meters between camera triggers. If this value is non-zero then the camera will trigger whenever the position changes by this number of meters regardless of what mode the APM is in. Note that this parameter can also be set in an auto mission using the DO_SET_CAM_TRIGG_DIST command, allowing you to enable/disable the triggering of the camera during the flight.",DisplayName:"Camera trigger distance",Range:{high:"1000",low:"0"},Units:"m",User:"Standard"},CAM_TRIGG_TYPE:{Description:"how to trigger the camera to take a picture",DisplayName:"Camera shutter (trigger) type",User:"Standard",Values:{0:"Servo",1:"Relay",2:"GoPro in Solo Gimbal"}},CAM_TYPE:{Description:"Set the camera type that is being used, certain cameras have custom functions that need further configuration, this enables that.",DisplayName:"Type of camera (0: None, 1: BMMCC)",User:"Standard",Values:{0:"Default",1:"BMMCC"}}},Iq={CAM_RC_BTN_DELAY:{Description:"Time it takes for the a RunCam button press to be actived in ms. If this is too short then commands can get out of sync.",DisplayName:"RunCam button delay before allowing further button presses",User:"Advanced"},CAM_RC_BT_DELAY:{Description:"Time it takes for the RunCam to become fully ready in ms. If this is too short then commands can get out of sync.",DisplayName:"RunCam boot delay before allowing updates",User:"Advanced"},CAM_RC_CONTROL:{Bitmask:{0:"Stick yaw right",1:"Stick roll right",2:"3-position switch",3:"2-position switch",4:"Autorecording enabled"},Description:"Specifies the allowed actions required to enter the OSD menu",DisplayName:"RunCam control option",User:"Advanced"},CAM_RC_FEATURES:{Bitmask:{0:"Power Button",1:"WiFi Button",2:"Change Mode",3:"5-Key OSD",4:"Settings Access",5:"DisplayPort",6:"Start Recording",7:"Stop Recording"},Description:"The available features of the attached RunCam device. If 0 then the RunCam device will be queried for the features it supports, otherwise this setting is used.",DisplayName:"RunCam features available",User:"Advanced"},CAM_RC_MDE_DELAY:{Description:"Time it takes for the a RunCam mode button press to be actived in ms. If a mode change first requires a video recording change then double this value is used. If this is too short then commands can get out of sync.",DisplayName:"RunCam mode delay before allowing further button presses",User:"Advanced"},CAM_RC_TYPE:{Description:"RunCam deviee type used to determine OSD menu structure and shutter options.",DisplayName:"RunCam device type",Values:{0:"Disabled",1:"RunCam Split Micro/RunCam with UART",2:"RunCam Split",3:"RunCam Split4 4k",4:"RunCam Hybrid"}}},Oq={CAN_LOGLEVEL:{Description:"Loglevel for recording initialisation and debug information from CAN Interface",DisplayName:"Loglevel",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Log None",1:"Log Error",2:"Log Warning and below",3:"Log Info and below",4:"Log Everything"}}},Uq={CAN_D1_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"DroneCAN",3:"ToshibaCAN",4:"PiccoloCAN",5:"CANTester",6:"EFI_NWPMU",7:"USD1",8:"KDECAN",10:"Scripting",11:"Benewake"}}},xq={CAN_D1_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},Fq={CAN_D1_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D1_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D1_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D1_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},kq={CAN_D1_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",4:"TEST_TOSHIBA_CAN",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC"}},CAN_D1_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},Bq={CAN_D1_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"Output channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D1_UC_ESC_OF:{Description:"Offset for ESC numbering in DroneCAN ESC RawCommand messages. This allows for more efficient packing of ESC command messages. If your ESCs are on servo functions 5 to 8 and you set this parameter to 4 then the ESC RawCommand will be sent with the first 4 slots filled. This can be used for more efficint usage of CAN bandwidth",DisplayName:"ESC Output channels offset",Range:{high:"18",low:"0"},User:"Advanced"},CAN_D1_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D1_UC_NTF_RT:{Description:"Maximum transmit rate for Notify State Message",DisplayName:"Notify State rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"},CAN_D1_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D1_UC_POOL:{Description:"Amount of memory in bytes to allocate for the DroneCAN memory pool. More memory is needed for higher CAN bus loads",DisplayName:"CAN pool size",Range:{high:"16384",low:"1024"},User:"Advanced"},CAN_D1_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"Output channels to be transmitted as servo over UAVCAN",User:"Advanced"},CAN_D1_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},zq={CAN_D2_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"DroneCAN",3:"ToshibaCAN",4:"PiccoloCAN",5:"CANTester",6:"EFI_NWPMU",7:"USD1",8:"KDECAN",10:"Scripting",11:"Benewake"}}},Zq={CAN_D2_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},Gq={CAN_D2_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D2_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D2_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D2_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},Wq={CAN_D2_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",4:"TEST_TOSHIBA_CAN",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC"}},CAN_D2_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},Xq={CAN_D2_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"Output channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D2_UC_ESC_OF:{Description:"Offset for ESC numbering in DroneCAN ESC RawCommand messages. This allows for more efficient packing of ESC command messages. If your ESCs are on servo functions 5 to 8 and you set this parameter to 4 then the ESC RawCommand will be sent with the first 4 slots filled. This can be used for more efficint usage of CAN bandwidth",DisplayName:"ESC Output channels offset",Range:{high:"18",low:"0"},User:"Advanced"},CAN_D2_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D2_UC_NTF_RT:{Description:"Maximum transmit rate for Notify State Message",DisplayName:"Notify State rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"},CAN_D2_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D2_UC_POOL:{Description:"Amount of memory in bytes to allocate for the DroneCAN memory pool. More memory is needed for higher CAN bus loads",DisplayName:"CAN pool size",Range:{high:"16384",low:"1024"},User:"Advanced"},CAN_D2_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"Output channels to be transmitted as servo over UAVCAN",User:"Advanced"},CAN_D2_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},Yq={CAN_D3_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"DroneCAN",3:"ToshibaCAN",4:"PiccoloCAN",5:"CANTester",6:"EFI_NWPMU",7:"USD1",8:"KDECAN",10:"Scripting",11:"Benewake"}}},$q={CAN_D3_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},qq={CAN_D3_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D3_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D3_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D3_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},Kq={CAN_D3_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",4:"TEST_TOSHIBA_CAN",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC"}},CAN_D3_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},jq={CAN_D3_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"Output channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D3_UC_ESC_OF:{Description:"Offset for ESC numbering in DroneCAN ESC RawCommand messages. This allows for more efficient packing of ESC command messages. If your ESCs are on servo functions 5 to 8 and you set this parameter to 4 then the ESC RawCommand will be sent with the first 4 slots filled. This can be used for more efficint usage of CAN bandwidth",DisplayName:"ESC Output channels offset",Range:{high:"18",low:"0"},User:"Advanced"},CAN_D3_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D3_UC_NTF_RT:{Description:"Maximum transmit rate for Notify State Message",DisplayName:"Notify State rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"},CAN_D3_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D3_UC_POOL:{Description:"Amount of memory in bytes to allocate for the DroneCAN memory pool. More memory is needed for higher CAN bus loads",DisplayName:"CAN pool size",Range:{high:"16384",low:"1024"},User:"Advanced"},CAN_D3_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"Output channels to be transmitted as servo over UAVCAN",User:"Advanced"},CAN_D3_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},Qq={CAN_P1_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P1_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver",3:"Third driver"}}},Jq={CAN_P2_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P2_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver",3:"Third driver"}}},eK={CAN_P3_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P3_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver",3:"Third driver"}}},tK={CAN_SLCAN_CPORT:{Description:"CAN Interface ID to be routed to SLCAN, 0 means no routing",DisplayName:"SLCAN Route",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First interface",2:"Second interface"}},CAN_SLCAN_SDELAY:{Description:"Duration after which slcan starts after setting SERNUM in seconds.",DisplayName:"SLCAN Start Delay",Range:{high:"127",low:"0"},User:"Standard"},CAN_SLCAN_SERNUM:{Description:"Serial Port ID to be used for temporary SLCAN iface, -1 means no temporary serial. This parameter is automatically reset on reboot or on timeout. See CAN_SLCAN_TIMOUT for timeout details",DisplayName:"SLCAN Serial Port",User:"Standard",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},CAN_SLCAN_TIMOUT:{Description:"Duration of inactivity after which SLCAN is switched back to original driver in seconds.",DisplayName:"SLCAN Timeout",Range:{high:"127",low:"0"},User:"Standard"}},iK={COMPASS_AUTODEC:{Description:"Enable or disable the automatic calculation of the declination based on gps location",DisplayName:"Auto Declination",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_AUTO_ROT:{Description:"When enabled this will automatically check the orientation of compasses on successful completion of compass calibration. If set to 2 then external compasses will have their orientation automatically corrected.",DisplayName:"Automatically check orientation",Values:{0:"Disabled",1:"CheckOnly",2:"CheckAndFix",3:"use same tolerance to auto rotate 45 deg rotations"}},COMPASS_CAL_FIT:{Description:"This controls the fitness level required for a successful compass calibration. A lower value makes for a stricter fit (less likely to pass). This is the value used for the primary magnetometer. Other magnetometers get double the value.",DisplayName:"Compass calibration fitness",Increment:"0.1",Range:{high:"32",low:"4"},User:"Advanced",Values:{4:"Very Strict",8:"Strict",16:"Default",32:"Relaxed"}},COMPASS_CUS_PIT:{Description:"Compass mounting position pitch offset. Positive values = pitch up, negative values = pitch down. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation pitch offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_CUS_ROLL:{Description:"Compass mounting position roll offset. Positive values = roll right, negative values = roll left. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation roll offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_CUS_YAW:{Description:"Compass mounting position yaw offset. Positive values = yaw right, negative values = yaw left. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation yaw offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_DEC:{Description:"An angle to compensate between the true north and magnetic north",DisplayName:"Compass declination",Increment:"0.01",Range:{high:"3.142",low:"-3.142"},Units:"rad",User:"Standard"},COMPASS_DEV_ID:{Description:"Compass device id. Automatically detected, do not set manually",DisplayName:"Compass device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID2:{Description:"Second compass's device id. Automatically detected, do not set manually",DisplayName:"Compass2 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID3:{Description:"Third compass's device id. Automatically detected, do not set manually",DisplayName:"Compass3 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID4:{Description:"Extra 4th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass4 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID5:{Description:"Extra 5th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass5 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID6:{Description:"Extra 6th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass6 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID7:{Description:"Extra 7th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass7 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID8:{Description:"Extra 8th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass8 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DIA2_X:{Calibration:"1",Description:"DIA_X in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA2_Y:{Calibration:"1",Description:"DIA_Y in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA2_Z:{Description:"DIA_Z in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal Z component",User:"Advanced"},COMPASS_DIA3_X:{Calibration:"1",Description:"DIA_X in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA3_Y:{Calibration:"1",Description:"DIA_Y in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA3_Z:{Description:"DIA_Z in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal Z component",User:"Advanced"},COMPASS_DIA_X:{Calibration:"1",Description:"DIA_X in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA_Y:{Calibration:"1",Description:"DIA_Y in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA_Z:{Description:"DIA_Z in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal Z component",User:"Advanced"},COMPASS_ENABLE:{Description:"Setting this to Enabled(1) will enable the compass. Setting this to Disabled(0) will disable the compass. Note that this is separate from COMPASS_USE. This will enable the low level senor, and will enable logging of magnetometer data. To use the compass for navigation you must also set COMPASS_USE to 1.",DisplayName:"Enable Compass",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},COMPASS_EXTERN2:{Description:"Configure second compass so it is attached externally. This is auto-detected on most boards. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass2 is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_EXTERN3:{Description:"Configure third compass so it is attached externally. This is auto-detected on most boards. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass3 is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_EXTERNAL:{Description:"Configure compass so it is attached externally. This is auto-detected on most boards. Set to 1 if the compass is externally connected. When externally connected the COMPASS_ORIENT option operates independently of the AHRS_ORIENTATION board orientation option. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_FLTR_RNG:{Description:"This sets the range around the average value that new samples must be within to be accepted. This can help reduce the impact of noise on sensors that are on long I2C cables. The value is a percentage from the average value. A value of zero disables this filter.",DisplayName:"Range in which sample is accepted",Increment:"1",Range:{high:"100",low:"0"},Units:"%"},COMPASS_LEARN:{Description:"Enable or disable the automatic learning of compass offsets. You can enable learning either using a compass-only method that is suitable only for fixed wing aircraft or using the offsets learnt by the active EKF state estimator. If this option is enabled then the learnt offsets are saved when you disarm the vehicle. If InFlight learning is enabled then the compass with automatically start learning once a flight starts (must be armed). While InFlight learning is running you cannot use position control modes.",DisplayName:"Learn compass offsets automatically",User:"Advanced",Values:{0:"Disabled",1:"Internal-Learning",2:"EKF-Learning",3:"InFlight-Learning"}},COMPASS_MOT2_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass2's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT2_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass2's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT2_Z:{Description:"Multiplied by the current throttle and added to compass2's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass3's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass3's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_Z:{Description:"Multiplied by the current throttle and added to compass3's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOTCT:{Calibration:"1",Description:"Set motor interference compensation type to disabled, throttle or current. Do not change manually.",DisplayName:"Motor interference compensation type",User:"Advanced",Values:{0:"Disabled",1:"Use Throttle",2:"Use Current"}},COMPASS_MOT_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to the compass's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to the compass's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT_Z:{Description:"Multiplied by the current throttle and added to the compass's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_ODI2_X:{Calibration:"1",Description:"ODI_X in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI2_Y:{Calibration:"1",Description:"ODI_Y in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI2_Z:{Description:"ODI_Z in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_ODI3_X:{Calibration:"1",Description:"ODI_X in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI3_Y:{Calibration:"1",Description:"ODI_Y in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI3_Z:{Description:"ODI_Z in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_ODI_X:{Calibration:"1",Description:"ODI_X in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI_Y:{Calibration:"1",Description:"ODI_Y in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI_Z:{Description:"ODI_Z in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_OFFS_MAX:{Description:"This sets the maximum allowed compass offset in calibration and arming checks",DisplayName:"Compass maximum offset",Increment:"1",Range:{high:"3000",low:"500"},User:"Advanced"},COMPASS_OFS2_X:{Calibration:"1",Description:"Offset to be added to compass2's x-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS2_Y:{Calibration:"1",Description:"Offset to be added to compass2's y-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS2_Z:{Description:"Offset to be added to compass2's z-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_X:{Calibration:"1",Description:"Offset to be added to compass3's x-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_Y:{Calibration:"1",Description:"Offset to be added to compass3's y-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_Z:{Description:"Offset to be added to compass3's z-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_X:{Calibration:"1",Description:"Offset to be added to the compass x-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_Y:{Calibration:"1",Description:"Offset to be added to the compass y-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_Z:{Description:"Offset to be added to the compass z-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OPTIONS:{Bitmask:{0:"CalRequireGPS"},Description:"This sets options to change the behaviour of the compass",DisplayName:"Compass options",User:"Advanced"},COMPASS_ORIENT:{Description:"The orientation of the first external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used. The label for each option is specified in the order of rotations for that orientation.",DisplayName:"Compass orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Yaw45Roll180",10:"Yaw90Roll180",11:"Yaw135Roll180",12:"Pitch180",13:"Yaw225Roll180",14:"Yaw270Roll180",15:"Yaw315Roll180",16:"Roll90",17:"Yaw45Roll90",18:"Yaw90Roll90",19:"Yaw135Roll90",20:"Roll270",21:"Yaw45Roll270",22:"Yaw90Roll270",23:"Yaw135Roll270",24:"Pitch90",25:"Pitch270",26:"Yaw90Pitch180",27:"Yaw270Pitch180",28:"Pitch90Roll90",29:"Pitch90Roll180",30:"Pitch90Roll270",31:"Pitch180Roll90",32:"Pitch180Roll270",33:"Pitch270Roll90",34:"Pitch270Roll180",35:"Pitch270Roll270",36:"Yaw90Pitch180Roll90",37:"Yaw270Roll90",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Pitch315Roll90",42:"Roll45",43:"Roll315",100:"Custom"}},COMPASS_ORIENT2:{Description:"The orientation of a second external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used.",DisplayName:"Compass2 orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Roll180Yaw45",10:"Roll180Yaw90",11:"Roll180Yaw135",12:"Pitch180",13:"Roll180Yaw225",14:"Roll180Yaw270",15:"Roll180Yaw315",16:"Roll90",17:"Roll90Yaw45",18:"Roll90Yaw90",19:"Roll90Yaw135",20:"Roll270",21:"Roll270Yaw45",22:"Roll270Yaw90",23:"Roll270Yaw135",24:"Pitch90",25:"Pitch270",26:"Pitch180Yaw90",27:"Pitch180Yaw270",28:"Roll90Pitch90",29:"Roll180Pitch90",30:"Roll270Pitch90",31:"Roll90Pitch180",32:"Roll270Pitch180",33:"Roll90Pitch270",34:"Roll180Pitch270",35:"Roll270Pitch270",36:"Roll90Pitch180Yaw90",37:"Roll90Yaw270",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Roll90Pitch315",42:"Roll45",43:"Roll315",100:"Custom"}},COMPASS_ORIENT3:{Description:"The orientation of a third external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used.",DisplayName:"Compass3 orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Roll180Yaw45",10:"Roll180Yaw90",11:"Roll180Yaw135",12:"Pitch180",13:"Roll180Yaw225",14:"Roll180Yaw270",15:"Roll180Yaw315",16:"Roll90",17:"Roll90Yaw45",18:"Roll90Yaw90",19:"Roll90Yaw135",20:"Roll270",21:"Roll270Yaw45",22:"Roll270Yaw90",23:"Roll270Yaw135",24:"Pitch90",25:"Pitch270",26:"Pitch180Yaw90",27:"Pitch180Yaw270",28:"Roll90Pitch90",29:"Roll180Pitch90",30:"Roll270Pitch90",31:"Roll90Pitch180",32:"Roll270Pitch180",33:"Roll90Pitch270",34:"Roll180Pitch270",35:"Roll270Pitch270",36:"Roll90Pitch180Yaw90",37:"Roll90Yaw270",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Roll90Pitch315",42:"Roll45",43:"Roll315",100:"Custom"}},COMPASS_PRIO1_ID:{Description:"Compass device id with 1st order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 1st order priority",RebootRequired:"True",User:"Advanced"},COMPASS_PRIO2_ID:{Description:"Compass device id with 2nd order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 2nd order priority",RebootRequired:"True",User:"Advanced"},COMPASS_PRIO3_ID:{Description:"Compass device id with 3rd order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 3rd order priority",RebootRequired:"True",User:"Advanced"},COMPASS_SCALE:{Description:"Scaling factor for first compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass1 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_SCALE2:{Description:"Scaling factor for 2nd compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass2 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_SCALE3:{Description:"Scaling factor for 3rd compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass3 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_TYPEMASK:{Bitmask:{0:"HMC5883",1:"LSM303D",2:"AK8963",3:"BMM150",4:"LSM9DS1",5:"LIS3MDL",6:"AK09916",7:"IST8310",8:"ICM20948",9:"MMC3416",11:"DroneCAN",12:"QMC5883",14:"MAG3110",15:"IST8308",16:"RM3100",17:"MSP",18:"ExternalAHRS"},Description:"This is a bitmask of driver types to disable. If a driver type is set in this mask then that driver will not try to find a sensor at startup",DisplayName:"Compass disable driver type mask",User:"Advanced"},COMPASS_USE:{Description:"Enable or disable the use of the compass (instead of the GPS) for determining heading",DisplayName:"Use compass for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_USE2:{Description:"Enable or disable the secondary compass for determining heading.",DisplayName:"Compass2 used for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_USE3:{Description:"Enable or disable the tertiary compass for determining heading.",DisplayName:"Compass3 used for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}}},aK={COMPASS_PMOT1_X:{Description:"Compensation for X axis of motor1",DisplayName:"Compass per-motor1 X",User:"Advanced"},COMPASS_PMOT1_Y:{Description:"Compensation for Y axis of motor1",DisplayName:"Compass per-motor1 Y",User:"Advanced"},COMPASS_PMOT1_Z:{Description:"Compensation for Z axis of motor1",DisplayName:"Compass per-motor1 Z",User:"Advanced"},COMPASS_PMOT2_X:{Description:"Compensation for X axis of motor2",DisplayName:"Compass per-motor2 X",User:"Advanced"},COMPASS_PMOT2_Y:{Description:"Compensation for Y axis of motor2",DisplayName:"Compass per-motor2 Y",User:"Advanced"},COMPASS_PMOT2_Z:{Description:"Compensation for Z axis of motor2",DisplayName:"Compass per-motor2 Z",User:"Advanced"},COMPASS_PMOT3_X:{Description:"Compensation for X axis of motor3",DisplayName:"Compass per-motor3 X",User:"Advanced"},COMPASS_PMOT3_Y:{Description:"Compensation for Y axis of motor3",DisplayName:"Compass per-motor3 Y",User:"Advanced"},COMPASS_PMOT3_Z:{Description:"Compensation for Z axis of motor3",DisplayName:"Compass per-motor3 Z",User:"Advanced"},COMPASS_PMOT4_X:{Description:"Compensation for X axis of motor4",DisplayName:"Compass per-motor4 X",User:"Advanced"},COMPASS_PMOT4_Y:{Description:"Compensation for Y axis of motor4",DisplayName:"Compass per-motor4 Y",User:"Advanced"},COMPASS_PMOT4_Z:{Description:"Compensation for Z axis of motor4",DisplayName:"Compass per-motor4 Z",User:"Advanced"},COMPASS_PMOT_EN:{Description:"This enables per-motor compass corrections",DisplayName:"per-motor compass correction enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_PMOT_EXP:{Description:"This is the exponential correction for the power output of the motor for per-motor compass correction",DisplayName:"per-motor exponential correction",Increment:"0.01",Range:{high:"2",low:"0"},User:"Advanced"}},rK={DID_BARO_ACC:{Description:"Barometer Vertical Accuracy when installed in the vehicle. Note this is dependent upon installation conditions and thus disabled by default",DisplayName:"Barometer vertical accuraacy",Units:"m",User:"Advanced"},DID_CANDRIVER:{Description:"DroneCAN driver index, 0 to disable DroneCAN",DisplayName:"DroneCAN driver number",Values:{0:"Disabled",1:"Driver1",2:"Driver2"}},DID_ENABLE:{Description:"Enable ODID subsystem",DisplayName:"Enable ODID subsystem",Values:{0:"Disabled",1:"Enabled"}},DID_MAVPORT:{Description:"Serial port number to send OpenDroneID MAVLink messages to. Can be -1 if using DroneCAN.",DisplayName:"MAVLink serial port",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},DID_OPTIONS:{Bitmask:{0:"EnforceArming"},Description:"Options for OpenDroneID subsystem. Bit 0 means to enforce arming checks",DisplayName:"OpenDroneID options"}},nK={EAHRS_RATE:{Description:"Requested rate for AHRS device",DisplayName:"AHRS data rate",Units:"Hz",User:"Standard"},EAHRS_TYPE:{Description:"Type of AHRS device",DisplayName:"AHRS type",User:"Standard",Values:{0:"None",1:"VectorNav",2:"LORD"}}},oK={EFI_COEF1:{Description:"Used to calibrate fuel flow for MS protocol (Slope)",DisplayName:"EFI Calibration Coefficient 1",Range:{high:"1",low:"0"},User:"Advanced"},EFI_COEF2:{Description:"Used to calibrate fuel flow for MS protocol (Offset)",DisplayName:"EFI Calibration Coefficient 2",Range:{high:"10",low:"0"},User:"Advanced"},EFI_TYPE:{Description:"What method of communication is used for EFI #1",DisplayName:"EFI communication type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Serial-MS",2:"NWPMU",3:"Serial-Lutan"}}},sK={EK2_ABIAS_P_NSE:{Description:"This noise controls the growth of the vertical accelerometer delta velocity bias state error estimate. Increasing it makes accelerometer bias estimation faster and noisier.",DisplayName:"Accelerometer bias stability (m/s^3)",Range:{high:"0.005",low:"0.00001"},Units:"m/s/s/s",User:"Advanced"},EK2_ACC_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to accelerometer measurement errors excluding bias. Increasing it makes the flter trust the accelerometer measurements less and other measurements more.",DisplayName:"Accelerometer noise (m/s^2)",Increment:"0.01",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK2_ALT_M_NSE:{Description:"This is the RMS value of noise in the altitude measurement. Increasing it reduces the weighting of the baro measurement and will make the filter respond more slowly to baro measurement errors, but will make it more sensitive to GPS and accelerometer errors.",DisplayName:"Altitude measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_ALT_SOURCE:{Description:"Primary height sensor used by the EKF. If a sensor other than Baro is selected and becomes unavailable, then the Baro sensor will be used as a fallback. NOTE: The EK2_RNG_USE_HGT parameter can be used to switch to range-finder when close to the ground in conjunction with EK2_ALT_SOURCE = 0 or 2 (Baro or GPS).",DisplayName:"Primary altitude sensor source",RebootRequired:"True",User:"Advanced",Values:{0:"Use Baro",1:"Use Range Finder",2:"Use GPS",3:"Use Range Beacon"}},EK2_BCN_DELAY:{Description:"This is the number of msec that the range beacon measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Range beacon measurement delay (msec)",Increment:"10",Range:{high:"127",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_BCN_I_GTE:{Description:"This sets the percentage number of standard deviations applied to the range beacon measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range beacon measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_BCN_M_NSE:{Description:"This is the RMS value of noise in the range beacon measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range beacon measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_CHECK_SCALE:{Description:"This scales the thresholds that are used to check GPS accuracy before it is used by the EKF. A value of 100 is the default. Values greater than 100 increase and values less than 100 reduce the maximum GPS error the EKF will accept. A value of 200 will double the allowable GPS error.",DisplayName:"GPS accuracy check scaler (%)",Range:{high:"200",low:"50"},Units:"%",User:"Advanced"},EK2_EAS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the airspeed measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Airspeed measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_EAS_M_NSE:{Description:"This is the RMS value of noise in equivalent airspeed measurements used by planes. Increasing it reduces the weighting of airspeed measurements and will make wind speed estimates less noisy and slower to converge. Increasing also increases navigation errors when dead-reckoning without GPS measurements.",DisplayName:"Equivalent airspeed measurement noise (m/s)",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK2_ENABLE:{Description:"This enables EKF2. Enabling EKF2 only makes the maths run, it does not mean it will be used for flight control. To use it for flight control set AHRS_EKF_TYPE=2. A reboot or restart will need to be performed after changing the value of EK2_ENABLE for it to take effect.",DisplayName:"Enable EKF2",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},EK2_FLOW_DELAY:{Description:"This is the number of msec that the optical flow measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Optical Flow measurement delay (msec)",Increment:"10",Range:{high:"127",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_FLOW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the optical flow innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Optical Flow measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_FLOW_M_NSE:{Description:"This is the RMS value of noise and errors in optical flow measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Optical flow measurement noise (rad/s)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad/s",User:"Advanced"},EK2_FLOW_USE:{Description:"Controls if the optical flow data is fused into the 24-state navigation estimator OR the 1-state terrain height estimator.",DisplayName:"Optical flow use bitmask",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Navigation",2:"Terrain"}},EK2_GBIAS_P_NSE:{Description:"This state process noise controls growth of the gyro delta angle bias state error estimate. Increasing it makes rate gyro bias estimation faster and noisier.",DisplayName:"Rate gyro bias stability (rad/s/s)",Range:{high:"0.001",low:"0.00001"},Units:"rad/s/s",User:"Advanced"},EK2_GLITCH_RAD:{Description:"This controls the maximum radial uncertainty in position between the value predicted by the filter and the value measured by the GPS before the filter position and velocity states are reset to the GPS. Making this value larger allows the filter to ignore larger GPS glitches but also means that non-GPS errors such as IMU and compass can create a larger error in position before the filter is forced back to the GPS position.",DisplayName:"GPS glitch radius gate size (m)",Increment:"5",Range:{high:"100",low:"10"},Units:"m",User:"Advanced"},EK2_GPS_CHECK:{Bitmask:{0:"NSats",1:"HDoP",2:"speed error",3:"position error",4:"yaw error",5:"pos drift",6:"vert speed",7:"horiz speed"},Description:"This is a 1 byte bitmap controlling which GPS preflight checks are performed. Set to 0 to bypass all checks. Set to 255 perform all checks. Set to 3 to check just the number of satellites and HDoP. Set to 31 for the most rigorous checks that will still allow checks to pass when the copter is moving, eg launch from a boat.",DisplayName:"GPS preflight check",User:"Advanced"},EK2_GPS_TYPE:{Description:"This controls use of GPS measurements : 0 = use 3D velocity & 2D position, 1 = use 2D velocity and 2D position, 2 = use 2D position, 3 = Inhibit GPS use - this can be useful when flying with an optical flow sensor in an environment where GPS quality is poor and subject to large multipath errors.",DisplayName:"GPS mode control",User:"Advanced",Values:{0:"GPS 3D Vel and 2D Pos",1:"GPS 2D vel and 2D pos",2:"GPS 2D pos",3:"No GPS"}},EK2_GSCL_P_NSE:{Description:"This noise controls the rate of gyro scale factor learning. Increasing it makes rate gyro scale factor estimation faster and noisier.",DisplayName:"Rate gyro scale factor stability (1/s)",Range:{high:"0.001",low:"0.000001"},Units:"Hz",User:"Advanced"},EK2_GSF_RST_MAX:{Description:"Sets the maximum number of times the EKF2 will be allowed to reset its yaw to the estimate from the EKF-GSF yaw estimator. No resets will be allowed unless the use of the EKF-GSF yaw estimate is enabled via the EK2_GSF_USE_MASK parameter.",DisplayName:"Maximum number of resets to the EKF-GSF yaw estimate allowed",Increment:"1",Range:{high:"10",low:"1"},RebootRequired:"True",User:"Advanced"},EK2_GSF_RUN_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"A bitmask of which EKF2 instances run an independant EKF-GSF yaw estimator to provide a backup yaw estimate that doesn't rely on magnetometer data. This estimator uses IMU, GPS and, if available, airspeed data. EKF-GSF yaw estimator data for the primary EKF2 instance will be logged as GSF0 and GSF1 messages. Use of the yaw estimate generated by this algorithm is controlled by the EK2_GSF_USE_MASK and EK2_GSF_RST_MAX parameters. To run the EKF-GSF yaw estimator in ride-along and logging only, set EK2_GSF_USE_MASK to 0. ",DisplayName:"Bitmask of which EKF-GSF yaw estimators run",RebootRequired:"True",User:"Advanced"},EK2_GSF_USE_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of which EKF2 instances will use the output from the EKF-GSF yaw estimator that has been turned on by the EK2_GSF_RUN_MASK parameter. If the inertial navigation calculation stops following the GPS, then the vehicle code can request EKF2 to attempt to resolve the issue, either by performing a yaw reset if enabled by this parameter by switching to another EKF2 instance.",DisplayName:"Bitmask of which EKF-GSF yaw estimators are used",RebootRequired:"True",User:"Advanced"},EK2_GYRO_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to gyro measurement errors excluding bias. Increasing it makes the flter trust the gyro measurements less and other measurements more.",DisplayName:"Rate gyro noise (rad/s)",Increment:"0.0001",Range:{high:"0.1",low:"0.0001"},Units:"rad/s",User:"Advanced"},EK2_HGT_DELAY:{Description:"This is the number of msec that the Height measurements lag behind the inertial measurements.",DisplayName:"Height measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_HGT_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the height measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Height measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_HRT_FILT:{Description:"Specifies the crossover frequency of the complementary filter used to calculate the output predictor height rate derivative.",DisplayName:"Height rate filter crossover frequency",Range:{high:"30.0",low:"0.1"},Units:"Hz"},EK2_IMU_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU"},Description:"1 byte bitmap of IMUs to use in EKF2. A separate instance of EKF2 will be started for each IMU selected. Set to 1 to use the first IMU only (default), set to 2 to use the second IMU only, set to 3 to use the first and second IMU. Additional IMU's can be used up to a maximum of 6 if memory and processing resources permit. There may be insufficient memory and processing resources to run multiple instances. If this occurs EKF2 will fail to start.",DisplayName:"Bitmask of active IMUs",RebootRequired:"True",User:"Advanced"},EK2_MAGB_P_NSE:{Description:"This state process noise controls the growth of body magnetic field state error estimates. Increasing it makes magnetometer bias error estimation faster and noisier.",DisplayName:"Body magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK2_MAGE_P_NSE:{Description:"This state process noise controls the growth of earth magnetic field state error estimates. Increasing it makes earth magnetic field estimation faster and noisier.",DisplayName:"Earth magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK2_MAG_CAL:{Description:"This determines when the filter will use the 3-axis magnetometer fusion model that estimates both earth and body fixed magnetic field states, when it will use a simpler magnetic heading fusion model that does not use magnetic field states and when it will use an alternative method of yaw determination to the magnetometer. The 3-axis magnetometer fusion is only suitable for use when the external magnetic field environment is stable. EK2_MAG_CAL = 0 uses heading fusion on ground, 3-axis fusion in-flight, and is the default setting for Plane users. EK2_MAG_CAL = 1 uses 3-axis fusion only when manoeuvring. EK2_MAG_CAL = 2 uses heading fusion at all times, is recommended if the external magnetic field is varying and is the default for rovers. EK2_MAG_CAL = 3 uses heading fusion on the ground and 3-axis fusion after the first in-air field and yaw reset has completed, and is the default for copters. EK2_MAG_CAL = 4 uses 3-axis fusion at all times. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK2_MAG_MASK parameter. NOTE: limited operation without a magnetometer or any other yaw sensor is possible by setting all COMPASS_USE, COMPASS_USE2, COMPASS_USE3, etc parameters to 0 with COMPASS_ENABLE set to 1. If this is done, the EK2_GSF_RUN and EK2_GSF_USE masks must be set to the same as EK2_IMU_MASK.",DisplayName:"Magnetometer default fusion mode",User:"Advanced",Values:{0:"When flying",1:"When manoeuvring",2:"Never",3:"After first climb yaw reset",4:"Always"}},EK2_MAG_EF_LIM:{Description:"This limits the difference between the learned earth magnetic field and the earth field from the world magnetic model tables. A value of zero means to disable the use of the WMM tables.",DisplayName:"EarthField error limit",Range:{high:"500",low:"0"},Units:"mGauss",User:"Advanced"},EK2_MAG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Magnetometer measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_MAG_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of EKF cores that will disable magnetic field states and use simple magnetic heading fusion at all times. This parameter enables specified cores to be used as a backup for flight into an environment with high levels of external magnetic interference which may degrade the EKF attitude estimate when using 3-axis magnetometer fusion. NOTE : Use of a different magnetometer fusion algorithm on different cores makes unwanted EKF core switches due to magnetometer errors more likely.",DisplayName:"Bitmask of active EKF cores that will always use heading fusion",RebootRequired:"True",User:"Advanced"},EK2_MAG_M_NSE:{Description:"This is the RMS value of noise in magnetometer measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Magnetometer measurement noise (Gauss)",Increment:"0.01",Range:{high:"0.5",low:"0.01"},Units:"Gauss",User:"Advanced"},EK2_MAX_FLOW:{Description:"This sets the magnitude maximum optical flow rate in rad/sec that will be accepted by the filter",DisplayName:"Maximum valid optical flow rate",Increment:"0.1",Range:{high:"4.0",low:"1.0"},Units:"rad/s",User:"Advanced"},EK2_NOAID_M_NSE:{Description:"This sets the amount of position variation that the EKF allows for when operating without external measurements (eg GPS or optical flow). Increasing this parameter makes the EKF attitude estimate less sensitive to vehicle manoeuvres but more sensitive to IMU errors.",DisplayName:"Non-GPS operation position uncertainty (m)",Range:{high:"50.0",low:"0.5"},Units:"m",User:"Advanced"},EK2_OGN_HGT_MASK:{Bitmask:{0:"Correct when using Baro height",1:"Correct when using range finder height",2:"Apply corrections to local position"},Description:"When a height sensor other than GPS is used as the primary height source by the EKF, the position of the zero height datum is defined by that sensor and its frame of reference. If a GPS height measurement is also available, then the height of the WGS-84 height datum used by the EKF can be corrected so that the height returned by the getLLH() function is compensated for primary height sensor drift and change in datum over time. The first two bit positions control when the height datum will be corrected. Correction is performed using a Bayes filter and only operates when GPS quality permits. The third bit position controls where the corrections to the GPS reference datum are applied. Corrections can be applied to the local vertical position or to the reported EKF origin height (default).",DisplayName:"Bitmask control of EKF reference height correction",RebootRequired:"True",User:"Advanced"},EK2_POSNE_M_NSE:{Description:"This sets the GPS horizontal position observation noise. Increasing it reduces the weighting of GPS horizontal position measurements.",DisplayName:"GPS horizontal position measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_POS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS position measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS position measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_RNG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the range finder innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range finder measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_RNG_M_NSE:{Description:"This is the RMS value of noise in the range finder measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range finder measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_RNG_USE_HGT:{Description:"Range finder can be used as the primary height source when below this percentage of its maximum range (see RNGFND_MAX_CM). This will not work unless Baro or GPS height is selected as the primary height source vis EK2_ALT_SOURCE = 0 or 2 respectively. This feature should not be used for terrain following as it is designed for vertical takeoff and landing with climb above the range finder use height before commencing the mission, and with horizontal position changes below that height being limited to a flat region around the takeoff and landing point.",DisplayName:"Range finder switch height percentage",Increment:"1",Range:{high:"70",low:"-1"},Units:"%",User:"Advanced"},EK2_RNG_USE_SPD:{Description:"The range finder will not be used as the primary height source when the horizontal ground speed is greater than this value.",DisplayName:"Range finder max ground speed",Increment:"0.5",Range:{high:"6.0",low:"2.0"},Units:"m/s",User:"Advanced"},EK2_TAU_OUTPUT:{Description:"Sets the time constant of the output complementary filter/predictor in centi-seconds.",DisplayName:"Output complementary filter time constant (centi-sec)",Increment:"5",Range:{high:"50",low:"10"},Units:"cs",User:"Advanced"},EK2_TERR_GRAD:{Description:"Specifies the maximum gradient of the terrain below the vehicle assumed when it is fusing range finder or optical flow to estimate terrain height.",DisplayName:"Maximum terrain gradient",Increment:"0.01",Range:{high:"0.2",low:"0"},User:"Advanced"},EK2_VELD_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set vertical velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS vertical velocity measurements.",DisplayName:"GPS vertical velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK2_VELNE_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set horizontal velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS horizontal velocity measurements.",DisplayName:"GPS horizontal velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK2_VEL_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS velocity measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS velocity innovation gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_WIND_PSCALE:{Description:"This controls how much the process noise on the wind states is increased when gaining or losing altitude to take into account changes in wind speed and direction with altitude. Increasing this parameter increases how rapidly the wind states adapt when changing altitude, but does make wind velocity estimation noiser.",DisplayName:"Height rate to wind process noise scaler",Increment:"0.1",Range:{high:"1.0",low:"0.0"},User:"Advanced"},EK2_WIND_P_NSE:{Description:"This state process noise controls the growth of wind state error estimates. Increasing it makes wind estimation faster and noisier.",DisplayName:"Wind velocity process noise (m/s^2)",Increment:"0.1",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK2_YAW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer yaw measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Yaw measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_YAW_M_NSE:{Description:"This is the RMS value of noise in yaw measurements from the magnetometer. Increasing it reduces the weighting on these measurements.",DisplayName:"Yaw measurement noise (rad)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},lK={EK3_ABIAS_P_NSE:{Description:"This noise controls the growth of the vertical accelerometer delta velocity bias state error estimate. Increasing it makes accelerometer bias estimation faster and noisier.",DisplayName:"Accelerometer bias stability (m/s^3)",Range:{high:"0.005",low:"0.00001"},Units:"m/s/s/s",User:"Advanced"},EK3_ACC_BIAS_LIM:{Description:"The accelerometer bias state will be limited to +- this value",DisplayName:"Accelerometer bias limit",Increment:"0.1",Range:{high:"2.5",low:"0.5"},Units:"m/s/s",User:"Advanced"},EK3_ACC_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to accelerometer measurement errors excluding bias. Increasing it makes the flter trust the accelerometer measurements less and other measurements more.",DisplayName:"Accelerometer noise (m/s^2)",Increment:"0.01",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK3_AFFINITY:{Bitmask:{0:"EnableGPSAffinity",1:"EnableBaroAffinity",2:"EnableCompassAffinity",3:"EnableAirspeedAffinity"},Description:"These options control the affinity between sensor instances and EKF cores",DisplayName:"EKF3 Sensor Affinity Options",RebootRequired:"True",User:"Advanced"},EK3_ALT_M_NSE:{Description:"This is the RMS value of noise in the altitude measurement. Increasing it reduces the weighting of the baro measurement and will make the filter respond more slowly to baro measurement errors, but will make it more sensitive to GPS and accelerometer errors.",DisplayName:"Altitude measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_BCN_DELAY:{Description:"This is the number of msec that the range beacon measurements lag behind the inertial measurements.",DisplayName:"Range beacon measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_BCN_I_GTE:{Description:"This sets the percentage number of standard deviations applied to the range beacon measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range beacon measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_BCN_M_NSE:{Description:"This is the RMS value of noise in the range beacon measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range beacon measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_BETA_MASK:{Bitmask:{0:"Always",1:"WhenNoYawSensor"},Description:"1 byte bitmap controlling use of sideslip angle fusion for estimation of non wind states during operation of 'fly forward' vehicle types such as fixed wing planes. By assuming that the angle of sideslip is small, the wind velocity state estimates are corrected whenever the EKF is not dead reckoning (e.g. has an independent velocity or position sensor such as GPS). This behaviour is on by default and cannot be disabled. When the EKF is dead reckoning, the wind states are used as a reference, enabling use of the small angle of sideslip assumption to correct non wind velocity states (eg attitude, velocity, position, etc) and improve navigation accuracy. This behaviour is on by default and cannot be disabled. The behaviour controlled by this parameter is the use of the small angle of sideslip assumption to correct non wind velocity states when the EKF is NOT dead reckoning. This is primarily of benefit to reduce the buildup of yaw angle errors during straight and level flight without a yaw sensor (e.g. magnetometer or dual antenna GPS yaw) provided aerobatic flight maneuvers with large sideslip angles are not performed. The 'always' option might be used where the yaw sensor is intentionally not fitted or disabled. The 'WhenNoYawSensor' option might be used if a yaw sensor is fitted, but protection against in-flight failure and continual rejection by the EKF is desired. For vehicles operated within visual range of the operator performing frequent turning maneuvers, setting this parameter is unnecessary.",DisplayName:"Bitmask controlling sidelip angle fusion",RebootRequired:"True",User:"Advanced"},EK3_CHECK_SCALE:{Description:"This scales the thresholds that are used to check GPS accuracy before it is used by the EKF. A value of 100 is the default. Values greater than 100 increase and values less than 100 reduce the maximum GPS error the EKF will accept. A value of 200 will double the allowable GPS error.",DisplayName:"GPS accuracy check scaler (%)",Range:{high:"200",low:"50"},Units:"%",User:"Advanced"},EK3_DRAG_BCOEF_X:{Description:"Ratio of mass to drag coefficient measured along the X body axis. This parameter enables estimation of wind drift for vehicles with bluff bodies and without propulsion forces in the X and Y direction (eg multicopters). The drag produced by this effect scales with speed squared. Set to a postive value > 1.0 to enable. A starting value is the mass in Kg divided by the frontal area. The predicted drag from the rotors is specified separately by the EK3_MCOEF parameter.",DisplayName:"Ballistic coefficient for X axis drag",Range:{high:"1000.0",low:"0.0"},Units:"kg/m/m",User:"Advanced"},EK3_DRAG_BCOEF_Y:{Description:"Ratio of mass to drag coefficient measured along the Y body axis. This parameter enables estimation of wind drift for vehicles with bluff bodies and without propulsion forces in the X and Y direction (eg multicopters). The drag produced by this effect scales with speed squared. Set to a postive value > 1.0 to enable. A starting value is the mass in Kg divided by the side area. The predicted drag from the rotors is specified separately by the EK3_MCOEF parameter.",DisplayName:"Ballistic coefficient for Y axis drag",Range:{high:"1000.0",low:"50.0"},Units:"kg/m/m",User:"Advanced"},EK3_DRAG_MCOEF:{Description:"This parameter is used to predict the drag produced by the rotors when flying a multi-copter, enabling estimation of wind drift. The drag produced by this effect scales with speed not speed squared and is produced because some of the air velocity normal to the rotors axis of rotation is lost when passing through the rotor disc which changes the momentum of the airflow causing drag. For unducted rotors the effect is roughly proportional to the area of the propeller blades when viewed side on and changes with different propellers. It is higher for ducted rotors. For example if flying at 15 m/s at sea level conditions produces a rotor induced drag acceleration of 1.5 m/s/s, then EK3_MCOEF would be set to 0.1 = (1.5/15.0). Set EK3_MCOEF to a postive value to enable wind estimation using this drag effect. To account for the drag produced by the body which scales with speed squared, see documentation for the EK3_BCOEF_X and EK3_BCOEF_Y parameters.",DisplayName:"Momentum coefficient for propeller drag",Increment:"0.01",Range:{high:"1.0",low:"0.0"},Units:"1/s",User:"Advanced"},EK3_DRAG_M_NSE:{Description:"This sets the amount of noise used when fusing X and Y acceleration as an observation that enables esitmation of wind velocity for multi-rotor vehicles. This feature is enabled by the EK3_BCOEF_X and EK3_BCOEF_Y parameters",DisplayName:"Observation noise for drag acceleration",Increment:"0.1",Range:{high:"2.0",low:"0.1"},Units:"m/s/s",User:"Advanced"},EK3_EAS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the airspeed measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Airspeed measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_EAS_M_NSE:{Description:"This is the RMS value of noise in equivalent airspeed measurements used by planes. Increasing it reduces the weighting of airspeed measurements and will make wind speed estimates less noisy and slower to converge. Increasing also increases navigation errors when dead-reckoning without GPS measurements.",DisplayName:"Equivalent airspeed measurement noise (m/s)",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK3_ENABLE:{Description:"This enables EKF3. Enabling EKF3 only makes the maths run, it does not mean it will be used for flight control. To use it for flight control set AHRS_EKF_TYPE=3. A reboot or restart will need to be performed after changing the value of EK3_ENABLE for it to take effect.",DisplayName:"Enable EKF3",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},EK3_ERR_THRESH:{Description:"lanes have to be consistently better than the primary by at least this threshold to reduce their overall relativeCoreError, lowering this makes lane switching more sensitive to smaller error differences",DisplayName:"EKF3 Lane Relative Error Sensitivity Threshold",Increment:"0.05",Range:{high:"1",low:"0.05"},User:"Advanced"},EK3_FLOW_DELAY:{Description:"This is the number of msec that the optical flow measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Optical Flow measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_FLOW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the optical flow innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Optical Flow measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_FLOW_M_NSE:{Description:"This is the RMS value of noise and errors in optical flow measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Optical flow measurement noise (rad/s)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad/s",User:"Advanced"},EK3_FLOW_USE:{Description:"Controls if the optical flow data is fused into the 24-state navigation estimator OR the 1-state terrain height estimator.",DisplayName:"Optical flow use bitmask",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Navigation",2:"Terrain"}},EK3_GBIAS_P_NSE:{Description:"This state process noise controls growth of the gyro delta angle bias state error estimate. Increasing it makes rate gyro bias estimation faster and noisier.",DisplayName:"Rate gyro bias stability (rad/s/s)",Range:{high:"0.001",low:"0.00001"},Units:"rad/s/s",User:"Advanced"},EK3_GLITCH_RAD:{Description:"This controls the maximum radial uncertainty in position between the value predicted by the filter and the value measured by the GPS before the filter position and velocity states are reset to the GPS. Making this value larger allows the filter to ignore larger GPS glitches but also means that non-GPS errors such as IMU and compass can create a larger error in position before the filter is forced back to the GPS position.",DisplayName:"GPS glitch radius gate size (m)",Increment:"5",Range:{high:"100",low:"10"},Units:"m",User:"Advanced"},EK3_GND_EFF_DZ:{Description:"This parameter sets the size of the dead zone that is applied to negative baro height spikes that can occur when takeing off or landing when a vehicle with lift rotors is operating in ground effect ground effect. Set to about 0.5m less than the amount of negative offset in baro height that occurs just prior to takeoff when lift motors are spooling up. Set to 0 if no ground effect is present. ",DisplayName:"Baro height ground effect dead zone",Increment:"0.5",Range:{high:"10.0",low:"0.0"},User:"Advanced"},EK3_GPS_CHECK:{Bitmask:{0:"NSats",1:"HDoP",2:"speed error",3:"position error",4:"yaw error",5:"pos drift",6:"vert speed",7:"horiz speed"},Description:"This is a 1 byte bitmap controlling which GPS preflight checks are performed. Set to 0 to bypass all checks. Set to 255 perform all checks. Set to 3 to check just the number of satellites and HDoP. Set to 31 for the most rigorous checks that will still allow checks to pass when the copter is moving, eg launch from a boat.",DisplayName:"GPS preflight check",User:"Advanced"},EK3_GSF_RST_MAX:{Description:"Sets the maximum number of times the EKF3 will be allowed to reset its yaw to the estimate from the EKF-GSF yaw estimator. No resets will be allowed unless the use of the EKF-GSF yaw estimate is enabled via the EK3_GSF_USE_MASK parameter.",DisplayName:"Maximum number of resets to the EKF-GSF yaw estimate allowed",Increment:"1",Range:{high:"10",low:"1"},RebootRequired:"True",User:"Advanced"},EK3_GSF_RUN_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of which EKF3 instances run an independant EKF-GSF yaw estimator to provide a backup yaw estimate that doesn't rely on magnetometer data. This estimator uses IMU, GPS and, if available, airspeed data. EKF-GSF yaw estimator data for the primary EKF3 instance will be logged as GSF0 and GSF1 messages. Use of the yaw estimate generated by this algorithm is controlled by the EK3_GSF_USE_MASK and EK3_GSF_RST_MAX parameters. To run the EKF-GSF yaw estimator in ride-along and logging only, set EK3_GSF_USE to 0. ",DisplayName:"Bitmask of which EKF-GSF yaw estimators run",RebootRequired:"True",User:"Advanced"},EK3_GSF_USE_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"A bitmask of which EKF3 instances will use the output from the EKF-GSF yaw estimator that has been turned on by the EK3_GSF_RUN_MASK parameter. If the inertial navigation calculation stops following the GPS, then the vehicle code can request EKF3 to attempt to resolve the issue, either by performing a yaw reset if enabled by this parameter by switching to another EKF3 instance.",DisplayName:"Bitmask of which EKF-GSF yaw estimators are used",RebootRequired:"True",User:"Advanced"},EK3_GYRO_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to gyro measurement errors excluding bias. Increasing it makes the flter trust the gyro measurements less and other measurements more.",DisplayName:"Rate gyro noise (rad/s)",Increment:"0.0001",Range:{high:"0.1",low:"0.0001"},Units:"rad/s",User:"Advanced"},EK3_HGT_DELAY:{Description:"This is the number of msec that the Height measurements lag behind the inertial measurements.",DisplayName:"Height measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_HGT_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the height measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Height measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_HRT_FILT:{Description:"Specifies the crossover frequency of the complementary filter used to calculate the output predictor height rate derivative.",DisplayName:"Height rate filter crossover frequency",Range:{high:"30.0",low:"0.1"},Units:"Hz"},EK3_IMU_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU"},Description:"1 byte bitmap of IMUs to use in EKF3. A separate instance of EKF3 will be started for each IMU selected. Set to 1 to use the first IMU only (default), set to 2 to use the second IMU only, set to 3 to use the first and second IMU. Additional IMU's can be used up to a maximum of 6 if memory and processing resources permit. There may be insufficient memory and processing resources to run multiple instances. If this occurs EKF3 will fail to start.",DisplayName:"Bitmask of active IMUs",RebootRequired:"True",User:"Advanced"},EK3_MAGB_P_NSE:{Description:"This state process noise controls the growth of body magnetic field state error estimates. Increasing it makes magnetometer bias error estimation faster and noisier.",DisplayName:"Body magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK3_MAGE_P_NSE:{Description:"This state process noise controls the growth of earth magnetic field state error estimates. Increasing it makes earth magnetic field estimation faster and noisier.",DisplayName:"Earth magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK3_MAG_CAL:{Description:"This determines when the filter will use the 3-axis magnetometer fusion model that estimates both earth and body fixed magnetic field states and when it will use a simpler magnetic heading fusion model that does not use magnetic field states. The 3-axis magnetometer fusion is only suitable for use when the external magnetic field environment is stable. EK3_MAG_CAL = 0 uses heading fusion on ground, 3-axis fusion in-flight, and is the default setting for Plane users. EK3_MAG_CAL = 1 uses 3-axis fusion only when manoeuvring. EK3_MAG_CAL = 2 uses heading fusion at all times, is recommended if the external magnetic field is varying and is the default for rovers. EK3_MAG_CAL = 3 uses heading fusion on the ground and 3-axis fusion after the first in-air field and yaw reset has completed, and is the default for copters. EK3_MAG_CAL = 4 uses 3-axis fusion at all times. EK3_MAG_CAL = 5 uses an external yaw sensor with simple heading fusion. NOTE : Use of simple heading magnetometer fusion makes vehicle compass calibration and alignment errors harder for the EKF to detect which reduces the sensitivity of the Copter EKF failsafe algorithm. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK3_MAG_MASK parameter. EK3_MAG_CAL = 6 uses an external yaw sensor with fallback to compass when the external sensor is not available if we are flying. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK3_MAG_MASK parameter. NOTE: limited operation without a magnetometer or any other yaw sensor is possible by setting all COMPASS_USE, COMPASS_USE2, COMPASS_USE3, etc parameters to 0 and setting COMPASS_ENABLE to 0. If this is done, the EK3_GSF_RUN and EK3_GSF_USE masks must be set to the same as EK3_IMU_MASK. A yaw angle derived from IMU and GPS velocity data using a Gaussian Sum Filter (GSF) will then be used to align the yaw when flight commences and there is sufficient movement.",DisplayName:"Magnetometer default fusion mode",RebootRequired:"True",User:"Advanced",Values:{0:"When flying",1:"When manoeuvring",2:"Never",3:"After first climb yaw reset",4:"Always",5:"Use external yaw sensor (Deprecated in 4.1+ see EK3_SRCn_YAW)",6:"External yaw sensor with compass fallback (Deprecated in 4.1+ see EK3_SRCn_YAW)"}},EK3_MAG_EF_LIM:{Description:"This limits the difference between the learned earth magnetic field and the earth field from the world magnetic model tables. A value of zero means to disable the use of the WMM tables.",DisplayName:"EarthField error limit",Range:{high:"500",low:"0"},Units:"mGauss",User:"Advanced"},EK3_MAG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Magnetometer measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_MAG_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of EKF cores that will disable magnetic field states and use simple magnetic heading fusion at all times. This parameter enables specified cores to be used as a backup for flight into an environment with high levels of external magnetic interference which may degrade the EKF attitude estimate when using 3-axis magnetometer fusion. NOTE : Use of a different magnetometer fusion algorithm on different cores makes unwanted EKF core switches due to magnetometer errors more likely.",DisplayName:"Bitmask of active EKF cores that will always use heading fusion",RebootRequired:"True",User:"Advanced"},EK3_MAG_M_NSE:{Description:"This is the RMS value of noise in magnetometer measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Magnetometer measurement noise (Gauss)",Increment:"0.01",Range:{high:"0.5",low:"0.01"},Units:"Gauss",User:"Advanced"},EK3_MAX_FLOW:{Description:"This sets the magnitude maximum optical flow rate in rad/sec that will be accepted by the filter",DisplayName:"Maximum valid optical flow rate",Increment:"0.1",Range:{high:"4.0",low:"1.0"},Units:"rad/s",User:"Advanced"},EK3_NOAID_M_NSE:{Description:"This sets the amount of position variation that the EKF allows for when operating without external measurements (eg GPS or optical flow). Increasing this parameter makes the EKF attitude estimate less sensitive to vehicle manoeuvres but more sensitive to IMU errors.",DisplayName:"Non-GPS operation position uncertainty (m)",Range:{high:"50.0",low:"0.5"},Units:"m",User:"Advanced"},EK3_OGNM_TEST_SF:{Description:"This parameter is adjust the sensitivity of the on ground not moving test which is used to assist with learning the yaw gyro bias and stopping yaw drift before flight when operating without a yaw sensor. Bigger values allow the detection of a not moving condition with noiser IMU data. Check the XKFM data logged when the vehicle is on ground not moving and adjust the value of OGNM_TEST_SF to be slightly higher than the maximum value of the XKFM.ADR, XKFM.ALR, XKFM.GDR and XKFM.GLR test levels.",DisplayName:"On ground not moving test scale factor",Increment:"0.5",Range:{high:"10.0",low:"1.0"},User:"Advanced"},EK3_OGN_HGT_MASK:{Bitmask:{0:"Correct when using Baro height",1:"Correct when using range finder height",2:"Apply corrections to local position"},Description:"When a height sensor other than GPS is used as the primary height source by the EKF, the position of the zero height datum is defined by that sensor and its frame of reference. If a GPS height measurement is also available, then the height of the WGS-84 height datum used by the EKF can be corrected so that the height returned by the getLLH() function is compensated for primary height sensor drift and change in datum over time. The first two bit positions control when the height datum will be corrected. Correction is performed using a Bayes filter and only operates when GPS quality permits. The third bit position controls where the corrections to the GPS reference datum are applied. Corrections can be applied to the local vertical position or to the reported EKF origin height (default).",DisplayName:"Bitmask control of EKF reference height correction",RebootRequired:"True",User:"Advanced"},EK3_POSNE_M_NSE:{Description:"This sets the GPS horizontal position observation noise. Increasing it reduces the weighting of GPS horizontal position measurements.",DisplayName:"GPS horizontal position measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_POS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS position measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS position measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_PRIMARY:{Description:"The core number (index in IMU mask) that will be used as the primary EKF core on startup. While disarmed the EKF will force the use of this core. A value of 0 corresponds to the first IMU in EK3_IMU_MASK.",DisplayName:"Primary core number",Increment:"1",Range:{high:"2",low:"0"},User:"Advanced"},EK3_RNG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the range finder innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range finder measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_RNG_M_NSE:{Description:"This is the RMS value of noise in the range finder measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range finder measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_RNG_USE_HGT:{Description:"Range finder can be used as the primary height source when below this percentage of its maximum range (see RNGFNDx_MAX_CM) and the primary height source is Baro or GPS (see EK3_SRCx_POSZ). This feature should not be used for terrain following as it is designed for vertical takeoff and landing with climb above the range finder use height before commencing the mission, and with horizontal position changes below that height being limited to a flat region around the takeoff and landing point.",DisplayName:"Range finder switch height percentage",Increment:"1",Range:{high:"70",low:"-1"},Units:"%",User:"Advanced"},EK3_RNG_USE_SPD:{Description:"The range finder will not be used as the primary height source when the horizontal ground speed is greater than this value.",DisplayName:"Range finder max ground speed",Increment:"0.5",Range:{high:"6.0",low:"2.0"},Units:"m/s",User:"Advanced"},EK3_TAU_OUTPUT:{Description:"Sets the time constant of the output complementary filter/predictor in centi-seconds.",DisplayName:"Output complementary filter time constant (centi-sec)",Increment:"5",Range:{high:"50",low:"10"},Units:"cs",User:"Advanced"},EK3_TERR_GRAD:{Description:"Specifies the maximum gradient of the terrain below the vehicle when it is using range finder as a height reference",DisplayName:"Maximum terrain gradient",Increment:"0.01",Range:{high:"0.2",low:"0"},User:"Advanced"},EK3_VELD_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set vertical velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS vertical velocity measurements.",DisplayName:"GPS vertical velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_VELNE_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set horizontal velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS horizontal velocity measurements.",DisplayName:"GPS horizontal velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_VEL_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS velocity measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS velocity innovation gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_VIS_VERR_MAX:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when minimum quality is reported by the sensor. When quality is between max and min, the error will be calculated using linear interpolation between VIS_VERR_MIN and VIS_VERR_MAX.",DisplayName:"Visual odometry maximum velocity error",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK3_VIS_VERR_MIN:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when maximum quality is reported by the sensor. When quality is between max and min, the error will be calculated using linear interpolation between VIS_VERR_MIN and VIS_VERR_MAX.",DisplayName:"Visual odometry minimum velocity error",Increment:"0.05",Range:{high:"0.5",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_WENC_VERR:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when wheel encoder data is being fused.",DisplayName:"Wheel odometry velocity error",Increment:"0.1",Range:{high:"1.0",low:"0.01"},Units:"m/s",User:"Advanced"},EK3_WIND_PSCALE:{Description:"This controls how much the process noise on the wind states is increased when gaining or losing altitude to take into account changes in wind speed and direction with altitude. Increasing this parameter increases how rapidly the wind states adapt when changing altitude, but does make wind velocity estimation noiser.",DisplayName:"Height rate to wind process noise scaler",Increment:"0.1",Range:{high:"2.0",low:"0.0"},User:"Advanced"},EK3_WIND_P_NSE:{Description:"This state process noise controls the growth of wind state error estimates. Increasing it makes wind estimation faster and noisier.",DisplayName:"Wind velocity process noise (m/s^2)",Increment:"0.1",Range:{high:"2.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK3_YAW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer yaw measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Yaw measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_YAW_M_NSE:{Description:"This is the RMS value of noise in yaw measurements from the magnetometer. Increasing it reduces the weighting on these measurements.",DisplayName:"Yaw measurement noise (rad)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},cK={EK3_SRC1_POSXY:{Description:"Position Horizontal Source (Primary)",DisplayName:"Position Horizontal Source (Primary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_POSZ:{Description:"Position Vertical Source",DisplayName:"Position Vertical Source",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_VELXY:{Description:"Velocity Horizontal Source",DisplayName:"Velocity Horizontal Source",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC1_VELZ:{Description:"Velocity Vertical Source",DisplayName:"Velocity Vertical Source",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_YAW:{Description:"Yaw Source",DisplayName:"Yaw Source",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC2_POSXY:{Description:"Position Horizontal Source (Secondary)",DisplayName:"Position Horizontal Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_POSZ:{Description:"Position Vertical Source (Secondary)",DisplayName:"Position Vertical Source (Secondary)",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_VELXY:{Description:"Velocity Horizontal Source (Secondary)",DisplayName:"Velocity Horizontal Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC2_VELZ:{Description:"Velocity Vertical Source (Secondary)",DisplayName:"Velocity Vertical Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_YAW:{Description:"Yaw Source (Secondary)",DisplayName:"Yaw Source (Secondary)",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC3_POSXY:{Description:"Position Horizontal Source (Tertiary)",DisplayName:"Position Horizontal Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_POSZ:{Description:"Position Vertical Source (Tertiary)",DisplayName:"Position Vertical Source (Tertiary)",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_VELXY:{Description:"Velocity Horizontal Source (Tertiary)",DisplayName:"Velocity Horizontal Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC3_VELZ:{Description:"Velocity Vertical Source (Tertiary)",DisplayName:"Velocity Vertical Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_YAW:{Description:"Yaw Source (Tertiary)",DisplayName:"Yaw Source (Tertiary)",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC_OPTIONS:{Bitmask:{0:"FuseAllVelocities"},Description:"EKF Source Options",DisplayName:"EKF Source Options",User:"Advanced"}},dK={FENCE_ACTION:{Description:"What action should be taken when fence is breached",DisplayName:"Fence Action",User:"Standard",Values:{0:"Report Only",1:"RTL or Hold",2:"Hold",3:"SmartRTL or RTL or Hold",4:"SmartRTL or Hold"}},FENCE_ENABLE:{Description:"Allows you to enable (1) or disable (0) the fence functionality",DisplayName:"Fence enable/disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},FENCE_MARGIN:{Description:"Distance that autopilot's should maintain from the fence to avoid a breach",DisplayName:"Fence Margin",Range:{high:"10",low:"1"},Units:"m",User:"Standard"},FENCE_RADIUS:{Description:"Circle fence radius which when breached will cause an RTL",DisplayName:"Circular Fence Radius",Range:{high:"10000",low:"30"},Units:"m",User:"Standard"},FENCE_TOTAL:{Description:"Number of polygon points saved in eeprom (do not update manually)",DisplayName:"Fence polygon point total",Range:{high:"20",low:"1"},User:"Standard"},FENCE_TYPE:{Bitmask:{1:"Circle",2:"Polygon"},Description:"Enabled fence types held as bitmask",DisplayName:"Fence Type",User:"Standard"}},CK={FFT_ATT_REF:{Description:"FFT attenuation level in dB for bandwidth calculation and peak detection. The bandwidth is calculated by comparing peak power output with the attenuated version. The default of 15 has shown to be a good compromise in both simulations and real flight.",DisplayName:"FFT attenuation for bandwidth calculation",Range:{high:"100",low:"0"},User:"Advanced"},FFT_BW_HOVER:{Description:"FFT learned bandwidth at hover for the attenuation frequencies.",DisplayName:"FFT learned bandwidth at hover",Range:{high:"200",low:"0"},User:"Advanced"},FFT_ENABLE:{Description:"Enable Gyro FFT analyser",DisplayName:"Enable",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},FFT_FREQ_HOVER:{Description:"The learned hover noise frequency",DisplayName:"FFT learned hover frequency",Range:{high:"250",low:"0"},User:"Advanced"},FFT_HMNC_FIT:{Description:"FFT harmonic fit frequency threshold percentage at which a signal of the appropriate frequency is determined to be the harmonic of another. Signals that have a harmonic relationship that varies at most by this percentage are considered harmonics of each other for the purpose of selecting the harmonic notch frequency. If a match is found then the lower frequency harmonic is always used as the basis for the dynamic harmonic notch. A value of zero completely disables harmonic matching.",DisplayName:"FFT harmonic fit frequency threshold",Range:{high:"100",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_HMNC_PEAK:{Description:"The FFT harmonic peak target that should be returned by FTN1.PkAvg. The resulting value will be used by the harmonic notch if configured to track the FFT frequency. By default the appropriate peak is auto-detected based on the harmonic fit between peaks and the energy-weighted average frequency on roll on pitch is used. Setting this to 1 will always target the highest energy peak. Setting this to 2 will target the highest energy peak that is lower in frequency than the highest energy peak. Setting this to 3 will target the highest energy peak that is higher in frequency than the highest energy peak. Setting this to 4 will target the highest energy peak on the roll axis only and only the roll frequency will be used (some vehicles have a much more pronounced peak on roll). Setting this to 5 will target the highest energy peak on the pitch axis only and only the pitch frequency will be used (some vehicles have a much more pronounced peak on roll).",DisplayName:"FFT harmonic peak target",User:"Advanced",Values:{0:"Auto",1:"Center Frequency",2:"Lower-Shoulder Frequency",3:"Upper-Shoulder Frequency",4:"Roll-Axis",5:"Pitch-Axis"}},FFT_MAXHZ:{Description:"Upper bound of FFT frequency detection in Hz. On smaller vehicles the maximum motor frequency is likely to be significantly higher than for larger vehicles.",DisplayName:"Maximum Frequency",Range:{high:"495",low:"20"},Units:"Hz",User:"Advanced"},FFT_MINHZ:{Description:"Lower bound of FFT frequency detection in Hz. On larger vehicles the minimum motor frequency is likely to be significantly lower than for smaller vehicles.",DisplayName:"Minimum Frequency",Range:{high:"400",low:"20"},Units:"Hz",User:"Advanced"},FFT_SAMPLE_MODE:{Description:"Sampling mode (and therefore rate). 0: Gyro rate sampling, 1: Fast loop rate sampling, 2: Fast loop rate / 2 sampling, 3: Fast loop rate / 3 sampling. Takes effect on reboot.",DisplayName:"Sample Mode",Range:{high:"4",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_SNR_REF:{Description:"FFT SNR reference threshold in dB at which a signal is determined to be present.",DisplayName:"FFT SNR reference threshold",Range:{high:"100.0",low:"0.0"},User:"Advanced"},FFT_THR_REF:{Description:"FFT learned thrust reference for the hover frequency and FFT minimum frequency.",DisplayName:"FFT learned thrust reference",Range:{high:"0.9",low:"0.01"},User:"Advanced"},FFT_WINDOW_OLAP:{Description:"Percentage of window to be overlapped before another frame is process. Takes effect on reboot. A good default is 50% overlap. Higher overlap results in more processed frames but not necessarily more temporal resolution. Lower overlap results in lost information at the frame edges.",DisplayName:"FFT window overlap",Range:{high:"0.9",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_WINDOW_SIZE:{Description:"Size of window to be used in FFT calculations. Takes effect on reboot. Must be a power of 2 and between 32 and 512. Larger windows give greater frequency resolution but poorer time resolution, consume more CPU time and may not be appropriate for all vehicles. Time and frequency resolution are given by the sample-rate / window-size. Windows of 256 are only really recommended for F7 class boards, windows of 512 or more H7 class.",DisplayName:"FFT window size",Range:{high:"1024",low:"32"},RebootRequired:"True",User:"Advanced"}},mK={FOLL_ALT_TYPE:{Description:"Follow altitude type",DisplayName:"Follow altitude type",User:"Standard",Values:{0:"absolute",1:"relative"}},FOLL_DIST_MAX:{Description:"Follow distance maximum. targets further than this will be ignored",DisplayName:"Follow distance maximum",Range:{high:"1000",low:"1"},Units:"m",User:"Standard"},FOLL_ENABLE:{Description:"Enabled/disable following a target",DisplayName:"Follow enable/disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},FOLL_OFS_TYPE:{Description:"Follow offset type",DisplayName:"Follow offset type",User:"Standard",Values:{0:"North-East-Down",1:"Relative to lead vehicle heading"}},FOLL_OFS_X:{Description:"Follow offsets in meters north/forward. If positive, this vehicle fly ahead or north of lead vehicle. Depends on FOLL_OFS_TYPE",DisplayName:"Follow offsets in meters north/forward",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FOLL_OFS_Y:{Description:"Follow offsets in meters east/right. If positive, this vehicle will fly to the right or east of lead vehicle. Depends on FOLL_OFS_TYPE",DisplayName:"Follow offsets in meters east/right",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FOLL_OFS_Z:{Description:"Follow offsets in meters down. If positive, this vehicle will fly below the lead vehicle",DisplayName:"Follow offsets in meters down",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FOLL_POS_P:{Description:"Follow position error P gain. Converts the difference between desired vertical speed and actual speed into a desired acceleration that is passed to the throttle acceleration controller",DisplayName:"Follow position error P gain",Increment:"0.01",Range:{high:"1.00",low:"0.01"},User:"Standard"},FOLL_SYSID:{Description:"Follow target's mavlink system id",DisplayName:"Follow target's mavlink system id",Range:{high:"255",low:"0"},User:"Standard"},FOLL_YAW_BEHAVE:{Description:"Follow yaw behaviour",DisplayName:"Follow yaw behaviour",User:"Standard",Values:{0:"None",1:"Face Lead Vehicle",2:"Same as Lead vehicle",3:"Direction of Flight"}}},uK={FRSKY_DNLINK1_ID:{Description:"Change the first extra downlink sensor id (SPort only)",DisplayName:"First downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}},FRSKY_DNLINK2_ID:{Description:"Change the second extra downlink sensor id (SPort only)",DisplayName:"Second downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}},FRSKY_DNLINK_ID:{Description:"Change the default downlink sensor id (SPort only)",DisplayName:"Default downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26",27:"27","-1":"Disable"}},FRSKY_OPTIONS:{Bitmask:{0:"EnableAirspeedAndGroundspeed"},Description:"A bitmask to set some FRSky Telemetry specific options",DisplayName:"FRSky Telemetry Options",User:"Standard"},FRSKY_UPLINK_ID:{Description:"Change the uplink sensor id (SPort only)",DisplayName:"Uplink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}}},hK={GEN_TYPE:{Description:"Generator type",DisplayName:"Generator type",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"IE 650w 800w Fuel Cell",2:"IE 2.4kW Fuel Cell",3:"Richenpower"}}},pK={GPS1_CAN_OVRIDE:{Description:"GPS Node id for first GPS. If 0 the gps will be automatically selected on first come basis.",DisplayName:"First DroneCAN GPS NODE ID",User:"Advanced"},GPS2_CAN_OVRIDE:{Description:"GPS Node id for second GPS. If 0 the gps will be automatically selected on first come basis.",DisplayName:"Second DroneCAN GPS NODE ID",User:"Advanced"},GPS_AUTO_CONFIG:{Description:"Controls if the autopilot should automatically configure the GPS based on the parameters and default settings",DisplayName:"Automatic GPS configuration",User:"Advanced",Values:{0:"Disables automatic configuration",1:"Enable automatic configuration for Serial GPSes only",2:"Enable automatic configuration for DroneCAN as well"}},GPS_AUTO_SWITCH:{Description:"Automatic switchover to GPS reporting best lock, 1:UseBest selects the GPS with highest status, if both are equal the GPS with highest satellite count is used 4:Use primary if 3D fix or better, will revert to 'UseBest' behaviour if 3D fix is lost on primary",DisplayName:"Automatic Switchover Setting",User:"Advanced",Values:{0:"Use primary",1:"UseBest",2:"Blend",4:"Use primary if 3D fix or better"}},GPS_BLEND_MASK:{Bitmask:{0:"Horiz Pos",1:"Vert Pos",2:"Speed"},Description:"Determines which of the accuracy measures Horizontal position, Vertical Position and Speed are used to calculate the weighting on each GPS receiver when soft switching has been selected by setting GPS_AUTO_SWITCH to 2(Blend)",DisplayName:"Multi GPS Blending Mask",User:"Advanced"},GPS_BLEND_TC:{Description:"Controls the slowest time constant applied to the calculation of GPS position and height offsets used to adjust different GPS receivers for steady state position differences.",DisplayName:"Blending time constant",Range:{high:"30.0",low:"5.0"},Units:"s",User:"Advanced"},GPS_CAN_NODEID1:{Description:"GPS Node id for discovered first.",DisplayName:"GPS Node ID 1",ReadOnly:"True",User:"Advanced"},GPS_CAN_NODEID2:{Description:"GPS Node id for discovered second.",DisplayName:"GPS Node ID 2",ReadOnly:"True",User:"Advanced"},GPS_COM_PORT:{Description:"The physical COM port on the connected device, currently only applies to SBF GPS",DisplayName:"GPS physical COM port",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},GPS_COM_PORT2:{Description:"The physical COM port on the connected device, currently only applies to SBF GPS",DisplayName:"GPS physical COM port",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},GPS_DELAY_MS:{Description:"Controls the amount of GPS measurement delay that the autopilot compensates for. Set to zero to use the default delay for the detected GPS type.",DisplayName:"GPS delay in milliseconds",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},GPS_DELAY_MS2:{Description:"Controls the amount of GPS measurement delay that the autopilot compensates for. Set to zero to use the default delay for the detected GPS type.",DisplayName:"GPS 2 delay in milliseconds",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},GPS_DRV_OPTIONS:{Bitmask:{0:"Use UART2 for moving baseline on ublox",1:"Use base station for GPS yaw on SBF",2:"Use baudrate 115200",3:"Use dedicated CAN port b/w GPSes for moving baseline"},Description:"Additional backend specific options",DisplayName:"driver options",User:"Advanced"},GPS_GNSS_MODE:{Bitmask:{0:"GPS",1:"SBAS",2:"Galileo",3:"Beidou",4:"IMES",5:"QZSS",6:"GLONASS"},Description:"Bitmask for what GNSS system to use on the first GPS (all unchecked or zero to leave GPS as configured)",DisplayName:"GNSS system configuration",User:"Advanced"},GPS_GNSS_MODE2:{Bitmask:{0:"GPS",1:"SBAS",2:"Galileo",3:"Beidou",4:"IMES",5:"QZSS",6:"GLONASS"},Description:"Bitmask for what GNSS system to use on the second GPS (all unchecked or zero to leave GPS as configured)",DisplayName:"GNSS system configuration",User:"Advanced"},GPS_INJECT_TO:{Description:"The GGS can send raw serial packets to inject data to multiple GPSes.",DisplayName:"Destination for GPS_INJECT_DATA MAVLink packets",User:"Advanced",Values:{0:"send to first GPS",1:"send to 2nd GPS",127:"send to all"}},GPS_MIN_DGPS:{Description:"Sets the minimum type of differential GPS corrections required before allowing to switch into DGPS mode.",DisplayName:"Minimum Lock Type Accepted for DGPS",RebootRequired:"True",User:"Advanced",Values:{0:"Any",50:"FloatRTK",100:"IntegerRTK"}},GPS_MIN_ELEV:{Description:"This sets the minimum elevation of satellites above the horizon for them to be used for navigation. Setting this to -100 leaves the minimum elevation set to the GPS modules default.",DisplayName:"Minimum elevation",Range:{high:"90",low:"-100"},Units:"deg",User:"Advanced"},GPS_NAVFILTER:{Description:"Navigation filter engine setting",DisplayName:"Navigation filter setting",User:"Advanced",Values:{0:"Portable",2:"Stationary",3:"Pedestrian",4:"Automotive",5:"Sea",6:"Airborne1G",7:"Airborne2G",8:"Airborne4G"}},GPS_POS1_X:{Description:"X position of the first GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS1_Y:{Description:"Y position of the first GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS1_Z:{Description:"Z position of the first GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_X:{Description:"X position of the second GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_Y:{Description:"Y position of the second GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_Z:{Description:"Z position of the second GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_PRIMARY:{Description:"This GPS will be used when GPS_AUTO_SWITCH is 0 and used preferentially with GPS_AUTO_SWITCH = 4.",DisplayName:"Primary GPS",Increment:"1",User:"Advanced",Values:{0:"FirstGPS",1:"SecondGPS"}},GPS_RATE_MS:{Description:"Controls how often the GPS should provide a position update. Lowering below 5Hz(default) is not allowed. Raising the rate above 5Hz usually provides little benefit and for some GPS (eg Ublox M9N) can severely impact performance.",DisplayName:"GPS update rate in milliseconds",Range:{high:"200",low:"50"},Units:"ms",User:"Advanced",Values:{100:"10Hz",125:"8Hz",200:"5Hz"}},GPS_RATE_MS2:{Description:"Controls how often the GPS should provide a position update. Lowering below 5Hz(default) is not allowed. Raising the rate above 5Hz usually provides little benefit and for some GPS (eg Ublox M9N) can severely impact performance.",DisplayName:"GPS 2 update rate in milliseconds",Range:{high:"200",low:"50"},Units:"ms",User:"Advanced",Values:{100:"10Hz",125:"8Hz",200:"5Hz"}},GPS_RAW_DATA:{Description:"Handles logging raw data; on uBlox chips that support raw data this will log RXM messages into logger; on Septentrio this will log on the equipment's SD card and when set to 2, the autopilot will try to stop logging after disarming and restart after arming",DisplayName:"Raw data logging",RebootRequired:"True",User:"Advanced",Values:{0:"Ignore",1:"Always log",2:"Stop logging when disarmed (SBF only)",5:"Only log every five samples (uBlox only)"}},GPS_SAVE_CFG:{Description:"Determines whether the configuration for this GPS should be written to non-volatile memory on the GPS. Currently working for UBlox 6 series and above.",DisplayName:"Save GPS configuration",User:"Advanced",Values:{0:"Do not save config",1:"Save config",2:"Save only when needed"}},GPS_SBAS_MODE:{Description:"This sets the SBAS (satellite based augmentation system) mode if available on this GPS. If set to 2 then the SBAS mode is not changed in the GPS. Otherwise the GPS will be reconfigured to enable/disable SBAS. Disabling SBAS may be worthwhile in some parts of the world where an SBAS signal is available but the baseline is too long to be useful.",DisplayName:"SBAS Mode",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"NoChange"}},GPS_SBP_LOGMASK:{Description:"Masked with the SBP msg_type field to determine whether SBR1/SBR2 data is logged",DisplayName:"Swift Binary Protocol Logging Mask",User:"Advanced",Values:{0:"None (0x0000)","-1":"All (0xFFFF)","-256":"External only (0xFF00)"}},GPS_TYPE:{Description:"GPS type of 1st GPS",DisplayName:"1st GPS type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"AUTO",2:"uBlox",5:"NMEA",6:"SiRF",7:"HIL",8:"SwiftNav",9:"DroneCAN",10:"SBF",11:"GSOF",13:"ERB",14:"MAV",15:"NOVA",16:"HemisphereNMEA",17:"uBlox-MovingBaseline-Base",18:"uBlox-MovingBaseline-Rover",19:"MSP",20:"AllyStar",21:"ExternalAHRS",22:"DroneCAN-MovingBaseline-Base",23:"DroneCAN-MovingBaseline-Rover"}},GPS_TYPE2:{Description:"GPS type of 2nd GPS",DisplayName:"2nd GPS type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"AUTO",2:"uBlox",5:"NMEA",6:"SiRF",7:"HIL",8:"SwiftNav",9:"DroneCAN",10:"SBF",11:"GSOF",13:"ERB",14:"MAV",15:"NOVA",16:"HemisphereNMEA",17:"uBlox-MovingBaseline-Base",18:"uBlox-MovingBaseline-Rover",19:"MSP",20:"AllyStar",21:"ExternalAHRS",22:"DroneCAN-MovingBaseline-Base",23:"DroneCAN-MovingBaseline-Rover"}}},fK={GPS_MB1_OFS_X:{Description:"X position of the base GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_OFS_Y:{Description:"Y position of the base GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Y position offset ",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_OFS_Z:{Description:"Z position of the base GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_TYPE:{Description:"Controls the type of moving base used if using moving base.",DisplayName:"Moving base type",RebootRequired:"True",User:"Advanced",Values:{0:"Relative to alternate GPS instance",1:"RelativeToCustomBase"}}},VK={GPS_MB2_OFS_X:{Description:"X position of the base GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_OFS_Y:{Description:"Y position of the base GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Y position offset ",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_OFS_Z:{Description:"Z position of the base GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_TYPE:{Description:"Controls the type of moving base used if using moving base.",DisplayName:"Moving base type",RebootRequired:"True",User:"Advanced",Values:{0:"Relative to alternate GPS instance",1:"RelativeToCustomBase"}}},LK={GRIP_CAN_ID:{Description:"Refer to https://docs.zubax.com/opengrab_epm_v3#UAVCAN_interface",DisplayName:"EPM UAVCAN Hardpoint ID",Range:{high:"255",low:"0"},User:"Standard"},GRIP_ENABLE:{Description:"Gripper enable/disable",DisplayName:"Gripper Enable/Disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},GRIP_GRAB:{Description:"PWM value in microseconds sent to Gripper to initiate grabbing the cargo",DisplayName:"Gripper Grab PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_NEUTRAL:{Description:"PWM value in microseconds sent to grabber when not grabbing or releasing",DisplayName:"Neutral PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_REGRAB:{Description:"Time in seconds that gripper will regrab the cargo to ensure grip has not weakened; 0 to disable",DisplayName:"Gripper Regrab interval",Range:{high:"255",low:"0"},Units:"s",User:"Advanced"},GRIP_RELEASE:{Description:"PWM value in microseconds sent to Gripper to release the cargo",DisplayName:"Gripper Release PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_TYPE:{Description:"Gripper enable/disable",DisplayName:"Gripper Type",User:"Standard",Values:{0:"None",1:"Servo",2:"EPM"}}},HK={INS_ACC1_CALTEMP:{Calibration:"1",Description:"Temperature that the 1st accelerometer was calibrated at",DisplayName:"Calibration temperature for 1st accelerometer",Units:"degC",User:"Advanced"},INS_ACC2OFFS_X:{Calibration:"1",Description:"Accelerometer2 offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2OFFS_Y:{Calibration:"1",Description:"Accelerometer2 offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2OFFS_Z:{Calibration:"1",Description:"Accelerometer2 offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2SCAL_X:{Calibration:"1",Description:"Accelerometer2 scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2SCAL_Y:{Calibration:"1",Description:"Accelerometer2 scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2SCAL_Z:{Calibration:"1",Description:"Accelerometer2 scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2_CALTEMP:{Calibration:"1",Description:"Temperature that the 2nd accelerometer was calibrated at",DisplayName:"Calibration temperature for 2nd accelerometer",Units:"degC",User:"Advanced"},INS_ACC2_ID:{Description:"Accelerometer2 sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer2 ID",ReadOnly:"True",User:"Advanced"},INS_ACC3OFFS_X:{Calibration:"1",Description:"Accelerometer3 offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3OFFS_Y:{Calibration:"1",Description:"Accelerometer3 offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3OFFS_Z:{Calibration:"1",Description:"Accelerometer3 offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3SCAL_X:{Calibration:"1",Description:"Accelerometer3 scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3SCAL_Y:{Calibration:"1",Description:"Accelerometer3 scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3SCAL_Z:{Calibration:"1",Description:"Accelerometer3 scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3_CALTEMP:{Calibration:"1",Description:"Temperature that the 3rd accelerometer was calibrated at",DisplayName:"Calibration temperature for 3rd accelerometer",Units:"degC",User:"Advanced"},INS_ACC3_ID:{Description:"Accelerometer3 sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer3 ID",ReadOnly:"True",User:"Advanced"},INS_ACCEL_FILTER:{Description:"Filter cutoff frequency for accelerometers. This can be set to a lower value to try to cope with very high vibration levels in aircraft. A value of zero means no filtering (not recommended!)",DisplayName:"Accel filter cutoff frequency",Range:{high:"256",low:"0"},Units:"Hz",User:"Advanced"},INS_ACCOFFS_X:{Calibration:"1",Description:"Accelerometer offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCOFFS_Y:{Calibration:"1",Description:"Accelerometer offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCOFFS_Z:{Calibration:"1",Description:"Accelerometer offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCSCAL_X:{Calibration:"1",Description:"Accelerometer scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACCSCAL_Y:{Calibration:"1",Description:"Accelerometer scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACCSCAL_Z:{Calibration:"1",Description:"Accelerometer scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC_BODYFIX:{Description:"The body-fixed accelerometer to be used for trim calculation",DisplayName:"Body-fixed accelerometer",User:"Advanced",Values:{1:"IMU 1",2:"IMU 2",3:"IMU 3"}},INS_ACC_ID:{Description:"Accelerometer sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer ID",ReadOnly:"True",User:"Advanced"},INS_ENABLE_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU",6:"SeventhIMU"},Description:"Bitmask of IMUs to enable. It can be used to prevent startup of specific detected IMUs",DisplayName:"IMU enable mask",User:"Advanced"},INS_FAST_SAMPLE:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU"},Description:"Mask of IMUs to enable fast sampling on, if available",DisplayName:"Fast sampling mask",User:"Advanced"},INS_GYR1_CALTEMP:{Calibration:"1",Description:"Temperature that the 1st gyroscope was calibrated at",DisplayName:"Calibration temperature for 1st gyroscope",Units:"degC",User:"Advanced"},INS_GYR2OFFS_X:{Calibration:"1",Description:"Gyro2 sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYR2OFFS_Y:{Calibration:"1",Description:"Gyro2 sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYR2OFFS_Z:{Calibration:"1",Description:"Gyro2 sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYR2_CALTEMP:{Calibration:"1",Description:"Temperature that the 2nd gyroscope was calibrated at",DisplayName:"Calibration temperature for 2nd gyroscope",Units:"degC",User:"Advanced"},INS_GYR2_ID:{Description:"Gyro2 sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro2 ID",ReadOnly:"True",User:"Advanced"},INS_GYR3OFFS_X:{Calibration:"1",Description:"Gyro3 sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYR3OFFS_Y:{Calibration:"1",Description:"Gyro3 sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYR3OFFS_Z:{Calibration:"1",Description:"Gyro3 sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYR3_CALTEMP:{Calibration:"1",Description:"Temperature that the 3rd gyroscope was calibrated at",DisplayName:"Calibration temperature for 3rd gyroscope",Units:"degC",User:"Advanced"},INS_GYR3_ID:{Description:"Gyro3 sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro3 ID",ReadOnly:"True",User:"Advanced"},INS_GYROFFS_X:{Calibration:"1",Description:"Gyro sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYROFFS_Y:{Calibration:"1",Description:"Gyro sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYROFFS_Z:{Calibration:"1",Description:"Gyro sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYRO_FILTER:{Description:"Filter cutoff frequency for gyroscopes. This can be set to a lower value to try to cope with very high vibration levels in aircraft. A value of zero means no filtering (not recommended!)",DisplayName:"Gyro filter cutoff frequency",Range:{high:"256",low:"0"},Units:"Hz",User:"Advanced"},INS_GYRO_RATE:{Description:"Gyro rate for IMUs with fast sampling enabled. The gyro rate is the sample rate at which the IMU filters operate and needs to be at least double the maximum filter frequency. If the sensor does not support the selected rate the next highest supported rate will be used. For IMUs which do not support fast sampling this setting is ignored and the default gyro rate of 1Khz is used.",DisplayName:"Gyro rate for IMUs with Fast Sampling enabled",RebootRequired:"True",User:"Advanced",Values:{0:"1kHz",1:"2kHz",2:"4kHz",3:"8kHz"}},INS_GYR_CAL:{Description:"Conrols when automatic gyro calibration is performed",DisplayName:"Gyro Calibration scheme",User:"Advanced",Values:{0:"Never",1:"Start-up only"}},INS_GYR_ID:{Description:"Gyro sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro ID",ReadOnly:"True",User:"Advanced"},INS_POS1_X:{Description:"X position of the first IMU Accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS1_Y:{Description:"Y position of the first IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS1_Z:{Description:"Z position of the first IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_X:{Description:"X position of the second IMU accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_Y:{Description:"Y position of the second IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_Z:{Description:"Z position of the second IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS3_X:{Description:"X position of the third IMU accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Range:{high:"10",low:"-10"},Units:"m",User:"Advanced"},INS_POS3_Y:{Description:"Y position of the third IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS3_Z:{Description:"Z position of the third IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_STILL_THRESH:{Description:"Threshold to tolerate vibration to determine if vehicle is motionless. This depends on the frame type and if there is a constant vibration due to motors before launch or after landing. Total motionless is about 0.05. Suggested values: Planes/rover use 0.1, multirotors use 1, tradHeli uses 5",DisplayName:"Stillness threshold for detecting if we are moving",Range:{high:"50",low:"0.05"},User:"Advanced"},INS_TCAL_OPTIONS:{Bitmask:{0:"PersistParams"},Description:"This enables optional temperature calibration features. Setting PersistParams will save the accelerometer and temperature calibration parameters in the bootloader sector on the next update of the bootloader.",DisplayName:"Options for temperature calibration",User:"Advanced"},INS_TRIM_OPTION:{Description:"Specifies how the accel cal routine determines the trims",DisplayName:"Accel cal trim option",User:"Advanced",Values:{0:"Don't adjust the trims",1:"Assume first orientation was level",2:"Assume ACC_BODYFIX is perfectly aligned to the vehicle"}},INS_USE:{Description:"Use first IMU for attitude, velocity and position estimates",DisplayName:"Use first IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_USE2:{Description:"Use second IMU for attitude, velocity and position estimates",DisplayName:"Use second IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_USE3:{Description:"Use third IMU for attitude, velocity and position estimates",DisplayName:"Use third IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}}},MK={INS_HNTC2_ATT:{Description:"Harmonic Notch Filter attenuation in dB. Values greater than 40dB will typically produce a hard notch rather than a modest attenuation of motor noise.",DisplayName:"Harmonic Notch Filter attenuation",Range:{high:"50",low:"5"},Units:"dB",User:"Advanced"},INS_HNTC2_BW:{Description:"Harmonic Notch Filter bandwidth in Hz. This is typically set to half the base frequency. The ratio of base frequency to bandwidth determines the notch quality factor and is fixed across harmonics.",DisplayName:"Harmonic Notch Filter bandwidth",Range:{high:"250",low:"5"},Units:"Hz",User:"Advanced"},INS_HNTC2_ENABLE:{Description:"Harmonic Notch Filter enable",DisplayName:"Harmonic Notch Filter enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_HNTC2_FREQ:{Description:"Harmonic Notch Filter base center frequency in Hz. This should be set at most half the backend gyro rate (which is typically 1Khz). For helicopters using RPM sensor to dynamically set the notch frequency, use this parameter to provide a lower limit to the dynamic notch filter. Recommend setting it to half the operating rotor speed in Hz.",DisplayName:"Harmonic Notch Filter base frequency",Range:{high:"495",low:"10"},Units:"Hz",User:"Advanced"},INS_HNTC2_HMNCS:{Bitmask:{0:"1st harmonic",1:"2nd harmonic",2:"3rd harmonic",3:"4th hamronic",4:"5th harmonic",5:"6th harmonic",6:"7th harmonic",7:"8th harmonic"},Description:"Bitmask of harmonic frequencies to apply Harmonic Notch Filter to. This option takes effect on the next reboot. A value of 0 disables this filter. The first harmonic refers to the base frequency.",DisplayName:"Harmonic Notch Filter harmonics",RebootRequired:"True",User:"Advanced"},INS_HNTC2_MODE:{Description:"Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based updates should only be used with multicopters.",DisplayName:"Harmonic Notch Filter dynamic frequency tracking mode",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Disabled",1:"Throttle",2:"RPM Sensor",3:"ESC Telemetry",4:"Dynamic FFT",5:"Second RPM Sensor"}},INS_HNTC2_OPTS:{Bitmask:{0:"Double notch",1:"Dynamic harmonic",2:"Update at loop rate"},Description:"Harmonic Notch Filter options. Double-notches can provide deeper attenuation across a wider bandwidth than single notches and are suitable for larger aircraft. Dynamic harmonics attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz.",DisplayName:"Harmonic Notch Filter options",RebootRequired:"True",User:"Advanced"},INS_HNTC2_REF:{Description:"A reference value of zero disables dynamic updates on the Harmonic Notch Filter and a positive value enables dynamic updates on the Harmonic Notch Filter. For throttle-based scaling, this parameter is the reference value associated with the specified frequency to facilitate frequency scaling of the Harmonic Notch Filter. For RPM and ESC telemetry based tracking, this parameter is set to 1 to enable the Harmonic Notch Filter using the RPM sensor or ESC telemetry set to measure rotor speed. The sensor data is converted to Hz automatically for use in the Harmonic Notch Filter. This reference value may also be used to scale the sensor data, if required. For example, rpm sensor data is required to measure heli motor RPM. Therefore the reference value can be used to scale the RPM sensor to the rotor RPM.",DisplayName:"Harmonic Notch Filter reference value",Range:{high:"1.0",low:"0.0"},RebootRequired:"True",User:"Advanced"}},gK={INS_HNTCH_ATT:{Description:"Harmonic Notch Filter attenuation in dB. Values greater than 40dB will typically produce a hard notch rather than a modest attenuation of motor noise.",DisplayName:"Harmonic Notch Filter attenuation",Range:{high:"50",low:"5"},Units:"dB",User:"Advanced"},INS_HNTCH_BW:{Description:"Harmonic Notch Filter bandwidth in Hz. This is typically set to half the base frequency. The ratio of base frequency to bandwidth determines the notch quality factor and is fixed across harmonics.",DisplayName:"Harmonic Notch Filter bandwidth",Range:{high:"250",low:"5"},Units:"Hz",User:"Advanced"},INS_HNTCH_ENABLE:{Description:"Harmonic Notch Filter enable",DisplayName:"Harmonic Notch Filter enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_HNTCH_FREQ:{Description:"Harmonic Notch Filter base center frequency in Hz. This should be set at most half the backend gyro rate (which is typically 1Khz). For helicopters using RPM sensor to dynamically set the notch frequency, use this parameter to provide a lower limit to the dynamic notch filter. Recommend setting it to half the operating rotor speed in Hz.",DisplayName:"Harmonic Notch Filter base frequency",Range:{high:"495",low:"10"},Units:"Hz",User:"Advanced"},INS_HNTCH_HMNCS:{Bitmask:{0:"1st harmonic",1:"2nd harmonic",2:"3rd harmonic",3:"4th hamronic",4:"5th harmonic",5:"6th harmonic",6:"7th harmonic",7:"8th harmonic"},Description:"Bitmask of harmonic frequencies to apply Harmonic Notch Filter to. This option takes effect on the next reboot. A value of 0 disables this filter. The first harmonic refers to the base frequency.",DisplayName:"Harmonic Notch Filter harmonics",RebootRequired:"True",User:"Advanced"},INS_HNTCH_MODE:{Description:"Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based updates should only be used with multicopters.",DisplayName:"Harmonic Notch Filter dynamic frequency tracking mode",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Disabled",1:"Throttle",2:"RPM Sensor",3:"ESC Telemetry",4:"Dynamic FFT",5:"Second RPM Sensor"}},INS_HNTCH_OPTS:{Bitmask:{0:"Double notch",1:"Dynamic harmonic",2:"Update at loop rate"},Description:"Harmonic Notch Filter options. Double-notches can provide deeper attenuation across a wider bandwidth than single notches and are suitable for larger aircraft. Dynamic harmonics attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz.",DisplayName:"Harmonic Notch Filter options",RebootRequired:"True",User:"Advanced"},INS_HNTCH_REF:{Description:"A reference value of zero disables dynamic updates on the Harmonic Notch Filter and a positive value enables dynamic updates on the Harmonic Notch Filter. For throttle-based scaling, this parameter is the reference value associated with the specified frequency to facilitate frequency scaling of the Harmonic Notch Filter. For RPM and ESC telemetry based tracking, this parameter is set to 1 to enable the Harmonic Notch Filter using the RPM sensor or ESC telemetry set to measure rotor speed. The sensor data is converted to Hz automatically for use in the Harmonic Notch Filter. This reference value may also be used to scale the sensor data, if required. For example, rpm sensor data is required to measure heli motor RPM. Therefore the reference value can be used to scale the RPM sensor to the rotor RPM.",DisplayName:"Harmonic Notch Filter reference value",Range:{high:"1.0",low:"0.0"},RebootRequired:"True",User:"Advanced"}},AK={INS_LOG_BAT_CNT:{Description:"Number of samples to take when logging streams of IMU sensor readings. Will be rounded down to a multiple of 32. This option takes effect on the next reboot.",DisplayName:"sample count per batch",Increment:"32",RebootRequired:"True",User:"Advanced"},INS_LOG_BAT_LGCT:{Description:"Number of samples to push to count every INS_LOG_BAT_LGIN",DisplayName:"logging count",Increment:"1"},INS_LOG_BAT_LGIN:{Description:"Interval between pushing samples to the AP_Logger log",DisplayName:"logging interval",Increment:"10",Units:"ms"},INS_LOG_BAT_MASK:{Bitmask:{0:"IMU1",1:"IMU2",2:"IMU3"},Description:"Bitmap of which IMUs to log batch data for. This option takes effect on the next reboot.",DisplayName:"Sensor Bitmask",RebootRequired:"True",User:"Advanced"},INS_LOG_BAT_OPT:{Bitmask:{0:"Sensor-Rate Logging (sample at full sensor rate seen by AP)",1:"Sample post-filtering"},Description:"Options for the BatchSampler. Post-filter and sensor-rate logging cannot be used at the same time.",DisplayName:"Batch Logging Options Mask",User:"Advanced"}},vK={INS_TCAL1_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL1_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL1_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},_K={INS_TCAL2_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL2_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL2_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},SK={INS_TCAL3_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL3_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL3_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},DK={LOG_BACKEND_TYPE:{Bitmask:{0:"File",1:"MAVLink",2:"Block"},Description:"Bitmap of what Logger backend types to enable. Block-based logging is available on SITL and boards with dataflash chips. Multiple backends can be selected.",DisplayName:"AP_Logger Backend Storage type",User:"Standard"},LOG_BLK_RATEMAX:{Description:"This sets the maximum rate that streaming log messages will be logged to the mavlink backend. A value of zero means that rate limiting is disabled.",DisplayName:"Maximum logging rate for block backend",Range:{high:"1000",low:"0"},Units:"Hz",User:"Standard"},LOG_DISARMED:{Description:"If LOG_DISARMED is set to 1 then logging will be enabled while disarmed. This can make for very large logfiles but can help a lot when tracking down startup issues",DisplayName:"Enable logging while disarmed",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},LOG_FILE_BUFSIZE:{Description:'The File and Block backends use a buffer to store data before writing to the block device. Raising this value may reduce "gaps" in your SD card logging. This buffer size may be reduced depending on available memory. PixHawk requires at least 4 kilobytes. Maximum value available here is 64 kilobytes.',DisplayName:"Maximum AP_Logger File and Block Backend buffer size (in kilobytes)",User:"Standard"},LOG_FILE_DSRMROT:{Description:"When set, the current log file is closed when the vehicle is disarmed. If LOG_DISARMED is set then a fresh log will be opened. Applies to the File and Block logging backends.",DisplayName:"Stop logging to current file on disarm",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},LOG_FILE_MB_FREE:{Description:"Set this such that the free space is larger than your largest typical flight log",DisplayName:"Old logs on the SD card will be deleted to maintain this amount of free space",Range:{high:"1000",low:"10"},Units:"MB",User:"Standard"},LOG_FILE_RATEMAX:{Description:"This sets the maximum rate that streaming log messages will be logged to the file backend. A value of zero means that rate limiting is disabled.",DisplayName:"Maximum logging rate for file backend",Range:{high:"1000",low:"0"},Units:"Hz",User:"Standard"},LOG_FILE_TIMEOUT:{Description:"This controls the amount of time before failing writes to a log file cause the file to be closed and logging stopped.",DisplayName:"Timeout before giving up on file writes",Units:"s",User:"Standard"},LOG_MAV_BUFSIZE:{Description:"Maximum amount of memory to allocate to AP_Logger-over-mavlink",DisplayName:"Maximum AP_Logger MAVLink Backend buffer size",Units:"kB",User:"Advanced"},LOG_MAV_RATEMAX:{Description:"This sets the maximum rate that streaming log messages will be logged to the mavlink backend. A value of zero means that rate limiting is disabled.",DisplayName:"Maximum logging rate for mavlink backend",Range:{high:"1000",low:"0"},Units:"Hz",User:"Standard"},LOG_REPLAY:{Description:"If LOG_REPLAY is set to 1 then the EKF2 state estimator will log detailed information needed for diagnosing problems with the Kalman filter. It is suggested that you also raise LOG_FILE_BUFSIZE to give more buffer space for logging and use a high quality microSD card to ensure no sensor data is lost",DisplayName:"Enable logging of information needed for Replay",User:"Standard",Values:{0:"Disabled",1:"Enabled"}}},yK={MIS_OPTIONS:{Bitmask:{0:"Clear Mission on reboot"},Description:"Bitmask of what options to use in missions.",DisplayName:"Mission options bitmask",User:"Advanced"},MIS_RESTART:{Description:"Controls mission starting point when entering Auto mode (either restart from beginning of mission or resume from last command run)",DisplayName:"Mission Restart when entering Auto mode",User:"Advanced",Values:{0:"Resume Mission",1:"Restart Mission"}},MIS_TOTAL:{Description:"The number of mission mission items that has been loaded by the ground station. Do not change this manually.",DisplayName:"Total mission commands",Increment:"1",Range:{high:"32766",low:"0"},ReadOnly:"True",User:"Advanced"}},RK={MNT2_ANGMAX_PAN:{Description:"MOunt2's maximum physical pan (yaw) angular position",DisplayName:"Mount2's maximum pan angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_ANGMAX_ROL:{Description:"Mount2's maximum physical roll angular position",DisplayName:"Mount2's maximum roll angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_ANGMAX_TIL:{Description:"Mount2's maximum physical tilt (pitch) angular position",DisplayName:"Mount2's maximum tilt angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_ANGMIN_PAN:{Description:"Mount2's minimum physical pan (yaw) angular position",DisplayName:"Mount2's minimum pan angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_ANGMIN_ROL:{Description:"Mount2's minimum physical roll angular position",DisplayName:"Mount2's minimum roll angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_ANGMIN_TIL:{Description:"Mount2's minimum physical tilt (pitch) angular position",DisplayName:"Mount2's minimum tilt angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_DEFLT_MODE:{Description:"Mount default operating mode on startup and after control is returned from autopilot",DisplayName:"Mount default operating mode",User:"Standard",Values:{0:"Retracted",1:"Neutral",2:"MavLink Targeting",3:"RC Targeting",4:"GPS Point"}},MNT2_LEAD_PTCH:{Description:"Causes the servo angle output to lead the current angle of the vehicle by some amount of time based on current angular rate. Increase until the servo is responsive but doesn't overshoot. Does nothing with pan stabilization enabled.",DisplayName:"Mount2's Pitch stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT2_LEAD_RLL:{Description:"Causes the servo angle output to lead the current angle of the vehicle by some amount of time based on current angular rate, compensating for servo delay. Increase until the servo is responsive but doesn't overshoot. Does nothing with pan stabilization enabled.",DisplayName:"Mount2's Roll stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT2_NEUTRAL_X:{Description:"Mount2 roll angle when in neutral position",DisplayName:"Mount2 roll angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_NEUTRAL_Y:{Description:"Mount2 tilt/pitch angle when in neutral position",DisplayName:"Mount2 tilt/pitch angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_NEUTRAL_Z:{Description:"Mount2 pan/yaw angle when in neutral position",DisplayName:"Mount2 pan/yaw angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_RC_IN_PAN:{Description:"0 for none, any other for the RC channel to be used to control pan (yaw) movements",DisplayName:"Mount2's pan (yaw) RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT2_RC_IN_ROLL:{Description:"0 for none, any other for the RC channel to be used to control roll movements",DisplayName:"Mount2's roll RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT2_RC_IN_TILT:{Description:"0 for none, any other for the RC channel to be used to control tilt (pitch) movements",DisplayName:"Mount2's tilt (pitch) RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT2_RETRACT_X:{Description:"Mount2 roll angle when in retracted position",DisplayName:"Mount2 roll angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_RETRACT_Y:{Description:"Mount2 tilt/pitch angle when in retracted position",DisplayName:"Mount2 tilt/pitch angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_RETRACT_Z:{Description:"Mount2 yaw/pan angle when in retracted position",DisplayName:"Mount2 yaw/pan angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_STAB_PAN:{Description:"enable pan/yaw stabilisation relative to Earth",DisplayName:"Stabilize mount2 pan/yaw angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT2_STAB_ROLL:{Description:"enable roll stabilisation relative to Earth",DisplayName:"Stabilize Mount2's roll angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT2_STAB_TILT:{Description:"enable tilt/pitch stabilisation relative to Earth",DisplayName:"Stabilize Mount2's pitch/tilt angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT2_TYPE:{Description:"Mount Type (None, Servo or MAVLink)",DisplayName:"Mount2 Type",User:"Standard",Values:{0:"None",1:"Servo",2:"3DR Solo",3:"Alexmos Serial",4:"SToRM32 MAVLink",5:"SToRM32 Serial"}},MNT_ANGMAX_PAN:{Description:"Maximum physical pan (yaw) angular position of the mount",DisplayName:"Maximum pan angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_ANGMAX_ROL:{Description:"Maximum physical roll angular position of the mount",DisplayName:"Maximum roll angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_ANGMAX_TIL:{Description:"Maximum physical tilt (pitch) angular position of the mount",DisplayName:"Maximum tilt angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_ANGMIN_PAN:{Description:"Minimum physical pan (yaw) angular position of mount.",DisplayName:"Minimum pan angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_ANGMIN_ROL:{Description:"Minimum physical roll angular position of mount.",DisplayName:"Minimum roll angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_ANGMIN_TIL:{Description:"Minimum physical tilt (pitch) angular position of mount.",DisplayName:"Minimum tilt angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_DEFLT_MODE:{Description:"Mount default operating mode on startup and after control is returned from autopilot",DisplayName:"Mount default operating mode",User:"Standard",Values:{0:"Retracted",1:"Neutral",2:"MavLink Targeting",3:"RC Targeting",4:"GPS Point"}},MNT_JSTICK_SPD:{Description:"0 for position control, small for low speeds, 100 for max speed. A good general value is 10 which gives a movement speed of 3 degrees per second.",DisplayName:"mount joystick speed",Increment:"1",Range:{high:"100",low:"0"},User:"Standard"},MNT_LEAD_PTCH:{Description:"Causes the servo angle output to lead the current angle of the vehicle by some amount of time based on current angular rate. Increase until the servo is responsive but doesn't overshoot. Does nothing with pan stabilization enabled.",DisplayName:"Pitch stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT_LEAD_RLL:{Description:"Causes the servo angle output to lead the current angle of the vehicle by some amount of time based on current angular rate, compensating for servo delay. Increase until the servo is responsive but doesn't overshoot. Does nothing with pan stabilization enabled.",DisplayName:"Roll stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT_NEUTRAL_X:{Description:"Mount roll angle when in neutral position",DisplayName:"Mount roll angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_NEUTRAL_Y:{Description:"Mount tilt/pitch angle when in neutral position",DisplayName:"Mount tilt/pitch angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_NEUTRAL_Z:{Description:"Mount pan/yaw angle when in neutral position",DisplayName:"Mount pan/yaw angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_RC_IN_PAN:{Description:"0 for none, any other for the RC channel to be used to control pan (yaw) movements",DisplayName:"pan (yaw) RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT_RC_IN_ROLL:{Description:"0 for none, any other for the RC channel to be used to control roll movements",DisplayName:"roll RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT_RC_IN_TILT:{Description:"0 for none, any other for the RC channel to be used to control tilt (pitch) movements",DisplayName:"tilt (pitch) RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT_RETRACT_X:{Description:"Mount roll angle when in retracted position",DisplayName:"Mount roll angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_RETRACT_Y:{Description:"Mount tilt/pitch angle when in retracted position",DisplayName:"Mount tilt/pitch angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_RETRACT_Z:{Description:"Mount yaw/pan angle when in retracted position",DisplayName:"Mount yaw/pan angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_STAB_PAN:{Description:"enable pan/yaw stabilisation relative to Earth",DisplayName:"Stabilize mount pan/yaw angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT_STAB_ROLL:{Description:"enable roll stabilisation relative to Earth",DisplayName:"Stabilize mount's roll angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT_STAB_TILT:{Description:"enable tilt/pitch stabilisation relative to Earth",DisplayName:"Stabilize mount's pitch/tilt angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT_TYPE:{Description:"Mount Type (None, Servo or MAVLink)",DisplayName:"Mount Type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"Servo",2:"3DR Solo",3:"Alexmos Serial",4:"SToRM32 MAVLink",5:"SToRM32 Serial"}}},bK={MOT_PWM_FREQ:{Description:"Motor Output PWM freq for brushed motors",DisplayName:"Motor Output PWM freq for brushed motors",Increment:"1",Range:{high:"20",low:"1"},RebootRequired:"True",Units:"kHz",User:"Advanced"},MOT_PWM_TYPE:{Description:"This selects the output PWM type as regular PWM, OneShot, Brushed motor support using PWM (duty cycle) with separated direction signal, Brushed motor support with separate throttle and direction PWM (duty cyle)",DisplayName:"Motor Output PWM type",RebootRequired:"True",User:"Advanced",Values:{0:"Normal",1:"OneShot",2:"OneShot125",3:"BrushedWithRelay",4:"BrushedBiPolar",5:"DShot150",6:"DShot300",7:"DShot600",8:"DShot1200"}},MOT_SAFE_DISARM:{Description:"Disables motor PWM output when disarmed",DisplayName:"Motor PWM output disabled when disarmed",User:"Advanced",Values:{0:"PWM enabled while disarmed",1:"PWM disabled while disarmed"}},MOT_SLEWRATE:{Description:"Throttle slew rate as a percentage of total range per second. A value of 100 allows the motor to change over its full range in one second. A value of zero disables the limit. Note some NiMH powered rovers require a lower setting of 40 to reduce current demand to avoid brownouts.",DisplayName:"Throttle slew rate",Increment:"1",Range:{high:"1000",low:"0"},Units:"%/s",User:"Standard"},MOT_SPD_SCA_BASE:{Description:"Speed above which steering is scaled down when using regular steering/throttle vehicles. zero to disable speed scaling",DisplayName:"Motor speed scaling base speed",Range:{high:"10",low:"0"},Units:"m/s",User:"Advanced"},MOT_STR_THR_MIX:{Description:"Steering vs Throttle priorisation. Higher numbers prioritise steering, lower numbers prioritise throttle. Only valid for Skid Steering vehicles",DisplayName:"Motor steering vs throttle prioritisation",Range:{high:"1.0",low:"0.2"},User:"Advanced"},MOT_THR_MAX:{Description:"Throttle maximum percentage the autopilot will apply. This can be used to prevent overheating an ESC or motor on an electric rover",DisplayName:"Throttle maximum",Increment:"1",Range:{high:"100",low:"30"},Units:"%",User:"Standard"},MOT_THR_MIN:{Description:"Throttle minimum percentage the autopilot will apply. This is useful for handling a deadzone around low throttle and for preventing internal combustion motors cutting out during missions.",DisplayName:"Throttle minimum",Increment:"1",Range:{high:"20",low:"0"},Units:"%",User:"Standard"},MOT_THST_EXPO:{Description:"Thrust curve exponent (-1 to +1 with 0 being linear)",DisplayName:"Thrust Curve Expo",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},MOT_VEC_ANGLEMAX:{Description:"The angle between steering's middle position and maximum position when using vectored thrust (boats only)",DisplayName:"Vector thrust angle max",Range:{high:"90",low:"0"},Units:"deg",User:"Standard"}},NK={MSP_OPTIONS:{Bitmask:{0:"EnableTelemetryMode",1:"DisableDJIWorkarounds",2:"EnableBTFLFonts"},Description:"A bitmask to set some MSP specific options",DisplayName:"MSP OSD Options",User:"Standard"},MSP_OSD_NCELLS:{Description:"Used for average cell voltage calculation",DisplayName:"Cell count override",User:"Standard",Values:{0:"Auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14"}}},wK={NAVL1_DAMPING:{Description:"Damping ratio for L1 control. Increase this in increments of 0.05 if you are getting overshoot in path tracking. You should not need a value below 0.7 or above 0.85.",DisplayName:"L1 control damping ratio",Increment:"0.05",Range:{high:"1.0",low:"0.6"},User:"Advanced"},NAVL1_LIM_BANK:{Description:"The sealevel bank angle limit for a continous loiter. (Used to calculate airframe loading limits at higher altitudes). Setting to 0, will instead just scale the loiter radius directly",DisplayName:"Loiter Radius Bank Angle Limit",Range:{high:"89",low:"0"},Units:"deg",User:"Advanced"},NAVL1_PERIOD:{Description:"Period in seconds of L1 tracking loop. This parameter is the primary control for agressiveness of turns in auto mode. This needs to be larger for less responsive airframes. The default of 20 is quite conservative, but for most RC aircraft will lead to reasonable flight. For smaller more agile aircraft a value closer to 15 is appropriate, or even as low as 10 for some very agile aircraft. When tuning, change this value in small increments, as a value that is much too small (say 5 or 10 below the right value) can lead to very radical turns, and a risk of stalling.",DisplayName:"L1 control period",Increment:"1",Range:{high:"60",low:"1"},Units:"s",User:"Standard"},NAVL1_XTRACK_I:{Description:"Crosstrack error integrator gain. This gain is applied to the crosstrack error to ensure it converges to zero. Set to zero to disable. Smaller values converge slower, higher values will cause crosstrack error oscillation.",DisplayName:"L1 control crosstrack integrator gain",Increment:"0.01",Range:{high:"0.1",low:"0"},User:"Advanced"}},TK={NTF_BUZZ_ON_LVL:{Description:"Specifies pin level that indicates buzzer should play",DisplayName:"Buzzer-on pin logic level",User:"Advanced",Values:{0:"LowIsOn",1:"HighIsOn"}},NTF_BUZZ_PIN:{Description:"Enables to connect active buzzer to arbitrary pin. Requires 3-pin buzzer or additional MOSFET!",DisplayName:"Buzzer pin",User:"Advanced",Values:{0:"Disabled"}},NTF_BUZZ_TYPES:{Bitmask:{0:"Built-in buzzer",1:"DShot",2:"DroneCAN"},Description:"Controls what types of Buzzer will be enabled",DisplayName:"Buzzer Driver Types",User:"Advanced"},NTF_BUZZ_VOLUME:{Description:"Control the volume of the buzzer",DisplayName:"Buzzer volume",Range:{high:"100",low:"0"},Units:"%"},NTF_DISPLAY_TYPE:{Description:"This sets up the type of on-board I2C display. Disabled by default.",DisplayName:"Type of on-board I2C display",User:"Advanced",Values:{0:"Disable",1:"ssd1306",2:"sh1106",10:"SITL"}},NTF_LED_BRIGHT:{Description:"Select the RGB LED brightness level. When USB is connected brightness will never be higher than low regardless of the setting.",DisplayName:"LED Brightness",User:"Advanced",Values:{0:"Off",1:"Low",2:"Medium",3:"High"}},NTF_LED_LEN:{Description:"The number of Serial LED's to use for notifications (NeoPixel's and ProfiLED)",DisplayName:"Serial LED String Length",Range:{high:"32",low:"1"},RebootRequired:"True",User:"Advanced"},NTF_LED_OVERRIDE:{Description:'Specifies the source for the colours and brightness for the LED. OutbackChallenge conforms to the MedicalExpress (https://uavchallenge.org/medical-express/) rules, essentially "Green" is disarmed (safe-to-approach), "Red" is armed (not safe-to-approach). Traffic light is a simplified color set, red when armed, yellow when the safety switch is not surpressing outputs (but disarmed), and green when outputs are surpressed and disarmed, the LED will blink faster if disarmed and failing arming checks.',DisplayName:"Specifies colour source for the RGBLed",User:"Advanced",Values:{0:"Standard",1:"MAVLink/Scripting/AP_Periph",2:"OutbackChallenge",3:"TrafficLight"}},NTF_LED_TYPES:{Bitmask:{0:"Built-in LED",1:"Internal ToshibaLED",2:"External ToshibaLED",3:"External PCA9685",4:"Oreo LED",5:"DroneCAN",6:"NCP5623 External",7:"NCP5623 Internal",8:"NeoPixel",9:"ProfiLED",10:"Scripting",11:"DShot",12:"ProfiLED_SPI"},Description:"Controls what types of LEDs will be enabled",DisplayName:"LED Driver Types",User:"Advanced"},NTF_OREO_THEME:{Description:"Enable/Disable Solo Oreo LED driver, 0 to disable, 1 for Aircraft theme, 2 for Rover theme",DisplayName:"OreoLED Theme",User:"Advanced",Values:{0:"Disabled",1:"Aircraft",2:"Rover"}}},EK={OA_MARGIN_MAX:{Description:"Object Avoidance will ignore objects more than this many meters from vehicle",DisplayName:"Object Avoidance wide margin distance",Increment:"1",Range:{high:"100",low:"0.1"},Units:"m",User:"Standard"},OA_OPTIONS:{Bitmask:{0:"Reset the origin of the waypoint to the present location",1:"log Dijkstra points"},Description:"Bitmask which will govern vehicles behaviour while recovering from Obstacle Avoidance (i.e Avoidance is turned off after the path ahead is clear). ",DisplayName:"Options while recovering from Object Avoidance",User:"Standard"},OA_TYPE:{Description:"Enabled/disable path planning around obstacles",DisplayName:"Object Avoidance Path Planning algorithm to use",User:"Standard",Values:{0:"Disabled",1:"BendyRuler",2:"Dijkstra",3:"Dijkstra with BendyRuler"}}},PK={OA_BR_CONT_ANGLE:{Description:" BendyRuler will resist changing current bearing if the change in bearing is over this angle",DisplayName:"BendyRuler's bearing change resistance threshold angle ",Increment:"5",Range:{high:"180",low:"20"},User:"Standard"},OA_BR_CONT_RATIO:{Description:" BendyRuler will avoid changing bearing unless ratio of previous margin from obstacle (or fence) to present calculated margin is atleast this much.",DisplayName:"Obstacle Avoidance margin ratio for BendyRuler to change bearing significantly ",Increment:"0.1",Range:{high:"2",low:"1.1"},User:"Standard"},OA_BR_LOOKAHEAD:{Description:"Object Avoidance will look this many meters ahead of vehicle",DisplayName:"Object Avoidance look ahead distance maximum",Increment:"1",Range:{high:"100",low:"1"},Units:"m",User:"Standard"}},IK={OA_DB_BEAM_WIDTH:{Description:"Beam width of incoming lidar data",DisplayName:"OADatabase beam width",Range:{high:"10",low:"1"},RebootRequired:"True",Units:"deg",User:"Advanced"},OA_DB_DIST_MAX:{Description:"Maximum distance of objects held in database. Set to zero to disable the limits",DisplayName:"OADatabase Distance Maximum",Range:{high:"10",low:"0"},Units:"m",User:"Advanced"},OA_DB_EXPIRE:{Description:"OADatabase item timeout. The time an item will linger without any updates before it expires. Zero means never expires which is useful for a sent-once static environment but terrible for dynamic ones.",DisplayName:"OADatabase item timeout",Increment:"1",Range:{high:"127",low:"0"},Units:"s",User:"Advanced"},OA_DB_OUTPUT:{Description:"OADatabase output level to configure which database objects are sent to the ground station. All data is always available internally for avoidance algorithms.",DisplayName:"OADatabase output level",User:"Advanced",Values:{0:"Disabled",1:"Send only HIGH importance items",2:"Send HIGH and NORMAL importance items",3:"Send all items"}},OA_DB_QUEUE_SIZE:{Description:"OADatabase queue maximum number of points. This in an input buffer size. Larger means it can handle larger bursts of incoming data points to filter into the database. No impact on cpu, only RAM. Recommend larger for faster datalinks or for sensors that generate a lot of data.",DisplayName:"OADatabase queue maximum number of points",Range:{high:"200",low:"1"},RebootRequired:"True",User:"Advanced"},OA_DB_RADIUS_MIN:{Description:"Minimum radius of objects held in database",DisplayName:"OADatabase Minimum radius",Range:{high:"10",low:"0"},Units:"m",User:"Advanced"},OA_DB_SIZE:{Description:"OADatabase maximum number of points. Set to 0 to disable the OA Database. Larger means more points but is more cpu intensive to process",DisplayName:"OADatabase maximum number of points",Range:{high:"10000",low:"0"},RebootRequired:"True",User:"Advanced"}},OK={OSD_ARM_SCR:{Description:"Screen to be shown on Arm event. Zero to disable the feature.",DisplayName:"Arm screen",Range:{high:"4",low:"0"},User:"Standard"},OSD_BTN_DELAY:{Description:"Debounce time in ms for stick commanded parameter navigation.",DisplayName:"Button delay",Range:{high:"3000",low:"0"},User:"Advanced"},OSD_CELL_COUNT:{Description:"Used for average cell voltage display. -1 disables, 0 uses cell count autodetection for well charged LIPO/LIION batteries at connection, other values manually select cell count used.",DisplayName:"Battery cell count",Increment:"1",User:"Advanced"},OSD_CHAN:{Description:"This sets the channel used to switch different OSD screens.",DisplayName:"Screen switch transmitter channel",User:"Standard",Values:{0:"Disable",5:"Chan5",6:"Chan6",7:"Chan7",8:"Chan8",9:"Chan9",10:"Chan10",11:"Chan11",12:"Chan12",13:"Chan13",14:"Chan14",15:"Chan15",16:"Chan16"}},OSD_DSARM_SCR:{Description:"Screen to be shown on disarm event. Zero to disable the feature.",DisplayName:"Disarm screen",Range:{high:"4",low:"0"},User:"Standard"},OSD_FONT:{Description:"This sets which OSD font to use. It is an integer from 0 to the number of fonts available",DisplayName:"OSD Font",RebootRequired:"True",User:"Standard"},OSD_FS_SCR:{Description:"Screen to be shown on failsafe event. Zero to disable the feature.",DisplayName:"Failsafe screen",Range:{high:"4",low:"0"},User:"Standard"},OSD_H_OFFSET:{Description:"Sets horizontal offset of the osd inside image",DisplayName:"OSD horizontal offset",Range:{high:"63",low:"0"},RebootRequired:"True",User:"Standard"},OSD_MSG_TIME:{Description:"Sets message duration seconds",DisplayName:"Message display duration in seconds",Range:{high:"20",low:"1"},User:"Standard"},OSD_OPTIONS:{Bitmask:{0:"UseDecimalPack",1:"InvertedWindPointer",2:"InvertedAHRoll",3:"Convert feet to miles at 5280ft instead of 10000ft",4:"DisableCrosshair"},Description:"This sets options that change the display",DisplayName:"OSD Options",User:"Standard"},OSD_SW_METHOD:{Description:"This sets the method used to switch different OSD screens.",DisplayName:"Screen switch method",User:"Standard",Values:{0:"switch to next screen if channel value was changed",1:"select screen based on pwm ranges specified for each screen",2:"switch to next screen after low to high transition and every 1s while channel value is high"}},OSD_TYPE:{Description:"OSD type. TXONLY makes the OSD parameter selection available to other modules even if there is no native OSD support on the board, for instance CRSF.",DisplayName:"OSD type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"MAX7456",2:"SITL",3:"MSP",4:"TXONLY"}},OSD_UNITS:{Description:"Sets the units to use in displaying items",DisplayName:"Display Units",User:"Standard",Values:{0:"Metric",1:"Imperial",2:"SI",3:"Aviation"}},OSD_V_OFFSET:{Description:"Sets vertical offset of the osd inside image",DisplayName:"OSD vertical offset",Range:{high:"31",low:"0"},RebootRequired:"True",User:"Standard"},OSD_W_AVGCELLV:{Description:"Set level at which AVGCELLV item will flash",DisplayName:"AVGCELLV warn level",Range:{high:"100",low:"0"},User:"Standard"},OSD_W_BATVOLT:{Description:"Set level at which BAT_VOLT item will flash",DisplayName:"BAT_VOLT warn level",Range:{high:"100",low:"0"},User:"Standard"},OSD_W_NSAT:{Description:"Set level at which NSAT item will flash",DisplayName:"NSAT warn level",Range:{high:"30",low:"1"},User:"Standard"},OSD_W_RESTVOLT:{Description:"Set level at which RESTVOLT item will flash",DisplayName:"RESTVOLT warn level",Range:{high:"100",low:"0"},User:"Standard"},OSD_W_RSSI:{Description:"Set level at which RSSI item will flash",DisplayName:"RSSI warn level (in %)",Range:{high:"99",low:"0"},User:"Standard"},OSD_W_TERR:{Description:"Set level below which TER_HGT item will flash. -1 disables.",DisplayName:"Terrain warn level",Range:{high:"3000",low:"-1"},Units:"m",User:"Standard"}},UK={OSD1_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD1_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD1_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD1_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD1_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD1_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD1_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD1_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD1_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD1_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD1_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD1_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD1_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD1_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD1_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD1_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD1_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD1_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD1_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD1_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD1_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD1_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD1_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD1_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD1_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD1_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD1_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD1_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD1_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD1_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD1_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD1_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD1_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD1_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD1_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD1_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD1_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD1_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD1_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD1_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD1_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD1_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD1_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD1_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD1_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD1_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD1_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD1_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD1_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD1_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD1_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD1_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD1_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD1_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD1_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD1_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD1_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD1_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD1_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD1_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD1_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD1_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD1_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD1_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD1_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD1_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD1_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD1_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD1_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD1_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD1_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD1_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD1_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD1_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD1_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD1_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD1_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD1_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD1_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD1_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD1_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD1_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD1_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD1_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD1_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD1_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD1_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD1_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD1_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD1_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD1_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD1_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD1_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD1_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD1_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD1_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD1_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD1_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD1_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD1_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD1_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD1_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD1_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD1_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD1_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD1_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD1_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD1_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD1_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD1_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD1_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD1_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD1_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD1_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD1_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD1_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD1_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD1_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD1_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},xK={OSD2_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD2_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD2_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD2_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD2_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD2_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD2_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD2_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD2_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD2_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD2_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD2_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD2_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD2_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD2_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD2_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD2_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD2_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD2_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD2_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD2_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD2_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD2_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD2_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD2_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD2_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD2_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD2_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD2_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD2_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD2_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD2_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD2_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD2_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD2_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD2_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD2_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD2_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD2_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD2_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD2_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD2_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD2_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD2_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD2_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD2_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD2_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD2_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD2_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD2_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD2_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD2_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD2_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD2_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD2_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD2_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD2_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD2_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD2_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD2_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD2_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD2_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD2_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD2_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD2_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD2_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD2_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD2_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD2_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD2_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD2_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD2_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD2_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD2_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD2_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD2_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD2_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD2_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD2_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD2_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD2_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD2_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD2_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD2_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD2_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD2_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD2_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD2_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD2_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD2_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD2_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD2_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD2_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD2_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD2_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD2_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD2_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD2_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD2_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD2_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD2_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD2_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD2_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD2_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD2_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD2_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD2_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD2_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD2_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD2_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD2_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD2_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD2_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD2_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD2_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD2_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD2_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD2_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD2_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},FK={OSD3_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD3_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD3_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD3_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD3_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD3_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD3_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD3_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD3_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD3_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD3_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD3_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD3_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD3_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD3_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD3_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD3_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD3_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD3_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD3_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD3_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD3_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD3_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD3_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD3_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD3_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD3_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD3_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD3_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD3_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD3_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD3_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD3_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD3_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD3_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD3_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD3_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD3_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD3_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD3_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD3_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD3_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD3_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD3_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD3_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD3_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD3_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD3_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD3_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD3_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD3_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD3_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD3_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD3_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD3_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD3_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD3_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD3_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD3_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD3_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD3_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD3_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD3_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD3_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD3_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD3_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD3_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD3_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD3_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD3_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD3_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD3_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD3_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD3_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD3_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD3_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD3_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD3_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD3_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD3_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD3_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD3_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD3_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD3_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD3_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD3_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD3_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD3_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD3_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD3_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD3_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD3_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD3_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD3_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD3_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD3_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD3_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD3_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD3_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD3_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD3_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD3_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD3_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD3_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD3_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD3_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD3_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD3_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD3_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD3_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD3_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD3_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD3_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD3_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD3_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD3_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD3_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD3_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD3_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},kK={OSD4_ALTITUDE_EN:{Description:"Enables display of altitude AGL",DisplayName:"ALTITUDE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ALTITUDE_X:{Description:"Horizontal position on screen",DisplayName:"ALTITUDE_X",Range:{high:"29",low:"0"}},OSD4_ALTITUDE_Y:{Description:"Vertical position on screen",DisplayName:"ALTITUDE_Y",Range:{high:"15",low:"0"}},OSD4_ARMING_EN:{Description:"Displays arming status (MSP OSD only)",DisplayName:"ARMING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ARMING_X:{Description:"Horizontal position on screen",DisplayName:"ARMING_X",Range:{high:"29",low:"0"}},OSD4_ARMING_Y:{Description:"Vertical position on screen",DisplayName:"ARMING_Y",Range:{high:"15",low:"0"}},OSD4_ASPD1_EN:{Description:"Displays airspeed reported directly from primary airspeed sensor",DisplayName:"ASPD1_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ASPD1_X:{Description:"Horizontal position on screen",DisplayName:"ASPD1_X",Range:{high:"29",low:"0"}},OSD4_ASPD1_Y:{Description:"Vertical position on screen",DisplayName:"ASPD1_Y",Range:{high:"15",low:"0"}},OSD4_ASPD2_EN:{Description:"Displays airspeed reported directly from secondary airspeed sensor",DisplayName:"ASPD2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ASPD2_X:{Description:"Horizontal position on screen",DisplayName:"ASPD2_X",Range:{high:"29",low:"0"}},OSD4_ASPD2_Y:{Description:"Vertical position on screen",DisplayName:"ASPD2_Y",Range:{high:"15",low:"0"}},OSD4_ASPEED_EN:{Description:"Displays airspeed value being used by TECS (fused value)",DisplayName:"ASPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ASPEED_X:{Description:"Horizontal position on screen",DisplayName:"ASPEED_X",Range:{high:"29",low:"0"}},OSD4_ASPEED_Y:{Description:"Vertical position on screen",DisplayName:"ASPEED_Y",Range:{high:"15",low:"0"}},OSD4_ATEMP_EN:{Description:"Displays temperature reported by primary airspeed sensor",DisplayName:"ATEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ATEMP_X:{Description:"Horizontal position on screen",DisplayName:"ATEMP_X",Range:{high:"29",low:"0"}},OSD4_ATEMP_Y:{Description:"Vertical position on screen",DisplayName:"ATEMP_Y",Range:{high:"15",low:"0"}},OSD4_AVGCELLV_EN:{Description:"Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",DisplayName:"AVGCELLV_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_AVGCELLV_X:{Description:"Horizontal position on screen",DisplayName:"AVGCELLV_X",Range:{high:"29",low:"0"}},OSD4_AVGCELLV_Y:{Description:"Vertical position on screen",DisplayName:"AVGCELLV_Y",Range:{high:"15",low:"0"}},OSD4_BAT2USED_EN:{Description:"Displays secondary battery mAh consumed",DisplayName:"BAT2USED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BAT2USED_X:{Description:"Horizontal position on screen",DisplayName:"BAT2USED_X",Range:{high:"29",low:"0"}},OSD4_BAT2USED_Y:{Description:"Vertical position on screen",DisplayName:"BAT2USED_Y",Range:{high:"15",low:"0"}},OSD4_BAT2_VLT_EN:{Description:"Displays battery2 voltage",DisplayName:"BAT2VLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BAT2_VLT_X:{Description:"Horizontal position on screen",DisplayName:"BAT2VLT_X",Range:{high:"29",low:"0"}},OSD4_BAT2_VLT_Y:{Description:"Vertical position on screen",DisplayName:"BAT2VLT_Y",Range:{high:"15",low:"0"}},OSD4_BATTBAR_EN:{Description:"Displays battery usage bar (MSP OSD only)",DisplayName:"BATT_BAR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BATTBAR_X:{Description:"Horizontal position on screen",DisplayName:"BATT_BAR_X",Range:{high:"29",low:"0"}},OSD4_BATTBAR_Y:{Description:"Vertical position on screen",DisplayName:"BATT_BAR_Y",Range:{high:"15",low:"0"}},OSD4_BATUSED_EN:{Description:"Displays primary battery mAh consumed",DisplayName:"BATUSED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BATUSED_X:{Description:"Horizontal position on screen",DisplayName:"BATUSED_X",Range:{high:"29",low:"0"}},OSD4_BATUSED_Y:{Description:"Vertical position on screen",DisplayName:"BATUSED_Y",Range:{high:"15",low:"0"}},OSD4_BAT_VOLT_EN:{Description:"Displays main battery voltage",DisplayName:"BATVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BAT_VOLT_X:{Description:"Horizontal position on screen",DisplayName:"BATVOLT_X",Range:{high:"29",low:"0"}},OSD4_BAT_VOLT_Y:{Description:"Vertical position on screen",DisplayName:"BATVOLT_Y",Range:{high:"15",low:"0"}},OSD4_BTEMP_EN:{Description:"Displays temperature reported by secondary barometer",DisplayName:"BTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_BTEMP_X:{Description:"Horizontal position on screen",DisplayName:"BTEMP_X",Range:{high:"29",low:"0"}},OSD4_BTEMP_Y:{Description:"Vertical position on screen",DisplayName:"BTEMP_Y",Range:{high:"15",low:"0"}},OSD4_CALLSIGN_EN:{Description:"Displays callsign from callsign.txt on microSD card",DisplayName:"CALLSIGN_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CALLSIGN_X:{Description:"Horizontal position on screen",DisplayName:"CALLSIGN_X",Range:{high:"29",low:"0"}},OSD4_CALLSIGN_Y:{Description:"Vertical position on screen",DisplayName:"CALLSIGN_Y",Range:{high:"15",low:"0"}},OSD4_CELLVOLT_EN:{Description:"Displays average cell voltage (MSP OSD only)",DisplayName:"CELL_VOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CELLVOLT_X:{Description:"Horizontal position on screen",DisplayName:"CELL_VOLT_X",Range:{high:"29",low:"0"}},OSD4_CELLVOLT_Y:{Description:"Vertical position on screen",DisplayName:"CELL_VOLT_Y",Range:{high:"15",low:"0"}},OSD4_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD4_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD4_CLIMBEFF_EN:{Description:"Displays climb efficiency (climb rate/current)",DisplayName:"CLIMBEFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CLIMBEFF_X:{Description:"Horizontal position on screen",DisplayName:"CLIMBEFF_X",Range:{high:"29",low:"0"}},OSD4_CLIMBEFF_Y:{Description:"Vertical position on screen",DisplayName:"CLIMBEFF_Y",Range:{high:"15",low:"0"}},OSD4_CLK_EN:{Description:"Displays a clock panel based on AP_RTC local time",DisplayName:"CLK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CLK_X:{Description:"Horizontal position on screen",DisplayName:"CLK_X",Range:{high:"29",low:"0"}},OSD4_CLK_Y:{Description:"Vertical position on screen",DisplayName:"CLK_Y",Range:{high:"15",low:"0"}},OSD4_COMPASS_EN:{Description:"Enables display of compass rose",DisplayName:"COMPASS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_COMPASS_X:{Description:"Horizontal position on screen",DisplayName:"COMPASS_X",Range:{high:"29",low:"0"}},OSD4_COMPASS_Y:{Description:"Vertical position on screen",DisplayName:"COMPASS_Y",Range:{high:"15",low:"0"}},OSD4_CRSSHAIR_EN:{Description:"Displays artificial horizon crosshair (MSP OSD only)",DisplayName:"CRSSHAIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CRSSHAIR_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_X",Range:{high:"29",low:"0"}},OSD4_CRSSHAIR_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"CRSSHAIR_Y",Range:{high:"15",low:"0"}},OSD4_CURRENT2_EN:{Description:"Displays 2nd battery current",DisplayName:"CURRENT2_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CURRENT2_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT2_X",Range:{high:"29",low:"0"}},OSD4_CURRENT2_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT2_Y",Range:{high:"15",low:"0"}},OSD4_CURRENT_EN:{Description:"Displays main battery current",DisplayName:"CURRENT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_CURRENT_X:{Description:"Horizontal position on screen",DisplayName:"CURRENT_X",Range:{high:"29",low:"0"}},OSD4_CURRENT_Y:{Description:"Vertical position on screen",DisplayName:"CURRENT_Y",Range:{high:"15",low:"0"}},OSD4_DIST_EN:{Description:"Displays total distance flown",DisplayName:"DIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_DIST_X:{Description:"Horizontal position on screen",DisplayName:"DIST_X",Range:{high:"29",low:"0"}},OSD4_DIST_Y:{Description:"Vertical position on screen",DisplayName:"DIST_Y",Range:{high:"15",low:"0"}},OSD4_EFF_EN:{Description:"Displays flight efficiency (mAh/km or /mi)",DisplayName:"EFF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_EFF_X:{Description:"Horizontal position on screen",DisplayName:"EFF_X",Range:{high:"29",low:"0"}},OSD4_EFF_Y:{Description:"Vertical position on screen",DisplayName:"EFF_Y",Range:{high:"15",low:"0"}},OSD4_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCAMPS_EN:{Description:"Displays first esc's current",DisplayName:"ESCAMPS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCAMPS_X:{Description:"Horizontal position on screen",DisplayName:"ESCAMPS_X",Range:{high:"29",low:"0"}},OSD4_ESCAMPS_Y:{Description:"Vertical position on screen",DisplayName:"ESCAMPS_Y",Range:{high:"15",low:"0"}},OSD4_ESCRPM_EN:{Description:"Displays first esc's rpm",DisplayName:"ESCRPM_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCRPM_X:{Description:"Horizontal position on screen",DisplayName:"ESCRPM_X",Range:{high:"29",low:"0"}},OSD4_ESCRPM_Y:{Description:"Vertical position on screen",DisplayName:"ESCRPM_Y",Range:{high:"15",low:"0"}},OSD4_ESCTEMP_EN:{Description:"Displays first esc's temp",DisplayName:"ESCTEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ESCTEMP_X:{Description:"Horizontal position on screen",DisplayName:"ESCTEMP_X",Range:{high:"29",low:"0"}},OSD4_ESCTEMP_Y:{Description:"Vertical position on screen",DisplayName:"ESCTEMP_Y",Range:{high:"15",low:"0"}},OSD4_FENCE_EN:{Description:"Displays indication of fence enable and breach",DisplayName:"FENCE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_FENCE_X:{Description:"Horizontal position on screen",DisplayName:"FENCE_X",Range:{high:"29",low:"0"}},OSD4_FENCE_Y:{Description:"Vertical position on screen",DisplayName:"FENCE_Y",Range:{high:"15",low:"0"}},OSD4_FLTIME_EN:{Description:"Displays total flight time",DisplayName:"FLTIME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_FLTIME_X:{Description:"Horizontal position on screen",DisplayName:"FLTIME_X",Range:{high:"29",low:"0"}},OSD4_FLTIME_Y:{Description:"Vertical position on screen",DisplayName:"FLTIME_Y",Range:{high:"15",low:"0"}},OSD4_FLTMODE_EN:{Description:"Displays flight mode",DisplayName:"FLTMODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_FLTMODE_X:{Description:"Horizontal position on screen",DisplayName:"FLTMODE_X",Range:{high:"29",low:"0"}},OSD4_FLTMODE_Y:{Description:"Vertical position on screen",DisplayName:"FLTMODE_Y",Range:{high:"15",low:"0"}},OSD4_GPSLAT_EN:{Description:"Displays GPS latitude",DisplayName:"GPSLAT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_GPSLAT_X:{Description:"Horizontal position on screen",DisplayName:"GPSLAT_X",Range:{high:"29",low:"0"}},OSD4_GPSLAT_Y:{Description:"Vertical position on screen",DisplayName:"GPSLAT_Y",Range:{high:"15",low:"0"}},OSD4_GPSLONG_EN:{Description:"Displays GPS longitude",DisplayName:"GPSLONG_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_GPSLONG_X:{Description:"Horizontal position on screen",DisplayName:"GPSLONG_X",Range:{high:"29",low:"0"}},OSD4_GPSLONG_Y:{Description:"Vertical position on screen",DisplayName:"GPSLONG_Y",Range:{high:"15",low:"0"}},OSD4_GSPEED_EN:{Description:"Displays GPS ground speed",DisplayName:"GSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_GSPEED_X:{Description:"Horizontal position on screen",DisplayName:"GSPEED_X",Range:{high:"29",low:"0"}},OSD4_GSPEED_Y:{Description:"Vertical position on screen",DisplayName:"GSPEED_Y",Range:{high:"15",low:"0"}},OSD4_HDOP_EN:{Description:"Displays Horizontal Dilution Of Position",DisplayName:"HDOP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HDOP_X:{Description:"Horizontal position on screen",DisplayName:"HDOP_X",Range:{high:"29",low:"0"}},OSD4_HDOP_Y:{Description:"Vertical position on screen",DisplayName:"HDOP_Y",Range:{high:"15",low:"0"}},OSD4_HEADING_EN:{Description:"Displays heading",DisplayName:"HEADING_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HEADING_X:{Description:"Horizontal position on screen",DisplayName:"HEADING_X",Range:{high:"29",low:"0"}},OSD4_HEADING_Y:{Description:"Vertical position on screen",DisplayName:"HEADING_Y",Range:{high:"15",low:"0"}},OSD4_HOMEDIR_EN:{Description:"Displays relative direction to HOME (MSP OSD only)",DisplayName:"HOMEDIR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HOMEDIR_X:{Description:"Horizontal position on screen",DisplayName:"HOMEDIR_X",Range:{high:"29",low:"0"}},OSD4_HOMEDIR_Y:{Description:"Vertical position on screen",DisplayName:"HOMEDIR_Y",Range:{high:"15",low:"0"}},OSD4_HOMEDIST_EN:{Description:"Displays distance from HOME (MSP OSD only)",DisplayName:"HOMEDIST_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HOMEDIST_X:{Description:"Horizontal position on screen (MSP OSD only)",DisplayName:"HOMEDIST_X",Range:{high:"29",low:"0"}},OSD4_HOMEDIST_Y:{Description:"Vertical position on screen (MSP OSD only)",DisplayName:"HOMEDIST_Y",Range:{high:"15",low:"0"}},OSD4_HOME_EN:{Description:"Displays distance and relative direction to HOME",DisplayName:"HOME_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HOME_X:{Description:"Horizontal position on screen",DisplayName:"HOME_X",Range:{high:"29",low:"0"}},OSD4_HOME_Y:{Description:"Vertical position on screen",DisplayName:"HOME_Y",Range:{high:"15",low:"0"}},OSD4_HORIZON_EN:{Description:"Displays artificial horizon",DisplayName:"HORIZON_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_HORIZON_X:{Description:"Horizontal position on screen",DisplayName:"HORIZON_X",Range:{high:"29",low:"0"}},OSD4_HORIZON_Y:{Description:"Vertical position on screen",DisplayName:"HORIZON_Y",Range:{high:"15",low:"0"}},OSD4_LINK_Q_EN:{Description:"Displays Receiver link quality",DisplayName:"LINK_Q_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_LINK_Q_X:{Description:"Horizontal position on screen",DisplayName:"LINK_Q_X",Range:{high:"29",low:"0"}},OSD4_LINK_Q_Y:{Description:"Vertical position on screen",DisplayName:"LINK_Q_Y",Range:{high:"15",low:"0"}},OSD4_MESSAGE_EN:{Description:"Displays Mavlink messages",DisplayName:"MESSAGE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_MESSAGE_X:{Description:"Horizontal position on screen",DisplayName:"MESSAGE_X",Range:{high:"29",low:"0"}},OSD4_MESSAGE_Y:{Description:"Vertical position on screen",DisplayName:"MESSAGE_Y",Range:{high:"15",low:"0"}},OSD4_PITCH_EN:{Description:"Displays degrees of pitch from level",DisplayName:"PITCH_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_PITCH_X:{Description:"Horizontal position on screen",DisplayName:"PITCH_X",Range:{high:"29",low:"0"}},OSD4_PITCH_Y:{Description:"Vertical position on screen",DisplayName:"PITCH_Y",Range:{high:"15",low:"0"}},OSD4_PLUSCODE_EN:{Description:"Displays pluscode (OLC) element",DisplayName:"PLUSCODE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_PLUSCODE_X:{Description:"Horizontal position on screen",DisplayName:"PLUSCODE_X",Range:{high:"29",low:"0"}},OSD4_PLUSCODE_Y:{Description:"Vertical position on screen",DisplayName:"PLUSCODE_Y",Range:{high:"15",low:"0"}},OSD4_POWER_EN:{Description:"Displays power (MSP OSD only)",DisplayName:"POWER_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_POWER_X:{Description:"Horizontal position on screen",DisplayName:"POWER_X",Range:{high:"29",low:"0"}},OSD4_POWER_Y:{Description:"Vertical position on screen",DisplayName:"POWER_Y",Range:{high:"15",low:"0"}},OSD4_RESTVOLT_EN:{Description:"Displays main battery resting voltage",DisplayName:"RESTVOLT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_RESTVOLT_X:{Description:"Horizontal position on screen",DisplayName:"RESTVOLT_X",Range:{high:"29",low:"0"}},OSD4_RESTVOLT_Y:{Description:"Vertical position on screen",DisplayName:"RESTVOLT_Y",Range:{high:"15",low:"0"}},OSD4_RNGF_EN:{Description:"Displays a rangefinder's distance in cm",DisplayName:"RNGF_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_RNGF_X:{Description:"Horizontal position on screen",DisplayName:"RNGF_X",Range:{high:"29",low:"0"}},OSD4_RNGF_Y:{Description:"Vertical position on screen",DisplayName:"RNGF_Y",Range:{high:"15",low:"0"}},OSD4_ROLL_EN:{Description:"Displays degrees of roll from level",DisplayName:"ROLL_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_ROLL_X:{Description:"Horizontal position on screen",DisplayName:"ROLL_X",Range:{high:"29",low:"0"}},OSD4_ROLL_Y:{Description:"Vertical position on screen",DisplayName:"ROLL_Y",Range:{high:"15",low:"0"}},OSD4_RSSI_EN:{Description:"Displays RC signal strength",DisplayName:"RSSI_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_RSSI_X:{Description:"Horizontal position on screen",DisplayName:"RSSI_X",Range:{high:"29",low:"0"}},OSD4_RSSI_Y:{Description:"Vertical position on screen",DisplayName:"RSSI_Y",Range:{high:"15",low:"0"}},OSD4_SATS_EN:{Description:"Displays number of acquired satellites",DisplayName:"SATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_SATS_X:{Description:"Horizontal position on screen",DisplayName:"SATS_X",Range:{high:"29",low:"0"}},OSD4_SATS_Y:{Description:"Vertical position on screen",DisplayName:"SATS_Y",Range:{high:"15",low:"0"}},OSD4_SIDEBARS_EN:{Description:"Displays artificial horizon side bars",DisplayName:"SIDEBARS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_SIDEBARS_X:{Description:"Horizontal position on screen",DisplayName:"SIDEBARS_X",Range:{high:"29",low:"0"}},OSD4_SIDEBARS_Y:{Description:"Vertical position on screen",DisplayName:"SIDEBARS_Y",Range:{high:"15",low:"0"}},OSD4_STATS_EN:{Description:"Displays flight stats",DisplayName:"STATS_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_STATS_X:{Description:"Horizontal position on screen",DisplayName:"STATS_X",Range:{high:"29",low:"0"}},OSD4_STATS_Y:{Description:"Vertical position on screen",DisplayName:"STATS_Y",Range:{high:"15",low:"0"}},OSD4_TEMP_EN:{Description:"Displays temperature reported by primary barometer",DisplayName:"TEMP_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_TEMP_X:{Description:"Horizontal position on screen",DisplayName:"TEMP_X",Range:{high:"29",low:"0"}},OSD4_TEMP_Y:{Description:"Vertical position on screen",DisplayName:"TEMP_Y",Range:{high:"15",low:"0"}},OSD4_TER_HGT_EN:{Description:"Displays Height above terrain",DisplayName:"TER_HGT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_TER_HGT_X:{Description:"Horizontal position on screen",DisplayName:"TER_HGT_X",Range:{high:"29",low:"0"}},OSD4_TER_HGT_Y:{Description:"Vertical position on screen",DisplayName:"TER_HGT_Y",Range:{high:"15",low:"0"}},OSD4_THROTTLE_EN:{Description:"Displays actual throttle percentage being sent to motor(s)",DisplayName:"THROTTLE_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_THROTTLE_X:{Description:"Horizontal position on screen",DisplayName:"THROTTLE_X",Range:{high:"29",low:"0"}},OSD4_THROTTLE_Y:{Description:"Vertical position on screen",DisplayName:"THROTTLE_Y",Range:{high:"15",low:"0"}},OSD4_VSPEED_EN:{Description:"Displays climb rate",DisplayName:"VSPEED_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_VSPEED_X:{Description:"Horizontal position on screen",DisplayName:"VSPEED_X",Range:{high:"29",low:"0"}},OSD4_VSPEED_Y:{Description:"Vertical position on screen",DisplayName:"VSPEED_Y",Range:{high:"15",low:"0"}},OSD4_VTX_PWR_EN:{Description:"Displays VTX Power",DisplayName:"VTX_PWR_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_VTX_PWR_X:{Description:"Horizontal position on screen",DisplayName:"VTX_PWR_X",Range:{high:"29",low:"0"}},OSD4_VTX_PWR_Y:{Description:"Vertical position on screen",DisplayName:"VTX_PWR_Y",Range:{high:"15",low:"0"}},OSD4_WAYPOINT_EN:{Description:"Displays bearing and distance to next waypoint",DisplayName:"WAYPOINT_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_WAYPOINT_X:{Description:"Horizontal position on screen",DisplayName:"WAYPOINT_X",Range:{high:"29",low:"0"}},OSD4_WAYPOINT_Y:{Description:"Vertical position on screen",DisplayName:"WAYPOINT_Y",Range:{high:"15",low:"0"}},OSD4_WIND_EN:{Description:"Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",DisplayName:"WIND_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_WIND_X:{Description:"Horizontal position on screen",DisplayName:"WIND_X",Range:{high:"29",low:"0"}},OSD4_WIND_Y:{Description:"Vertical position on screen",DisplayName:"WIND_Y",Range:{high:"15",low:"0"}},OSD4_XTRACK_EN:{Description:"Displays crosstrack error",DisplayName:"XTRACK_EN",Values:{0:"Disabled",1:"Enabled"}},OSD4_XTRACK_X:{Description:"Horizontal position on screen",DisplayName:"XTRACK_X",Range:{high:"29",low:"0"}},OSD4_XTRACK_Y:{Description:"Vertical position on screen",DisplayName:"XTRACK_Y",Range:{high:"15",low:"0"}}},BK={OSD5_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD5_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD5_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_SAVE_X:{Description:"Horizontal position of Save button on screen",DisplayName:"SAVE_X",Range:{high:"25",low:"0"},User:"Advanced"},OSD5_SAVE_Y:{Description:"Vertical position of Save button on screen",DisplayName:"SAVE_Y",Range:{high:"15",low:"0"},User:"Advanced"}},zK={OSD5_PARAM1_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM1_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM1_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM1_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM1_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM1_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM1_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM1_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM1_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM1_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},ZK={OSD5_PARAM2_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM2_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM2_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM2_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM2_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM2_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM2_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM2_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM2_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM2_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},GK={OSD5_PARAM3_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM3_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM3_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM3_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM3_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM3_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM3_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM3_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM3_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM3_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},WK={OSD5_PARAM4_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM4_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM4_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM4_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM4_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM4_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM4_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM4_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM4_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM4_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},XK={OSD5_PARAM5_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM5_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM5_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM5_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM5_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM5_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM5_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM5_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM5_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM5_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},YK={OSD5_PARAM6_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM6_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM6_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM6_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM6_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM6_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM6_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM6_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM6_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM6_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},$K={OSD5_PARAM7_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM7_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM7_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM7_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM7_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM7_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM7_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM7_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM7_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM7_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},qK={OSD5_PARAM8_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM8_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM8_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM8_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM8_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM8_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM8_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM8_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM8_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM8_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},KK={OSD5_PARAM9_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD5_PARAM9_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD5_PARAM9_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD5_PARAM9_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD5_PARAM9_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD5_PARAM9_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD5_PARAM9_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD5_PARAM9_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD5_PARAM9_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD5_PARAM9_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},jK={OSD6_CHAN_MAX:{Description:"This sets the PWM upper limit for this screen",DisplayName:"Transmitter switch screen maximum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD6_CHAN_MIN:{Description:"This sets the PWM lower limit for this screen",DisplayName:"Transmitter switch screen minimum pwm",Range:{high:"2100",low:"900"},User:"Standard"},OSD6_ENABLE:{Description:"Enable this screen",DisplayName:"Enable screen",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_SAVE_X:{Description:"Horizontal position of Save button on screen",DisplayName:"SAVE_X",Range:{high:"25",low:"0"},User:"Advanced"},OSD6_SAVE_Y:{Description:"Vertical position of Save button on screen",DisplayName:"SAVE_Y",Range:{high:"15",low:"0"},User:"Advanced"}},QK={OSD6_PARAM1_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM1_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM1_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM1_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM1_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM1_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM1_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM1_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM1_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM1_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},JK={OSD6_PARAM2_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM2_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM2_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM2_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM2_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM2_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM2_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM2_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM2_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM2_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},ej={OSD6_PARAM3_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM3_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM3_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM3_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM3_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM3_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM3_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM3_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM3_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM3_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},tj={OSD6_PARAM4_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM4_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM4_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM4_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM4_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM4_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM4_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM4_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM4_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM4_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},ij={OSD6_PARAM5_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM5_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM5_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM5_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM5_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM5_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM5_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM5_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM5_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM5_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},aj={OSD6_PARAM6_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM6_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM6_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM6_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM6_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM6_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM6_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM6_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM6_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM6_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},rj={OSD6_PARAM7_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM7_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM7_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM7_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM7_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM7_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM7_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM7_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM7_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM7_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},nj={OSD6_PARAM8_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM8_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM8_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM8_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM8_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM8_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM8_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM8_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM8_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM8_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},oj={OSD6_PARAM9_EN:{Description:"Enable setting",DisplayName:"Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},OSD6_PARAM9_GRP:{Description:"Group of the parameter to be displayed and modified",DisplayName:"Parameter group",User:"Standard"},OSD6_PARAM9_IDX:{Description:"Index of the parameter to be displayed and modified",DisplayName:"Parameter index",User:"Standard"},OSD6_PARAM9_INCR:{Description:"Increment of the parameter to be displayed and modified",DisplayName:"Parameter increment",User:"Standard"},OSD6_PARAM9_KEY:{Description:"Key of the parameter to be displayed and modified",DisplayName:"Parameter key",User:"Standard"},OSD6_PARAM9_MAX:{Description:"Maximum of the parameter to be displayed and modified",DisplayName:"Parameter maximum",User:"Standard"},OSD6_PARAM9_MIN:{Description:"Minimum value of the parameter to be displayed and modified",DisplayName:"Parameter minimum",User:"Standard"},OSD6_PARAM9_TYPE:{Description:"Type of the parameter to be displayed and modified",DisplayName:"Parameter type",User:"Standard"},OSD6_PARAM9_X:{Description:"Horizontal position on screen",DisplayName:"X position",Range:{high:"29",low:"0"},User:"Standard"},OSD6_PARAM9_Y:{Description:"Vertical position on screen",DisplayName:"Y position",Range:{high:"15",low:"0"},User:"Standard"}},sj={PRX_FILT:{Description:"Cutoff frequency for low pass filter applied to each face in the proximity boundary",DisplayName:"Proximity filter cutoff frequency",Range:{high:"20",low:"0"},Units:"Hz",User:"Advanced"},PRX_IGN_ANG1:{Description:"Proximity sensor ignore angle 1",DisplayName:"Proximity sensor ignore angle 1",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_ANG2:{Description:"Proximity sensor ignore angle 2",DisplayName:"Proximity sensor ignore angle 2",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_ANG3:{Description:"Proximity sensor ignore angle 3",DisplayName:"Proximity sensor ignore angle 3",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_ANG4:{Description:"Proximity sensor ignore angle 4",DisplayName:"Proximity sensor ignore angle 4",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_ANG5:{Description:"Proximity sensor ignore angle 5",DisplayName:"Proximity sensor ignore angle 5",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_ANG6:{Description:"Proximity sensor ignore angle 6",DisplayName:"Proximity sensor ignore angle 6",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID1:{Description:"Proximity sensor ignore width 1",DisplayName:"Proximity sensor ignore width 1",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID2:{Description:"Proximity sensor ignore width 2",DisplayName:"Proximity sensor ignore width 2",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID3:{Description:"Proximity sensor ignore width 3",DisplayName:"Proximity sensor ignore width 3",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID4:{Description:"Proximity sensor ignore width 4",DisplayName:"Proximity sensor ignore width 4",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID5:{Description:"Proximity sensor ignore width 5",DisplayName:"Proximity sensor ignore width 5",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID6:{Description:"Proximity sensor ignore width 6",DisplayName:"Proximity sensor ignore width 6",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_LOG_RAW:{Description:"Set this parameter to one if logging unfiltered(raw) distances from sensor should be enabled",DisplayName:"Proximity raw distances log",User:"Advanced",Values:{0:"Off",1:"On"}},PRX_MAX:{Description:"Maximum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",DisplayName:"Proximity maximum range",Range:{high:"500",low:"0"},Units:"m",User:"Advanced"},PRX_MIN:{Description:"Minimum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",DisplayName:"Proximity minimum range",Range:{high:"500",low:"0"},Units:"m",User:"Advanced"},PRX_ORIENT:{Description:"Proximity sensor orientation",DisplayName:"Proximity sensor orientation",User:"Standard",Values:{0:"Default",1:"Upside Down"}},PRX_TYPE:{Description:"What type of proximity sensor is connected",DisplayName:"Proximity type",RebootRequired:"True",User:"Standard",Values:{0:"None",2:"MAVLink",3:"TeraRangerTower",4:"RangeFinder",5:"RPLidarA2",6:"TeraRangerTowerEvo",7:"LightwareSF40c",8:"LightwareSF45B",10:"SITL",12:"AirSimSITL",13:"CygbotD1"}},PRX_YAW_CORR:{Description:"Proximity sensor yaw correction",DisplayName:"Proximity sensor yaw correction",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"}},lj={RALLY_INCL_HOME:{Description:"Controls if Home is included as a Rally point (i.e. as a safe landing place) for RTL",DisplayName:"Rally Include Home",User:"Standard",Values:{0:"DoNotIncludeHome",1:"IncludeHome"}},RALLY_LIMIT_KM:{Description:"Maximum distance to rally point. If the closest rally point is more than this number of kilometers from the current position and the home location is closer than any of the rally points from the current position then do RTL to home rather than to the closest rally point. This prevents a leftover rally point from a different airfield being used accidentally. If this is set to 0 then the closest rally point is always used.",DisplayName:"Rally Limit",Increment:"0.1",Units:"km",User:"Advanced"},RALLY_TOTAL:{Description:"Number of rally points currently loaded",DisplayName:"Rally Total",User:"Advanced"}},cj={RC_OPTIONS:{Bitmask:{0:"Ignore RC Receiver",1:"Ignore MAVLink Overrides",2:"Ignore Receiver Failsafe bit but allow other RC failsafes if setup",3:"FPort Pad",4:"Log RC input bytes",5:"Arming check throttle for 0 input",6:"Skip the arming check for neutral Roll/Pitch/Yaw sticks",7:"Allow Switch reverse",8:"Use passthrough for CRSF telemetry",9:"Suppress CRSF mode/rate message for ELRS systems",10:"Enable multiple receiver support",11:"CRSF RSSI shows Link Quality"},Description:"RC input options",DisplayName:"RC options",User:"Advanced"},RC_OVERRIDE_TIME:{Description:"Timeout after which RC overrides will no longer be used, and RC input will resume, 0 will disable RC overrides, -1 will never timeout, and continue using overrides until they are disabled",DisplayName:"RC override timeout",Range:{high:"120.0",low:"0.0"},Units:"s",User:"Advanced"},RC_PROTOCOLS:{Bitmask:{0:"All",1:"PPM",2:"IBUS",3:"SBUS",4:"SBUS_NI",5:"DSM",6:"SUMD",7:"SRXL",8:"SRXL2",9:"CRSF",10:"ST24",11:"FPORT",12:"FPORT2",13:"FastSBUS"},Description:"Bitmask of enabled RC protocols. Allows narrowing the protocol detection to only specific types of RC receivers which can avoid issues with incorrect detection. Set to 1 to enable all protocols.",DisplayName:"RC protocols enabled",User:"Advanced"}},dj={RC10_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC10_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC10_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC10_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC10_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC10_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},Cj={RC11_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC11_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC11_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC11_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC11_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC11_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},mj={RC12_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC12_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC12_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC12_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC12_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC12_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},uj={RC13_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC13_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC13_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC13_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC13_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC13_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},hj={RC14_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC14_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC14_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC14_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC14_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC14_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},pj={RC15_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC15_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC15_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC15_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC15_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC15_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},fj={RC16_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC16_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC16_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC16_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC16_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC16_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},Vj={RC1_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC1_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC1_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC1_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC1_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC1_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},Lj={RC2_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC2_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC2_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC2_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC2_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC2_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},Hj={RC3_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC3_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC3_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC3_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC3_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC3_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},Mj={RC4_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC4_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC4_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC4_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC4_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC4_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},gj={RC5_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC5_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC5_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC5_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC5_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC5_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},Aj={RC6_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC6_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC6_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC6_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC6_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC6_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},vj={RC7_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC7_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC7_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC7_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC7_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC7_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},_j={RC8_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC8_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC8_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC8_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC8_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC8_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},Sj={RC9_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC9_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC9_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC9_OPTION:{Description:"Function assigned to this RC channel",DisplayName:"RC input option",User:"Standard",Values:{0:"Do Nothing",4:"RTL",5:"Save Trim (4.1 and lower)",7:"Save WP",9:"Camera Trigger",11:"Fence",16:"Auto",19:"Gripper",24:"Auto Mission Reset",27:"Retract Mount",28:"Relay On/Off",30:"Lost Rover Sound",31:"Motor Emergency Stop",34:"Relay2 On/Off",35:"Relay3 On/Off",36:"Relay4 On/Off",40:"Proximity Avoidance",41:"ArmDisarm (4.1 and lower)",42:"SmartRTL",46:"RC Override Enable",50:"LearnCruise",51:"Manual",52:"Acro",53:"Steering",54:"Hold",55:"Guided",56:"Loiter",57:"Follow",58:"Clear Waypoints",59:"Simple Mode",62:"Compass Learn",63:"Sailboat Tack",65:"GPS Disable",66:"Relay5 On/Off",67:"Relay6 On/Off",74:"Sailboat motoring 3pos",78:"RunCam Control",79:"RunCam OSD Control",80:"Viso Align",81:"Disarm",90:"EKF Pos Source",94:"VTX Power",97:"Windvane home heading direction offset",100:"KillIMU1",101:"KillIMU2",102:"Camera Mode Toggle",105:"GPS Disable Yaw",106:"Disable Airspeed Use",153:"ArmDisarm (4.2 and higher)",155:"set steering trim to current servo and RC",156:"Torqeedo Clear Err",201:"Roll",202:"Pitch",207:"MainSail",208:"Flap",211:"Walking Height",300:"Scripting1",301:"Scripting2",302:"Scripting3",303:"Scripting4",304:"Scripting5",305:"Scripting6",306:"Scripting7",307:"Scripting8"}},RC9_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC9_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},Dj={RCMAP_FORWARD:{Description:"Forward channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Forward is normally on channel 5, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Forward channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_LATERAL:{Description:"Lateral channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Lateral is normally on channel 6, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Lateral channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_PITCH:{Description:"Pitch channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Pitch is normally on channel 2, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Pitch channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_ROLL:{Description:"Roll channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Roll is normally on channel 1, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Roll channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_THROTTLE:{Description:"Throttle channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Throttle is normally on channel 3, but you can move it to any channel with this parameter. Warning APM 2.X: Changing the throttle channel could produce unexpected fail-safe results if connection between receiver and on-board PPM Encoder is lost. Disabling on-board PPM Encoder is recommended. Reboot is required for changes to take effect.",DisplayName:"Throttle channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_YAW:{Description:"Yaw channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Yaw (also known as rudder) is normally on channel 4, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Yaw channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"}},yj={RELAY_DEFAULT:{Description:"The state of the relay on boot.",DisplayName:"Default relay state",User:"Standard",Values:{0:"Off",1:"On",2:"NoChange"}},RELAY_PIN:{Description:"Digital pin number for first relay control. This is the pin used for camera control.",DisplayName:"First Relay Pin",User:"Standard",Values:{27:"BBBMini Pin P8.17",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN2:{Description:"Digital pin number for 2nd relay control.",DisplayName:"Second Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",65:"BBBMini Pin P8.18",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN3:{Description:"Digital pin number for 3rd relay control.",DisplayName:"Third Relay Pin",User:"Standard",Values:{22:"BBBMini Pin P8.19",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN4:{Description:"Digital pin number for 4th relay control.",DisplayName:"Fourth Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",63:"BBBMini Pin P8.34",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN5:{Description:"Digital pin number for 5th relay control.",DisplayName:"Fifth Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",62:"BBBMini Pin P8.13",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN6:{Description:"Digital pin number for 6th relay control.",DisplayName:"Sixth Relay Pin",User:"Standard",Values:{37:"BBBMini Pin P8.14",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",101:"MainOut1",102:"MainOut2",103:"MainOut3",104:"MainOut4",105:"MainOut5",106:"MainOut6",107:"MainOut7",108:"MainOut8",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}}},Rj={RNGFND1_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND1_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND1_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND1_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND1_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND1_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND1_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND1_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND1_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND1_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND1_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND1_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND1_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND1_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND1_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",100:"SITL"}},RNGFND1_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND1_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND1_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},bj={RNGFND2_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND2_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND2_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND2_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND2_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND2_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND2_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND2_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND2_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND2_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND2_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND2_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND2_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND2_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND2_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",100:"SITL"}},RNGFND2_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND2_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND2_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},Nj={RNGFND3_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND3_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND3_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND3_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND3_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND3_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND3_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND3_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND3_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND3_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND3_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND3_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND3_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND3_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND3_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",100:"SITL"}},RNGFND3_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND3_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND3_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},wj={RNGFND4_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND4_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND4_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND4_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND4_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND4_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND4_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND4_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND4_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND4_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND4_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND4_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND4_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND4_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND4_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",100:"SITL"}},RNGFND4_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND4_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND4_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},Tj={RNGFND5_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND5_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND5_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND5_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND5_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND5_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND5_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND5_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND5_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND5_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND5_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND5_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND5_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND5_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND5_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",100:"SITL"}},RNGFND5_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND5_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND5_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},Ej={RNGFND6_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND6_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND6_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND6_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND6_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND6_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND6_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND6_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND6_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND6_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND6_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND6_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND6_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND6_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND6_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",100:"SITL"}},RNGFND6_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND6_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND6_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},Pj={RNGFND7_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND7_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND7_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND7_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND7_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND7_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND7_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND7_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND7_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND7_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND7_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND7_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND7_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND7_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND7_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",100:"SITL"}},RNGFND7_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND7_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND7_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},Ij={RNGFND8_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND8_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND8_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND8_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND8_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND8_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND8_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND8_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND8_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND8_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND8_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND8_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND8_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND8_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND8_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",100:"SITL"}},RNGFND8_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND8_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND8_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},Oj={RNGFND9_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND9_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND9_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND9_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND9_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND9_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND9_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND9_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFND9_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND9_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND9_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND9_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND9_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFND9_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND9_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",100:"SITL"}},RNGFND9_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND9_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND9_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},Uj={RNGFNDA_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFNDA_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFNDA_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFNDA_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFNDA_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFNDA_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFNDA_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFNDA_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input. When using analog pin 103, the maximum value of the input in 3.3V.",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS","-1":"Not Used"}},RNGFNDA_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFNDA_RECV_ID:{Description:"The receive ID of the CAN frames. A value of zero means all IDs are accepted.",DisplayName:"CAN receive ID",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFNDA_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFNDA_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFNDA_SNR_MIN:{Description:"Minimum signal strength (SNR) to accept distance",DisplayName:"Minimum signal strength",Range:{high:"65535",low:"0"},User:"Advanced"},RNGFNDA_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFNDA_TYPE:{Description:"Type of connected rangefinder",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"USD1_Serial",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"DroneCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",34:"Benewake_CAN",100:"SITL"}},RNGFNDA_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFNDA_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFNDA_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},xj={RPM1_ESC_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which support ESC rpm telemetry. RPM telemetry of the selected channels will be averaged",DisplayName:"Bitmask of ESC telemetry channels to average",User:"Advanced"},RPM1_MAX:{Description:"Maximum RPM to report. Only used on type = PWM.",DisplayName:"Maximum RPM",Increment:"1",User:"Standard"},RPM1_MIN:{Description:"Minimum RPM to report. Only used on type = PWM.",DisplayName:"Minimum RPM",Increment:"1",User:"Standard"},RPM1_MIN_QUAL:{Description:"Minimum data quality to be used",DisplayName:"Minimum Quality",Increment:"0.1",User:"Advanced"},RPM1_PIN:{Description:"Which pin to use. Only used on type = PWM.",DisplayName:"Input pin number",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},RPM1_SCALING:{Description:"Scaling factor between sensor reading and RPM.",DisplayName:"RPM scaling",Increment:"0.001",User:"Standard"},RPM1_TYPE:{Description:"What type of RPM sensor is connected",DisplayName:"RPM type",User:"Standard",Values:{0:"None",1:"Not Used",2:"AUXPIN",3:"EFI",4:"Harmonic Notch",5:"ESC Telemetry Motors Bitmask"}}},Fj={RPM2_ESC_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which support ESC rpm telemetry. RPM telemetry of the selected channels will be averaged",DisplayName:"Bitmask of ESC telemetry channels to average",User:"Advanced"},RPM2_MAX:{Description:"Maximum RPM to report. Only used on type = PWM.",DisplayName:"Maximum RPM",Increment:"1",User:"Standard"},RPM2_MIN:{Description:"Minimum RPM to report. Only used on type = PWM.",DisplayName:"Minimum RPM",Increment:"1",User:"Standard"},RPM2_MIN_QUAL:{Description:"Minimum data quality to be used",DisplayName:"Minimum Quality",Increment:"0.1",User:"Advanced"},RPM2_PIN:{Description:"Which pin to use. Only used on type = PWM.",DisplayName:"Input pin number",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},RPM2_SCALING:{Description:"Scaling factor between sensor reading and RPM.",DisplayName:"RPM scaling",Increment:"0.001",User:"Standard"},RPM2_TYPE:{Description:"What type of RPM sensor is connected",DisplayName:"RPM type",User:"Standard",Values:{0:"None",1:"Not Used",2:"AUXPIN",3:"EFI",4:"Harmonic Notch",5:"ESC Telemetry Motors Bitmask"}}},kj={RSSI_ANA_PIN:{Description:"Pin used to read the RSSI voltage or PWM value",DisplayName:"Receiver RSSI sensing pin",User:"Standard",Values:{8:"V5 Nano",11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS"}},RSSI_CHANNEL:{Description:"The channel number where RSSI will be output by the radio receiver (5 and above).",DisplayName:"Receiver RSSI channel number",Range:{high:"16",low:"0"},User:"Standard"},RSSI_CHAN_HIGH:{Description:"PWM value that the radio receiver will put on the RSSI_CHANNEL or RSSI_ANA_PIN when the signal strength is the strongest. Some radio receivers output inverted values so this value may be higher than RSSI_CHAN_LOW",DisplayName:"Receiver RSSI PWM high value",Range:{high:"2000",low:"0"},Units:"PWM",User:"Standard"},RSSI_CHAN_LOW:{Description:"PWM value that the radio receiver will put on the RSSI_CHANNEL or RSSI_ANA_PIN when the signal strength is the weakest. Some radio receivers output inverted values so this value may be lower than RSSI_CHAN_HIGH",DisplayName:"RSSI PWM low value",Range:{high:"2000",low:"0"},Units:"PWM",User:"Standard"},RSSI_PIN_HIGH:{Description:"RSSI pin's voltage received on the RSSI_ANA_PIN when the signal strength is the strongest. Some radio receivers put out inverted values so this value may be lower than RSSI_PIN_LOW. When using pin 103, the maximum value of the parameter is 3.3V.",DisplayName:"RSSI pin's highest voltage",Increment:"0.01",Range:{high:"5.0",low:"0"},Units:"V",User:"Standard"},RSSI_PIN_LOW:{Description:"RSSI pin's voltage received on the RSSI_ANA_PIN when the signal strength is the weakest. Some radio receivers put out inverted values so this value may be higher than RSSI_PIN_HIGH. When using pin 103, the maximum value of the parameter is 3.3V.",DisplayName:"RSSI pin's lowest voltage",Increment:"0.01",Range:{high:"5.0",low:"0"},Units:"V",User:"Standard"},RSSI_TYPE:{Description:"Radio Receiver RSSI type. If your radio receiver supports RSSI of some kind, set it here, then set its associated RSSI_XXXXX parameters, if any.",DisplayName:"RSSI Type",User:"Standard",Values:{0:"Disabled",1:"AnalogPin",2:"RCChannelPwmValue",3:"ReceiverProtocol",4:"PWMInputPin",5:"TelemetryRadioRSSI"}}},Bj={ACRO_TURN_RATE:{Description:"Acro mode turn rate maximum",DisplayName:"Acro mode turn rate maximum",Increment:"1",Range:{high:"360",low:"0"},Units:"deg/s",User:"Standard"},AUTO_KICKSTART:{Description:"X acceleration in meters/second/second to use to trigger the motor start in auto mode. If set to zero then auto throttle starts immediately when the mode switch happens, otherwise the rover waits for the X acceleration to go above this value before it will start the motor",DisplayName:"Auto mode trigger kickstart acceleration",Increment:"0.1",Range:{high:"20",low:"0"},Units:"m/s/s",User:"Standard"},AUTO_TRIGGER_PIN:{Description:"pin number to use to enable the throttle in auto mode. If set to -1 then don't use a trigger, otherwise this is a pin number which if held low in auto mode will enable the motor to run. If the switch is released while in AUTO then the motor will stop again. This can be used in combination with INITIAL_MODE to give a 'press button to start' rover with no receiver.",DisplayName:"Auto mode trigger pin",User:"Standard",Values:{0:"APM TriggerPin0",1:"APM TriggerPin1",2:"APM TriggerPin2",3:"APM TriggerPin3",4:"APM TriggerPin4",5:"APM TriggerPin5",6:"APM TriggerPin6",7:"APM TriggerPin7",8:"APM TriggerPin8",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},AUX_CH:{Description:"RC Channel to use for auxiliary functions including saving waypoints",DisplayName:"Auxiliary switch channel",User:"Advanced"},BAL_PITCH_MAX:{Description:"Pitch angle in degrees at 100% throttle",DisplayName:"BalanceBot Maximum Pitch",Increment:"0.1",Range:{high:"5",low:"0"},Units:"deg",User:"Standard"},BAL_PITCH_TRIM:{Description:"Balance Bot pitch trim for balancing. This offsets the tilt of the center of mass.",DisplayName:"Balance Bot pitch trim angle",Increment:"0.1",Range:{high:"2",low:"-2"},Units:"deg",User:"Standard"},CH7_OPTION:{Description:"What to do use channel 7 for",DisplayName:"Channel 7 option",User:"Standard",Values:{0:"Nothing",1:"SaveWaypoint",2:"LearnCruiseSpeed",3:"ArmDisarm",4:"Manual",5:"Acro",6:"Steering",7:"Hold",8:"Auto",9:"RTL",10:"SmartRTL",11:"Guided",12:"Loiter"}},CRASH_ANGLE:{Description:"Pitch/Roll angle limit in degrees for crash check. Zero disables check",DisplayName:"Crash Angle",Increment:"1",Range:{high:"60",low:"0"},Units:"deg",User:"Standard"},CRUISE_SPEED:{Description:"The target speed in auto missions.",DisplayName:"Target cruise speed in auto modes",Increment:"0.1",Range:{high:"100",low:"0"},Units:"m/s",User:"Standard"},CRUISE_THROTTLE:{Description:"The base throttle percentage to use in auto mode. The CRUISE_SPEED parameter controls the target speed, but the rover starts with the CRUISE_THROTTLE setting as the initial estimate for how much throttle is needed to achieve that speed. It then adjusts the throttle based on how fast the rover is actually going.",DisplayName:"Base throttle percentage in auto",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},FORMAT_VERSION:{Description:"This value is incremented when changes are made to the eeprom format",DisplayName:"Eeprom format version number",User:"Advanced"},FRAME_CLASS:{Description:"Frame Class",DisplayName:"Frame Class",User:"Standard",Values:{0:"Undefined",1:"Rover",2:"Boat",3:"BalanceBot"}},FRAME_TYPE:{Description:"Frame Type",DisplayName:"Frame Type",RebootRequired:"True",User:"Standard",Values:{0:"Undefined",1:"Omni3",2:"OmniX",3:"OmniPlus"}},FS_ACTION:{Description:"What to do on a failsafe event",DisplayName:"Failsafe Action",User:"Standard",Values:{0:"Nothing",1:"RTL",2:"Hold",3:"SmartRTL or RTL",4:"SmartRTL or Hold"}},FS_CRASH_CHECK:{Description:"What to do on a crash event. When enabled the rover will go to hold if a crash is detected.",DisplayName:"Crash check action",User:"Standard",Values:{0:"Disabled",1:"Hold",2:"HoldAndDisarm"}},FS_EKF_ACTION:{Description:"Controls the action that will be taken when an EKF failsafe is invoked",DisplayName:"EKF Failsafe Action",User:"Advanced",Values:{0:"Disabled",1:"Hold",2:"ReportOnly"}},FS_EKF_THRESH:{Description:"Allows setting the maximum acceptable compass and velocity variance",DisplayName:"EKF failsafe variance threshold",User:"Advanced",Values:{"0.6":"Strict","0.8":"Default","1.0":"Relaxed"}},FS_GCS_ENABLE:{Description:"Enable ground control station telemetry failsafe. When enabled the Rover will execute the FS_ACTION when it fails to receive MAVLink heartbeat packets for FS_TIMEOUT seconds.",DisplayName:"GCS failsafe enable",User:"Standard",Values:{0:"Disabled",1:"Enabled",2:"Enabled Continue with Mission in Auto"}},FS_OPTIONS:{Bitmask:{0:"Failsafe enabled in Hold mode"},Description:"Bitmask to enable Rover failsafe options",DisplayName:"Rover Failsafe Options",User:"Advanced",Values:{0:"None",1:"Failsafe enabled in Hold mode"}},FS_THR_ENABLE:{Description:"The throttle failsafe allows you to configure a software failsafe activated by a setting on the throttle input channel to a low value. This can be used to detect the RC transmitter going out of range. Failsafe will be triggered when the throttle channel goes below the FS_THR_VALUE for FS_TIMEOUT seconds.",DisplayName:"Throttle Failsafe Enable",User:"Standard",Values:{0:"Disabled",1:"Enabled",2:"Enabled Continue with Mission in Auto"}},FS_THR_VALUE:{Description:"The PWM level on the throttle channel below which throttle failsafe triggers.",DisplayName:"Throttle Failsafe Value",Increment:"1",Range:{high:"1100",low:"910"},User:"Standard"},FS_TIMEOUT:{Description:"The time in seconds that a failsafe condition must persist before the failsafe action is triggered",DisplayName:"Failsafe timeout",Increment:"0.5",Range:{high:"100",low:"1"},Units:"s",User:"Standard"},GCS_PID_MASK:{Bitmask:{0:"Steering",1:"Throttle",2:"Pitch",3:"Left Wheel",4:"Right Wheel",5:"Sailboat Heel"},Description:"bitmask of PIDs to send MAVLink PID_TUNING messages for",DisplayName:"GCS PID tuning mask",User:"Advanced",Values:{0:"None",1:"Steering",2:"Throttle",4:"Pitch",8:"Left Wheel",16:"Right Wheel",32:"Sailboat Heel"}},INITIAL_MODE:{Description:"This selects the mode to start in on boot. This is useful for when you want to start in AUTO mode on boot without a receiver. Usually used in combination with when AUTO_TRIGGER_PIN or AUTO_KICKSTART.",DisplayName:"Initial driving mode",User:"Advanced",Values:{0:"Manual",1:"Acro",3:"Steering",4:"Hold",5:"Loiter",6:"Follow",7:"Simple",10:"Auto",11:"RTL",12:"SmartRTL",15:"Guided"}},LOG_BITMASK:{Bitmask:{0:"ATTITUDE_FAST",1:"ATTITUDE_MED",2:"GPS",3:"PM",4:"THR",5:"NTUN",7:"IMU",8:"CMD",9:"CURRENT",10:"RANGEFINDER",11:"COMPASS",12:"CAMERA",13:"STEERING",14:"RC",15:"ARM/DISARM",19:"IMU_RAW",20:"VideoStabilization"},Description:"Bitmap of what log types to enable in on-board logger. This value is made up of the sum of each of the log types you want to be saved. On boards supporting microSD cards or other large block-storage devices it is usually best just to enable all log types by setting this to 65535. The individual bits are ATTITUDE_FAST=1, ATTITUDE_MEDIUM=2, GPS=4, PerformanceMonitoring=8, ControlTuning=16, NavigationTuning=32, Mode=64, IMU=128, Commands=256, Battery=512, Compass=1024, TECS=2048, Camera=4096, RCandServo=8192, Rangefinder=16384, Arming=32768, FullLogs=65535",DisplayName:"Log bitmask",User:"Advanced"},LOIT_RADIUS:{Description:"Vehicle will drift when within this distance of the target position",DisplayName:"Loiter radius",Increment:"1",Range:{high:"20",low:"0"},Units:"m",User:"Standard"},LOIT_SPEED_GAIN:{Description:"Determines how agressively LOITER tries to correct for drift from loiter point. Higher is faster but default should be acceptable.",DisplayName:"Loiter speed gain",Increment:"0.01",Range:{high:"5",low:"0"},User:"Advanced"},LOIT_TYPE:{Description:"Loiter behaviour when moving to the target point",DisplayName:"Loiter type",User:"Standard",Values:{0:"Forward or reverse to target point",1:"Always face bow towards target point",2:"Always face stern towards target point"}},MIS_DONE_BEHAVE:{Description:"Behaviour after mission completes",DisplayName:"Mission done behave",User:"Standard",Values:{0:"Hold",1:"Loiter",2:"Acro",3:"Manual"}},MODE1:{Description:"Driving mode for switch position 1 (910 to 1230 and above 2049)",DisplayName:"Mode1",User:"Standard",Values:{0:"Manual",1:"Acro",3:"Steering",4:"Hold",5:"Loiter",6:"Follow",7:"Simple",10:"Auto",11:"RTL",12:"SmartRTL",15:"Guided"}},MODE2:{Description:"Driving mode for switch position 2 (1231 to 1360)",DisplayName:"Mode2",User:"Standard",Values:{0:"Manual",1:"Acro",3:"Steering",4:"Hold",5:"Loiter",6:"Follow",7:"Simple",10:"Auto",11:"RTL",12:"SmartRTL",15:"Guided"}},MODE3:{Description:"Driving mode for switch position 3 (1361 to 1490)",DisplayName:"Mode3",User:"Standard",Values:{0:"Manual",1:"Acro",3:"Steering",4:"Hold",5:"Loiter",6:"Follow",7:"Simple",10:"Auto",11:"RTL",12:"SmartRTL",15:"Guided"}},MODE4:{Description:"Driving mode for switch position 4 (1491 to 1620)",DisplayName:"Mode4",User:"Standard",Values:{0:"Manual",1:"Acro",3:"Steering",4:"Hold",5:"Loiter",6:"Follow",7:"Simple",10:"Auto",11:"RTL",12:"SmartRTL",15:"Guided"}},MODE5:{Description:"Driving mode for switch position 5 (1621 to 1749)",DisplayName:"Mode5",User:"Standard",Values:{0:"Manual",1:"Acro",3:"Steering",4:"Hold",5:"Loiter",6:"Follow",7:"Simple",10:"Auto",11:"RTL",12:"SmartRTL",15:"Guided"}},MODE6:{Description:"Driving mode for switch position 6 (1750 to 2049)",DisplayName:"Mode6",User:"Standard",Values:{0:"Manual",1:"Acro",3:"Steering",4:"Hold",5:"Loiter",6:"Follow",7:"Simple",10:"Auto",11:"RTL",12:"SmartRTL",15:"Guided"}},MODE_CH:{Description:"RC Channel to use for driving mode control",DisplayName:"Mode channel",User:"Advanced"},PILOT_STEER_TYPE:{Description:"Pilot RC input interpretation",DisplayName:"Pilot input steering type",User:"Standard",Values:{0:"Default",1:"Two Paddles Input",2:"Direction reversed when backing up",3:"Direction unchanged when backing up"}},PIVOT_TURN_ANGLE:{Description:"Navigation angle threshold in degrees to switch to pivot steering. This allows you to setup a skid steering rover to turn on the spot in auto mode when the angle it needs to turn it greater than this angle. An angle of zero means to disable pivot turning. Note that you will probably also want to set a low value for WP_RADIUS to get neat turns.",DisplayName:"Pivot turn angle",Increment:"1",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PIVOT_TURN_RATE:{Description:"Desired pivot turn rate in deg/s.",DisplayName:"Pivot turn rate",Increment:"1",Range:{high:"360",low:"0"},Units:"deg/s",User:"Standard"},RST_SWITCH_CH:{Description:"RC channel to use to reset to last flight mode after geofence takeover.",DisplayName:"Reset Switch Channel",User:"Advanced"},RTL_SPEED:{Description:"Return-to-Launch speed default. If zero use WP_SPEED or CRUISE_SPEED.",DisplayName:"Return-to-Launch speed default",Increment:"0.1",Range:{high:"100",low:"0"},Units:"m/s",User:"Standard"},SIMPLE_TYPE:{Description:"Simple mode types",DisplayName:"Simple_Type",RebootRequired:"True",User:"Standard",Values:{0:"InitialHeading",1:"CardinalDirections"}},SPEED_MAX:{Description:"Maximum speed vehicle can obtain at full throttle. If 0, it will be estimated based on CRUISE_SPEED and CRUISE_THROTTLE.",DisplayName:"Speed maximum",Increment:"0.1",Range:{high:"30",low:"0"},Units:"m/s",User:"Advanced"},STICK_MIXING:{Description:"When enabled, this adds steering user stick input in auto modes, allowing the user to have some degree of control without changing modes.",DisplayName:"Stick Mixing",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},SYSID_ENFORCE:{Description:"This controls whether packets from other than the expected GCS system ID will be accepted",DisplayName:"GCS sysid enforcement",User:"Advanced",Values:{0:"NotEnforced",1:"Enforced"}},SYSID_MYGCS:{Description:"The identifier of the ground station in the MAVLink protocol. Don't change this unless you also modify the ground station to match.",DisplayName:"MAVLink ground station ID",Range:{high:"255",low:"1"},User:"Advanced"},SYSID_THISMAV:{Description:"Allows setting an individual MAVLink system id for this vehicle to distinguish it from others on the same network",DisplayName:"MAVLink system ID of this vehicle",Range:{high:"255",low:"1"},User:"Advanced"},TELEM_DELAY:{Description:"The amount of time (in seconds) to delay radio telemetry to prevent an Xbee bricking on power up",DisplayName:"Telemetry startup delay",Increment:"1",Range:{high:"30",low:"0"},Units:"s",User:"Standard"},TURN_RADIUS:{Description:"Turn radius of vehicle in meters while at low speeds. Lower values produce tighter turns in steering mode",DisplayName:"Turn radius of vehicle",Increment:"0.1",Range:{high:"10",low:"0"},Units:"m",User:"Standard"}},zj={SAIL_ANGLE_IDEAL:{Description:"Ideal angle between sail and apparent wind",DisplayName:"Sail ideal angle",Increment:"1",Range:{high:"90",low:"0"},Units:"deg",User:"Standard"},SAIL_ANGLE_MAX:{Description:"Mainsheet loose, angle between centerline and boom. For direct-control rotating masts, the rotation angle at SERVOx_MAX/_MIN; for rotating masts, this value can exceed 90 degrees if the linkages can physically rotate the mast past that angle.",DisplayName:"Sail max angle",Increment:"1",Range:{high:"90",low:"0"},Units:"deg",User:"Standard"},SAIL_ANGLE_MIN:{Description:"Mainsheet tight, angle between centerline and boom",DisplayName:"Sail min angle",Increment:"1",Range:{high:"90",low:"0"},Units:"deg",User:"Standard"},SAIL_ENABLE:{Description:"This enables Sailboat functionality",DisplayName:"Enable Sailboat",RebootRequired:"True",User:"Standard",Values:{0:"Disable",1:"Enable"}},SAIL_HEEL_MAX:{Description:"When in auto sail trim modes the heel will be limited to this value using PID control",DisplayName:"Sailing maximum heel angle",Increment:"1",Range:{high:"90",low:"0"},Units:"deg",User:"Standard"},SAIL_LOIT_RADIUS:{Description:"When in sailing modes the vehicle will keep moving within this loiter radius",DisplayName:"Loiter radius",Increment:"1",Range:{high:"20",low:"0"},Units:"m",User:"Standard"},SAIL_NO_GO_ANGLE:{Description:"The typical closest angle to the wind the vehicle will sail at. the vehicle will sail at this angle when going upwind",DisplayName:"Sailing no go zone angle",Increment:"1",Range:{high:"90",low:"0"},Units:"deg",User:"Standard"},SAIL_WNDSPD_MIN:{Description:"Sailboat minimum wind speed to continue sail in, at lower wind speeds the sailboat will motor if one is fitted",DisplayName:"Sailboat minimum wind speed to sail in",Increment:"0.1",Range:{high:"5",low:"0"},Units:"m/s",User:"Standard"},SAIL_XTRACK_MAX:{Description:"The sail boat will tack when it reaches this cross track error, defines a corridor of 2 times this value wide, 0 disables",DisplayName:"Sailing vehicle max cross track error",Increment:"1",Range:{high:"25",low:"5"},Units:"m",User:"Standard"}},Zj={SCHED_DEBUG:{Description:'Set to non-zero to enable scheduler debug messages. When set to show "Slips" the scheduler will display a message whenever a scheduled task is delayed due to too much CPU load. When set to ShowOverruns the scheduled will display a message whenever a task takes longer than the limit promised in the task table.',DisplayName:"Scheduler debug level",User:"Advanced",Values:{0:"Disabled",2:"ShowSlips",3:"ShowOverruns"}},SCHED_LOOP_RATE:{Description:"This controls the rate of the main control loop in Hz. This should only be changed by developers. This only takes effect on restart. Values over 400 are considered highly experimental.",DisplayName:"Scheduling main loop rate",RebootRequired:"True",User:"Advanced",Values:{50:"50Hz",100:"100Hz",200:"200Hz",250:"250Hz",300:"300Hz",400:"400Hz"}},SCHED_OPTIONS:{Bitmask:{0:"Enable per-task perf info"},Description:"This controls optional aspects of the scheduler.",DisplayName:"Scheduling options",User:"Advanced"}},Gj={SCR_DEBUG_OPTS:{Bitmask:{0:"No Scripts to run message if all scripts have stopped",1:"Runtime messages for memory usage and execution time",2:"Suppress logging scripts to dataflash",3:"log runtime memory usage and execution time"},Description:"Debugging options",DisplayName:"Scripting Debug Level",User:"Advanced"},SCR_DIR_DISABLE:{Bitmask:{0:"ROMFS",1:"APM/scripts"},Description:"This will stop scripts being loaded from the given locations",DisplayName:"Directory disable",RebootRequired:"True",User:"Advanced"},SCR_ENABLE:{Description:"Controls if scripting is enabled",DisplayName:"Enable Scripting",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Lua Scripts"}},SCR_HEAP_SIZE:{Description:"Amount of memory available for scripting",DisplayName:"Scripting Heap Size",Increment:"1024",Range:{high:"1048576",low:"1024"},RebootRequired:"True",User:"Advanced"},SCR_USER1:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter1",User:"Standard"},SCR_USER2:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter2",User:"Standard"},SCR_USER3:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter3",User:"Standard"},SCR_USER4:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter4",User:"Standard"},SCR_USER5:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter5",User:"Standard"},SCR_USER6:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter6",User:"Standard"},SCR_VM_I_COUNT:{Description:"The number virtual machine instructions that can be run before considering a script to have taken an excessive amount of time",DisplayName:"Scripting Virtual Machine Instruction Count",Increment:"10000",Range:{high:"1000000",low:"1000"},User:"Advanced"}},Wj={SERIAL0_BAUD:{Description:"The baud rate used on the USB console. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial0 baud rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL0_PROTOCOL:{Description:"Control what protocol to use on the console. ",DisplayName:"Console protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVlink1",2:"MAVLink2"}},SERIAL1_BAUD:{Description:"The baud rate used on the Telem1 port. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Telem1 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL1_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire. The Swap option allows the RX and TX pins to be swapped on STM32F7 based boards.",DisplayName:"Telem1 options",RebootRequired:"True",User:"Advanced"},SERIAL1_PROTOCOL:{Description:"Control what protocol to use on the Telem1 port. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Telem1 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort","-1":"None"}},SERIAL2_BAUD:{Description:"The baud rate of the Telem2 port. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Telemetry 2 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL2_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Telem2 options",RebootRequired:"True",User:"Advanced"},SERIAL2_PROTOCOL:{Description:"Control what protocol to use on the Telem2 port. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Telemetry 2 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort","-1":"None"}},SERIAL3_BAUD:{Description:"The baud rate used for the Serial 3 (GPS). Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 3 (GPS) Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL3_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial3 options",RebootRequired:"True",User:"Advanced"},SERIAL3_PROTOCOL:{Description:"Control what protocol Serial 3 (GPS) should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial 3 (GPS) protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort","-1":"None"}},SERIAL4_BAUD:{Description:"The baud rate used for Serial4. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 4 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL4_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial4 options",RebootRequired:"True",User:"Advanced"},SERIAL4_PROTOCOL:{Description:"Control what protocol Serial4 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial4 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort","-1":"None"}},SERIAL5_BAUD:{Description:"The baud rate used for Serial5. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 5 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL5_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial5 options",RebootRequired:"True",User:"Advanced"},SERIAL5_PROTOCOL:{Description:"Control what protocol Serial5 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial5 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort","-1":"None"}},SERIAL6_BAUD:{Description:"The baud rate used for Serial6. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 6 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL6_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial6 options",RebootRequired:"True",User:"Advanced"},SERIAL6_PROTOCOL:{Description:"Control what protocol Serial6 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial6 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort","-1":"None"}},SERIAL7_BAUD:{Description:"The baud rate used for Serial7. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 7 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL7_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial7 options",RebootRequired:"True",User:"Advanced"},SERIAL7_PROTOCOL:{Description:"Control what protocol Serial7 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial7 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort","-1":"None"}},SERIAL8_BAUD:{Description:"The baud rate used for Serial8. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 8 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL8_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial8 options",RebootRequired:"True",User:"Advanced"},SERIAL8_PROTOCOL:{Description:"Control what protocol Serial8 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial8 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort","-1":"None"}},SERIAL9_BAUD:{Description:"The baud rate used for Serial8. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 9 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL9_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO",12:"Ignore Streamrate"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial9 options",RebootRequired:"True",User:"Advanced"},SERIAL9_PROTOCOL:{Description:"Control what protocol Serial9 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial9 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire VTX",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire",39:"Torqeedo",40:"AIS",41:"CoDevESC",42:"DisplayPort","-1":"None"}},SERIAL_PASS1:{Description:"This sets one side of pass-through between two serial ports. Once both sides are set then all data received on either port will be passed to the other port",DisplayName:"Serial passthru first port",User:"Advanced",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},SERIAL_PASS2:{Description:"This sets one side of pass-through between two serial ports. Once both sides are set then all data received on either port will be passed to the other port",DisplayName:"Serial passthru second port",User:"Advanced",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},SERIAL_PASSTIMO:{Description:"This sets a timeout for serial pass-through in seconds. When the pass-through is enabled by setting the SERIAL_PASS1 and SERIAL_PASS2 parameters then it remains in effect until no data comes from the first port for SERIAL_PASSTIMO seconds. This allows the port to revent to its normal usage (such as MAVLink connection to a GCS) when it is no longer needed. A value of 0 means no timeout.",DisplayName:"Serial passthru timeout",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"}},Xj={SERVO_DSHOT_ESC:{Description:"This sets the DShot ESC type for all outputs. The ESC type affects the range of DShot commands available. None means that no dshot commands will be executed.",DisplayName:"Servo DShot ESC type",User:"Advanced",Values:{0:"None",1:"BLHeli32/Kiss",2:"BLHeli_S"}},SERVO_DSHOT_RATE:{Description:"This sets the DShot output rate for all outputs as a multiple of the loop rate. 0 sets the output rate to be fixed at 1Khz for low loop rates. This value should never be set below 500Hz.",DisplayName:"Servo DShot output rate",User:"Advanced",Values:{0:"1Khz",1:"loop-rate",2:"double loop-rate",3:"triple loop-rate",4:"quadruple loop rate"}},SERVO_GPIO_MASK:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"This sets a bitmask of outputs which will be available as GPIOs. Any auxillary output with either the function set to -1 or with the corresponding bit set in this mask will be available for use as a GPIO pin",DisplayName:"Servo GPIO mask",RebootRequired:"True",User:"Advanced"},SERVO_RATE:{Description:"This sets the default output rate in Hz for all outputs.",DisplayName:"Servo default output rate",Range:{high:"400",low:"25"},Units:"Hz",User:"Advanced"}},Yj={SERVO10_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO10_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO10_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO10_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO10_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},$j={SERVO11_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO11_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO11_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO11_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO11_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},qj={SERVO12_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO12_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO12_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO12_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO12_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},Kj={SERVO13_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO13_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO13_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO13_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO13_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},jj={SERVO14_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO14_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO14_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO14_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO14_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},Qj={SERVO15_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO15_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO15_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO15_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO15_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},Jj={SERVO16_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO16_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO16_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO16_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO16_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},eQ={SERVO1_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO1_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO1_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO1_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO1_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},tQ={SERVO2_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO2_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO2_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO2_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO2_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},iQ={SERVO3_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO3_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO3_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO3_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO3_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},aQ={SERVO4_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO4_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO4_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO4_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO4_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},rQ={SERVO5_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO5_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO5_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO5_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO5_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},nQ={SERVO6_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO6_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO6_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO6_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO6_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},oQ={SERVO7_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO7_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO7_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO7_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO7_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},sQ={SERVO8_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO8_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO8_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO8_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO8_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},lQ={SERVO9_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",22:"SprayerPump",23:"SprayerSpinner",26:"GroundSteering",28:"Gripper",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",70:"Throttle",73:"ThrottleLeft",74:"ThrottleRight",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation",138:"Alarm",139:"Alarm Inverted","-1":"GPIO"}},SERVO9_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO9_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO9_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO9_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},cQ={SERVO_BLH_3DMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which are dynamically reversible. This is used to configure ESCs in '3D' mode, allowing for the motor to spin in either direction",DisplayName:"BLHeli bitmask of 3D channels",RebootRequired:"True",User:"Advanced"},SERVO_BLH_AUTO:{Description:"If set to 1 this auto-enables BLHeli pass-thru support for all multicopter motors",DisplayName:"BLHeli pass-thru auto-enable for multicopter motors",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},SERVO_BLH_BDMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which support bi-directional dshot. This is used for ESCs which have firmware that supports bi-directional dshot allowing fast rpm telemetry values to be returned for the harmonic notch.",DisplayName:"BLHeli bitmask of bi-directional dshot channels",RebootRequired:"True",User:"Advanced"},SERVO_BLH_DEBUG:{Description:"When set to 1 this enabled verbose debugging output over MAVLink when the blheli protocol is active. This can be used to diagnose failures.",DisplayName:"BLHeli debug level",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},SERVO_BLH_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Enable of BLHeli pass-thru servo protocol support to specific channels. This mask is in addition to motors enabled using SERVO_BLH_AUTO (if any)",DisplayName:"BLHeli Channel Bitmask",RebootRequired:"True",User:"Advanced"},SERVO_BLH_OTYPE:{Description:"When set to a non-zero value this overrides the output type for the output channels given by SERVO_BLH_MASK. This can be used to enable DShot on outputs that are not part of the multicopter motors group.",DisplayName:"BLHeli output type override",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"OneShot",2:"OneShot125",3:"Brushed",4:"DShot150",5:"DShot300",6:"DShot600",7:"DShot1200"}},SERVO_BLH_POLES:{Description:"This allows calculation of true RPM from ESC's eRPM. The default is 14.",DisplayName:"BLHeli Motor Poles",Range:{high:"127",low:"1"},RebootRequired:"True",User:"Advanced"},SERVO_BLH_PORT:{Description:"This sets the mavlink channel to use for blheli pass-thru. The channel number is determined by the number of serial ports configured to use mavlink. So 0 is always the console, 1 is the next serial port using mavlink, 2 the next after that and so on.",DisplayName:"Control port",User:"Advanced",Values:{0:"Console",1:"Mavlink Serial Channel1",2:"Mavlink Serial Channel2",3:"Mavlink Serial Channel3",4:"Mavlink Serial Channel4",5:"Mavlink Serial Channel5"}},SERVO_BLH_RVMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which are reversed. This is used to configure ESCs in reversed mode",DisplayName:"BLHeli bitmask of reversed channels",RebootRequired:"True",User:"Advanced"},SERVO_BLH_TEST:{Description:"Setting SERVO_BLH_TEST to a motor number enables an internal test of the BLHeli ESC protocol to the corresponding ESC. The debug output is displayed on the USB console.",DisplayName:"BLHeli internal interface test",User:"Advanced",Values:{0:"Disabled",1:"TestMotor1",2:"TestMotor2",3:"TestMotor3",4:"TestMotor4",5:"TestMotor5",6:"TestMotor6",7:"TestMotor7",8:"TestMotor8"}},SERVO_BLH_TMOUT:{Description:"This sets the inactivity timeout for the BLHeli protocol in seconds. If no packets are received in this time normal MAVLink operations are resumed. A value of 0 means no timeout",DisplayName:"BLHeli protocol timeout",Range:{high:"300",low:"0"},Units:"s",User:"Standard"},SERVO_BLH_TRATE:{Description:"This sets the rate in Hz for requesting telemetry from ESCs. It is the rate per ESC. Setting to zero disables telemetry requests",DisplayName:"BLHeli telemetry rate",Range:{high:"500",low:"0"},Units:"Hz",User:"Standard"}},dQ={SERVO_FTW_MASK:{Bitmask:{0:"SERVO1",1:"SERVO2",2:"SERVO3",3:"SERVO4",4:"SERVO5",5:"SERVO6",6:"SERVO7",7:"SERVO8",8:"SERVO9",9:"SERVO10",10:"SERVO11",11:"SERVO12"},Description:"Servo channel mask specifying FETtec ESC output.",DisplayName:"Servo channel output bitmask",RebootRequired:"True",User:"Standard"},SERVO_FTW_POLES:{Description:"Number of motor electrical poles",DisplayName:"Nr. electrical poles",Range:{high:"50",low:"2"},User:"Standard"},SERVO_FTW_RVMASK:{Bitmask:{0:"SERVO1",1:"SERVO2",2:"SERVO3",3:"SERVO4",4:"SERVO5",5:"SERVO6",6:"SERVO7",7:"SERVO8",8:"SERVO9",9:"SERVO10",10:"SERVO11",11:"SERVO12"},Description:"Servo channel mask to reverse rotation of FETtec ESC outputs.",DisplayName:"Servo channel reverse rotation bitmask",User:"Standard"}},CQ={SERVO_ROB_POSMAX:{Description:"Position maximum at servo max value. This should be within the position control range of the servos, normally 0 to 4095",DisplayName:"Robotis servo position max",Range:{high:"4095",low:"0"},User:"Standard"},SERVO_ROB_POSMIN:{Description:"Position minimum at servo min value. This should be within the position control range of the servos, normally 0 to 4095",DisplayName:"Robotis servo position min",Range:{high:"4095",low:"0"},User:"Standard"}},mQ={SERVO_SBUS_RATE:{Description:"This sets the SBUS output frame rate in Hz.",DisplayName:"SBUS default output rate",Range:{high:"250",low:"25"},Units:"Hz",User:"Advanced"}},uQ={SERVO_VOLZ_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Enable of volz servo protocol to specific channels",DisplayName:"Channel Bitmask",User:"Standard"}},hQ={SPRAY_ENABLE:{Description:"Allows you to enable (1) or disable (0) the sprayer",DisplayName:"Sprayer enable/disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},SPRAY_PUMP_MIN:{Description:"Minimum pump speed expressed as a percentage",DisplayName:"Pump speed minimum",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},SPRAY_PUMP_RATE:{Description:"Desired pump speed when traveling 1m/s expressed as a percentage",DisplayName:"Pump speed",Range:{high:"100",low:"0"},Units:"%",User:"Standard"},SPRAY_SPEED_MIN:{Description:"Speed minimum at which we will begin spraying",DisplayName:"Speed minimum",Range:{high:"1000",low:"0"},Units:"cm/s",User:"Standard"},SPRAY_SPINNER:{Description:"Spinner's rotation speed in PWM (a higher rate will disperse the spray over a wider area horizontally)",DisplayName:"Spinner rotation speed",Range:{high:"2000",low:"1000"},Units:"ms",User:"Standard"}},pQ={SR0_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},fQ={SR1_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},VQ={SR2_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},LQ={SR3_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},HQ={SR4_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},MQ={SR5_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},gQ={SR6_ADSB:{Description:"ADSB stream rate to ground station",DisplayName:"ADSB stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_EXTRA1:{Description:"Extra data type 1 stream rate to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_EXTRA2:{Description:"Extra data type 2 stream rate to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_EXTRA3:{Description:"Extra data type 3 stream rate to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_EXT_STAT:{Description:"Extended status stream rate to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_PARAMS:{Description:"Parameter stream rate to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_POSITION:{Description:"Position stream rate to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_RAW_CTRL:{Description:"Raw Control stream rate to ground station",DisplayName:"Raw Control stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_RAW_SENS:{Description:"Raw sensor stream rate to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_RC_CHAN:{Description:"RC Channel stream rate to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},AQ={SRTL_ACCURACY:{Description:"SmartRTL accuracy. The minimum distance between points.",DisplayName:"SmartRTL accuracy",Range:{high:"10",low:"0"},Units:"m",User:"Advanced"},SRTL_OPTIONS:{Bitmask:{2:"Ignore pilot yaw"},Description:"Bitmask of SmartRTL options.",DisplayName:"SmartRTL options",User:"Standard"},SRTL_POINTS:{Description:"SmartRTL maximum number of points on path. Set to 0 to disable SmartRTL. 100 points consumes about 3k of memory.",DisplayName:"SmartRTL maximum number of points on path",Range:{high:"500",low:"0"},RebootRequired:"True",User:"Advanced"}},vQ={STAT_BOOTCNT:{Description:"Number of times board has been booted",DisplayName:"Boot Count",ReadOnly:"True",User:"Standard"},STAT_FLTTIME:{Description:"Total FlightTime (seconds)",DisplayName:"Total FlightTime",ReadOnly:"True",Units:"s",User:"Standard"},STAT_RESET:{Description:"Seconds since January 1st 2016 (Unix epoch+1451606400) since statistics reset (set to 0 to reset statistics)",DisplayName:"Statistics Reset Time",ReadOnly:"True",Units:"s",User:"Standard"},STAT_RUNTIME:{Description:"Total time autopilot has run",DisplayName:"Total RunTime",ReadOnly:"True",Units:"s",User:"Standard"}},_Q={TRQD_DE_PIN:{Description:"Pin number connected to RS485 to Serial converter's DE pin. -1 to use serial port's CTS pin if available",DisplayName:"Torqeedo DE pin",RebootRequired:"True",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},TRQD_DIR_DELAY:{Description:"Torqeedo direction change delay. Output will remain at zero for this many seconds when transitioning between forward and backwards rotation",DisplayName:"Torqeedo Direction Change Delay",Increment:"0.1",Range:{high:"5",low:"0"},Units:"s",User:"Advanced"},TRQD_ONOFF_PIN:{Description:"Pin number connected to Torqeedo's on/off pin. -1 to use serial port's RTS pin if available",DisplayName:"Torqeedo ON/Off pin",RebootRequired:"True",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},TRQD_OPTIONS:{Bitmask:{0:"Log",1:"Send debug to GCS"},Description:"Torqeedo Options Bitmask",DisplayName:"Torqeedo Options",User:"Advanced"},TRQD_POWER:{Description:"Torqeedo motor power. Only applied when using motor connection type (e.g. TRQD_TYPE=2)",DisplayName:"Torqeedo Motor Power",Increment:"1",Range:{high:"100",low:"0"},Units:"%",User:"Advanced"},TRQD_SLEW_TIME:{Description:"Torqeedo slew rate specified as the minimum number of seconds required to increase the throttle from 0 to 100%. Higher values cause a slower response, lower values cause a faster response. A value of zero disables the limit",DisplayName:"Torqeedo Throttle Slew Time",Increment:"0.1",Range:{high:"5",low:"0"},Units:"s",User:"Advanced"},TRQD_TYPE:{Description:"Torqeedo connection type",DisplayName:"Torqeedo connection type",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Tiller",2:"Motor"}}},SQ={VISO_DELAY_MS:{Description:"Visual odometry sensor delay relative to inertial measurements",DisplayName:"Visual odometry sensor delay",Range:{high:"250",low:"0"},Units:"ms",User:"Advanced"},VISO_ORIENT:{Description:"Visual odometery camera orientation",DisplayName:"Visual odometery camera orientation",User:"Advanced",Values:{0:"Forward",2:"Right",4:"Back",6:"Left",24:"Up",25:"Down"}},VISO_POS_M_NSE:{Description:"Visual odometry position measurement noise minimum (meters). This value will be used if the sensor provides a lower noise value (or no noise value)",DisplayName:"Visual odometry position measurement noise ",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},VISO_POS_X:{Description:"X position of the camera in body frame. Positive X is forward of the origin.",DisplayName:"Visual odometry camera X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_POS_Y:{Description:"Y position of the camera in body frame. Positive Y is to the right of the origin.",DisplayName:"Visual odometry camera Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_POS_Z:{Description:"Z position of the camera in body frame. Positive Z is down from the origin.",DisplayName:"Visual odometry camera Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_SCALE:{Description:"Visual odometry scaling factor applied to position estimates from sensor",DisplayName:"Visual odometry scaling factor",User:"Advanced"},VISO_TYPE:{Description:"Visual odometry camera connection type",DisplayName:"Visual odometry camera connection type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"MAVLink",2:"IntelT265",3:"VOXL(ModalAI)"}},VISO_VEL_M_NSE:{Description:"Visual odometry velocity measurement noise in m/s",DisplayName:"Visual odometry velocity measurement noise",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},VISO_YAW_M_NSE:{Description:"Visual odometry yaw measurement noise minimum (radians), This value will be used if the sensor provides a lower noise value (or no noise value)",DisplayName:"Visual odometry yaw measurement noise",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},DQ={VTX_BAND:{Description:"Video Transmitter Band",DisplayName:"Video Transmitter Band",User:"Standard",Values:{0:"Band A",1:"Band B",2:"Band E",3:"Airwave",4:"RaceBand",5:"Low RaceBand"}},VTX_CHANNEL:{Description:"Video Transmitter Channel",DisplayName:"Video Transmitter Channel",Range:{high:"7",low:"0"},User:"Standard"},VTX_ENABLE:{Description:"Toggles the Video Transmitter on and off",DisplayName:"Is the Video Transmitter enabled or not",Values:{0:"Disable",1:"Enable"}},VTX_FREQ:{Description:"Video Transmitter Frequency. The frequency is derived from the setting of BAND and CHANNEL",DisplayName:"Video Transmitter Frequency",Range:{high:"6000",low:"5000"},ReadOnly:"True",User:"Standard"},VTX_MAX_POWER:{Description:"Video Transmitter Maximum Power Level. Different VTXs support different power levels, this prevents the power aux switch from requesting too high a power level. The switch supports 6 power levels and the selected power will be a subdivision between 0 and this setting.",DisplayName:"Video Transmitter Max Power Level",Range:{high:"1000",low:"25"}},VTX_OPTIONS:{Bitmask:{0:"Pitmode",1:"Pitmode until armed",2:"Pitmode when disarmed",3:"Unlocked",4:"Add leading zero byte to requests"},Description:"Video Transmitter Options. Pitmode puts the VTX in a low power state. Unlocked enables certain restricted frequencies and power levels. Do not enable the Unlocked option unless you have appropriate permissions in your jurisdiction to transmit at high power levels.",DisplayName:"Video Transmitter Options",User:"Advanced"},VTX_POWER:{Description:"Video Transmitter Power Level. Different VTXs support different power levels, the power level chosen will be rounded down to the nearest supported power level",DisplayName:"Video Transmitter Power Level",Range:{high:"1000",low:"1"}}},yQ={WENC2_CPR:{Description:"WheelEncoder 2 counts per full revolution of the wheel",DisplayName:"WheelEncoder 2 counts per revolution",Increment:"1",User:"Standard"},WENC2_PINA:{Description:"Second Encoder Input Pin A",DisplayName:"Second Encoder Input Pin A",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},WENC2_PINB:{Description:"Second Encoder Input Pin B",DisplayName:"Second Encoder Input Pin B",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},WENC2_POS_X:{Description:"X position of the center of the second wheel in body frame. Positive X is forward of the origin.",DisplayName:"Wheel2's X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Standard"},WENC2_POS_Y:{Description:"Y position of the center of the second wheel in body frame. Positive Y is to the right of the origin.",DisplayName:"Wheel2's Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Standard"},WENC2_POS_Z:{Description:"Z position of the center of the second wheel in body frame. Positive Z is down from the origin.",DisplayName:"Wheel2's Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Standard"},WENC2_RADIUS:{Description:"Wheel2's radius",DisplayName:"Wheel2's radius",Increment:"0.001",Units:"m",User:"Standard"},WENC2_TYPE:{Description:"What type of WheelEncoder sensor is connected",DisplayName:"Second WheelEncoder type",User:"Standard",Values:{0:"None",1:"Quadrature",10:"SITL Quadrature"}},WENC_CPR:{Description:"WheelEncoder counts per full revolution of the wheel",DisplayName:"WheelEncoder counts per revolution",Increment:"1",User:"Standard"},WENC_PINA:{Description:"Input Pin A",DisplayName:"Input Pin A",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},WENC_PINB:{Description:"Input Pin B",DisplayName:"Input Pin B",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},WENC_POS_X:{Description:"X position of the center of the wheel in body frame. Positive X is forward of the origin.",DisplayName:"Wheel's X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Standard"},WENC_POS_Y:{Description:"Y position of the center of the wheel in body frame. Positive Y is to the right of the origin.",DisplayName:"Wheel's Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Standard"},WENC_POS_Z:{Description:"Z position of the center of the wheel in body frame. Positive Z is down from the origin.",DisplayName:"Wheel's Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Standard"},WENC_RADIUS:{Description:"Wheel radius",DisplayName:"Wheel radius",Increment:"0.001",Units:"m",User:"Standard"},WENC_TYPE:{Description:"What type of WheelEncoder is connected",DisplayName:"WheelEncoder type",User:"Standard",Values:{0:"None",1:"Quadrature",10:"SITL Quadrature"}}},RQ={WNDVN_CAL:{Description:"Start wind vane calibration by setting this to 1 or 2",DisplayName:"Wind vane calibration start",User:"Standard",Values:{0:"None",1:"Calibrate direction",2:"Calibrate speed"}},WNDVN_DIR_DZ:{Description:"Wind vane deadzone when using analog sensor",DisplayName:"Wind vane deadzone when using analog sensor",Increment:"1",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},WNDVN_DIR_FILT:{Description:"apparent Wind vane direction low pass filter frequency, a value of -1 disables filter",DisplayName:"apparent Wind vane direction low pass filter frequency",Units:"Hz",User:"Standard"},WNDVN_DIR_OFS:{Description:"Angle offset when analog windvane is indicating a headwind, ie 0 degress relative to vehicle",DisplayName:"Wind vane headwind offset",Increment:"1",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},WNDVN_DIR_PIN:{Description:"Analog input pin to read as wind vane direction",DisplayName:"Wind vane analog voltage pin for direction",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS"}},WNDVN_DIR_V_MAX:{Description:"Maximum voltage supplied by analog wind vane. When using pin 103, the maximum value of the parameter is 3.3V.",DisplayName:"Wind vane voltage maximum",Increment:"0.01",Range:{high:"5.0",low:"0"},Units:"V",User:"Standard"},WNDVN_DIR_V_MIN:{Description:"Minimum voltage supplied by analog wind vane. When using pin 103, the maximum value of the parameter is 3.3V.",DisplayName:"Wind vane voltage minimum",Increment:"0.01",Range:{high:"5.0",low:"0"},Units:"V",User:"Standard"},WNDVN_SPEED_FILT:{Description:"apparent Wind speed low pass filter frequency, a value of -1 disables filter",DisplayName:"apparent wind speed low pass filter frequency",Units:"Hz",User:"Standard"},WNDVN_SPEED_MIN:{Description:"Wind vane direction will be ignored when apparent wind speeds are below this value (if wind speed sensor is present). If the apparent wind is consistently below this value the vane will not work",DisplayName:"Wind vane cut off wind speed",Increment:"0.1",Range:{high:"5",low:"0"},Units:"m/s",User:"Standard"},WNDVN_SPEED_OFS:{Description:"Wind sensor analog voltage offset at zero wind speed",DisplayName:"Wind speed sensor analog voltage offset",Increment:"0.01",Range:{high:"3.3",low:"0"},Units:"V",User:"Standard"},WNDVN_SPEED_PIN:{Description:"Wind speed analog speed input pin for Modern Devices Wind Sensor rev. p",DisplayName:"Wind vane speed sensor analog pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS"}},WNDVN_SPEED_TYPE:{Description:"Wind speed sensor type",DisplayName:"Wind speed sensor Type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"Airspeed library",2:"Modern Devices Wind Sensor",3:"RPM library",4:"NMEA",10:"SITL true",11:"SITL apparent"}},WNDVN_TEMP_PIN:{Description:"Wind speed sensor analog temp input pin for Modern Devices Wind Sensor rev. p, set to -1 to diasble temp readings",DisplayName:"Wind vane speed sensor analog temp pin",User:"Standard",Values:{11:"Pixracer",13:"Pixhawk ADC4",14:"Pixhawk ADC3",15:"Pixhawk ADC6/Pixhawk2 ADC",50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6",103:"Pixhawk SBUS"}},WNDVN_TRUE_FILT:{Description:"True speed and direction low pass filter frequency, a value of -1 disables filter",DisplayName:"True speed and direction low pass filter frequency",Units:"Hz",User:"Standard"},WNDVN_TYPE:{Description:"Wind Vane type",DisplayName:"Wind Vane Type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"Heading when armed",2:"RC input offset heading when armed",3:"Analog",4:"NMEA",10:"SITL true",11:"SITL apparent"}}},bQ={WP_OVERSHOOT:{Description:"Waypoint overshoot maximum in meters. The vehicle will attempt to stay within this many meters of the track as it completes one waypoint and moves to the next.",DisplayName:"Waypoint overshoot maximum",Increment:"0.1",Range:{high:"10",low:"0"},Units:"m",User:"Standard"},WP_PIVOT_ANGLE:{Description:"Pivot when the difference between the vehicle's heading and its target heading is more than this many degrees. Set to zero to disable pivot turns. Note: This parameter should be greater than 10 degrees for pivot turns to work.",DisplayName:"Waypoint Pivot Angle",Increment:"1",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},WP_PIVOT_DELAY:{Description:"Waiting time after pivot turn",DisplayName:"Delay after pivot turn",Increment:"0.1",Range:{high:"60",low:"0"},Units:"s",User:"Standard"},WP_PIVOT_RATE:{Description:"Turn rate during pivot turns",DisplayName:"Waypoint Pivot Turn Rate",Increment:"1",Range:{high:"360",low:"0"},Units:"deg/s",User:"Standard"},WP_RADIUS:{Description:"The distance in meters from a waypoint when we consider the waypoint has been reached. This determines when the vehicle will turn toward the next waypoint.",DisplayName:"Waypoint radius",Increment:"0.1",Range:{high:"100",low:"0"},Units:"m",User:"Standard"},WP_SPEED:{Description:"Waypoint speed default",DisplayName:"Waypoint speed default",Increment:"0.1",Range:{high:"100",low:"0"},Units:"m/s",User:"Standard"},WP_SPEED_MIN:{Description:"Vehicle will not slow below this speed for corners. Should be set to boat's plane speed. Does not apply to pivot turns.",DisplayName:"Waypoint speed minimum",Increment:"0.1",Range:{high:"100",low:"0"},Units:"m/s",User:"Standard"}},NQ={WRC2_RATE_D:{Description:"Wheel rate control D gain. Compensates for short-term change in desired rate vs actual",DisplayName:"Wheel rate control D gain",Range:{high:"0.400",low:"0.000"},User:"Standard"},WRC2_RATE_FF:{Description:"Wheel rate control feed forward gain. Desired rate (in radians/sec) is multiplied by this constant and output to output (in the range -1 to +1)",DisplayName:"Wheel rate control feed forward gain",Range:{high:"2.000",low:"0.100"},User:"Standard"},WRC2_RATE_FILT:{Description:"Wheel rate control input filter. Lower values reduce noise but add delay.",DisplayName:"Wheel rate control filter frequency",Range:{high:"100.000",low:"1.000"},Units:"Hz",User:"Standard"},WRC2_RATE_FLTD:{Description:"Wheel rate control derivative frequency in Hz",DisplayName:"Wheel rate control derivative frequency in Hz",Increment:"1",Range:{high:"50",low:"1"},Units:"Hz",User:"Standard"},WRC2_RATE_FLTE:{Description:"Wheel rate control error frequency in Hz",DisplayName:"Wheel rate control error frequency in Hz",Increment:"1",Range:{high:"50",low:"1"},Units:"Hz",User:"Standard"},WRC2_RATE_FLTT:{Description:"Wheel rate control target frequency in Hz",DisplayName:"Wheel rate control target frequency in Hz",Increment:"1",Range:{high:"50",low:"1"},Units:"Hz",User:"Standard"},WRC2_RATE_I:{Description:"Wheel rate control I gain. Corrects long term error between the desired rate (in rad/s) and actual",DisplayName:"Wheel rate control I gain",Range:{high:"2.000",low:"0.000"},User:"Standard"},WRC2_RATE_IMAX:{Description:"Wheel rate control I gain maximum. Constrains the output (range -1 to +1) that the I term will generate",DisplayName:"Wheel rate control I gain maximum",Range:{high:"1.000",low:"0.000"},User:"Standard"},WRC2_RATE_P:{Description:"Wheel rate control P gain. Converts rate error (in radians/sec) to output (in the range -1 to +1)",DisplayName:"Wheel rate control P gain",Range:{high:"2.000",low:"0.100"},User:"Standard"},WRC2_RATE_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Wheel rate slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},WRC_ENABLE:{Description:"Enable or disable wheel rate control",DisplayName:"Wheel rate control enable/disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},WRC_RATE_D:{Description:"Wheel rate control D gain. Compensates for short-term change in desired rate vs actual",DisplayName:"Wheel rate control D gain",Range:{high:"0.400",low:"0.000"},User:"Standard"},WRC_RATE_FF:{Description:"Wheel rate control feed forward gain. Desired rate (in radians/sec) is multiplied by this constant and output to output (in the range -1 to +1)",DisplayName:"Wheel rate control feed forward gain",Range:{high:"2.000",low:"0.100"},User:"Standard"},WRC_RATE_FILT:{Description:"Wheel rate control input filter. Lower values reduce noise but add delay.",DisplayName:"Wheel rate control filter frequency",Range:{high:"100.000",low:"1.000"},Units:"Hz",User:"Standard"},WRC_RATE_FLTD:{Description:"Wheel rate control derivative frequency in Hz",DisplayName:"Wheel rate control derivative frequency in Hz",Increment:"1",Range:{high:"50",low:"1"},Units:"Hz",User:"Standard"},WRC_RATE_FLTE:{Description:"Wheel rate control error frequency in Hz",DisplayName:"Wheel rate control error frequency in Hz",Increment:"1",Range:{high:"50",low:"1"},Units:"Hz",User:"Standard"},WRC_RATE_FLTT:{Description:"Wheel rate control target frequency in Hz",DisplayName:"Wheel rate control target frequency in Hz",Increment:"1",Range:{high:"50",low:"1"},Units:"Hz",User:"Standard"},WRC_RATE_I:{Description:"Wheel rate control I gain. Corrects long term error between the desired rate (in rad/s) and actual",DisplayName:"Wheel rate control I gain",Range:{high:"2.000",low:"0.000"},User:"Standard"},WRC_RATE_IMAX:{Description:"Wheel rate control I gain maximum. Constrains the output (range -1 to +1) that the I term will generate",DisplayName:"Wheel rate control I gain maximum",Range:{high:"1.000",low:"0.000"},User:"Standard"},WRC_RATE_MAX:{Description:"Wheel max rotation rate",DisplayName:"Wheel max rotation rate",Range:{high:"200",low:"0"},Units:"rad/s",User:"Standard"},WRC_RATE_P:{Description:"Wheel rate control P gain. Converts rate error (in radians/sec) to output (in the range -1 to +1)",DisplayName:"Wheel rate control P gain",Range:{high:"2.000",low:"0.100"},User:"Standard"},WRC_RATE_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Wheel rate slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"}},wQ={version:0},fB1={AFS_:cq,AHRS_:dq,AIS_:Cq,ARMING_:mq,ARSPD:uq,ATC:hq,AVOID_:pq,BARO:fq,BARO1_WCF_:Vq,BARO2_WCF_:Lq,BARO3_WCF_:Hq,BATT2_:Mq,BATT3_:gq,BATT4_:Aq,BATT5_:vq,BATT6_:_q,BATT7_:Sq,BATT8_:Dq,BATT9_:yq,BATT_:Rq,BCN:bq,BRD_:Nq,BRD_RADIO:wq,BRD_RTC:Tq,BTN_:Eq,CAM_:Pq,CAM_RC_:Iq,CAN_:Oq,CAN_D1_:Uq,CAN_D1_KDE_:xq,CAN_D1_PC_:Fq,CAN_D1_TST_:kq,CAN_D1_UC_:Bq,CAN_D2_:zq,CAN_D2_KDE_:Zq,CAN_D2_PC_:Gq,CAN_D2_TST_:Wq,CAN_D2_UC_:Xq,CAN_D3_:Yq,CAN_D3_KDE_:$q,CAN_D3_PC_:qq,CAN_D3_TST_:Kq,CAN_D3_UC_:jq,CAN_P1_:Qq,CAN_P2_:Jq,CAN_P3_:eK,CAN_SLCAN_:tK,COMPASS_:iK,COMPASS_PMOT:aK,DID_:rK,EAHRS:nK,EFI:oK,EK2_:sK,EK3_:lK,EK3_SRC:cK,FENCE_:dK,FFT_:CK,FOLL:mK,FRSKY_:uK,GEN_:hK,GPS:pK,GPS_MB1_:fK,GPS_MB2_:VK,GRIP_:LK,INS_:HK,INS_HNTC2_:MK,INS_HNTCH_:gK,INS_LOG_:AK,INS_TCAL1_:vK,INS_TCAL2_:_K,INS_TCAL3_:SK,LOG:DK,MIS_:yK,MNT:RK,MOT_:bK,MSP:NK,NAVL1_:wK,NTF_:TK,OA_:EK,OA_BR_:PK,OA_DB_:IK,OSD:OK,OSD1_:UK,OSD2_:xK,OSD3_:FK,OSD4_:kK,OSD5_:BK,OSD5_PARAM1:zK,OSD5_PARAM2:ZK,OSD5_PARAM3:GK,OSD5_PARAM4:WK,OSD5_PARAM5:XK,OSD5_PARAM6:YK,OSD5_PARAM7:$K,OSD5_PARAM8:qK,OSD5_PARAM9:KK,OSD6_:jK,OSD6_PARAM1:QK,OSD6_PARAM2:JK,OSD6_PARAM3:ej,OSD6_PARAM4:tj,OSD6_PARAM5:ij,OSD6_PARAM6:aj,OSD6_PARAM7:rj,OSD6_PARAM8:nj,OSD6_PARAM9:oj,PRX:sj,RALLY_:lj,RC:cj,RC10_:dj,RC11_:Cj,RC12_:mj,RC13_:uj,RC14_:hj,RC15_:pj,RC16_:fj,RC1_:Vj,RC2_:Lj,RC3_:Hj,RC4_:Mj,RC5_:gj,RC6_:Aj,RC7_:vj,RC8_:_j,RC9_:Sj,RCMAP_:Dj,RELAY_:yj,RNGFND1_:Rj,RNGFND2_:bj,RNGFND3_:Nj,RNGFND4_:wj,RNGFND5_:Tj,RNGFND6_:Ej,RNGFND7_:Pj,RNGFND8_:Ij,RNGFND9_:Oj,RNGFNDA_:Uj,RPM1_:xj,RPM2_:Fj,RSSI_:kj,Rover:Bj,SAIL_:zj,SCHED_:Zj,SCR_:Gj,SERIAL:Wj,SERVO:Xj,SERVO10_:Yj,SERVO11_:$j,SERVO12_:qj,SERVO13_:Kj,SERVO14_:jj,SERVO15_:Qj,SERVO16_:Jj,SERVO1_:eQ,SERVO2_:tQ,SERVO3_:iQ,SERVO4_:aQ,SERVO5_:rQ,SERVO6_:nQ,SERVO7_:oQ,SERVO8_:sQ,SERVO9_:lQ,SERVO_BLH_:cQ,SERVO_FTW_:dQ,SERVO_ROB_:CQ,SERVO_SBUS_:mQ,SERVO_VOLZ_:uQ,SPRAY_:hQ,SR0_:pQ,SR1_:fQ,SR2_:VQ,SR3_:LQ,SR4_:HQ,SR5_:MQ,SR6_:gQ,SRTL_:AQ,STAT:vQ,TRQD_:_Q,VISO:SQ,VTX_:DQ,WENC:yQ,WNDVN_:RQ,WP_:bQ,WRC:NQ,json:wQ},VB1=Object.freeze(Object.defineProperty({__proto__:null,AFS_:cq,AHRS_:dq,AIS_:Cq,ARMING_:mq,ARSPD:uq,ATC:hq,AVOID_:pq,BARO:fq,BARO1_WCF_:Vq,BARO2_WCF_:Lq,BARO3_WCF_:Hq,BATT2_:Mq,BATT3_:gq,BATT4_:Aq,BATT5_:vq,BATT6_:_q,BATT7_:Sq,BATT8_:Dq,BATT9_:yq,BATT_:Rq,BCN:bq,BRD_:Nq,BRD_RADIO:wq,BRD_RTC:Tq,BTN_:Eq,CAM_:Pq,CAM_RC_:Iq,CAN_:Oq,CAN_D1_:Uq,CAN_D1_KDE_:xq,CAN_D1_PC_:Fq,CAN_D1_TST_:kq,CAN_D1_UC_:Bq,CAN_D2_:zq,CAN_D2_KDE_:Zq,CAN_D2_PC_:Gq,CAN_D2_TST_:Wq,CAN_D2_UC_:Xq,CAN_D3_:Yq,CAN_D3_KDE_:$q,CAN_D3_PC_:qq,CAN_D3_TST_:Kq,CAN_D3_UC_:jq,CAN_P1_:Qq,CAN_P2_:Jq,CAN_P3_:eK,CAN_SLCAN_:tK,COMPASS_:iK,COMPASS_PMOT:aK,DID_:rK,EAHRS:nK,EFI:oK,EK2_:sK,EK3_:lK,EK3_SRC:cK,FENCE_:dK,FFT_:CK,FOLL:mK,FRSKY_:uK,GEN_:hK,GPS:pK,GPS_MB1_:fK,GPS_MB2_:VK,GRIP_:LK,INS_:HK,INS_HNTC2_:MK,INS_HNTCH_:gK,INS_LOG_:AK,INS_TCAL1_:vK,INS_TCAL2_:_K,INS_TCAL3_:SK,LOG:DK,MIS_:yK,MNT:RK,MOT_:bK,MSP:NK,NAVL1_:wK,NTF_:TK,OA_:EK,OA_BR_:PK,OA_DB_:IK,OSD:OK,OSD1_:UK,OSD2_:xK,OSD3_:FK,OSD4_:kK,OSD5_:BK,OSD5_PARAM1:zK,OSD5_PARAM2:ZK,OSD5_PARAM3:GK,OSD5_PARAM4:WK,OSD5_PARAM5:XK,OSD5_PARAM6:YK,OSD5_PARAM7:$K,OSD5_PARAM8:qK,OSD5_PARAM9:KK,OSD6_:jK,OSD6_PARAM1:QK,OSD6_PARAM2:JK,OSD6_PARAM3:ej,OSD6_PARAM4:tj,OSD6_PARAM5:ij,OSD6_PARAM6:aj,OSD6_PARAM7:rj,OSD6_PARAM8:nj,OSD6_PARAM9:oj,PRX:sj,RALLY_:lj,RC:cj,RC10_:dj,RC11_:Cj,RC12_:mj,RC13_:uj,RC14_:hj,RC15_:pj,RC16_:fj,RC1_:Vj,RC2_:Lj,RC3_:Hj,RC4_:Mj,RC5_:gj,RC6_:Aj,RC7_:vj,RC8_:_j,RC9_:Sj,RCMAP_:Dj,RELAY_:yj,RNGFND1_:Rj,RNGFND2_:bj,RNGFND3_:Nj,RNGFND4_:wj,RNGFND5_:Tj,RNGFND6_:Ej,RNGFND7_:Pj,RNGFND8_:Ij,RNGFND9_:Oj,RNGFNDA_:Uj,RPM1_:xj,RPM2_:Fj,RSSI_:kj,Rover:Bj,SAIL_:zj,SCHED_:Zj,SCR_:Gj,SERIAL:Wj,SERVO:Xj,SERVO10_:Yj,SERVO11_:$j,SERVO12_:qj,SERVO13_:Kj,SERVO14_:jj,SERVO15_:Qj,SERVO16_:Jj,SERVO1_:eQ,SERVO2_:tQ,SERVO3_:iQ,SERVO4_:aQ,SERVO5_:rQ,SERVO6_:nQ,SERVO7_:oQ,SERVO8_:sQ,SERVO9_:lQ,SERVO_BLH_:cQ,SERVO_FTW_:dQ,SERVO_ROB_:CQ,SERVO_SBUS_:mQ,SERVO_VOLZ_:uQ,SPRAY_:hQ,SR0_:pQ,SR1_:fQ,SR2_:VQ,SR3_:LQ,SR4_:HQ,SR5_:MQ,SR6_:gQ,SRTL_:AQ,STAT:vQ,TRQD_:_Q,VISO:SQ,VTX_:DQ,WENC:yQ,WNDVN_:RQ,WP_:bQ,WRC:NQ,json:wQ,default:fB1},Symbol.toStringTag,{value:"Module"}));var TQ=(e=>(e[e.PRE_FLIGHT=-1]="PRE_FLIGHT",e[e.MANUAL=0]="MANUAL",e[e.ACRO=1]="ACRO",e[e.STEERING=3]="STEERING",e[e.HOLD=4]="HOLD",e[e.LOITER=5]="LOITER",e[e.FOLLOW=6]="FOLLOW",e[e.SIMPLE=7]="SIMPLE",e[e.DOCK=8]="DOCK",e[e.AUTO=10]="AUTO",e[e.RTL=11]="RTL",e[e.SMART_RTL=12]="SMART_RTL",e[e.GUIDED=15]="GUIDED",e[e.INITIALISING=16]="INITIALISING",e))(TQ||{});class LB1 extends jC{constructor(i){super(a0.Rover,i);S1(this,"_mode",-1);S1(this,"_metadata",VB1)}mode(){return this._mode}modesAvailable(){const i=new Map;return Object.entries(TQ).filter(([a])=>isNaN(Number(a))).forEach(([a,r])=>{i.set(a,r)}),i}onMAVLinkPackage(i){switch(i.message.type){case se.HEARTBEAT:{const a=i.message;if(a.base_mode.bits===0){this._mode=-1,this.onMode.emit();return}if(!(a.base_mode.bits&_n.MAV_MODE_FLAG_CUSTOM_MODE_ENABLED)){console.log(`no custom: ${JSON.stringify(a.base_mode)}`);return}this._mode=a.custom_mode,this.onMode.emit()}}}}const EQ={AHRS_COMP_BETA:{Description:"This controls the time constant for the cross-over frequency used to fuse AHRS (airspeed and heading) and GPS data to estimate ground velocity. Time constant is 0.1/beta. A larger time constant will use GPS data less and a small time constant will use air data less.",DisplayName:"AHRS Velocity Complementary Filter Beta Coefficient",Increment:".01",Range:{high:"0.5",low:"0.001"},User:"Advanced"},AHRS_CUSTOM_PIT:{Description:"Autopilot mounting position pitch offset. Positive values = pitch up, negative values = pitch down. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation pitch offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_CUSTOM_ROLL:{Description:"Autopilot mounting position roll offset. Positive values = roll right, negative values = roll left. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation roll offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_CUSTOM_YAW:{Description:"Autopilot mounting position yaw offset. Positive values = yaw right, negative values = yaw left. This parameter is only used when AHRS_ORIENTATION is set to CUSTOM.",DisplayName:"Board orientation yaw offset",Increment:"1",Range:{high:"180",low:"-180"},Units:"deg",User:"Advanced"},AHRS_EKF_TYPE:{Description:"This controls which NavEKF Kalman filter version is used for attitude and position estimation",DisplayName:"Use NavEKF Kalman filter for attitude and position estimation",User:"Advanced",Values:{0:"Disabled",2:"Enable EKF2",3:"Enable EKF3",11:"ExternalAHRS"}},AHRS_GPS_GAIN:{Description:"This controls how much to use the GPS to correct the attitude. This should never be set to zero for a plane as it would result in the plane losing control in turns. For a plane please use the default value of 1.0.",DisplayName:"AHRS GPS gain",Increment:".01",Range:{high:"1.0",low:"0.0"},User:"Advanced"},AHRS_GPS_MINSATS:{Description:"Minimum number of satellites visible to use GPS for velocity based corrections attitude correction. This defaults to 6, which is about the point at which the velocity numbers from a GPS become too unreliable for accurate correction of the accelerometers.",DisplayName:"AHRS GPS Minimum satellites",Increment:"1",Range:{high:"10",low:"0"},User:"Advanced"},AHRS_GPS_USE:{Description:"This controls whether to use dead-reckoning or GPS based navigation. If set to 0 then the GPS won't be used for navigation, and only dead reckoning will be used. A value of zero should never be used for normal flight. Currently this affects only the DCM-based AHRS: the EKF uses GPS whenever it is available.",DisplayName:"AHRS use GPS for navigation",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},AHRS_ORIENTATION:{Description:"Overall board orientation relative to the standard orientation for the board type. This rotates the IMU and compass readings to allow the board to be oriented in your vehicle at any 90 or 45 degree angle. This option takes affect on next boot. After changing you will need to re-level your vehicle.",DisplayName:"Board Orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Roll180Yaw45",10:"Roll180Yaw90",11:"Roll180Yaw135",12:"Pitch180",13:"Roll180Yaw225",14:"Roll180Yaw270",15:"Roll180Yaw315",16:"Roll90",17:"Roll90Yaw45",18:"Roll90Yaw90",19:"Roll90Yaw135",20:"Roll270",21:"Roll270Yaw45",22:"Roll270Yaw90",23:"Roll270Yaw135",24:"Pitch90",25:"Pitch270",26:"Pitch180Yaw90",27:"Pitch180Yaw270",28:"Roll90Pitch90",29:"Roll180Pitch90",30:"Roll270Pitch90",31:"Roll90Pitch180",32:"Roll270Pitch180",33:"Roll90Pitch270",34:"Roll180Pitch270",35:"Roll270Pitch270",36:"Roll90Pitch180Yaw90",37:"Roll90Yaw270",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Roll90Pitch315",100:"Custom"}},AHRS_RP_P:{Description:"This controls how fast the accelerometers correct the attitude",DisplayName:"AHRS RP_P",Increment:".01",Range:{high:"0.4",low:"0.1"},User:"Advanced"},AHRS_TRIM_X:{Description:"Compensates for the roll angle difference between the control board and the frame. Positive values make the vehicle roll right.",DisplayName:"AHRS Trim Roll",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Standard"},AHRS_TRIM_Y:{Description:"Compensates for the pitch angle difference between the control board and the frame. Positive values make the vehicle pitch up/back.",DisplayName:"AHRS Trim Pitch",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Standard"},AHRS_TRIM_Z:{Description:"Not Used",DisplayName:"AHRS Trim Yaw",Increment:"0.01",Range:{high:"+0.1745",low:"-0.1745"},Units:"rad",User:"Advanced"},AHRS_WIND_MAX:{Description:"This sets the maximum allowable difference between ground speed and airspeed. This allows the plane to cope with a failing airspeed sensor. A value of zero means to use the airspeed as is. See ARSPD_OPTIONS and ARSPD_MAX_WIND to disable airspeed sensors.",DisplayName:"Maximum wind",Increment:"1",Range:{high:"127",low:"0"},Units:"m/s",User:"Advanced"},AHRS_YAW_P:{Description:"This controls the weight the compass or GPS has on the heading. A higher value means the heading will track the yaw source (GPS or compass) more rapidly.",DisplayName:"Yaw P",Increment:".01",Range:{high:"0.4",low:"0.1"},User:"Advanced"}},PQ={ARMING_ACCTHRESH:{Description:"Accelerometer error threshold used to determine inconsistent accelerometers. Compares this error range to other accelerometers to detect a hardware or calibration error. Lower value means tighter check and harder to pass arming check. Not all accelerometers are created equal.",DisplayName:"Accelerometer error threshold",Range:{high:"3.0",low:"0.25"},Units:"m/s/s",User:"Advanced"},ARMING_CHECK:{Bitmask:{0:"All",1:"Barometer",2:"Compass",3:"GPS lock",4:"INS",5:"Parameters",6:"RC Channels",7:"Board voltage",8:"Battery Level",10:"Logging Available",11:"Hardware safety switch",12:"GPS Configuration",13:"System",14:"Mission",15:"Rangefinder",16:"Camera",17:"AuxAuth",18:"VisualOdometry",19:"FFT"},Description:"Checks prior to arming motor. This is a bitmask of checks that will be performed before allowing arming. For most users it is recommended to leave this at the default of 1 (all checks enabled). You can select whatever checks you prefer by adding together the values of each check type to set this parameter. For example, to only allow arming when you have GPS lock and no RC failsafe you would set ARMING_CHECK to 72.",DisplayName:"Arm Checks to Perform (bitmask)",User:"Standard"},ARMING_MIS_ITEMS:{Bitmask:{0:"Land",1:"VTOL Land",2:"DO_LAND_START",3:"Takeoff",4:"VTOL Takeoff",5:"Rallypoint"},Description:"Bitmask of mission items that are required to be planned in order to arm the aircraft",DisplayName:"Required mission items",User:"Advanced"},ARMING_RUDDER:{Description:"Allow arm/disarm by rudder input. When enabled arming can be done with right rudder, disarming with left rudder. Rudder arming only works in manual throttle modes with throttle at zero +- deadzone (RCx_DZ)",DisplayName:"Arming with Rudder enable/disable",User:"Advanced",Values:{0:"Disabled",1:"ArmingOnly",2:"ArmOrDisarm"}}},IQ={ARSPD2_AUTOCAL:{Description:"If this is enabled then the autopilot will automatically adjust the ARSPD_RATIO during flight, based upon an estimation filter using ground speed and true airspeed. The automatic calibration will save the new ratio to EEPROM every 2 minutes if it changes by more than 5%. This option should be enabled for a calibration flight then disabled again when calibration is complete. Leaving it enabled all the time is not recommended.",DisplayName:"Automatic airspeed ratio calibration for 2nd airspeed sensor",User:"Advanced"},ARSPD2_BUS:{Description:"The bus number of the I2C bus to look for the sensor on",DisplayName:"Airspeed I2C bus for 2nd sensor",User:"Advanced",Values:{0:"Bus0(internal)",1:"Bus1(external)",2:"Bus2(auxillary)"}},ARSPD2_OFFSET:{Description:"Airspeed calibration offset",DisplayName:"Airspeed offset for 2nd airspeed sensor",Increment:"0.1",User:"Advanced"},ARSPD2_PIN:{Description:"Pin number indicating location of analog airspeed sensors. Pixhawk/Cube if set to 15. ",DisplayName:"Airspeed pin for 2nd airspeed sensor",User:"Advanced"},ARSPD2_PSI_RANGE:{Description:"This parameter allows you to to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",DisplayName:"The PSI range of the device for 2nd sensor",User:"Advanced"},ARSPD2_RATIO:{Description:"Airspeed calibration ratio",DisplayName:"Airspeed ratio for 2nd airspeed sensor",Increment:"0.1",User:"Advanced"},ARSPD2_SKIP_CAL:{Description:"This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",DisplayName:"Skip airspeed calibration on startup for 2nd sensor",User:"Advanced",Values:{0:"Disable",1:"Enable"}},ARSPD2_TUBE_ORDR:{Description:"This parameter allows you to control whether the order in which the tubes are attached to your pitot tube matters. If you set this to 0 then the top connector on the sensor needs to be the dynamic pressure. If set to 1 then the bottom connector needs to be the dynamic pressure. If set to 2 (the default) then the airspeed driver will accept either order. The reason you may wish to specify the order is it will allow your airspeed sensor to detect if the aircraft it receiving excessive pressure on the static port, which would otherwise be seen as a positive airspeed.",DisplayName:"Control pitot tube order of 2nd airspeed sensor",User:"Advanced"},ARSPD2_TYPE:{Description:"Type of 2nd airspeed sensor",DisplayName:"Second Airspeed type",User:"Standard",Values:{0:"None",1:"I2C-MS4525D0",2:"Analog",3:"I2C-MS5525",4:"I2C-MS5525 (0x76)",5:"I2C-MS5525 (0x77)",6:"I2C-SDP3X",7:"I2C-DLVR-5in",8:"UAVCAN",9:"I2C-DLVR-10in",10:"I2C-DLVR-20in",11:"I2C-DLVR-30in",12:"I2C-DLVR-60in",13:"NMEA water speed",14:"MSP",15:"ASP5033"}},ARSPD2_USE:{Description:"use airspeed for flight control. When set to 0 airspeed sensor can be logged and displayed on a GCS but won't be used for flight. When set to 1 it will be logged and used. When set to 2 it will be only used when the throttle is zero, which can be useful in gliders with airspeed sensors behind a propeller",DisplayName:"Enable use of 2nd airspeed sensor",User:"Standard",Values:{0:"Don't Use",1:"use",2:"UseWhenZeroThrottle"}},ARSPD_AUTOCAL:{Description:"Enables automatic adjustment of ARSPD_RATIO during a calibration flight based on estimation of ground speed and true airspeed. New ratio saved every 2 minutes if change is > 5%. Should not be left enabled.",DisplayName:"Automatic airspeed ratio calibration",User:"Advanced"},ARSPD_BUS:{Description:"Bus number of the I2C bus where the airspeed sensor is connected",DisplayName:"Airspeed I2C bus",User:"Advanced",Values:{0:"Bus0(internal)",1:"Bus1(external)",2:"Bus2(auxillary)"}},ARSPD_OFFSET:{Description:"Airspeed calibration offset",DisplayName:"Airspeed offset",Increment:"0.1",User:"Advanced"},ARSPD_OPTIONS:{Bitmask:{0:"Disable sensor",1:"Re-enable sensor"},Description:"Bitmask of options to use with airspeed. Disable and/or re-enable sensor based on the difference between airspeed and ground speed based on ARSPD_WIND_MAX threshold, if set",DisplayName:"Airspeed options bitmask",User:"Advanced"},ARSPD_PIN:{Description:"The pin number that the airspeed sensor is connected to for analog sensors. Set to 15 on the Pixhawk for the analog airspeed port. ",DisplayName:"Airspeed pin",User:"Advanced"},ARSPD_PRIMARY:{Description:"This selects which airspeed sensor will be the primary if multiple sensors are found",DisplayName:"Primary airspeed sensor",User:"Advanced",Values:{0:"FirstSensor",1:"2ndSensor"}},ARSPD_PSI_RANGE:{Description:"This parameter allows you to to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",DisplayName:"The PSI range of the device",User:"Advanced"},ARSPD_RATIO:{Description:"Calibrates pitot tube pressure to velocity. Increasing this value will indicate a higher airspeed at any given dynamic pressure.",DisplayName:"Airspeed ratio",Increment:"0.1",User:"Advanced"},ARSPD_SKIP_CAL:{Description:"This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",DisplayName:"Skip airspeed calibration on startup",User:"Advanced",Values:{0:"Disable",1:"Enable"}},ARSPD_TUBE_ORDER:{Description:"Changes the pitot tube order to specify the dynamic pressure side of the sensor. Accepts either if set to 2. Accepts only one side if set to 0 or 1 and can help detect excessive pressure on the static port without indicating positive airspeed.",DisplayName:"Control pitot tube order",User:"Advanced"},ARSPD_TYPE:{Description:"Type of airspeed sensor",DisplayName:"Airspeed type",User:"Standard",Values:{0:"None",1:"I2C-MS4525D0",2:"Analog",3:"I2C-MS5525",4:"I2C-MS5525 (0x76)",5:"I2C-MS5525 (0x77)",6:"I2C-SDP3X",7:"I2C-DLVR-5in",8:"UAVCAN",9:"I2C-DLVR-10in",10:"I2C-DLVR-20in",11:"I2C-DLVR-30in",12:"I2C-DLVR-60in",13:"NMEA water speed",14:"MSP",15:"ASP5033"}},ARSPD_USE:{Description:"Enables airspeed use for automatic throttle modes and replaces control from THR_TRIM. Continues to display and log airspeed if set to 0. Uses airspeed for control if set to 1. Only uses airspeed when throttle = 0 if set to 2 (useful for gliders with airspeed sensors behind propellers).",DisplayName:"Airspeed use",User:"Standard",Values:{0:"DoNotUse",1:"Use",2:"UseWhenZeroThrottle"}},ARSPD_WIND_MAX:{Description:"If the difference between airspeed and ground speed is greater than this value the sensor will be marked unhealthy. Using ARSPD_OPTION this health value can be used to disable the sensor.",DisplayName:"Maximum airspeed and ground speed difference",Units:"m/s",User:"Advanced"},ARSPD_WIND_WARN:{Description:"If the difference between airspeed and ground speed is greater than this value the sensor will issue a warning. If 0 ARSPD_WIND_MAX is used.",DisplayName:"Airspeed and ground speed difference that gives a warning",Units:"m/s",User:"Advanced"}},OQ={ATC_ACCEL_P_MAX:{Description:"Maximum acceleration in pitch axis",DisplayName:"Acceleration Max for Pitch",Increment:"1000",Range:{high:"180000",low:"0"},Units:"cdeg/s/s",User:"Advanced",Values:{0:"Disabled",3e4:"VerySlow",72e3:"Slow",108e3:"Medium",162e3:"Fast"}},ATC_ACCEL_R_MAX:{Description:"Maximum acceleration in roll axis",DisplayName:"Acceleration Max for Roll",Increment:"1000",Range:{high:"180000",low:"0"},Units:"cdeg/s/s",User:"Advanced",Values:{0:"Disabled",3e4:"VerySlow",72e3:"Slow",108e3:"Medium",162e3:"Fast"}},ATC_ACCEL_Y_MAX:{Description:"Maximum acceleration in yaw axis",DisplayName:"Acceleration Max for Yaw",Increment:"1000",Range:{high:"72000",low:"0"},Units:"cdeg/s/s",User:"Advanced",Values:{0:"Disabled",9e3:"VerySlow",18e3:"Slow",36e3:"Medium",54e3:"Fast"}},ATC_ANGLE_BOOST:{Description:"Angle Boost increases output throttle as the vehicle leans to reduce loss of altitude",DisplayName:"Angle Boost",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},ATC_ANG_LIM_TC:{Description:"Angle Limit (to maintain altitude) Time Constant",DisplayName:"Angle Limit (to maintain altitude) Time Constant",Range:{high:"10.0",low:"0.5"},User:"Advanced"},ATC_ANG_PIT_P:{Description:"Pitch axis angle controller P gain. Converts the error between the desired pitch angle and actual angle to a desired pitch rate",DisplayName:"Pitch axis angle controller P gain",Range:{high:"12.000",low:"0.0"},User:"Standard"},ATC_ANG_RLL_P:{Description:"Roll axis angle controller P gain. Converts the error between the desired roll angle and actual angle to a desired roll rate",DisplayName:"Roll axis angle controller P gain",Range:{high:"12.000",low:"0.0"},User:"Standard"},ATC_ANG_YAW_P:{Description:"Yaw axis angle controller P gain. Converts the error between the desired yaw angle and actual angle to a desired yaw rate",DisplayName:"Yaw axis angle controller P gain",Range:{high:"6.000",low:"0.0"},User:"Standard"},ATC_INPUT_TC:{Description:"Attitude control input time constant. Low numbers lead to sharper response, higher numbers to softer response",DisplayName:"Attitude control input time constant",Increment:"0.01",Range:{high:"1",low:"0"},Units:"s",User:"Standard",Values:{"0.05":"Very Crisp","0.1":"Crisp","0.15":"Medium","0.2":"Soft","0.5":"Very Soft"}},ATC_RATE_FF_ENAB:{Description:"Controls whether body-frame rate feedfoward is enabled or disabled",DisplayName:"Rate Feedforward Enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},ATC_RATE_P_MAX:{Description:"Maximum angular velocity in pitch axis",DisplayName:"Angular Velocity Max for Pitch",Increment:"1",Range:{high:"1080",low:"0"},Units:"deg/s",User:"Advanced",Values:{0:"Disabled",360:"Slow",720:"Medium",1080:"Fast"}},ATC_RATE_R_MAX:{Description:"Maximum angular velocity in roll axis",DisplayName:"Angular Velocity Max for Roll",Increment:"1",Range:{high:"1080",low:"0"},Units:"deg/s",User:"Advanced",Values:{0:"Disabled",360:"Slow",720:"Medium",1080:"Fast"}},ATC_RATE_Y_MAX:{Description:"Maximum angular velocity in yaw axis",DisplayName:"Angular Velocity Max for Yaw",Increment:"1",Range:{high:"1080",low:"0"},Units:"deg/s",User:"Advanced",Values:{0:"Disabled",360:"Slow",720:"Medium",1080:"Fast"}},ATC_RAT_PIT_D:{Description:"Pitch axis rate controller D gain. Compensates for short-term change in desired pitch rate vs actual pitch rate",DisplayName:"Pitch axis rate controller D gain",Increment:"0.001",Range:{high:"0.02",low:"0.0"},User:"Standard"},ATC_RAT_PIT_FF:{Description:"Pitch axis rate controller feed forward",DisplayName:"Pitch axis rate controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0"},User:"Standard"},ATC_RAT_PIT_FILT:{Description:"Pitch axis rate controller input frequency in Hz",DisplayName:"Pitch axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_PIT_FLTD:{Description:"Pitch axis rate controller input frequency in Hz",DisplayName:"Pitch axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_PIT_FLTE:{Description:"Pitch axis rate controller input frequency in Hz",DisplayName:"Pitch axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_PIT_FLTT:{Description:"Pitch axis rate controller input frequency in Hz",DisplayName:"Pitch axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_PIT_I:{Description:"Pitch axis rate controller I gain. Corrects long-term difference in desired pitch rate vs actual pitch rate",DisplayName:"Pitch axis rate controller I gain",Increment:"0.01",Range:{high:"0.5",low:"0.0"},User:"Standard"},ATC_RAT_PIT_IMAX:{Description:"Pitch axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Pitch axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},ATC_RAT_PIT_P:{Description:"Pitch axis rate controller P gain. Converts the difference between desired pitch rate and actual pitch rate into a motor speed output",DisplayName:"Pitch axis rate controller P gain",Increment:"0.005",Range:{high:"0.30",low:"0.0"},User:"Standard"},ATC_RAT_PIT_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Pitch slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},ATC_RAT_RLL_D:{Description:"Roll axis rate controller D gain. Compensates for short-term change in desired roll rate vs actual roll rate",DisplayName:"Roll axis rate controller D gain",Increment:"0.001",Range:{high:"0.02",low:"0.0"},User:"Standard"},ATC_RAT_RLL_FF:{Description:"Roll axis rate controller feed forward",DisplayName:"Roll axis rate controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0"},User:"Standard"},ATC_RAT_RLL_FILT:{Description:"Roll axis rate controller input frequency in Hz",DisplayName:"Roll axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_RLL_FLTD:{Description:"Roll axis rate controller input frequency in Hz",DisplayName:"Roll axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_RLL_FLTE:{Description:"Roll axis rate controller input frequency in Hz",DisplayName:"Roll axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_RLL_FLTT:{Description:"Roll axis rate controller input frequency in Hz",DisplayName:"Roll axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_RLL_I:{Description:"Roll axis rate controller I gain. Corrects long-term difference in desired roll rate vs actual roll rate",DisplayName:"Roll axis rate controller I gain",Increment:"0.01",Range:{high:"0.5",low:"0.0"},User:"Standard"},ATC_RAT_RLL_IMAX:{Description:"Roll axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Roll axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},ATC_RAT_RLL_P:{Description:"Roll axis rate controller P gain. Converts the difference between desired roll rate and actual roll rate into a motor speed output",DisplayName:"Roll axis rate controller P gain",Increment:"0.005",Range:{high:"0.30",low:"0.0"},User:"Standard"},ATC_RAT_RLL_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Roll slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},ATC_RAT_YAW_D:{Description:"Yaw axis rate controller D gain. Compensates for short-term change in desired yaw rate vs actual yaw rate",DisplayName:"Yaw axis rate controller D gain",Increment:"0.001",Range:{high:"0.02",low:"0.000"},User:"Standard"},ATC_RAT_YAW_FF:{Description:"Yaw axis rate controller feed forward",DisplayName:"Yaw axis rate controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0"},User:"Standard"},ATC_RAT_YAW_FILT:{Description:"Yaw axis rate controller input frequency in Hz",DisplayName:"Yaw axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_YAW_FLTD:{Description:"Yaw axis rate controller input frequency in Hz",DisplayName:"Yaw axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_YAW_FLTE:{Description:"Yaw axis rate controller input frequency in Hz",DisplayName:"Yaw axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_YAW_FLTT:{Description:"Yaw axis rate controller input frequency in Hz",DisplayName:"Yaw axis rate controller input frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},ATC_RAT_YAW_I:{Description:"Yaw axis rate controller I gain. Corrects long-term difference in desired yaw rate vs actual yaw rate",DisplayName:"Yaw axis rate controller I gain",Increment:"0.01",Range:{high:"0.05",low:"0.0"},User:"Standard"},ATC_RAT_YAW_IMAX:{Description:"Yaw axis rate controller I gain maximum. Constrains the maximum motor output that the I gain will output",DisplayName:"Yaw axis rate controller I gain maximum",Increment:"0.01",Range:{high:"1",low:"0"},User:"Standard"},ATC_RAT_YAW_P:{Description:"Yaw axis rate controller P gain. Converts the difference between desired yaw rate and actual yaw rate into a motor speed output",DisplayName:"Yaw axis rate controller P gain",Increment:"0.005",Range:{high:"0.50",low:"0.0"},User:"Standard"},ATC_RAT_YAW_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Yaw slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},ATC_SLEW_YAW:{Description:"Maximum rate the yaw target can be updated in Loiter, RTL, Auto flight modes",DisplayName:"Yaw target slew rate",Increment:"100",Range:{high:"18000",low:"500"},Units:"cdeg/s",User:"Advanced"},ATC_THR_MIX_MAN:{Description:"Throttle vs attitude control prioritisation used during manual flight (higher values mean we prioritise attitude control over throttle)",DisplayName:"Throttle Mix Manual",Range:{high:"0.9",low:"0.5"},User:"Advanced"},ATC_THR_MIX_MAX:{Description:"Throttle vs attitude control prioritisation used during active flight (higher values mean we prioritise attitude control over throttle)",DisplayName:"Throttle Mix Maximum",Range:{high:"0.9",low:"0.5"},User:"Advanced"},ATC_THR_MIX_MIN:{Description:"Throttle vs attitude control prioritisation used when landing (higher values mean we prioritise attitude control over throttle)",DisplayName:"Throttle Mix Minimum",Range:{high:"0.25",low:"0.1"},User:"Advanced"}},UQ={AVOID_ACCEL_MAX:{Description:"Maximum acceleration with which obstacles will be avoided with. Set zero to disable acceleration limits",DisplayName:"Avoidance maximum acceleration",Range:{high:"9",low:"0"},Units:"m/s/s",User:"Standard"},AVOID_BACKUP_DZ:{Description:"Distance beyond AVOID_MARGIN parameter, after which vehicle will backaway from obstacles. Increase this parameter if you see vehicle going back and forth in front of obstacle.",DisplayName:"Avoidance deadzone between stopping and backing away from obstacle",Range:{high:"2",low:"0"},Units:"m",User:"Standard"},AVOID_BACKUP_SPD:{Description:"Maximum speed that will be used to back away from obstacles in GPS modes (m/s). Set zero to disable",DisplayName:"Avoidance maximum backup speed",Range:{high:"2",low:"0"},Units:"m/s",User:"Standard"},AVOID_ENABLE:{Bitmask:{0:"UseFence",1:"UseProximitySensor",2:"UseBeaconFence"},Description:"Enabled/disable avoidance input sources",DisplayName:"Avoidance control enable/disable",User:"Standard"},AVOID_MARGIN:{Description:"Vehicle will attempt to stay at least this distance (in meters) from objects while in GPS modes",DisplayName:"Avoidance distance margin in GPS modes",Range:{high:"10",low:"1"},Units:"m",User:"Standard"}},xQ={BARO1_DEVID:{Description:"Barometer sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID",ReadOnly:"True",User:"Advanced"},BARO1_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Ground Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO2_DEVID:{Description:"Barometer2 sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID2",ReadOnly:"True",User:"Advanced"},BARO2_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Ground Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO3_DEVID:{Description:"Barometer3 sensor ID, taking into account its type, bus and instance",DisplayName:"Baro ID3",ReadOnly:"True",User:"Advanced"},BARO3_GND_PRESS:{Description:"calibrated ground pressure in Pascals",DisplayName:"Absolute Pressure",Increment:"1",ReadOnly:"True",Units:"Pa",User:"Advanced",Volatile:"True"},BARO_ALT_OFFSET:{Description:"altitude offset in meters added to barometric altitude. This is used to allow for automatic adjustment of the base barometric altitude by a ground station equipped with a barometer. The value is added to the barometric altitude read by the aircraft. It is automatically reset to 0 when the barometer is calibrated on each reboot or when a preflight calibration is performed.",DisplayName:"altitude offset",Increment:"0.1",Units:"m",User:"Advanced"},BARO_EXT_BUS:{Description:"This selects the bus number for looking for an I2C barometer. When set to -1 it will probe all external i2c buses based on the GND_PROBE_EXT parameter.",DisplayName:"External baro bus",User:"Advanced",Values:{0:"Bus0",1:"Bus1","-1":"Disabled"}},BARO_FLTR_RNG:{Description:"This sets the range around the average value that new samples must be within to be accepted. This can help reduce the impact of noise on sensors that are on long I2C cables. The value is a percentage from the average value. A value of zero disables this filter.",DisplayName:"Range in which sample is accepted",Increment:"1",Range:{high:"100",low:"0"},Units:"%"},BARO_GND_TEMP:{Description:"User provided ambient ground temperature in degrees Celsius. This is used to improve the calculation of the altitude the vehicle is at. This parameter is not persistent and will be reset to 0 every time the vehicle is rebooted. A value of 0 means use the internal measurement ambient temperature.",DisplayName:"ground temperature",Increment:"1",Units:"degC",User:"Advanced",Volatile:"True"},BARO_PRIMARY:{Description:"This selects which barometer will be the primary if multiple barometers are found",DisplayName:"Primary barometer",User:"Advanced",Values:{0:"FirstBaro",1:"2ndBaro",2:"3rdBaro"}},BARO_PROBE_EXT:{Bitmask:{0:"BMP085",1:"BMP280",2:"MS5611",3:"MS5607",4:"MS5637",5:"FBM320",6:"DPS280",7:"LPS25H",8:"Keller",9:"MS5837",10:"BMP388",11:"SPL06",12:"MSP"},Description:"This sets which types of external i2c barometer to look for. It is a bitmask of barometer types. The I2C buses to probe is based on GND_EXT_BUS. If BARO_EXT_BUS is -1 then it will probe all external buses, otherwise it will probe just the bus number given in GND_EXT_BUS.",DisplayName:"External barometers to probe",User:"Advanced"},BARO_SPEC_GRAV:{Description:"This sets the specific gravity of the fluid when flying an underwater ROV.",DisplayName:"Specific Gravity (For water depth measurement)",Values:{"1.0":"Freshwater","1.024":"Saltwater"}}},FQ={BARO1_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO1_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO1_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},kQ={BARO2_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO2_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO2_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},BQ={BARO3_WCF_BCK:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative X direction (backwards)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_ENABLE:{Description:"This enables the use of wind coefficients for barometer compensation",DisplayName:"Wind coefficient enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BARO3_WCF_FWD:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive X direction (forward)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_LFT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in negative Y direction (left)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},BARO3_WCF_RGT:{Description:"This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_BCOEF_X and EK3_BCOEF_Y parameters have been tuned.",DisplayName:"Pressure error coefficient in positive Y direction (right)",Increment:"0.05",Range:{high:"1.0",low:"-1.0"},User:"Advanced"}},zQ={BATT2_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT2_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT2_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT2__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT2_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT2_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},User:"Standard"},BATT2_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT2__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT2_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT2_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT2_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT2_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT2_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT2_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT2_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT2_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT2_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT2_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT2_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT2_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT2_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"UAVCAN-BatteryInfo",9:"ESC",10:"SumOfFollowing",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye"}},BATT2_OPTIONS:{Bitmask:{0:"Ignore UAVCAN SoC"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT2_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With UAVCAN it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT2_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT2_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT2_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},ZQ={BATT3_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT3_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT3_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT3__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT3_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT3_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},User:"Standard"},BATT3_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT3__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT3_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT3_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT3_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT3_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT3_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT3_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT3_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT3_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT3_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT3_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT3_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT3_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT3_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"UAVCAN-BatteryInfo",9:"ESC",10:"SumOfFollowing",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye"}},BATT3_OPTIONS:{Bitmask:{0:"Ignore UAVCAN SoC"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT3_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With UAVCAN it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT3_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT3_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT3_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},GQ={BATT4_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT4_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT4_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT4__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT4_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT4_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},User:"Standard"},BATT4_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT4__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT4_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT4_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT4_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT4_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT4_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT4_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT4_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT4_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT4_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT4_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT4_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT4_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT4_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"UAVCAN-BatteryInfo",9:"ESC",10:"SumOfFollowing",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye"}},BATT4_OPTIONS:{Bitmask:{0:"Ignore UAVCAN SoC"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT4_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With UAVCAN it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT4_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT4_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT4_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},WQ={BATT5_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT5_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT5_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT5__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT5_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT5_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},User:"Standard"},BATT5_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT5__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT5_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT5_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT5_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT5_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT5_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT5_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT5_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT5_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT5_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT5_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT5_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT5_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT5_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"UAVCAN-BatteryInfo",9:"ESC",10:"SumOfFollowing",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye"}},BATT5_OPTIONS:{Bitmask:{0:"Ignore UAVCAN SoC"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT5_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With UAVCAN it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT5_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT5_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT5_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},XQ={BATT6_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT6_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT6_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT6__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT6_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT6_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},User:"Standard"},BATT6_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT6__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT6_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT6_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT6_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT6_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT6_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT6_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT6_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT6_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT6_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT6_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT6_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT6_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT6_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"UAVCAN-BatteryInfo",9:"ESC",10:"SumOfFollowing",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye"}},BATT6_OPTIONS:{Bitmask:{0:"Ignore UAVCAN SoC"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT6_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With UAVCAN it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT6_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT6_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT6_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},YQ={BATT7_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT7_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT7_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT7__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT7_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT7_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},User:"Standard"},BATT7_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT7__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT7_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT7_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT7_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT7_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT7_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT7_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT7_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT7_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT7_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT7_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT7_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT7_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT7_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"UAVCAN-BatteryInfo",9:"ESC",10:"SumOfFollowing",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye"}},BATT7_OPTIONS:{Bitmask:{0:"Ignore UAVCAN SoC"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT7_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With UAVCAN it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT7_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT7_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT7_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},$Q={BATT8_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT8_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT8_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT8__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT8_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT8_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},User:"Standard"},BATT8_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT8__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT8_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT8_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT8_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT8_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT8_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT8_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT8_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT8_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT8_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT8_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT8_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT8_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT8_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"UAVCAN-BatteryInfo",9:"ESC",10:"SumOfFollowing",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye"}},BATT8_OPTIONS:{Bitmask:{0:"Ignore UAVCAN SoC"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT8_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With UAVCAN it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT8_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT8_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT8_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},qQ={BATT9_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT9_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT9_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT9__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT9_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT9_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},User:"Standard"},BATT9_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT9__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT9_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT9_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT9_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT9_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT9_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT9_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT9_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT9_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT9_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT9_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT9_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT9_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT9_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"UAVCAN-BatteryInfo",9:"ESC",10:"SumOfFollowing",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye"}},BATT9_OPTIONS:{Bitmask:{0:"Ignore UAVCAN SoC"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT9_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With UAVCAN it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT9_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT9_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT9_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},KQ={BATT_AMP_OFFSET:{Description:"Voltage offset at zero current on current sensor",DisplayName:"AMP offset",Units:"V",User:"Standard"},BATT_AMP_PERVLT:{Description:"Number of amps that a 1V reading on the current sensor corresponds to. With a Pixhawk using the 3DR Power brick this should be set to 17. For the Pixhawk with the 3DR 4in1 ESC this should be 17.",DisplayName:"Amps per volt",Units:"A/V",User:"Standard"},BATT_ARM_MAH:{Description:"Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT__ARM_VOLT parameter.",DisplayName:"Required arming remaining capacity",Increment:"50",Units:"mAh",User:"Advanced"},BATT_ARM_VOLT:{Description:"Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",DisplayName:"Required arming voltage",Increment:"0.1",Units:"V",User:"Advanced"},BATT_BUS:{Description:"Battery monitor I2C bus number",DisplayName:"Battery monitor I2C bus number",Range:{high:"3",low:"0"},User:"Standard"},BATT_CAPACITY:{Description:"Capacity of the battery in mAh when full",DisplayName:"Battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_CRT_MAH:{Description:"Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT__FS_CRT_ACT parameter.",DisplayName:"Battery critical capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_CRT_VOLT:{Description:"Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT_FS_CRT_ACT parameter.",DisplayName:"Critical battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT_CURR_PIN:{Description:"Sets the analog input pin that should be used for current monitoring.",DisplayName:"Battery Current sensing pin",RebootRequired:"True",User:"Standard",Values:{3:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",4:"CubeOrange_PM2/Navigator",14:"Pixhawk2_PM2",15:"CubeOrange",17:"Durandal",101:"PX4-v1","-1":"Disabled"}},BATT_FS_CRT_ACT:{Description:"What action the vehicle should perform if it hits a critical battery failsafe",DisplayName:"Critical battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT_FS_LOW_ACT:{Description:"What action the vehicle should perform if it hits a low battery failsafe",DisplayName:"Low battery failsafe action",User:"Standard",Values:{0:"None",2:"Disarm",3:"Enter surface mode"}},BATT_FS_VOLTSRC:{Description:"Voltage type used for detection of low voltage event",DisplayName:"Failsafe voltage source",User:"Advanced",Values:{0:"Raw Voltage",1:"Sag Compensated Voltage"}},BATT_LOW_MAH:{Description:"Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT_FS_LOW_ACT parameter.",DisplayName:"Low battery capacity",Increment:"50",Units:"mAh",User:"Standard"},BATT_LOW_TIMER:{Description:"This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",DisplayName:"Low voltage timeout",Increment:"1",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"},BATT_LOW_VOLT:{Description:"Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT_FS_LOW_ACT parameter.",DisplayName:"Low battery voltage",Increment:"0.1",Units:"V",User:"Standard"},BATT_MONITOR:{Description:"Controls enabling monitoring of the battery's voltage and current",DisplayName:"Battery monitoring",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",3:"Analog Voltage Only",4:"Analog Voltage and Current",5:"Solo",6:"Bebop",7:"SMBus-Generic",8:"UAVCAN-BatteryInfo",9:"ESC",10:"SumOfFollowing",11:"FuelFlow",12:"FuelLevelPWM",13:"SMBUS-SUI3",14:"SMBUS-SUI6",15:"NeoDesign",16:"SMBus-Maxell",17:"Generator-Elec",18:"Generator-Fuel",19:"Rotoye"}},BATT_OPTIONS:{Bitmask:{0:"Ignore UAVCAN SoC"},Description:"This sets options to change the behaviour of the battery monitor",DisplayName:"Battery monitor options",User:"Advanced"},BATT_SERIAL_NUM:{Description:"Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With UAVCAN it is the battery_id.",DisplayName:"Battery serial number",User:"Advanced"},BATT_VOLT_MULT:{Description:"Used to convert the voltage of the voltage sensing pin (BATT_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT). For the 3DR Power brick with a Pixhawk, this should be set to 10.1. For the Pixhawk with the 3DR 4in1 ESC this should be 12.02. For the PX using the PX4IO power supply this should be set to 1.",DisplayName:"Voltage Multiplier",User:"Advanced"},BATT_VOLT_PIN:{Description:"Sets the analog input pin that should be used for voltage monitoring.",DisplayName:"Battery Voltage sensing pin",RebootRequired:"True",User:"Standard",Values:{2:"Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",5:"Navigator",13:"Pixhawk2_PM2/CubeOrange_PM2",14:"CubeOrange",16:"Durandal",100:"PX4-v1","-1":"Disabled"}}},jQ={BRD_ALT_CONFIG:{Description:"Select an alternative hardware configuration. A value of zero selects the default configuration for this board. Other values are board specific. Please see the documentation for your board for details on any alternative configuration values that may be available.",DisplayName:"Alternative HW config",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},BRD_BOOT_DELAY:{Description:"This adds a delay in milliseconds to boot to ensure peripherals initialise fully",DisplayName:"Boot delay",Range:{high:"10000",low:"0"},Units:"ms",User:"Advanced"},BRD_IMUHEAT_I:{Description:"IMU Heater integrator gain",DisplayName:"IMU Heater I gain",Increment:"0.1",Range:{high:"1",low:"0"},User:"Advanced"},BRD_IMUHEAT_IMAX:{Description:"IMU Heater integrator maximum",DisplayName:"IMU Heater IMAX",Increment:"1",Range:{high:"100",low:"0"},User:"Advanced"},BRD_IMUHEAT_P:{Description:"IMU Heater P gain",DisplayName:"IMU Heater P gain",Increment:"1",Range:{high:"500",low:"1"},User:"Advanced"},BRD_IMU_TARGTEMP:{Description:"This sets the target IMU temperature for boards with controllable IMU heating units. DO NOT SET to -1 on the Cube. Set to -1 to disable the heater, please reboot after setting to -1.",DisplayName:"Target IMU temperature",Range:{high:"80",low:"-1"},Units:"degC",User:"Advanced"},BRD_IO_ENABLE:{Description:"This allows for the IO co-processor on FMUv1 and FMUv2 to be disabled",DisplayName:"Enable IO co-processor",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BRD_OPTIONS:{Bitmask:{0:"Enable hardware watchdog",1:"Disable MAVftp",2:"Enable set of internal parameters",3:"Enable Debug Pins"},Description:"Board specific option flags",DisplayName:"Board options",User:"Advanced"},BRD_PWM_COUNT:{Description:"Controls number of FMU outputs which are setup for PWM. All unassigned pins can be used for GPIO",DisplayName:"Auxiliary pin config",RebootRequired:"True",User:"Advanced",Values:{0:"No PWMs",1:"One PWMs",2:"Two PWMs",3:"Three PWMs",4:"Four PWMs",5:"Five PWMs",6:"Six PWMs",7:"Seven PWMs",8:"Eight PWMs"}},BRD_PWM_VOLT_SEL:{Description:"This sets the voltage max for PWM output pulses. 0 for 3.3V and 1 for 5V output.",DisplayName:"Set PWM Out Voltage",User:"Advanced",Values:{0:"3.3V",1:"5V"}},BRD_SAFETYENABLE:{Description:"This controls the default state of the safety switch at startup. When set to 1 the safety switch will start in the safe state (flashing) at boot. When set to zero the safety switch will start in the unsafe state (solid) at startup. Note that if a safety switch is fitted the user can still control the safety state after startup using the switch. The safety state can also be controlled in software using a MAVLink message.",DisplayName:"Enable use of safety arming switch",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},BRD_SAFETYOPTION:{Bitmask:{0:"ActiveForSafetyEnable",1:"ActiveForSafetyDisable",2:"ActiveWhenArmed",3:"Force safety on when the aircraft disarms"},Description:"This controls the activation of the safety button. It allows you to control if the safety button can be used for safety enable and/or disable, and whether the button is only active when disarmed",DisplayName:"Options for safety button behavior",User:"Standard"},BRD_SAFETY_MASK:{Bitmask:{0:"Output1",1:"Output2",2:"Output3",3:"Output4",4:"Output5",5:"Output6",6:"Output7",7:"Output8",8:"Output9",9:"Output10",10:"Output11",11:"Output12",12:"Output13",13:"Output14"},Description:"A bitmask which controls what outputs can move while the safety switch has not been pressed",DisplayName:"Outputs which ignore the safety switch state",RebootRequired:"True",User:"Advanced"},BRD_SBUS_OUT:{Description:"This sets the SBUS output frame rate in Hz",DisplayName:" SBUS output rate",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"50Hz",2:"75Hz",3:"100Hz",4:"150Hz",5:"200Hz",6:"250Hz",7:"300Hz"}},BRD_SD_SLOWDOWN:{Description:"This is a scaling factor to slow down microSD operation. It can be used on flight board and microSD card combinations where full speed is not reliable. For normal full speed operation a value of 0 should be used.",DisplayName:"microSD slowdown",Increment:"1",Range:{high:"32",low:"0"},User:"Advanced"},BRD_SER1_RTSCTS:{Description:"Enable flow control on serial 1 (telemetry 1) on Pixhawk. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup. Note that the PX4v1 does not have hardware flow control pins on this port, so you should leave this disabled.",DisplayName:"Serial 1 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER2_RTSCTS:{Description:"Enable flow control on serial 2 (telemetry 2) on Pixhawk and STATE. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 2 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER3_RTSCTS:{Description:"Enable flow control on serial 3. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 3 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER4_RTSCTS:{Description:"Enable flow control on serial 4. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 4 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SER5_RTSCTS:{Description:"Enable flow control on serial 5. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",DisplayName:"Serial 5 flow control",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"Auto"}},BRD_SERIAL_NUM:{Description:"User-defined serial number of this vehicle, it can be any arbitrary number you want and has no effect on the autopilot",DisplayName:"User-defined serial number",Range:{high:"32767",low:"-32768"},User:"Standard"},BRD_TYPE:{Description:"This allows selection of a PX4 or VRBRAIN board type. If set to zero then the board type is auto-detected (PX4)",DisplayName:"Board type",RebootRequired:"True",User:"Advanced",Values:{0:"AUTO",1:"PX4V1",2:"Pixhawk",3:"Cube/Pixhawk2",4:"Pixracer",5:"PixhawkMini",6:"Pixhawk2Slim",13:"Intel Aero FC",14:"Pixhawk Pro",20:"AUAV2.1",21:"PCNC1",22:"MINDPXV2",23:"SP01",24:"CUAVv5/FMUV5",30:"VRX BRAIN51",32:"VRX BRAIN52",33:"VRX BRAIN52E",34:"VRX UBRAIN51",35:"VRX UBRAIN52",36:"VRX CORE10",38:"VRX BRAIN54",39:"PX4 FMUV6",100:"PX4 OLDDRIVERS"}},BRD_VBUS_MIN:{Description:"Minimum voltage on the autopilot power rail to allow the aircraft to arm. 0 to disable the check.",DisplayName:"Autopilot board voltage requirement",Increment:"0.1",Range:{high:"5.5",low:"4.0"},Units:"V",User:"Advanced"},BRD_VSERVO_MIN:{Description:"Minimum voltage on the servo rail to allow the aircraft to arm. 0 to disable the check.",DisplayName:"Servo voltage requirement",Increment:"0.1",Range:{high:"12.0",low:"3.3"},Units:"V",User:"Advanced"}},QQ={BRD_RADIO_ABLVL:{Description:"This sets the minimum RSSI of an auto-bind packet for it to be accepted. This should be set so that auto-bind will only happen at short range to minimise the change of an auto-bind happening accidentially",DisplayName:"Auto-bind level",Range:{high:"31",low:"0"},User:"Advanced"},BRD_RADIO_ABTIME:{Description:"When non-zero this sets the time with no transmitter packets before we start looking for auto-bind packets.",DisplayName:"Auto-bind time",Range:{high:"120",low:"0"},User:"Advanced"},BRD_RADIO_BZOFS:{Description:"Set transmitter buzzer note adjustment (adjust frequency up)",DisplayName:"Transmitter buzzer adjustment",Range:{high:"40",low:"0"},User:"Advanced"},BRD_RADIO_DEBUG:{Description:"radio debug level",DisplayName:"debug level",Range:{high:"4",low:"0"},User:"Advanced"},BRD_RADIO_DISCRC:{Description:"disable receive CRC (for debug)",DisplayName:"disable receive CRC",User:"Advanced",Values:{0:"NotDisabled",1:"Disabled"}},BRD_RADIO_FCCTST:{Description:"If this is enabled then the radio will continuously transmit as required for FCC testing. The transmit channel is set by the value of the parameter. The radio will not work for RC input while this is enabled",DisplayName:"Put radio into FCC test mode",User:"Advanced",Values:{0:"Disabled",1:"MinChannel",2:"MidChannel",3:"MaxChannel",4:"MinChannelCW",5:"MidChannelCW",6:"MaxChannelCW"}},BRD_RADIO_PPSCH:{Description:"Channel to show received packet-per-second rate, or zero for disabled",DisplayName:"Packet rate channel",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_PROT:{Description:"Select air protocol",DisplayName:"protocol",User:"Advanced",Values:{0:"Auto",1:"DSM2",2:"DSMX"}},BRD_RADIO_SIGCH:{Description:"Channel to show receive RSSI signal strength, or zero for disabled",DisplayName:"RSSI signal strength",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_STKMD:{Description:"This selects between different stick input modes. The default is mode2, which has throttle on the left stick and pitch on the right stick. You can instead set mode1, which has throttle on the right stick and pitch on the left stick.",DisplayName:"Stick input mode",User:"Advanced",Values:{1:"Mode1",2:"Mode2"}},BRD_RADIO_TELEM:{Description:"If this is non-zero then telemetry packets will be sent over DSM",DisplayName:"Enable telemetry",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},BRD_RADIO_TESTCH:{Description:"This sets the radio to a fixed test channel for factory testing. Using a fixed channel avoids the need for binding in factory testing.",DisplayName:"Set radio to factory test channel",User:"Advanced",Values:{0:"Disabled",1:"TestChan1",2:"TestChan2",3:"TestChan3",4:"TestChan4",5:"TestChan5",6:"TestChan6",7:"TestChan7",8:"TestChan8"}},BRD_RADIO_TPPSCH:{Description:"Channel to show telemetry packets-per-second value, as received at TX",DisplayName:"Telemetry PPS channel",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_TSIGCH:{Description:"Channel to show telemetry RSSI value as received by TX",DisplayName:"RSSI value channel for telemetry data on transmitter",Range:{high:"16",low:"0"},User:"Advanced"},BRD_RADIO_TXMAX:{Description:"Set transmitter maximum transmit power (from 1 to 8)",DisplayName:"Transmitter transmit power",Range:{high:"8",low:"1"},User:"Advanced"},BRD_RADIO_TXPOW:{Description:"Set telemetry transmit power. This is the power level (from 1 to 8) for telemetry packets sent from the RX to the TX",DisplayName:"Telemetry Transmit power",Range:{high:"8",low:"1"},User:"Advanced"},BRD_RADIO_TYPE:{Description:"This enables support for direct attached radio receivers",DisplayName:"Set type of direct attached radio",Values:{0:"None",1:"CYRF6936",2:"CC2500",3:"BK2425"}}},JQ={BRD_RTC_TYPES:{Bitmask:{0:"GPS",1:"MAVLINK_SYSTEM_TIME",2:"HW"},Description:"Specifies which sources of UTC time will be accepted",DisplayName:"Allowed sources of RTC time",User:"Advanced"},BRD_RTC_TZ_MIN:{Description:"Adds offset in +- minutes from UTC to calculate local time",DisplayName:"Timezone offset from UTC",Range:{high:"+840",low:"-720"},User:"Advanced"}},eJ={BTN0_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN0_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},tJ={BTN10_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN10_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},iJ={BTN11_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN11_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},aJ={BTN12_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN12_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},rJ={BTN13_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN13_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},nJ={BTN14_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN14_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},oJ={BTN15_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN15_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},sJ={BTN1_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN1_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},lJ={BTN2_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN2_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},cJ={BTN3_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN3_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},dJ={BTN4_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN4_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},CJ={BTN5_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN5_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},mJ={BTN6_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN6_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},uJ={BTN7_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN7_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},hJ={BTN8_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN8_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},pJ={BTN9_FUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}},BTN9_SFUNCTION:{Description:"Set to 0 to disable or choose a function",DisplayName:"Function for button when the shift mode is toggled on",User:"Standard",Values:{0:"Disabled",1:"shift",2:"arm_toggle",3:"arm",4:"disarm",5:"mode_manual",6:"mode_stabilize",7:"mode_depth_hold",8:"mode_poshold",9:"mode_auto",10:"mode_circle",11:"mode_guided",12:"mode_acro",21:"mount_center",22:"mount_tilt_up",23:"mount_tilt_down",24:"camera_trigger",25:"camera_source_toggle",26:"mount_pan_right",27:"mount_pan_left",31:"lights1_cycle",32:"lights1_brighter",33:"lights1_dimmer",34:"lights2_cycle",35:"lights2_brighter",36:"lights2_dimmer",41:"gain_toggle",42:"gain_inc",43:"gain_dec",44:"trim_roll_inc",45:"trim_roll_dec",46:"trim_pitch_inc",47:"trim_pitch_dec",48:"input_hold_set",49:"roll_pitch_toggle",51:"relay_1_on",52:"relay_1_off",53:"relay_1_toggle",54:"relay_2_on",55:"relay_2_off",56:"relay_2_toggle",57:"relay_3_on",58:"relay_3_off",59:"relay_3_toggle",61:"servo_1_inc",62:"servo_1_dec",63:"servo_1_min",64:"servo_1_max",65:"servo_1_center",66:"servo_2_inc",67:"servo_2_dec",68:"servo_2_min",69:"servo_2_max",70:"servo_2_center",71:"servo_3_inc",72:"servo_3_dec",73:"servo_3_min",74:"servo_3_max",75:"servo_3_center",76:"servo_1_min_momentary",77:"servo_1_max_momentary",78:"servo_1_min_toggle",79:"servo_1_max_toggle",80:"servo_2_min_momentary",81:"servo_2_max_momentary",82:"servo_2_min_toggle",83:"servo_2_max_toggle",84:"servo_3_min_momentary",85:"servo_3_max_momentary",86:"servo_3_min_toggle",87:"servo_3_max_toggle",91:"custom_1",92:"custom_2",93:"custom_3",94:"custom_4",95:"custom_5",96:"custom_6",101:"relay_4_on",102:"relay_4_off",103:"relay_4_toggle",104:"relay_1_momentary",105:"relay_2_momentary",106:"relay_3_momentary",107:"relay_4_momentary"}}},fJ={CAM_AUTO_ONLY:{Description:"When enabled, trigging by distance is done in AUTO mode only.",DisplayName:"Distance-trigging in AUTO mode only",User:"Standard",Values:{0:"Always",1:"Only when in AUTO"}},CAM_DURATION:{Description:"How long the shutter will be held open in 10ths of a second (i.e. enter 10 for 1second, 50 for 5seconds)",DisplayName:"Duration that shutter is held open",Range:{high:"50",low:"0"},Units:"ds",User:"Standard"},CAM_FEEDBACK_PIN:{Description:"pin number to use for save accurate camera feedback messages. If set to -1 then don't use a pin flag for this, otherwise this is a pin number which if held high after a picture trigger order, will save camera messages when camera really takes a picture. A universal camera hot shoe is needed. The pin should be held high for at least 2 milliseconds for reliable trigger detection. See also the CAM_FEEDBACK_POL option.",DisplayName:"Camera feedback pin",RebootRequired:"True",User:"Standard",Values:{50:"AUX1",51:"AUX2",52:"AUX3",53:"AUX4",54:"AUX5",55:"AUX6","-1":"Disabled"}},CAM_FEEDBACK_POL:{Description:"Polarity for feedback pin. If this is 1 then the feedback pin should go high on trigger. If set to 0 then it should go low",DisplayName:"Camera feedback pin polarity",User:"Standard",Values:{0:"TriggerLow",1:"TriggerHigh"}},CAM_MAX_ROLL:{Description:"Postpone shooting if roll is greater than limit. (0=Disable, will shoot regardless of roll).",DisplayName:"Maximum photo roll angle.",Range:{high:"180",low:"0"},Units:"deg",User:"Standard"},CAM_MIN_INTERVAL:{Description:"Postpone shooting if previous picture was taken less than preset time(ms) ago.",DisplayName:"Minimum time between photos",Range:{high:"10000",low:"0"},Units:"ms",User:"Standard"},CAM_RELAY_ON:{Description:"This sets whether the relay goes high or low when it triggers. Note that you should also set RELAY_DEFAULT appropriately for your camera",DisplayName:"Relay ON value",User:"Standard",Values:{0:"Low",1:"High"}},CAM_SERVO_OFF:{Description:"PWM value in microseconds to move servo to when shutter is deactivated",DisplayName:"Servo OFF PWM value",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CAM_SERVO_ON:{Description:"PWM value in microseconds to move servo to when shutter is activated",DisplayName:"Servo ON PWM value",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Standard"},CAM_TRIGG_DIST:{Description:"Distance in meters between camera triggers. If this value is non-zero then the camera will trigger whenever the position changes by this number of meters regardless of what mode the APM is in. Note that this parameter can also be set in an auto mission using the DO_SET_CAM_TRIGG_DIST command, allowing you to enable/disable the triggering of the camera during the flight.",DisplayName:"Camera trigger distance",Range:{high:"1000",low:"0"},Units:"m",User:"Standard"},CAM_TRIGG_TYPE:{Description:"how to trigger the camera to take a picture",DisplayName:"Camera shutter (trigger) type",User:"Standard",Values:{0:"Servo",1:"Relay",2:"GoPro in Solo Gimbal"}},CAM_TYPE:{Description:"Set the camera type that is being used, certain cameras have custom functions that need further configuration, this enables that.",DisplayName:"Type of camera (0: None, 1: BMMCC)",User:"Standard",Values:{0:"Default",1:"BMMCC"}}},VJ={CAM_RC_BTN_DELAY:{Description:"Time it takes for the a RunCam button press to be actived in ms. If this is too short then commands can get out of sync.",DisplayName:"RunCam button delay before allowing further button presses",User:"Advanced"},CAM_RC_BT_DELAY:{Description:"Time it takes for the RunCam to become fully ready in ms. If this is too short then commands can get out of sync.",DisplayName:"RunCam boot delay before allowing updates",User:"Advanced"},CAM_RC_CONTROL:{Bitmask:{0:"Stick yaw right",1:"Stick roll right",2:"3-position switch",3:"2-position switch",4:"Autorecording enabled"},Description:"Specifies the allowed actions required to enter the OSD menu",DisplayName:"RunCam control option",User:"Advanced"},CAM_RC_FEATURES:{Bitmask:{0:"Power Button",1:"WiFi Button",2:"Change Mode",3:"5-Key OSD",4:"Settings Access",5:"DisplayPort",6:"Start Recording",7:"Stop Recording"},Description:"The available features of the attached RunCam device. If 0 then the RunCam device will be queried for the features it supports, otherwise this setting is used.",DisplayName:"RunCam features available",User:"Advanced"},CAM_RC_MDE_DELAY:{Description:"Time it takes for the a RunCam mode button press to be actived in ms. If a mode change first requires a video recording change then double this value is used. If this is too short then commands can get out of sync.",DisplayName:"RunCam mode delay before allowing further button presses",User:"Advanced"},CAM_RC_TYPE:{Description:"RunCam deviee type used to determine OSD menu structure and shutter options.",DisplayName:"RunCam device type",Values:{0:"Disabled",1:"RunCam Split Micro/RunCam with UART",2:"RunCam Split",3:"RunCam Split4 4k",4:"RunCam Hybrid"}}},LJ={CAN_LOGLEVEL:{Description:"Loglevel for recording initialisation and debug information from CAN Interface",DisplayName:"Loglevel",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Log None",1:"Log Error",2:"Log Warning and below",3:"Log Info and below",4:"Log Everything"}}},HJ={CAN_D1_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"UAVCAN",3:"ToshibaCAN",4:"PiccoloCAN",5:"CANTester",8:"KDECAN",9:"PacketDigitalCAN"}}},MJ={CAN_D1_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},gJ={CAN_D1_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D1_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D1_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D1_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},AJ={CAN_D1_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",4:"TEST_TOSHIBA_CAN",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC"}},CAN_D1_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},vJ={CAN_D1_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"RC Out channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D1_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D1_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D1_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"RC Out channels to be transmitted as servo over UAVCAN",User:"Advanced"},CAN_D1_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},_J={CAN_D2_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"UAVCAN",3:"ToshibaCAN",4:"PiccoloCAN",5:"CANTester",8:"KDECAN",9:"PacketDigitalCAN"}}},SJ={CAN_D2_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},DJ={CAN_D2_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D2_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D2_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D2_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},yJ={CAN_D2_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",4:"TEST_TOSHIBA_CAN",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC"}},CAN_D2_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},RJ={CAN_D2_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"RC Out channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D2_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D2_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D2_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"RC Out channels to be transmitted as servo over UAVCAN",User:"Advanced"},CAN_D2_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},bJ={CAN_D3_PROTOCOL:{Description:"Enabling this option starts selected protocol that will use this virtual driver",DisplayName:"Enable use of specific protocol over virtual driver",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"UAVCAN",3:"ToshibaCAN",4:"PiccoloCAN",5:"CANTester",8:"KDECAN",9:"PacketDigitalCAN"}}},NJ={CAN_D3_KDE_NPOLE:{Description:"Sets the number of motor poles to calculate the correct RPM value",DisplayName:"Number of motor poles"}},wJ={CAN_D3_PC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",DisplayName:"ESC channels",User:"Advanced"},CAN_D3_PC_ESC_RT:{Description:"Output rate of ESC command messages",DisplayName:"ESC output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"},CAN_D3_PC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15",15:"Servo 16"},Description:"Bitmask defining which servo channels are to be transmitted over Piccolo CAN",DisplayName:"Servo channels",User:"Advanced"},CAN_D3_PC_SRV_RT:{Description:"Output rate of servo command messages",DisplayName:"Servo command output rate",Range:{high:"500",low:"1"},Units:"Hz",User:"Advanced"}},TJ={CAN_D3_TST_ID:{Description:"Selects the Index of Test that needs to be run recursively, this value gets reset to 0 at boot.",DisplayName:"CAN Test Index",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"TEST_NONE",1:"TEST_LOOPBACK",2:"TEST_BUSOFF_RECOVERY",3:"TEST_UAVCAN_DNA",4:"TEST_TOSHIBA_CAN",5:"TEST_KDE_CAN",6:"TEST_UAVCAN_ESC"}},CAN_D3_TST_LPR8:{Description:"Selects the Looprate of Test methods",DisplayName:"CANTester LoopRate",Units:"us",User:"Advanced"}},EJ={CAN_D3_UC_ESC_BM:{Bitmask:{0:"ESC 1",1:"ESC 2",2:"ESC 3",3:"ESC 4",4:"ESC 5",5:"ESC 6",6:"ESC 7",7:"ESC 8",8:"ESC 9",9:"ESC 10",10:"ESC 11",11:"ESC 12",12:"ESC 13",13:"ESC 14",14:"ESC 15",15:"ESC 16"},Description:"Bitmask with one set for channel to be transmitted as a ESC command over UAVCAN",DisplayName:"RC Out channels to be transmitted as ESC over UAVCAN",User:"Advanced"},CAN_D3_UC_NODE:{Description:"UAVCAN node should be set implicitly",DisplayName:"UAVCAN node that is used for this network",Range:{high:"250",low:"1"},User:"Advanced"},CAN_D3_UC_OPTION:{Bitmask:{0:"ClearDNADatabase",1:"IgnoreDNANodeConflicts"},Description:"Option flags",DisplayName:"UAVCAN options",User:"Advanced"},CAN_D3_UC_SRV_BM:{Bitmask:{0:"Servo 1",1:"Servo 2",2:"Servo 3",3:"Servo 4",4:"Servo 5",5:"Servo 6",6:"Servo 7",7:"Servo 8",8:"Servo 9",9:"Servo 10",10:"Servo 11",11:"Servo 12",12:"Servo 13",13:"Servo 14",14:"Servo 15"},Description:"Bitmask with one set for channel to be transmitted as a servo command over UAVCAN",DisplayName:"RC Out channels to be transmitted as servo over UAVCAN",User:"Advanced"},CAN_D3_UC_SRV_RT:{Description:"Maximum transmit rate for servo outputs",DisplayName:"Servo output rate",Range:{high:"200",low:"1"},Units:"Hz",User:"Advanced"}},PJ={CAN_P1_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P1_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver"}}},IJ={CAN_P2_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P2_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver"}}},OJ={CAN_P3_BITRATE:{Description:"Bit rate can be set up to from 10000 to 1000000",DisplayName:"Bitrate of CAN interface",Range:{high:"1000000",low:"10000"},User:"Advanced"},CAN_P3_DRIVER:{Description:"Enabling this option enables use of CAN buses.",DisplayName:"Index of virtual driver to be used with physical CAN interface",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First driver",2:"Second driver"}}},UJ={CAN_SLCAN_CPORT:{Description:"CAN Interface ID to be routed to SLCAN, 0 means no routing",DisplayName:"SLCAN Route",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"First interface",2:"Second interface"}},CAN_SLCAN_SDELAY:{Description:"Duration after which slcan starts after setting SERNUM in seconds.",DisplayName:"SLCAN Start Delay",Range:{high:"127",low:"0"},User:"Standard"},CAN_SLCAN_SERNUM:{Description:"Serial Port ID to be used for temporary SLCAN iface, -1 means no temporary serial. This parameter is automatically reset on reboot or on timeout. See CAN_SLCAN_TIMOUT for timeout details",DisplayName:"SLCAN Serial Port",User:"Standard",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},CAN_SLCAN_TIMOUT:{Description:"Duration of inactivity after which SLCAN is switched back to original driver in seconds.",DisplayName:"SLCAN Timeout",Range:{high:"127",low:"0"},User:"Standard"}},xJ={CIRCLE_OPTIONS:{Bitmask:{0:"manual control",1:"face direction of travel",2:"Start at center rather than on perimeter"},Description:"0:Enable or disable using the pitch/roll stick control circle mode's radius and rate",DisplayName:"Circle options",User:"Standard"},CIRCLE_RADIUS:{Description:"Defines the radius of the circle the vehicle will fly when in Circle flight mode",DisplayName:"Circle Radius",Increment:"100",Range:{high:"200000",low:"0"},Units:"cm",User:"Standard"},CIRCLE_RATE:{Description:"Circle mode's turn rate in deg/sec. Positive to turn clockwise, negative for counter clockwise",DisplayName:"Circle rate",Increment:"1",Range:{high:"90",low:"-90"},Units:"deg/s",User:"Standard"}},FJ={COMPASS_AUTODEC:{Description:"Enable or disable the automatic calculation of the declination based on gps location",DisplayName:"Auto Declination",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_AUTO_ROT:{Description:"When enabled this will automatically check the orientation of compasses on successful completion of compass calibration. If set to 2 then external compasses will have their orientation automatically corrected.",DisplayName:"Automatically check orientation",Values:{0:"Disabled",1:"CheckOnly",2:"CheckAndFix"}},COMPASS_CAL_FIT:{Description:"This controls the fitness level required for a successful compass calibration. A lower value makes for a stricter fit (less likely to pass). This is the value used for the primary magnetometer. Other magnetometers get double the value.",DisplayName:"Compass calibration fitness",Increment:"0.1",Range:{high:"32",low:"4"},User:"Advanced",Values:{4:"Very Strict",8:"Strict",16:"Default",32:"Relaxed"}},COMPASS_CUS_PIT:{Description:"Compass mounting position pitch offset. Positive values = pitch up, negative values = pitch down. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation pitch offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_CUS_ROLL:{Description:"Compass mounting position roll offset. Positive values = roll right, negative values = roll left. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation roll offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_CUS_YAW:{Description:"Compass mounting position yaw offset. Positive values = yaw right, negative values = yaw left. This parameter is only used when COMPASS_ORIENT/2/3 is set to CUSTOM.",DisplayName:"Custom orientation yaw offset",Increment:"1",Range:{high:"180",low:"-180"},RebootRequired:"True",Units:"deg",User:"Advanced"},COMPASS_DEC:{Description:"An angle to compensate between the true north and magnetic north",DisplayName:"Compass declination",Increment:"0.01",Range:{high:"3.142",low:"-3.142"},Units:"rad",User:"Standard"},COMPASS_DEV_ID:{Description:"Compass device id. Automatically detected, do not set manually",DisplayName:"Compass device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID2:{Description:"Second compass's device id. Automatically detected, do not set manually",DisplayName:"Compass2 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID3:{Description:"Third compass's device id. Automatically detected, do not set manually",DisplayName:"Compass3 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID4:{Description:"Extra 4th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass4 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID5:{Description:"Extra 5th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass5 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID6:{Description:"Extra 6th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass6 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID7:{Description:"Extra 7th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass7 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DEV_ID8:{Description:"Extra 8th compass's device id. Automatically detected, do not set manually",DisplayName:"Compass8 device id",ReadOnly:"True",User:"Advanced"},COMPASS_DIA2_X:{Calibration:"1",Description:"DIA_X in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA2_Y:{Calibration:"1",Description:"DIA_Y in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA2_Z:{Description:"DIA_Z in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron diagonal Z component",User:"Advanced"},COMPASS_DIA3_X:{Calibration:"1",Description:"DIA_X in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA3_Y:{Calibration:"1",Description:"DIA_Y in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA3_Z:{Description:"DIA_Z in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron diagonal Z component",User:"Advanced"},COMPASS_DIA_X:{Calibration:"1",Description:"DIA_X in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal X component",User:"Advanced"},COMPASS_DIA_Y:{Calibration:"1",Description:"DIA_Y in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal Y component",User:"Advanced"},COMPASS_DIA_Z:{Description:"DIA_Z in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron diagonal Z component",User:"Advanced"},COMPASS_ENABLE:{Description:"Setting this to Enabled(1) will enable the compass. Setting this to Disabled(0) will disable the compass. Note that this is separate from COMPASS_USE. This will enable the low level senor, and will enable logging of magnetometer data. To use the compass for navigation you must also set COMPASS_USE to 1.",DisplayName:"Enable Compass",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},COMPASS_EXTERN2:{Description:"Configure second compass so it is attached externally. This is auto-detected on PX4 and Pixhawk. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass2 is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_EXTERN3:{Description:"Configure third compass so it is attached externally. This is auto-detected on PX4 and Pixhawk. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass3 is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_EXTERNAL:{Description:"Configure compass so it is attached externally. This is auto-detected on PX4 and Pixhawk. Set to 1 if the compass is externally connected. When externally connected the COMPASS_ORIENT option operates independently of the AHRS_ORIENTATION board orientation option. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",DisplayName:"Compass is attached via an external cable",User:"Advanced",Values:{0:"Internal",1:"External",2:"ForcedExternal"}},COMPASS_FLTR_RNG:{Description:"This sets the range around the average value that new samples must be within to be accepted. This can help reduce the impact of noise on sensors that are on long I2C cables. The value is a percentage from the average value. A value of zero disables this filter.",DisplayName:"Range in which sample is accepted",Increment:"1",Range:{high:"100",low:"0"},Units:"%"},COMPASS_LEARN:{Description:"Enable or disable the automatic learning of compass offsets. You can enable learning either using a compass-only method that is suitable only for fixed wing aircraft or using the offsets learnt by the active EKF state estimator. If this option is enabled then the learnt offsets are saved when you disarm the vehicle. If InFlight learning is enabled then the compass with automatically start learning once a flight starts (must be armed). While InFlight learning is running you cannot use position control modes.",DisplayName:"Learn compass offsets automatically",User:"Advanced",Values:{0:"Disabled",1:"Internal-Learning",2:"EKF-Learning",3:"InFlight-Learning"}},COMPASS_MOT2_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass2's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT2_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass2's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT2_Z:{Description:"Multiplied by the current throttle and added to compass2's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass2 for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass3's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to compass3's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT3_Z:{Description:"Multiplied by the current throttle and added to compass3's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation to compass3 for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOTCT:{Calibration:"1",Description:"Set motor interference compensation type to disabled, throttle or current. Do not change manually.",DisplayName:"Motor interference compensation type",User:"Advanced",Values:{0:"Disabled",1:"Use Throttle",2:"Use Current"}},COMPASS_MOT_X:{Calibration:"1",Description:"Multiplied by the current throttle and added to the compass's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame X axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT_Y:{Calibration:"1",Description:"Multiplied by the current throttle and added to the compass's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame Y axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_MOT_Z:{Description:"Multiplied by the current throttle and added to the compass's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",DisplayName:"Motor interference compensation for body frame Z axis",Increment:"1",Range:{high:"1000",low:"-1000"},Units:"mGauss/A",User:"Advanced"},COMPASS_ODI2_X:{Calibration:"1",Description:"ODI_X in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI2_Y:{Calibration:"1",Description:"ODI_Y in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI2_Z:{Description:"ODI_Z in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass2 soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_ODI3_X:{Calibration:"1",Description:"ODI_X in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI3_Y:{Calibration:"1",Description:"ODI_Y in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI3_Z:{Description:"ODI_Z in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass3 soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_ODI_X:{Calibration:"1",Description:"ODI_X in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal X component",User:"Advanced"},COMPASS_ODI_Y:{Calibration:"1",Description:"ODI_Y in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal Y component",User:"Advanced"},COMPASS_ODI_Z:{Description:"ODI_Z in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",DisplayName:"Compass soft-iron off-diagonal Z component",User:"Advanced"},COMPASS_OFFS_MAX:{Description:"This sets the maximum allowed compass offset in calibration and arming checks",DisplayName:"Compass maximum offset",Increment:"1",Range:{high:"3000",low:"500"},User:"Advanced"},COMPASS_OFS2_X:{Calibration:"1",Description:"Offset to be added to compass2's x-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS2_Y:{Calibration:"1",Description:"Offset to be added to compass2's y-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS2_Z:{Description:"Offset to be added to compass2's z-axis values to compensate for metal in the frame",DisplayName:"Compass2 offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_X:{Calibration:"1",Description:"Offset to be added to compass3's x-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_Y:{Calibration:"1",Description:"Offset to be added to compass3's y-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS3_Z:{Description:"Offset to be added to compass3's z-axis values to compensate for metal in the frame",DisplayName:"Compass3 offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_X:{Calibration:"1",Description:"Offset to be added to the compass x-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the X axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_Y:{Calibration:"1",Description:"Offset to be added to the compass y-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the Y axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OFS_Z:{Description:"Offset to be added to the compass z-axis values to compensate for metal in the frame",DisplayName:"Compass offsets in milligauss on the Z axis",Increment:"1",Range:{high:"400",low:"-400"},Units:"mGauss",User:"Advanced"},COMPASS_OPTIONS:{Bitmask:{0:"CalRequireGPS"},Description:"This sets options to change the behaviour of the compass",DisplayName:"Compass options",User:"Advanced"},COMPASS_ORIENT:{Description:"The orientation of the first external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used.",DisplayName:"Compass orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Roll180Yaw45",10:"Roll180Yaw90",11:"Roll180Yaw135",12:"Pitch180",13:"Roll180Yaw225",14:"Roll180Yaw270",15:"Roll180Yaw315",16:"Roll90",17:"Roll90Yaw45",18:"Roll90Yaw90",19:"Roll90Yaw135",20:"Roll270",21:"Roll270Yaw45",22:"Roll270Yaw90",23:"Roll270Yaw135",24:"Pitch90",25:"Pitch270",26:"Pitch180Yaw90",27:"Pitch180Yaw270",28:"Roll90Pitch90",29:"Roll180Pitch90",30:"Roll270Pitch90",31:"Roll90Pitch180",32:"Roll270Pitch180",33:"Roll90Pitch270",34:"Roll180Pitch270",35:"Roll270Pitch270",36:"Roll90Pitch180Yaw90",37:"Roll90Yaw270",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Roll90Pitch315",100:"Custom"}},COMPASS_ORIENT2:{Description:"The orientation of a second external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used.",DisplayName:"Compass2 orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Roll180Yaw45",10:"Roll180Yaw90",11:"Roll180Yaw135",12:"Pitch180",13:"Roll180Yaw225",14:"Roll180Yaw270",15:"Roll180Yaw315",16:"Roll90",17:"Roll90Yaw45",18:"Roll90Yaw90",19:"Roll90Yaw135",20:"Roll270",21:"Roll270Yaw45",22:"Roll270Yaw90",23:"Roll270Yaw135",24:"Pitch90",25:"Pitch270",26:"Pitch180Yaw90",27:"Pitch180Yaw270",28:"Roll90Pitch90",29:"Roll180Pitch90",30:"Roll270Pitch90",31:"Roll90Pitch180",32:"Roll270Pitch180",33:"Roll90Pitch270",34:"Roll180Pitch270",35:"Roll270Pitch270",36:"Roll90Pitch180Yaw90",37:"Roll90Yaw270",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Roll90Pitch315",100:"Custom"}},COMPASS_ORIENT3:{Description:"The orientation of a third external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used.",DisplayName:"Compass3 orientation",User:"Advanced",Values:{0:"None",1:"Yaw45",2:"Yaw90",3:"Yaw135",4:"Yaw180",5:"Yaw225",6:"Yaw270",7:"Yaw315",8:"Roll180",9:"Roll180Yaw45",10:"Roll180Yaw90",11:"Roll180Yaw135",12:"Pitch180",13:"Roll180Yaw225",14:"Roll180Yaw270",15:"Roll180Yaw315",16:"Roll90",17:"Roll90Yaw45",18:"Roll90Yaw90",19:"Roll90Yaw135",20:"Roll270",21:"Roll270Yaw45",22:"Roll270Yaw90",23:"Roll270Yaw135",24:"Pitch90",25:"Pitch270",26:"Pitch180Yaw90",27:"Pitch180Yaw270",28:"Roll90Pitch90",29:"Roll180Pitch90",30:"Roll270Pitch90",31:"Roll90Pitch180",32:"Roll270Pitch180",33:"Roll90Pitch270",34:"Roll180Pitch270",35:"Roll270Pitch270",36:"Roll90Pitch180Yaw90",37:"Roll90Yaw270",38:"Yaw293Pitch68Roll180",39:"Pitch315",40:"Roll90Pitch315",100:"Custom"}},COMPASS_PRIO1_ID:{Description:"Compass device id with 1st order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 1st order priority",RebootRequired:"True",User:"Advanced"},COMPASS_PRIO2_ID:{Description:"Compass device id with 2nd order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 2nd order priority",RebootRequired:"True",User:"Advanced"},COMPASS_PRIO3_ID:{Description:"Compass device id with 3rd order priority, set automatically if 0. Reboot required after change.",DisplayName:"Compass device id with 3rd order priority",RebootRequired:"True",User:"Advanced"},COMPASS_SCALE:{Description:"Scaling factor for first compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass1 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_SCALE2:{Description:"Scaling factor for 2nd compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass2 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_SCALE3:{Description:"Scaling factor for 3rd compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",DisplayName:"Compass3 scale factor",Range:{high:"1.3",low:"0"},User:"Standard"},COMPASS_TYPEMASK:{Bitmask:{0:"HMC5883",1:"LSM303D",2:"AK8963",3:"BMM150",4:"LSM9DS1",5:"LIS3MDL",6:"AK09916",7:"IST8310",8:"ICM20948",9:"MMC3416",11:"UAVCAN",12:"QMC5883",14:"MAG3110",15:"IST8308",16:"RM3100",17:"MSP",18:"ExternalAHRS"},Description:"This is a bitmask of driver types to disable. If a driver type is set in this mask then that driver will not try to find a sensor at startup",DisplayName:"Compass disable driver type mask",User:"Advanced"},COMPASS_USE:{Description:"Enable or disable the use of the compass (instead of the GPS) for determining heading",DisplayName:"Use compass for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_USE2:{Description:"Enable or disable the secondary compass for determining heading.",DisplayName:"Compass2 used for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_USE3:{Description:"Enable or disable the tertiary compass for determining heading.",DisplayName:"Compass3 used for yaw",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}}},kJ={COMPASS_PMOT1_X:{Description:"Compensation for X axis of motor1",DisplayName:"Compass per-motor1 X",User:"Advanced"},COMPASS_PMOT1_Y:{Description:"Compensation for Y axis of motor1",DisplayName:"Compass per-motor1 Y",User:"Advanced"},COMPASS_PMOT1_Z:{Description:"Compensation for Z axis of motor1",DisplayName:"Compass per-motor1 Z",User:"Advanced"},COMPASS_PMOT2_X:{Description:"Compensation for X axis of motor2",DisplayName:"Compass per-motor2 X",User:"Advanced"},COMPASS_PMOT2_Y:{Description:"Compensation for Y axis of motor2",DisplayName:"Compass per-motor2 Y",User:"Advanced"},COMPASS_PMOT2_Z:{Description:"Compensation for Z axis of motor2",DisplayName:"Compass per-motor2 Z",User:"Advanced"},COMPASS_PMOT3_X:{Description:"Compensation for X axis of motor3",DisplayName:"Compass per-motor3 X",User:"Advanced"},COMPASS_PMOT3_Y:{Description:"Compensation for Y axis of motor3",DisplayName:"Compass per-motor3 Y",User:"Advanced"},COMPASS_PMOT3_Z:{Description:"Compensation for Z axis of motor3",DisplayName:"Compass per-motor3 Z",User:"Advanced"},COMPASS_PMOT4_X:{Description:"Compensation for X axis of motor4",DisplayName:"Compass per-motor4 X",User:"Advanced"},COMPASS_PMOT4_Y:{Description:"Compensation for Y axis of motor4",DisplayName:"Compass per-motor4 Y",User:"Advanced"},COMPASS_PMOT4_Z:{Description:"Compensation for Z axis of motor4",DisplayName:"Compass per-motor4 Z",User:"Advanced"},COMPASS_PMOT_EN:{Description:"This enables per-motor compass corrections",DisplayName:"per-motor compass correction enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},COMPASS_PMOT_EXP:{Description:"This is the exponential correction for the power output of the motor for per-motor compass correction",DisplayName:"per-motor exponential correction",Increment:"0.01",Range:{high:"2",low:"0"},User:"Advanced"}},BJ={EAHRS_RATE:{Description:"Requested rate for AHRS device",DisplayName:"AHRS data rate",Units:"Hz",User:"Standard"},EAHRS_TYPE:{Description:"Type of AHRS device",DisplayName:"AHRS type",User:"Standard",Values:{0:"None",1:"VectorNav"}}},zJ={EK2_ABIAS_P_NSE:{Description:"This noise controls the growth of the vertical accelerometer delta velocity bias state error estimate. Increasing it makes accelerometer bias estimation faster and noisier.",DisplayName:"Accelerometer bias stability (m/s^3)",Range:{high:"0.005",low:"0.00001"},Units:"m/s/s/s",User:"Advanced"},EK2_ACC_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to accelerometer measurement errors excluding bias. Increasing it makes the flter trust the accelerometer measurements less and other measurements more.",DisplayName:"Accelerometer noise (m/s^2)",Increment:"0.01",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK2_ALT_M_NSE:{Description:"This is the RMS value of noise in the altitude measurement. Increasing it reduces the weighting of the baro measurement and will make the filter respond more slowly to baro measurement errors, but will make it more sensitive to GPS and accelerometer errors.",DisplayName:"Altitude measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_ALT_SOURCE:{Description:"Primary height sensor used by the EKF. If a sensor other than Baro is selected and becomes unavailable, then the Baro sensor will be used as a fallback. NOTE: The EK2_RNG_USE_HGT parameter can be used to switch to range-finder when close to the ground in conjunction with EK2_ALT_SOURCE = 0 or 2 (Baro or GPS).",DisplayName:"Primary altitude sensor source",RebootRequired:"True",User:"Advanced",Values:{0:"Use Baro",1:"Use Range Finder",2:"Use GPS",3:"Use Range Beacon"}},EK2_BCN_DELAY:{Description:"This is the number of msec that the range beacon measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Range beacon measurement delay (msec)",Increment:"10",Range:{high:"127",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_BCN_I_GTE:{Description:"This sets the percentage number of standard deviations applied to the range beacon measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range beacon measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_BCN_M_NSE:{Description:"This is the RMS value of noise in the range beacon measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range beacon measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_CHECK_SCALE:{Description:"This scales the thresholds that are used to check GPS accuracy before it is used by the EKF. A value of 100 is the default. Values greater than 100 increase and values less than 100 reduce the maximum GPS error the EKF will accept. A value of 200 will double the allowable GPS error.",DisplayName:"GPS accuracy check scaler (%)",Range:{high:"200",low:"50"},Units:"%",User:"Advanced"},EK2_EAS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the airspeed measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Airspeed measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_EAS_M_NSE:{Description:"This is the RMS value of noise in equivalent airspeed measurements used by planes. Increasing it reduces the weighting of airspeed measurements and will make wind speed estimates less noisy and slower to converge. Increasing also increases navigation errors when dead-reckoning without GPS measurements.",DisplayName:"Equivalent airspeed measurement noise (m/s)",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK2_ENABLE:{Description:"This enables EKF2. Enabling EKF2 only makes the maths run, it does not mean it will be used for flight control. To use it for flight control set AHRS_EKF_TYPE=2. A reboot or restart will need to be performed after changing the value of EK2_ENABLE for it to take effect.",DisplayName:"Enable EKF2",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},EK2_FLOW_DELAY:{Description:"This is the number of msec that the optical flow measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Optical Flow measurement delay (msec)",Increment:"10",Range:{high:"127",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_FLOW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the optical flow innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Optical Flow measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_FLOW_M_NSE:{Description:"This is the RMS value of noise and errors in optical flow measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Optical flow measurement noise (rad/s)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad/s",User:"Advanced"},EK2_FLOW_USE:{Description:"Controls if the optical flow data is fused into the 24-state navigation estimator OR the 1-state terrain height estimator.",DisplayName:"Optical flow use bitmask",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Navigation",2:"Terrain"}},EK2_GBIAS_P_NSE:{Description:"This state process noise controls growth of the gyro delta angle bias state error estimate. Increasing it makes rate gyro bias estimation faster and noisier.",DisplayName:"Rate gyro bias stability (rad/s/s)",Range:{high:"0.001",low:"0.00001"},Units:"rad/s/s",User:"Advanced"},EK2_GLITCH_RAD:{Description:"This controls the maximum radial uncertainty in position between the value predicted by the filter and the value measured by the GPS before the filter position and velocity states are reset to the GPS. Making this value larger allows the filter to ignore larger GPS glitches but also means that non-GPS errors such as IMU and compass can create a larger error in position before the filter is forced back to the GPS position.",DisplayName:"GPS glitch radius gate size (m)",Increment:"5",Range:{high:"100",low:"10"},Units:"m",User:"Advanced"},EK2_GPS_CHECK:{Bitmask:{0:"NSats",1:"HDoP",2:"speed error",3:"position error",4:"yaw error",5:"pos drift",6:"vert speed",7:"horiz speed"},Description:"This is a 1 byte bitmap controlling which GPS preflight checks are performed. Set to 0 to bypass all checks. Set to 255 perform all checks. Set to 3 to check just the number of satellites and HDoP. Set to 31 for the most rigorous checks that will still allow checks to pass when the copter is moving, eg launch from a boat.",DisplayName:"GPS preflight check",User:"Advanced"},EK2_GPS_TYPE:{Description:"This controls use of GPS measurements : 0 = use 3D velocity & 2D position, 1 = use 2D velocity and 2D position, 2 = use 2D position, 3 = Inhibit GPS use - this can be useful when flying with an optical flow sensor in an environment where GPS quality is poor and subject to large multipath errors.",DisplayName:"GPS mode control",User:"Advanced",Values:{0:"GPS 3D Vel and 2D Pos",1:"GPS 2D vel and 2D pos",2:"GPS 2D pos",3:"No GPS"}},EK2_GSCL_P_NSE:{Description:"This noise controls the rate of gyro scale factor learning. Increasing it makes rate gyro scale factor estimation faster and noisier.",DisplayName:"Rate gyro scale factor stability (1/s)",Range:{high:"0.001",low:"0.000001"},Units:"Hz",User:"Advanced"},EK2_GSF_RST_MAX:{Description:"Sets the maximum number of times the EKF2 will be allowed to reset it's yaw to the estimate from the EKF-GSF yaw estimator. No resets will be allowed unless the use of the EKF-GSF yaw estimate is enabled via the EK2_GSF_USE parameter.",DisplayName:"Maximum number of resets to the EKF-GSF yaw estimate allowed",Increment:"1",Range:{high:"10",low:"1"},RebootRequired:"True",User:"Advanced"},EK2_GSF_RUN_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of which EKF2 instances run an independant EKF-GSF yaw estimator to provide a backup yaw estimate that doesn't rely on magnetometer data. This estimator uses IMU, GPS and, if available, airspeed data. EKF-GSF yaw estimator data for the primary EKF2 instance will be logged as GSF0 and GSF1 messages. Use of the yaw estimate generated by this algorithm is controlled by the EK2_GSF_USE, EK2_GSF_DELAY and EK2_GSF_MAXCOUNT parameters. To run the EKF-GSF yaw estimator in ride-along and logging only, set EK2_GSF_USE to 0. ",DisplayName:"Bitmask of which EKF-GSF yaw estimators run",RebootRequired:"True",User:"Advanced"},EK2_GSF_USE_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of which EKF2 instances will use the output from the EKF-GSF yaw estimator that has been turned on by the EK2_GSF_RUN parameter. If the inertial navigation calculation stops following the GPS, then the vehicle code can request EKF2 to attempt to resolve the issue, either by performing a yaw reset if enabled by this parameter by switching to another EKF2 instance. Additionally the EKF2 will initiate a reset internally if navigation is lost for more than EK2_GSF_DELAY milli seconds.",DisplayName:"Bitmask of which EKF-GSF yaw estimators are used",RebootRequired:"True",User:"Advanced"},EK2_GYRO_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to gyro measurement errors excluding bias. Increasing it makes the flter trust the gyro measurements less and other measurements more.",DisplayName:"Rate gyro noise (rad/s)",Increment:"0.0001",Range:{high:"0.1",low:"0.0001"},Units:"rad/s",User:"Advanced"},EK2_HGT_DELAY:{Description:"This is the number of msec that the Height measurements lag behind the inertial measurements.",DisplayName:"Height measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK2_HGT_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the height measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Height measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_HRT_FILT:{Description:"Specifies the crossover frequency of the complementary filter used to calculate the output predictor height rate derivative.",DisplayName:"Height rate filter crossover frequency",Range:{high:"30.0",low:"0.1"},RebootRequired:"False",Units:"Hz"},EK2_IMU_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU"},Description:"1 byte bitmap of IMUs to use in EKF2. A separate instance of EKF2 will be started for each IMU selected. Set to 1 to use the first IMU only (default), set to 2 to use the second IMU only, set to 3 to use the first and second IMU. Additional IMU's can be used up to a maximum of 6 if memory and processing resources permit. There may be insufficient memory and processing resources to run multiple instances. If this occurs EKF2 will fail to start.",DisplayName:"Bitmask of active IMUs",RebootRequired:"True",User:"Advanced"},EK2_MAGB_P_NSE:{Description:"This state process noise controls the growth of body magnetic field state error estimates. Increasing it makes magnetometer bias error estimation faster and noisier.",DisplayName:"Body magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK2_MAGE_P_NSE:{Description:"This state process noise controls the growth of earth magnetic field state error estimates. Increasing it makes earth magnetic field estimation faster and noisier.",DisplayName:"Earth magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK2_MAG_CAL:{Description:"This determines when the filter will use the 3-axis magnetometer fusion model that estimates both earth and body fixed magnetic field states, when it will use a simpler magnetic heading fusion model that does not use magnetic field states and when it will use an alternative method of yaw determination to the magnetometer. The 3-axis magnetometer fusion is only suitable for use when the external magnetic field environment is stable. EK2_MAG_CAL = 0 uses heading fusion on ground, 3-axis fusion in-flight, and is the default setting for Plane users. EK2_MAG_CAL = 1 uses 3-axis fusion only when manoeuvring. EK2_MAG_CAL = 2 uses heading fusion at all times, is recommended if the external magnetic field is varying and is the default for rovers. EK2_MAG_CAL = 3 uses heading fusion on the ground and 3-axis fusion after the first in-air field and yaw reset has completed, and is the default for copters. EK2_MAG_CAL = 4 uses 3-axis fusion at all times. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK2_MAG_MASK parameter. NOTE: limited operation without a magnetometer or any other yaw sensor is possible by setting all COMPASS_USE, COMPASS_USE2, COMPASS_USE3, etc parameters to 0 with COMPASS_ENABLE set to 1. If this is done, the EK2_GSF_RUN and EK2_GSF_USE masks must be set to the same as EK2_IMU_MASK.",DisplayName:"Magnetometer default fusion mode",User:"Advanced",Values:{0:"When flying",1:"When manoeuvring",2:"Never",3:"After first climb yaw reset",4:"Always"}},EK2_MAG_EF_LIM:{Description:"This limits the difference between the learned earth magnetic field and the earth field from the world magnetic model tables. A value of zero means to disable the use of the WMM tables.",DisplayName:"EarthField error limit",Range:{high:"500",low:"0"},Units:"mGauss",User:"Advanced"},EK2_MAG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Magnetometer measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_MAG_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of EKF cores that will disable magnetic field states and use simple magnetic heading fusion at all times. This parameter enables specified cores to be used as a backup for flight into an environment with high levels of external magnetic interference which may degrade the EKF attitude estimate when using 3-axis magnetometer fusion. NOTE : Use of a different magnetometer fusion algorithm on different cores makes unwanted EKF core switches due to magnetometer errors more likely.",DisplayName:"Bitmask of active EKF cores that will always use heading fusion",RebootRequired:"True",User:"Advanced"},EK2_MAG_M_NSE:{Description:"This is the RMS value of noise in magnetometer measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Magnetometer measurement noise (Gauss)",Increment:"0.01",Range:{high:"0.5",low:"0.01"},Units:"Gauss",User:"Advanced"},EK2_MAX_FLOW:{Description:"This sets the magnitude maximum optical flow rate in rad/sec that will be accepted by the filter",DisplayName:"Maximum valid optical flow rate",Increment:"0.1",Range:{high:"4.0",low:"1.0"},Units:"rad/s",User:"Advanced"},EK2_NOAID_M_NSE:{Description:"This sets the amount of position variation that the EKF allows for when operating without external measurements (eg GPS or optical flow). Increasing this parameter makes the EKF attitude estimate less sensitive to vehicle manoeuvres but more sensitive to IMU errors.",DisplayName:"Non-GPS operation position uncertainty (m)",Range:{high:"50.0",low:"0.5"},Units:"m",User:"Advanced"},EK2_OGN_HGT_MASK:{Bitmask:{0:"Correct when using Baro height",1:"Correct when using range finder height",2:"Apply corrections to local position"},Description:"When a height sensor other than GPS is used as the primary height source by the EKF, the position of the zero height datum is defined by that sensor and its frame of reference. If a GPS height measurement is also available, then the height of the WGS-84 height datum used by the EKF can be corrected so that the height returned by the getLLH() function is compensated for primary height sensor drift and change in datum over time. The first two bit positions control when the height datum will be corrected. Correction is performed using a Bayes filter and only operates when GPS quality permits. The third bit position controls where the corrections to the GPS reference datum are applied. Corrections can be applied to the local vertical position or to the reported EKF origin height (default).",DisplayName:"Bitmask control of EKF reference height correction",RebootRequired:"True",User:"Advanced"},EK2_POSNE_M_NSE:{Description:"This sets the GPS horizontal position observation noise. Increasing it reduces the weighting of GPS horizontal position measurements.",DisplayName:"GPS horizontal position measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_POS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS position measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS position measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_RNG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the range finder innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range finder measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_RNG_M_NSE:{Description:"This is the RMS value of noise in the range finder measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range finder measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK2_RNG_USE_HGT:{Description:"Range finder can be used as the primary height source when below this percentage of its maximum range (see RNGFND_MAX_CM). This will not work unless Baro or GPS height is selected as the primary height source vis EK2_ALT_SOURCE = 0 or 2 respectively. This feature should not be used for terrain following as it is designed for vertical takeoff and landing with climb above the range finder use height before commencing the mission, and with horizontal position changes below that height being limited to a flat region around the takeoff and landing point.",DisplayName:"Range finder switch height percentage",Increment:"1",Range:{high:"70",low:"-1"},Units:"%",User:"Advanced"},EK2_RNG_USE_SPD:{Description:"The range finder will not be used as the primary height source when the horizontal ground speed is greater than this value.",DisplayName:"Range finder max ground speed",Increment:"0.5",Range:{high:"6.0",low:"2.0"},Units:"m/s",User:"Advanced"},EK2_TAU_OUTPUT:{Description:"Sets the time constant of the output complementary filter/predictor in centi-seconds.",DisplayName:"Output complementary filter time constant (centi-sec)",Increment:"5",Range:{high:"50",low:"10"},Units:"cs",User:"Advanced"},EK2_TERR_GRAD:{Description:"Specifies the maximum gradient of the terrain below the vehicle assumed when it is fusing range finder or optical flow to estimate terrain height.",DisplayName:"Maximum terrain gradient",Increment:"0.01",Range:{high:"0.2",low:"0"},User:"Advanced"},EK2_VELD_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set vertical velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS vertical velocity measurements.",DisplayName:"GPS vertical velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK2_VELNE_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set horizontal velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS horizontal velocity measurements.",DisplayName:"GPS horizontal velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK2_VEL_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS velocity measurement innovation consistency check. Decreasing it makes it more likely that good measurements willbe rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS velocity innovation gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_WIND_PSCALE:{Description:"This controls how much the process noise on the wind states is increased when gaining or losing altitude to take into account changes in wind speed and direction with altitude. Increasing this parameter increases how rapidly the wind states adapt when changing altitude, but does make wind velocity estimation noiser.",DisplayName:"Height rate to wind process noise scaler",Increment:"0.1",Range:{high:"1.0",low:"0.0"},User:"Advanced"},EK2_WIND_P_NSE:{Description:"This state process noise controls the growth of wind state error estimates. Increasing it makes wind estimation faster and noisier.",DisplayName:"Wind velocity process noise (m/s^2)",Increment:"0.1",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK2_YAW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer yaw measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Yaw measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK2_YAW_M_NSE:{Description:"This is the RMS value of noise in yaw measurements from the magnetometer. Increasing it reduces the weighting on these measurements.",DisplayName:"Yaw measurement noise (rad)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},ZJ={EK3_ABIAS_P_NSE:{Description:"This noise controls the growth of the vertical accelerometer delta velocity bias state error estimate. Increasing it makes accelerometer bias estimation faster and noisier.",DisplayName:"Accelerometer bias stability (m/s^3)",Range:{high:"0.005",low:"0.00001"},Units:"m/s/s/s",User:"Advanced"},EK3_ACC_BIAS_LIM:{Description:"The accelerometer bias state will be limited to +- this value",DisplayName:"Accelerometer bias limit",Increment:"0.1",Range:{high:"2.5",low:"0.5"},Units:"m/s/s",User:"Advanced"},EK3_ACC_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to accelerometer measurement errors excluding bias. Increasing it makes the flter trust the accelerometer measurements less and other measurements more.",DisplayName:"Accelerometer noise (m/s^2)",Increment:"0.01",Range:{high:"1.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK3_AFFINITY:{Bitmask:{0:"EnableGPSAffinity",1:"EnableBaroAffinity",2:"EnableCompassAffinity",3:"EnableAirspeedAffinity"},Description:"These options control the affinity between sensor instances and EKF cores",DisplayName:"EKF3 Sensor Affinity Options",RebootRequired:"True",User:"Advanced"},EK3_ALT_M_NSE:{Description:"This is the RMS value of noise in the altitude measurement. Increasing it reduces the weighting of the baro measurement and will make the filter respond more slowly to baro measurement errors, but will make it more sensitive to GPS and accelerometer errors.",DisplayName:"Altitude measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_BCN_DELAY:{Description:"This is the number of msec that the range beacon measurements lag behind the inertial measurements.",DisplayName:"Range beacon measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_BCN_I_GTE:{Description:"This sets the percentage number of standard deviations applied to the range beacon measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range beacon measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_BCN_M_NSE:{Description:"This is the RMS value of noise in the range beacon measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range beacon measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_BETA_MASK:{Bitmask:{0:"Always",1:"WhenNoYawSensor"},Description:"1 byte bitmap controlling use of sideslip angle fusion for estimation of non wind states during operation of 'fly forward' vehicle types such as fixed wing planes. By assuming that the angle of sideslip is small, the wind velocity state estimates are corrected whenever the EKF is not dead reckoning (e.g. has an independent velocity or position sensor such as GPS). This behaviour is on by default and cannot be disabled. When the EKF is dead reckoning, the wind states are used as a reference, enabling use of the small angle of sideslip assumption to correct non wind velocity states (eg attitude, velocity, position, etc) and improve navigation accuracy. This behaviour is on by default and cannot be disabled. The behaviour controlled by this parameter is the use of the small angle of sideslip assumption to correct non wind velocity states when the EKF is NOT dead reckoning. This is primarily of benefit to reduce the buildup of yaw angle errors during straight and level flight without a yaw sensor (e.g. magnetometer or dual antenna GPS yaw) provided aerobatic flight maneuvers with large sideslip angles are not performed. The 'always' option might be used where the yaw sensor is intentionally not fitted or disabled. The 'WhenNoYawSensor' option might be used if a yaw sensor is fitted, but protection against in-flight failure and continual rejection by the EKF is desired. For vehicles operated within visual range of the operator performing frequent turning maneuvers, setting this parameter is unnecessary.",DisplayName:"Bitmask controlling sidelip angle fusion",RebootRequired:"True",User:"Advanced"},EK3_CHECK_SCALE:{Description:"This scales the thresholds that are used to check GPS accuracy before it is used by the EKF. A value of 100 is the default. Values greater than 100 increase and values less than 100 reduce the maximum GPS error the EKF will accept. A value of 200 will double the allowable GPS error.",DisplayName:"GPS accuracy check scaler (%)",Range:{high:"200",low:"50"},Units:"%",User:"Advanced"},EK3_DRAG_BCOEF_X:{Description:"Ratio of mass to drag coefficient measured along the X body axis. This parameter enables estimation of wind drift for vehicles with bluff bodies and without propulsion forces in the X and Y direction (eg multicopters). The drag produced by this effect scales with speed squared. Set to a postive value > 1.0 to enable. A starting value is the mass in Kg divided by the frontal area. The predicted drag from the rotors is specified separately by the EK3_MCOEF parameter.",DisplayName:"Ballistic coefficient for X axis drag",Range:{high:"1000.0",low:"0.0"},Units:"kg/m/m",User:"Advanced"},EK3_DRAG_BCOEF_Y:{Description:"Ratio of mass to drag coefficient measured along the Y body axis. This parameter enables estimation of wind drift for vehicles with bluff bodies and without propulsion forces in the X and Y direction (eg multicopters). The drag produced by this effect scales with speed squared. Set to a postive value > 1.0 to enable. A starting value is the mass in Kg divided by the side area. The predicted drag from the rotors is specified separately by the EK3_MCOEF parameter.",DisplayName:"Ballistic coefficient for Y axis drag",Range:{high:"1000.0",low:"50.0"},Units:"kg/m/m",User:"Advanced"},EK3_DRAG_MCOEF:{Description:"This parameter is used to predict the drag produced by the rotors when flying a multi-copter, enabling estimation of wind drift. The drag produced by this effect scales with speed not speed squared and is produced because some of the air velocity normal to the rotors axis of rotation is lost when passing through the rotor disc which changes the momentum of the airflow causing drag. For unducted rotors the effect is roughly proportional to the area of the propeller blades when viewed side on and changes with different propellers. It is higher for ducted rotors. For example if flying at 15 m/s at sea level conditions produces a rotor induced drag acceleration of 1.5 m/s/s, then EK3_MCOEF would be set to 0.1 = (1.5/15.0). Set EK3_MCOEF to a postive value to enable wind estimation using this drag effect. To account for the drag produced by the body which scales with speed squared, see documentation for the EK3_BCOEF_X and EK3_BCOEF_Y parameters.",DisplayName:"Momentum coefficient for propeller drag",Increment:"0.01",Range:{high:"1.0",low:"0.0"},Units:"1/s",User:"Advanced"},EK3_DRAG_M_NSE:{Description:"This sets the amount of noise used when fusing X and Y acceleration as an observation that enables esitmation of wind velocity for multi-rotor vehicles. This feature is enabled by the EK3_BCOEF_X and EK3_BCOEF_Y parameters",DisplayName:"Observation noise for drag acceleration",Increment:"0.1",Range:{high:"2.0",low:"0.1"},Units:"m/s/s",User:"Advanced"},EK3_EAS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the airspeed measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Airspeed measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_EAS_M_NSE:{Description:"This is the RMS value of noise in equivalent airspeed measurements used by planes. Increasing it reduces the weighting of airspeed measurements and will make wind speed estimates less noisy and slower to converge. Increasing also increases navigation errors when dead-reckoning without GPS measurements.",DisplayName:"Equivalent airspeed measurement noise (m/s)",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK3_ENABLE:{Description:"This enables EKF3. Enabling EKF3 only makes the maths run, it does not mean it will be used for flight control. To use it for flight control set AHRS_EKF_TYPE=3. A reboot or restart will need to be performed after changing the value of EK3_ENABLE for it to take effect.",DisplayName:"Enable EKF3",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},EK3_ERR_THRESH:{Description:"lanes have to be consistently better than the primary by at least this threshold to reduce their overall relativeCoreError, lowering this makes lane switching more sensitive to smaller error differences",DisplayName:"EKF3 Lane Relative Error Sensitivity Threshold",Increment:"0.05",Range:{high:"1",low:"0.05"},User:"Advanced"},EK3_FLOW_DELAY:{Description:"This is the number of msec that the optical flow measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",DisplayName:"Optical Flow measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_FLOW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the optical flow innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Optical Flow measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_FLOW_M_NSE:{Description:"This is the RMS value of noise and errors in optical flow measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Optical flow measurement noise (rad/s)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad/s",User:"Advanced"},EK3_FLOW_USE:{Description:"Controls if the optical flow data is fused into the 24-state navigation estimator OR the 1-state terrain height estimator.",DisplayName:"Optical flow use bitmask",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Navigation",2:"Terrain"}},EK3_GBIAS_P_NSE:{Description:"This state process noise controls growth of the gyro delta angle bias state error estimate. Increasing it makes rate gyro bias estimation faster and noisier.",DisplayName:"Rate gyro bias stability (rad/s/s)",Range:{high:"0.001",low:"0.00001"},Units:"rad/s/s",User:"Advanced"},EK3_GLITCH_RAD:{Description:"This controls the maximum radial uncertainty in position between the value predicted by the filter and the value measured by the GPS before the filter position and velocity states are reset to the GPS. Making this value larger allows the filter to ignore larger GPS glitches but also means that non-GPS errors such as IMU and compass can create a larger error in position before the filter is forced back to the GPS position.",DisplayName:"GPS glitch radius gate size (m)",Increment:"5",Range:{high:"100",low:"10"},Units:"m",User:"Advanced"},EK3_GND_EFF_DZ:{Description:"This parameter sets the size of the dead zone that is applied to negative baro height spikes that can occur when takeing off or landing when a vehicle with lift rotors is operating in ground effect ground effect. Set to about 0.5m less than the amount of negative offset in baro height that occurs just prior to takeoff when lift motors are spooling up. Set to 0 if no ground effect is present. ",DisplayName:"Baro height ground effect dead zone",Increment:"0.5",Range:{high:"10.0",low:"0.0"},User:"Advanced"},EK3_GPS_CHECK:{Bitmask:{0:"NSats",1:"HDoP",2:"speed error",3:"position error",4:"yaw error",5:"pos drift",6:"vert speed",7:"horiz speed"},Description:"This is a 1 byte bitmap controlling which GPS preflight checks are performed. Set to 0 to bypass all checks. Set to 255 perform all checks. Set to 3 to check just the number of satellites and HDoP. Set to 31 for the most rigorous checks that will still allow checks to pass when the copter is moving, eg launch from a boat.",DisplayName:"GPS preflight check",User:"Advanced"},EK3_GSF_RST_MAX:{Description:"Sets the maximum number of times the EKF3 will be allowed to reset it's yaw to the estimate from the EKF-GSF yaw estimator. No resets will be allowed unless the use of the EKF-GSF yaw estimate is enabled via the EK3_GSF_USE parameter.",DisplayName:"Maximum number of resets to the EKF-GSF yaw estimate allowed",Increment:"1",Range:{high:"10",low:"1"},RebootRequired:"True",User:"Advanced"},EK3_GSF_RUN_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of which EKF3 instances run an independant EKF-GSF yaw estimator to provide a backup yaw estimate that doesn't rely on magnetometer data. This estimator uses IMU, GPS and, if available, airspeed data. EKF-GSF yaw estimator data for the primary EKF3 instance will be logged as GSF0 and GSF1 messages. Use of the yaw estimate generated by this algorithm is controlled by the EK3_GSF_USE, EK3_GSF_DELAY and EK3_GSF_MAXCOUNT parameters. To run the EKF-GSF yaw estimator in ride-along and logging only, set EK3_GSF_USE to 0. ",DisplayName:"Bitmask of which EKF-GSF yaw estimators run",RebootRequired:"True",User:"Advanced"},EK3_GSF_USE_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of which EKF3 instances will use the output from the EKF-GSF yaw estimator that has been turned on by the EK3_GSF_RUN parameter. If the inertial navigation calculation stops following the GPS, then the vehicle code can request EKF3 to attempt to resolve the issue, either by performing a yaw reset if enabled by this parameter by switching to another EKF3 instance. Additionally the EKF3 will initiate a reset internally if navigation is lost for more than EK3_GSF_DELAY milli seconds.",DisplayName:"Bitmask of which EKF-GSF yaw estimators are used",RebootRequired:"True",User:"Advanced"},EK3_GYRO_P_NSE:{Description:"This control disturbance noise controls the growth of estimated error due to gyro measurement errors excluding bias. Increasing it makes the flter trust the gyro measurements less and other measurements more.",DisplayName:"Rate gyro noise (rad/s)",Increment:"0.0001",Range:{high:"0.1",low:"0.0001"},Units:"rad/s",User:"Advanced"},EK3_HGT_DELAY:{Description:"This is the number of msec that the Height measurements lag behind the inertial measurements.",DisplayName:"Height measurement delay (msec)",Increment:"10",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},EK3_HGT_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the height measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Height measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_HRT_FILT:{Description:"Specifies the crossover frequency of the complementary filter used to calculate the output predictor height rate derivative.",DisplayName:"Height rate filter crossover frequency",Range:{high:"30.0",low:"0.1"},RebootRequired:"False",Units:"Hz"},EK3_IMU_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU",3:"FourthIMU",4:"FifthIMU",5:"SixthIMU"},Description:"1 byte bitmap of IMUs to use in EKF3. A separate instance of EKF3 will be started for each IMU selected. Set to 1 to use the first IMU only (default), set to 2 to use the second IMU only, set to 3 to use the first and second IMU. Additional IMU's can be used up to a maximum of 6 if memory and processing resources permit. There may be insufficient memory and processing resources to run multiple instances. If this occurs EKF3 will fail to start.",DisplayName:"Bitmask of active IMUs",RebootRequired:"True",User:"Advanced"},EK3_MAGB_P_NSE:{Description:"This state process noise controls the growth of body magnetic field state error estimates. Increasing it makes magnetometer bias error estimation faster and noisier.",DisplayName:"Body magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK3_MAGE_P_NSE:{Description:"This state process noise controls the growth of earth magnetic field state error estimates. Increasing it makes earth magnetic field estimation faster and noisier.",DisplayName:"Earth magnetic field process noise (gauss/s)",Range:{high:"0.01",low:"0.00001"},Units:"Gauss/s",User:"Advanced"},EK3_MAG_CAL:{Description:"This determines when the filter will use the 3-axis magnetometer fusion model that estimates both earth and body fixed magnetic field states and when it will use a simpler magnetic heading fusion model that does not use magnetic field states. The 3-axis magnetometer fusion is only suitable for use when the external magnetic field environment is stable. EK3_MAG_CAL = 0 uses heading fusion on ground, 3-axis fusion in-flight, and is the default setting for Plane users. EK3_MAG_CAL = 1 uses 3-axis fusion only when manoeuvring. EK3_MAG_CAL = 2 uses heading fusion at all times, is recommended if the external magnetic field is varying and is the default for rovers. EK3_MAG_CAL = 3 uses heading fusion on the ground and 3-axis fusion after the first in-air field and yaw reset has completed, and is the default for copters. EK3_MAG_CAL = 4 uses 3-axis fusion at all times. EK3_MAG_CAL = 5 uses an external yaw sensor with simple heading fusion. NOTE : Use of simple heading magnetometer fusion makes vehicle compass calibration and alignment errors harder for the EKF to detect which reduces the sensitivity of the Copter EKF failsafe algorithm. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK3_MAG_MASK parameter. EK3_MAG_CAL = 6 uses an external yaw sensor with fallback to compass when the external sensor is not available if we are flying. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK3_MAG_MASK parameter. NOTE: limited operation without a magnetometer or any other yaw sensor is possible by setting all COMPASS_USE, COMPASS_USE2, COMPASS_USE3, etc parameters to 0 and setting COMPASS_ENABLE to 0. If this is done, the EK3_GSF_RUN and EK3_GSF_USE masks must be set to the same as EK3_IMU_MASK. A yaw angle derived from IMU and GPS velocity data using a Gaussian Sum Filter (GSF) will then be used to align the yaw when flight commences and there is sufficient movement.",DisplayName:"Magnetometer default fusion mode",RebootRequired:"True",User:"Advanced",Values:{0:"When flying",1:"When manoeuvring",2:"Never",3:"After first climb yaw reset",4:"Always",5:"Use external yaw sensor (Deprecated in 4.1+ see EK3_SRCn_YAW)",6:"External yaw sensor with compass fallback (Deprecated in 4.1+ see EK3_SRCn_YAW)"}},EK3_MAG_EF_LIM:{Description:"This limits the difference between the learned earth magnetic field and the earth field from the world magnetic model tables. A value of zero means to disable the use of the WMM tables.",DisplayName:"EarthField error limit",Range:{high:"500",low:"0"},Units:"mGauss",User:"Advanced"},EK3_MAG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Magnetometer measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_MAG_MASK:{Bitmask:{0:"FirstEKF",1:"SecondEKF",2:"ThirdEKF",3:"FourthEKF",4:"FifthEKF",5:"SixthEKF"},Description:"1 byte bitmap of EKF cores that will disable magnetic field states and use simple magnetic heading fusion at all times. This parameter enables specified cores to be used as a backup for flight into an environment with high levels of external magnetic interference which may degrade the EKF attitude estimate when using 3-axis magnetometer fusion. NOTE : Use of a different magnetometer fusion algorithm on different cores makes unwanted EKF core switches due to magnetometer errors more likely.",DisplayName:"Bitmask of active EKF cores that will always use heading fusion",RebootRequired:"True",User:"Advanced"},EK3_MAG_M_NSE:{Description:"This is the RMS value of noise in magnetometer measurements. Increasing it reduces the weighting on these measurements.",DisplayName:"Magnetometer measurement noise (Gauss)",Increment:"0.01",Range:{high:"0.5",low:"0.01"},Units:"Gauss",User:"Advanced"},EK3_MAX_FLOW:{Description:"This sets the magnitude maximum optical flow rate in rad/sec that will be accepted by the filter",DisplayName:"Maximum valid optical flow rate",Increment:"0.1",Range:{high:"4.0",low:"1.0"},Units:"rad/s",User:"Advanced"},EK3_NOAID_M_NSE:{Description:"This sets the amount of position variation that the EKF allows for when operating without external measurements (eg GPS or optical flow). Increasing this parameter makes the EKF attitude estimate less sensitive to vehicle manoeuvres but more sensitive to IMU errors.",DisplayName:"Non-GPS operation position uncertainty (m)",Range:{high:"50.0",low:"0.5"},Units:"m",User:"Advanced"},EK3_OGNM_TEST_SF:{Description:"This parameter is adjust the sensitivity of the on ground not moving test which is used to assist with learning the yaw gyro bias and stopping yaw drift before flight when operating without a yaw sensor. Bigger values allow the detection of a not moving condition with noiser IMU data. Check the XKFM data logged when the vehicle is on ground not moving and adjust the value of OGNM_TEST_SF to be slightly higher than the maximum value of the XKFM.ADR, XKFM.ALR, XKFM.GDR and XKFM.GLR test levels.",DisplayName:"On ground not moving test scale factor",Increment:"0.5",Range:{high:"10.0",low:"1.0"},User:"Advanced"},EK3_OGN_HGT_MASK:{Bitmask:{0:"Correct when using Baro height",1:"Correct when using range finder height",2:"Apply corrections to local position"},Description:"When a height sensor other than GPS is used as the primary height source by the EKF, the position of the zero height datum is defined by that sensor and its frame of reference. If a GPS height measurement is also available, then the height of the WGS-84 height datum used by the EKF can be corrected so that the height returned by the getLLH() function is compensated for primary height sensor drift and change in datum over time. The first two bit positions control when the height datum will be corrected. Correction is performed using a Bayes filter and only operates when GPS quality permits. The third bit position controls where the corrections to the GPS reference datum are applied. Corrections can be applied to the local vertical position or to the reported EKF origin height (default).",DisplayName:"Bitmask control of EKF reference height correction",RebootRequired:"True",User:"Advanced"},EK3_POSNE_M_NSE:{Description:"This sets the GPS horizontal position observation noise. Increasing it reduces the weighting of GPS horizontal position measurements.",DisplayName:"GPS horizontal position measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_POS_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS position measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS position measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_PRIMARY:{Description:"The core number (index in IMU mask) that will be used as the primary EKF core on startup. While disarmed the EKF will force the use of this core. A value of 0 corresponds to the first IMU in EK3_IMU_MASK.",DisplayName:"Primary core number",Increment:"1",Range:{high:"2",low:"0"},User:"Advanced"},EK3_RNG_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the range finder innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Range finder measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_RNG_M_NSE:{Description:"This is the RMS value of noise in the range finder measurement. Increasing it reduces the weighting on this measurement.",DisplayName:"Range finder measurement noise (m)",Increment:"0.1",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},EK3_RNG_USE_HGT:{Description:"Range finder can be used as the primary height source when below this percentage of its maximum range (see RNGFNDx_MAX_CM) and the primary height source is Baro or GPS (see EK3_SRCx_POSZ). This feature should not be used for terrain following as it is designed for vertical takeoff and landing with climb above the range finder use height before commencing the mission, and with horizontal position changes below that height being limited to a flat region around the takeoff and landing point.",DisplayName:"Range finder switch height percentage",Increment:"1",Range:{high:"70",low:"-1"},Units:"%",User:"Advanced"},EK3_RNG_USE_SPD:{Description:"The range finder will not be used as the primary height source when the horizontal ground speed is greater than this value.",DisplayName:"Range finder max ground speed",Increment:"0.5",Range:{high:"6.0",low:"2.0"},Units:"m/s",User:"Advanced"},EK3_TAU_OUTPUT:{Description:"Sets the time constant of the output complementary filter/predictor in centi-seconds.",DisplayName:"Output complementary filter time constant (centi-sec)",Increment:"5",Range:{high:"50",low:"10"},Units:"cs",User:"Advanced"},EK3_TERR_GRAD:{Description:"Specifies the maximum gradient of the terrain below the vehicle when it is using range finder as a height reference",DisplayName:"Maximum terrain gradient",Increment:"0.01",Range:{high:"0.2",low:"0"},User:"Advanced"},EK3_VELD_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set vertical velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS vertical velocity measurements.",DisplayName:"GPS vertical velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_VELNE_M_NSE:{Description:"This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set horizontal velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS horizontal velocity measurements.",DisplayName:"GPS horizontal velocity measurement noise (m/s)",Increment:"0.05",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_VEL_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the GPS velocity measurement innovation consistency check. Decreasing it makes it more likely that good measurements willbe rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"GPS velocity innovation gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_VIS_VERR_MAX:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when minimum quality is reported by the sensor. When quality is between max and min, the error will be calculated using linear interpolation between VIS_VERR_MIN and VIS_VERR_MAX.",DisplayName:"Visual odometry maximum velocity error",Increment:"0.1",Range:{high:"5.0",low:"0.5"},Units:"m/s",User:"Advanced"},EK3_VIS_VERR_MIN:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when maximum quality is reported by the sensor. When quality is between max and min, the error will be calculated using linear interpolation between VIS_VERR_MIN and VIS_VERR_MAX.",DisplayName:"Visual odometry minimum velocity error",Increment:"0.05",Range:{high:"0.5",low:"0.05"},Units:"m/s",User:"Advanced"},EK3_WENC_VERR:{Description:"This is the 1-STD odometry velocity observation error that will be assumed when wheel encoder data is being fused.",DisplayName:"Wheel odometry velocity error",Increment:"0.1",Range:{high:"1.0",low:"0.01"},Units:"m/s",User:"Advanced"},EK3_WIND_PSCALE:{Description:"This controls how much the process noise on the wind states is increased when gaining or losing altitude to take into account changes in wind speed and direction with altitude. Increasing this parameter increases how rapidly the wind states adapt when changing altitude, but does make wind velocity estimation noiser.",DisplayName:"Height rate to wind process noise scaler",Increment:"0.1",Range:{high:"2.0",low:"0.0"},User:"Advanced"},EK3_WIND_P_NSE:{Description:"This state process noise controls the growth of wind state error estimates. Increasing it makes wind estimation faster and noisier.",DisplayName:"Wind velocity process noise (m/s^2)",Increment:"0.1",Range:{high:"2.0",low:"0.01"},Units:"m/s/s",User:"Advanced"},EK3_YAW_I_GATE:{Description:"This sets the percentage number of standard deviations applied to the magnetometer yaw measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",DisplayName:"Yaw measurement gate size",Increment:"25",Range:{high:"1000",low:"100"},User:"Advanced"},EK3_YAW_M_NSE:{Description:"This is the RMS value of noise in yaw measurements from the magnetometer. Increasing it reduces the weighting on these measurements.",DisplayName:"Yaw measurement noise (rad)",Increment:"0.05",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},GJ={EK3_SRC1_POSXY:{Description:"Position Horizontal Source (Primary)",DisplayName:"Position Horizontal Source (Primary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_POSZ:{Description:"Position Vertical Source",DisplayName:"Position Vertical Source",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_VELXY:{Description:"Velocity Horizontal Source",DisplayName:"Velocity Horizontal Source",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC1_VELZ:{Description:"Velocity Vertical Source",DisplayName:"Velocity Vertical Source",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC1_YAW:{Description:"Yaw Source",DisplayName:"Yaw Source",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC2_POSXY:{Description:"Position Horizontal Source (Secondary)",DisplayName:"Position Horizontal Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_POSZ:{Description:"Position Vertical Source (Secondary)",DisplayName:"Position Vertical Source (Secondary)",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_VELXY:{Description:"Velocity Horizontal Source (Secondary)",DisplayName:"Velocity Horizontal Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC2_VELZ:{Description:"Velocity Vertical Source (Secondary)",DisplayName:"Velocity Vertical Source (Secondary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC2_YAW:{Description:"Yaw Source (Secondary)",DisplayName:"Yaw Source (Secondary)",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC3_POSXY:{Description:"Position Horizontal Source (Tertiary)",DisplayName:"Position Horizontal Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_POSZ:{Description:"Position Vertical Source (Tertiary)",DisplayName:"Position Vertical Source (Tertiary)",User:"Advanced",Values:{0:"None",1:"Baro",2:"RangeFinder",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_VELXY:{Description:"Velocity Horizontal Source (Tertiary)",DisplayName:"Velocity Horizontal Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",5:"OpticalFlow",6:"ExternalNav",7:"WheelEncoder"}},EK3_SRC3_VELZ:{Description:"Velocity Vertical Source (Tertiary)",DisplayName:"Velocity Vertical Source (Tertiary)",User:"Advanced",Values:{0:"None",3:"GPS",4:"Beacon",6:"ExternalNav"}},EK3_SRC3_YAW:{Description:"Yaw Source (Tertiary)",DisplayName:"Yaw Source (Tertiary)",User:"Advanced",Values:{0:"None",1:"Compass",2:"GPS",3:"GPS with Compass Fallback",6:"ExternalNav",8:"GSF"}},EK3_SRC_OPTIONS:{Bitmask:{0:"FuseAllVelocities"},Description:"EKF Source Options",DisplayName:"EKF Source Options",User:"Advanced"}},WJ={FENCE_ACTION:{Description:"What action should be taken when fence is breached",DisplayName:"Fence Action",User:"Standard",Values:{0:"Report Only",1:"RTL or Land"}},FENCE_ALT_MAX:{Description:"Maximum altitude allowed before geofence triggers",DisplayName:"Fence Maximum Altitude",Increment:"1",Range:{high:"1000",low:"10"},Units:"m",User:"Standard"},FENCE_ALT_MIN:{Description:"Minimum altitude allowed before geofence triggers",DisplayName:"Fence Minimum Altitude",Increment:"1",Range:{high:"100",low:"-100"},Units:"m",User:"Standard"},FENCE_ENABLE:{Description:"Allows you to enable (1) or disable (0) the fence functionality",DisplayName:"Fence enable/disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},FENCE_MARGIN:{Description:"Distance that autopilot's should maintain from the fence to avoid a breach",DisplayName:"Fence Margin",Range:{high:"10",low:"1"},Units:"m",User:"Standard"},FENCE_RADIUS:{Description:"Circle fence radius which when breached will cause an RTL",DisplayName:"Circular Fence Radius",Range:{high:"10000",low:"30"},Units:"m",User:"Standard"},FENCE_TOTAL:{Description:"Number of polygon points saved in eeprom (do not update manually)",DisplayName:"Fence polygon point total",Range:{high:"20",low:"1"},User:"Standard"},FENCE_TYPE:{Bitmask:{0:"Max altitude",1:"Circle",2:"Polygon",3:"Min altitude"},Description:"Enabled fence types held as bitmask",DisplayName:"Fence Type",User:"Standard"}},XJ={FFT_ATT_REF:{Description:"FFT attenuation level in dB for bandwidth calculation and peak detection. The bandwidth is calculated by comparing peak power output with the attenuated version. The default of 15 has shown to be a good compromise in both simulations and real flight.",DisplayName:"FFT attenuation for bandwidth calculation",Range:{high:"100",low:"0"},User:"Advanced"},FFT_BW_HOVER:{Description:"FFT learned bandwidth at hover for the attenuation frequencies.",DisplayName:"FFT learned bandwidth at hover",Range:{high:"200",low:"0"},User:"Advanced"},FFT_ENABLE:{Description:"Enable Gyro FFT analyser",DisplayName:"Enable",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},FFT_FREQ_HOVER:{Description:"The learned hover noise frequency",DisplayName:"FFT learned hover frequency",Range:{high:"250",low:"0"},User:"Advanced"},FFT_HMNC_FIT:{Description:"FFT harmonic fit frequency threshold percentage at which a signal of the appropriate frequency is determined to be the harmonic of another. Signals that have a harmonic relationship that varies at most by this percentage are considered harmonics of each other for the purpose of selecting the harmonic notch frequency. If a match is found then the lower frequency harmonic is always used as the basis for the dynamic harmonic notch. A value of zero completely disables harmonic matching.",DisplayName:"FFT harmonic fit frequency threshold",Range:{high:"100",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_HMNC_PEAK:{Description:"The FFT harmonic peak target that should be returned by FTN1.PkAvg. The resulting value will be used by the harmonic notch if configured to track the FFT frequency. By default the appropriate peak is auto-detected based on the harmonic fit between peaks and the energy-weighted average frequency on roll on pitch is used. Setting this to 1 will always target the highest energy peak. Setting this to 2 will target the highest energy peak that is lower in frequency than the highest energy peak. Setting this to 3 will target the highest energy peak that is higher in frequency than the highest energy peak. Setting this to 4 will target the highest energy peak on the roll axis only and only the roll frequency will be used (some vehicles have a much more pronounced peak on roll). Setting this to 5 will target the highest energy peak on the pitch axis only and only the pitch frequency will be used (some vehicles have a much more pronounced peak on roll).",DisplayName:"FFT harmonic peak target",User:"Advanced",Values:{0:"Auto",1:"Center Frequency",2:"Lower-Shoulder Frequency",3:"Upper-Shoulder Frequency",4:"Roll-Axis",5:"Pitch-Axis"}},FFT_MAXHZ:{Description:"Upper bound of FFT frequency detection in Hz. On smaller vehicles the maximum motor frequency is likely to be significantly higher than for larger vehicles.",DisplayName:"Maximum Frequency",Range:{high:"495",low:"20"},Units:"Hz",User:"Advanced"},FFT_MINHZ:{Description:"Lower bound of FFT frequency detection in Hz. On larger vehicles the minimum motor frequency is likely to be significantly lower than for smaller vehicles.",DisplayName:"Minimum Frequency",Range:{high:"400",low:"20"},Units:"Hz",User:"Advanced"},FFT_SAMPLE_MODE:{Description:"Sampling mode (and therefore rate). 0: Gyro rate sampling, 1: Fast loop rate sampling, 2: Fast loop rate / 2 sampling, 3: Fast loop rate / 3 sampling. Takes effect on reboot.",DisplayName:"Sample Mode",Range:{high:"4",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_SNR_REF:{Description:"FFT SNR reference threshold in dB at which a signal is determined to be present.",DisplayName:"FFT SNR reference threshold",Range:{high:"100.0",low:"0.0"},User:"Advanced"},FFT_THR_REF:{Description:"FFT learned thrust reference for the hover frequency and FFT minimum frequency.",DisplayName:"FFT learned thrust reference",Range:{high:"0.9",low:"0.01"},User:"Advanced"},FFT_WINDOW_OLAP:{Description:"Percentage of window to be overlapped before another frame is process. Takes effect on reboot. A good default is 50% overlap. Higher overlap results in more processed frames but not necessarily more temporal resolution. Lower overlap results in lost information at the frame edges.",DisplayName:"FFT window overlap",Range:{high:"0.9",low:"0"},RebootRequired:"True",User:"Advanced"},FFT_WINDOW_SIZE:{Description:"Size of window to be used in FFT calculations. Takes effect on reboot. Must be a power of 2 and between 32 and 512. Larger windows give greater frequency resolution but poorer time resolution, consume more CPU time and may not be appropriate for all vehicles. Time and frequency resolution are given by the sample-rate / window-size. Windows of 256 are only really recommended for F7 class boards, windows of 512 or more H7 class.",DisplayName:"FFT window size",Range:{high:"1024",low:"32"},RebootRequired:"True",User:"Advanced"}},YJ={FLOW_ADDR:{Description:"This is used to select between multiple possible I2C addresses for some sensor types. For PX4Flow you can choose 0 to 7 for the 8 possible addresses on the I2C bus.",DisplayName:"Address on the bus",Range:{high:"127",low:"0"},User:"Advanced"},FLOW_FXSCALER:{Description:"This sets the parts per thousand scale factor correction applied to the flow sensor X axis optical rate. It can be used to correct for variations in effective focal length. Each positive increment of 1 increases the scale factor applied to the X axis optical flow reading by 0.1%. Negative values reduce the scale factor.",DisplayName:"X axis optical flow scale factor correction",Increment:"1",Range:{high:"+200",low:"-200"},User:"Standard"},FLOW_FYSCALER:{Description:"This sets the parts per thousand scale factor correction applied to the flow sensor Y axis optical rate. It can be used to correct for variations in effective focal length. Each positive increment of 1 increases the scale factor applied to the Y axis optical flow reading by 0.1%. Negative values reduce the scale factor.",DisplayName:"Y axis optical flow scale factor correction",Increment:"1",Range:{high:"+200",low:"-200"},User:"Standard"},FLOW_ORIENT_YAW:{Description:"Specifies the number of centi-degrees that the flow sensor is yawed relative to the vehicle. A sensor with its X-axis pointing to the right of the vehicle X axis has a positive yaw angle.",DisplayName:"Flow sensor yaw alignment",Increment:"10",Range:{high:"+18000",low:"-17999"},Units:"cdeg",User:"Standard"},FLOW_POS_X:{Description:"X position of the optical flow sensor focal point in body frame. Positive X is forward of the origin.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},FLOW_POS_Y:{Description:"Y position of the optical flow sensor focal point in body frame. Positive Y is to the right of the origin.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},FLOW_POS_Z:{Description:"Z position of the optical flow sensor focal point in body frame. Positive Z is down from the origin.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},FLOW_TYPE:{Description:"Optical flow sensor type",DisplayName:"Optical flow sensor type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"PX4Flow",2:"Pixart",3:"Bebop",4:"CXOF",5:"MAVLink",6:"UAVCAN",7:"MSP",8:"UPFLOW"}}},$J={FRSKY_DNLINK1_ID:{Description:"Change the first extra downlink sensor id (SPort only)",DisplayName:"First downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}},FRSKY_DNLINK2_ID:{Description:"Change the second extra downlink sensor id (SPort only)",DisplayName:"Second downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}},FRSKY_DNLINK_ID:{Description:"Change the default downlink sensor id (SPort only)",DisplayName:"Default downlink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26",27:"27","-1":"Disable"}},FRSKY_UPLINK_ID:{Description:"Change the uplink sensor id (SPort only)",DisplayName:"Uplink sensor id",User:"Advanced",Values:{7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14",15:"15",16:"16",17:"17",18:"18",19:"19",20:"20",21:"21",22:"22",23:"23",24:"24",25:"25",26:"26","-1":"Disable"}}},qJ={GEN_TYPE:{Description:"Generator type",DisplayName:"Generator type",RebootRequired:"True",User:"Standard",Values:{0:"Disabled",1:"IE 650w 800w Fuel Cell",2:"IE 2.4kW Fuel Cell",3:"Richenpower"}}},KJ={GPS1_CAN_OVRIDE:{Description:"GPS Node id for first GPS. If 0 the gps will be automatically selected on first come basis.",DisplayName:"First UAVCAN GPS NODE ID",User:"Advanced"},GPS2_CAN_OVRIDE:{Description:"GPS Node id for second GPS. If 0 the gps will be automatically selected on first come basis.",DisplayName:"Second UAVCAN GPS NODE ID",User:"Advanced"},GPS_AUTO_CONFIG:{Description:"Controls if the autopilot should automatically configure the GPS based on the parameters and default settings",DisplayName:"Automatic GPS configuration",User:"Advanced",Values:{0:"Disables automatic configuration",1:"Enable automatic configuration"}},GPS_AUTO_SWITCH:{Description:"Automatic switchover to GPS reporting best lock, 1:UseBest selects the GPS with highest status, if both are equal the GPS with highest satellite count is used 4:Use primary if 3D fix or better, will revert to 'UseBest' behaviour if 3D fix is lost on primary",DisplayName:"Automatic Switchover Setting",User:"Advanced",Values:{0:"Use primary",1:"UseBest",2:"Blend",4:"Use primary if 3D fix or better"}},GPS_BLEND_MASK:{Bitmask:{0:"Horiz Pos",1:"Vert Pos",2:"Speed"},Description:"Determines which of the accuracy measures Horizontal position, Vertical Position and Speed are used to calculate the weighting on each GPS receiver when soft switching has been selected by setting GPS_AUTO_SWITCH to 2(Blend)",DisplayName:"Multi GPS Blending Mask",User:"Advanced"},GPS_BLEND_TC:{Description:"Controls the slowest time constant applied to the calculation of GPS position and height offsets used to adjust different GPS receivers for steady state position differences.",DisplayName:"Blending time constant",Range:{high:"30.0",low:"5.0"},Units:"s",User:"Advanced"},GPS_CAN_NODEID1:{Description:"GPS Node id for discovered first.",DisplayName:"GPS Node ID 1",ReadOnly:"True",User:"Advanced"},GPS_CAN_NODEID2:{Description:"GPS Node id for discovered second.",DisplayName:"GPS Node ID 2",ReadOnly:"True",User:"Advanced"},GPS_COM_PORT:{Description:"The physical COM port on the connected device, currently only applies to SBF GPS",DisplayName:"GPS physical COM port",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},GPS_COM_PORT2:{Description:"The physical COM port on the connected device, currently only applies to SBF GPS",DisplayName:"GPS physical COM port",Increment:"1",Range:{high:"10",low:"0"},RebootRequired:"True",User:"Advanced"},GPS_DELAY_MS:{Description:"Controls the amount of GPS measurement delay that the autopilot compensates for. Set to zero to use the default delay for the detected GPS type.",DisplayName:"GPS delay in milliseconds",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},GPS_DELAY_MS2:{Description:"Controls the amount of GPS measurement delay that the autopilot compensates for. Set to zero to use the default delay for the detected GPS type.",DisplayName:"GPS 2 delay in milliseconds",Range:{high:"250",low:"0"},RebootRequired:"True",Units:"ms",User:"Advanced"},GPS_DRV_OPTIONS:{Bitmask:{0:"Use UART2 for moving baseline on ublox",1:"Use base station for GPS yaw on SBF",2:"Use baudrate 115200"},Description:"Additional backend specific options",DisplayName:"driver options",User:"Advanced"},GPS_GNSS_MODE:{Bitmask:{0:"GPS",1:"SBAS",2:"Galileo",3:"Beidou",4:"IMES",5:"QZSS",6:"GLONASS"},Description:"Bitmask for what GNSS system to use on the first GPS (all unchecked or zero to leave GPS as configured)",DisplayName:"GNSS system configuration",User:"Advanced"},GPS_GNSS_MODE2:{Bitmask:{0:"GPS",1:"SBAS",2:"Galileo",3:"Beidou",4:"IMES",5:"QZSS",6:"GLONASS"},Description:"Bitmask for what GNSS system to use on the second GPS (all unchecked or zero to leave GPS as configured)",DisplayName:"GNSS system configuration",User:"Advanced"},GPS_INJECT_TO:{Description:"The GGS can send raw serial packets to inject data to multiple GPSes.",DisplayName:"Destination for GPS_INJECT_DATA MAVLink packets",User:"Advanced",Values:{0:"send to first GPS",1:"send to 2nd GPS",127:"send to all"}},GPS_MIN_DGPS:{Description:"Sets the minimum type of differential GPS corrections required before allowing to switch into DGPS mode.",DisplayName:"Minimum Lock Type Accepted for DGPS",RebootRequired:"True",User:"Advanced",Values:{0:"Any",50:"FloatRTK",100:"IntegerRTK"}},GPS_MIN_ELEV:{Description:"This sets the minimum elevation of satellites above the horizon for them to be used for navigation. Setting this to -100 leaves the minimum elevation set to the GPS modules default.",DisplayName:"Minimum elevation",Range:{high:"90",low:"-100"},Units:"deg",User:"Advanced"},GPS_NAVFILTER:{Description:"Navigation filter engine setting",DisplayName:"Navigation filter setting",User:"Advanced",Values:{0:"Portable",2:"Stationary",3:"Pedestrian",4:"Automotive",5:"Sea",6:"Airborne1G",7:"Airborne2G",8:"Airborne4G"}},GPS_POS1_X:{Description:"X position of the first GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS1_Y:{Description:"Y position of the first GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS1_Z:{Description:"Z position of the first GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_X:{Description:"X position of the second GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_Y:{Description:"Y position of the second GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_POS2_Z:{Description:"Z position of the second GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_PRIMARY:{Description:"This GPS will be used when GPS_AUTO_SWITCH is 0 and used preferentially with GPS_AUTO_SWITCH = 4.",DisplayName:"Primary GPS",Increment:"1",User:"Advanced",Values:{0:"FirstGPS",1:"SecondGPS"}},GPS_RATE_MS:{Description:"Controls how often the GPS should provide a position update. Lowering below 5Hz(default) is not allowed. Raising the rate above 5Hz usually provides little benefit and for some GPS (eg Ublox M9N) can severely impact performance.",DisplayName:"GPS update rate in milliseconds",Range:{high:"200",low:"50"},Units:"ms",User:"Advanced",Values:{100:"10Hz",125:"8Hz",200:"5Hz"}},GPS_RATE_MS2:{Description:"Controls how often the GPS should provide a position update. Lowering below 5Hz(default) is not allowed. Raising the rate above 5Hz usually provides little benefit and for some GPS (eg Ublox M9N) can severely impact performance.",DisplayName:"GPS 2 update rate in milliseconds",Range:{high:"200",low:"50"},Units:"ms",User:"Advanced",Values:{100:"10Hz",125:"8Hz",200:"5Hz"}},GPS_RAW_DATA:{Description:"Handles logging raw data; on uBlox chips that support raw data this will log RXM messages into logger; on Septentrio this will log on the equipment's SD card and when set to 2, the autopilot will try to stop logging after disarming and restart after arming",DisplayName:"Raw data logging",RebootRequired:"True",User:"Advanced",Values:{0:"Ignore",1:"Always log",2:"Stop logging when disarmed (SBF only)",5:"Only log every five samples (uBlox only)"}},GPS_SAVE_CFG:{Description:"Determines whether the configuration for this GPS should be written to non-volatile memory on the GPS. Currently working for UBlox 6 series and above.",DisplayName:"Save GPS configuration",User:"Advanced",Values:{0:"Do not save config",1:"Save config",2:"Save only when needed"}},GPS_SBAS_MODE:{Description:"This sets the SBAS (satellite based augmentation system) mode if available on this GPS. If set to 2 then the SBAS mode is not changed in the GPS. Otherwise the GPS will be reconfigured to enable/disable SBAS. Disabling SBAS may be worthwhile in some parts of the world where an SBAS signal is available but the baseline is too long to be useful.",DisplayName:"SBAS Mode",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"NoChange"}},GPS_SBP_LOGMASK:{Description:"Masked with the SBP msg_type field to determine whether SBR1/SBR2 data is logged",DisplayName:"Swift Binary Protocol Logging Mask",User:"Advanced",Values:{0:"None (0x0000)","-1":"All (0xFFFF)","-256":"External only (0xFF00)"}},GPS_TYPE:{Description:"GPS type of 1st GPS",DisplayName:"1st GPS type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"AUTO",2:"uBlox",3:"MTK",4:"MTK19",5:"NMEA",6:"SiRF",7:"HIL",8:"SwiftNav",9:"UAVCAN",10:"SBF",11:"GSOF",13:"ERB",14:"MAV",15:"NOVA",16:"HemisphereNMEA",17:"uBlox-MovingBaseline-Base",18:"uBlox-MovingBaseline-Rover",19:"MSP",20:"AllyStar",21:"ExternalAHRS"}},GPS_TYPE2:{Description:"GPS type of 2nd GPS",DisplayName:"2nd GPS type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"AUTO",2:"uBlox",3:"MTK",4:"MTK19",5:"NMEA",6:"SiRF",7:"HIL",8:"SwiftNav",9:"UAVCAN",10:"SBF",11:"GSOF",13:"ERB",14:"MAV",15:"NOVA",16:"HemisphereNMEA",17:"uBlox-MovingBaseline-Base",18:"uBlox-MovingBaseline-Rover",19:"MSP",20:"AllyStar",21:"ExternalAHRS"}}},jJ={GPS_MB1_OFS_X:{Description:"X position of the base GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_OFS_Y:{Description:"Y position of the base GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Y position offset ",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_OFS_Z:{Description:"Z position of the base GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB1_TYPE:{Description:"Controls the type of moving base used if using moving base.",DisplayName:"Moving base type",RebootRequired:"True",User:"Advanced",Values:{0:"Relative to alternate GPS instance",1:"RelativeToCustomBase"}}},QJ={GPS_MB2_OFS_X:{Description:"X position of the base GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_OFS_Y:{Description:"Y position of the base GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Y position offset ",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_OFS_Z:{Description:"Z position of the base GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",DisplayName:"Base antenna Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},GPS_MB2_TYPE:{Description:"Controls the type of moving base used if using moving base.",DisplayName:"Moving base type",RebootRequired:"True",User:"Advanced",Values:{0:"Relative to alternate GPS instance",1:"RelativeToCustomBase"}}},JJ={GRIP_ENABLE:{Description:"Gripper enable/disable",DisplayName:"Gripper Enable/Disable",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},GRIP_GRAB:{Description:"PWM value in microseconds sent to Gripper to initiate grabbing the cargo",DisplayName:"Gripper Grab PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_NEUTRAL:{Description:"PWM value in microseconds sent to grabber when not grabbing or releasing",DisplayName:"Neutral PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_REGRAB:{Description:"Time in seconds that gripper will regrab the cargo to ensure grip has not weakened; 0 to disable",DisplayName:"Gripper Regrab interval",Range:{high:"255",low:"0"},Units:"s",User:"Advanced"},GRIP_RELEASE:{Description:"PWM value in microseconds sent to Gripper to release the cargo",DisplayName:"Gripper Release PWM",Range:{high:"2000",low:"1000"},Units:"PWM",User:"Advanced"},GRIP_TYPE:{Description:"Gripper enable/disable",DisplayName:"Gripper Type",User:"Standard",Values:{0:"None",1:"Servo",2:"EPM"}},GRIP_UAVCAN_ID:{Description:"Refer to https://docs.zubax.com/opengrab_epm_v3#UAVCAN_interface",DisplayName:"EPM UAVCAN Hardpoint ID",Range:{high:"255",low:"0"},User:"Standard"}},e11={INS_ACC1_CALTEMP:{Calibration:"1",Description:"Temperature that the 1st accelerometer was calibrated at",DisplayName:"Calibration temperature for 1st accelerometer",Units:"degC",User:"Advanced"},INS_ACC2OFFS_X:{Calibration:"1",Description:"Accelerometer2 offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2OFFS_Y:{Calibration:"1",Description:"Accelerometer2 offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2OFFS_Z:{Calibration:"1",Description:"Accelerometer2 offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer2 offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC2SCAL_X:{Calibration:"1",Description:"Accelerometer2 scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2SCAL_Y:{Calibration:"1",Description:"Accelerometer2 scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2SCAL_Z:{Calibration:"1",Description:"Accelerometer2 scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer2 scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC2_CALTEMP:{Calibration:"1",Description:"Temperature that the 2nd accelerometer was calibrated at",DisplayName:"Calibration temperature for 2nd accelerometer",Units:"degC",User:"Advanced"},INS_ACC2_ID:{Description:"Accelerometer2 sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer2 ID",ReadOnly:"True",User:"Advanced"},INS_ACC3OFFS_X:{Calibration:"1",Description:"Accelerometer3 offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3OFFS_Y:{Calibration:"1",Description:"Accelerometer3 offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3OFFS_Z:{Calibration:"1",Description:"Accelerometer3 offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer3 offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACC3SCAL_X:{Calibration:"1",Description:"Accelerometer3 scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3SCAL_Y:{Calibration:"1",Description:"Accelerometer3 scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3SCAL_Z:{Calibration:"1",Description:"Accelerometer3 scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer3 scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC3_CALTEMP:{Calibration:"1",Description:"Temperature that the 3rd accelerometer was calibrated at",DisplayName:"Calibration temperature for 3rd accelerometer",Units:"degC",User:"Advanced"},INS_ACC3_ID:{Description:"Accelerometer3 sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer3 ID",ReadOnly:"True",User:"Advanced"},INS_ACCEL_FILTER:{Description:"Filter cutoff frequency for accelerometers. This can be set to a lower value to try to cope with very high vibration levels in aircraft. A value of zero means no filtering (not recommended!)",DisplayName:"Accel filter cutoff frequency",Range:{high:"256",low:"0"},Units:"Hz",User:"Advanced"},INS_ACCOFFS_X:{Calibration:"1",Description:"Accelerometer offsets of X axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of X axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCOFFS_Y:{Calibration:"1",Description:"Accelerometer offsets of Y axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of Y axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCOFFS_Z:{Calibration:"1",Description:"Accelerometer offsets of Z axis. This is setup using the acceleration calibration or level operations",DisplayName:"Accelerometer offsets of Z axis",Range:{high:"3.5",low:"-3.5"},Units:"m/s/s",User:"Advanced"},INS_ACCSCAL_X:{Calibration:"1",Description:"Accelerometer scaling of X axis. Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of X axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACCSCAL_Y:{Calibration:"1",Description:"Accelerometer scaling of Y axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of Y axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACCSCAL_Z:{Calibration:"1",Description:"Accelerometer scaling of Z axis Calculated during acceleration calibration routine",DisplayName:"Accelerometer scaling of Z axis",Range:{high:"1.2",low:"0.8"},User:"Advanced"},INS_ACC_BODYFIX:{Description:"The body-fixed accelerometer to be used for trim calculation",DisplayName:"Body-fixed accelerometer",User:"Advanced",Values:{1:"IMU 1",2:"IMU 2",3:"IMU 3"}},INS_ACC_ID:{Description:"Accelerometer sensor ID, taking into account its type, bus and instance",DisplayName:"Accelerometer ID",ReadOnly:"True",User:"Advanced"},INS_ENABLE_MASK:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU"},Description:"Bitmask of IMUs to enable. It can be used to prevent startup of specific detected IMUs",DisplayName:"IMU enable mask",User:"Advanced"},INS_FAST_SAMPLE:{Bitmask:{0:"FirstIMU",1:"SecondIMU",2:"ThirdIMU"},Description:"Mask of IMUs to enable fast sampling on, if available",DisplayName:"Fast sampling mask",User:"Advanced"},INS_GYR1_CALTEMP:{Calibration:"1",Description:"Temperature that the 1st gyroscope was calibrated at",DisplayName:"Calibration temperature for 1st gyroscope",Units:"degC",User:"Advanced"},INS_GYR2OFFS_X:{Calibration:"1",Description:"Gyro2 sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYR2OFFS_Y:{Calibration:"1",Description:"Gyro2 sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYR2OFFS_Z:{Calibration:"1",Description:"Gyro2 sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro2 offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYR2_CALTEMP:{Calibration:"1",Description:"Temperature that the 2nd gyroscope was calibrated at",DisplayName:"Calibration temperature for 2nd gyroscope",Units:"degC",User:"Advanced"},INS_GYR2_ID:{Description:"Gyro2 sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro2 ID",ReadOnly:"True",User:"Advanced"},INS_GYR3OFFS_X:{Calibration:"1",Description:"Gyro3 sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYR3OFFS_Y:{Calibration:"1",Description:"Gyro3 sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYR3OFFS_Z:{Calibration:"1",Description:"Gyro3 sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro3 offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYR3_CALTEMP:{Calibration:"1",Description:"Temperature that the 3rd gyroscope was calibrated at",DisplayName:"Calibration temperature for 3rd gyroscope",Units:"degC",User:"Advanced"},INS_GYR3_ID:{Description:"Gyro3 sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro3 ID",ReadOnly:"True",User:"Advanced"},INS_GYROFFS_X:{Calibration:"1",Description:"Gyro sensor offsets of X axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of X axis",Units:"rad/s",User:"Advanced"},INS_GYROFFS_Y:{Calibration:"1",Description:"Gyro sensor offsets of Y axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of Y axis",Units:"rad/s",User:"Advanced"},INS_GYROFFS_Z:{Calibration:"1",Description:"Gyro sensor offsets of Z axis. This is setup on each boot during gyro calibrations",DisplayName:"Gyro offsets of Z axis",Units:"rad/s",User:"Advanced"},INS_GYRO_FILTER:{Description:"Filter cutoff frequency for gyroscopes. This can be set to a lower value to try to cope with very high vibration levels in aircraft. A value of zero means no filtering (not recommended!)",DisplayName:"Gyro filter cutoff frequency",Range:{high:"256",low:"0"},Units:"Hz",User:"Advanced"},INS_GYRO_RATE:{Description:"Gyro rate for IMUs with fast sampling enabled. The gyro rate is the sample rate at which the IMU filters operate and needs to be at least double the maximum filter frequency. If the sensor does not support the selected rate the next highest supported rate will be used. For IMUs which do not support fast sampling this setting is ignored and the default gyro rate of 1Khz is used.",DisplayName:"Gyro rate for IMUs with Fast Sampling enabled",RebootRequired:"True",User:"Advanced",Values:{0:"1kHz",1:"2kHz",2:"4kHz",3:"8kHz"}},INS_GYR_CAL:{Description:"Conrols when automatic gyro calibration is performed",DisplayName:"Gyro Calibration scheme",User:"Advanced",Values:{0:"Never",1:"Start-up only"}},INS_GYR_ID:{Description:"Gyro sensor ID, taking into account its type, bus and instance",DisplayName:"Gyro ID",ReadOnly:"True",User:"Advanced"},INS_POS1_X:{Description:"X position of the first IMU Accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS1_Y:{Description:"Y position of the first IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS1_Z:{Description:"Z position of the first IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_X:{Description:"X position of the second IMU accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_Y:{Description:"Y position of the second IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS2_Z:{Description:"Z position of the second IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS3_X:{Description:"X position of the third IMU accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer X position",Range:{high:"10",low:"-10"},Units:"m",User:"Advanced"},INS_POS3_Y:{Description:"Y position of the third IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Y position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_POS3_Z:{Description:"Z position of the third IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",DisplayName:"IMU accelerometer Z position",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},INS_STILL_THRESH:{Description:"Threshold to tolerate vibration to determine if vehicle is motionless. This depends on the frame type and if there is a constant vibration due to motors before launch or after landing. Total motionless is about 0.05. Suggested values: Planes/rover use 0.1, multirotors use 1, tradHeli uses 5",DisplayName:"Stillness threshold for detecting if we are moving",Range:{high:"50",low:"0.05"},User:"Advanced"},INS_TCAL_OPTIONS:{Bitmask:{0:"PersistParams"},Description:"This enables optional temperature calibration features. Setting PersistParams will save the accelerometer and temperature calibration parameters in the bootloader sector on the next update of the bootloader.",DisplayName:"Options for temperature calibration",User:"Advanced"},INS_TRIM_OPTION:{Description:"Specifies how the accel cal routine determines the trims",DisplayName:"Accel cal trim option",User:"Advanced",Values:{0:"Don't adjust the trims",1:"Assume first orientation was level",2:"Assume ACC_BODYFIX is perfectly aligned to the vehicle"}},INS_USE:{Description:"Use first IMU for attitude, velocity and position estimates",DisplayName:"Use first IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_USE2:{Description:"Use second IMU for attitude, velocity and position estimates",DisplayName:"Use second IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_USE3:{Description:"Use third IMU for attitude, velocity and position estimates",DisplayName:"Use third IMU for attitude, velocity and position estimates",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}}},t11={INS_HNTCH_ATT:{Description:"Harmonic Notch Filter attenuation in dB. Values greater than 40dB will typically produce a hard notch rather than a modest attenuation of motor noise.",DisplayName:"Harmonic Notch Filter attenuation",Range:{high:"50",low:"5"},Units:"dB",User:"Advanced"},INS_HNTCH_BW:{Description:"Harmonic Notch Filter bandwidth in Hz. This is typically set to half the base frequency. The ratio of base frequency to bandwidth determines the notch quality factor and is fixed across harmonics.",DisplayName:"Harmonic Notch Filter bandwidth",Range:{high:"250",low:"5"},Units:"Hz",User:"Advanced"},INS_HNTCH_ENABLE:{Description:"Harmonic Notch Filter enable",DisplayName:"Harmonic Notch Filter enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_HNTCH_FREQ:{Description:"Harmonic Notch Filter base center frequency in Hz. This should be set at most half the backend gyro rate (which is typically 1Khz). For helicopters using RPM sensor to dynamically set the notch frequency, use this parameter to provide a lower limit to the dynamic notch filter. Recommend setting it to half the operating rotor speed in Hz.",DisplayName:"Harmonic Notch Filter base frequency",Range:{high:"495",low:"10"},Units:"Hz",User:"Advanced"},INS_HNTCH_HMNCS:{Bitmask:{0:"1st harmonic",1:"2nd harmonic",2:"3rd harmonic",3:"4th hamronic",4:"5th harmonic",5:"6th harmonic",6:"7th harmonic",7:"8th harmonic"},Description:"Bitmask of harmonic frequencies to apply Harmonic Notch Filter to. This option takes effect on the next reboot. A maximum of 3 harmonics can be used at any one time.",DisplayName:"Harmonic Notch Filter harmonics",RebootRequired:"True",User:"Advanced"},INS_HNTCH_MODE:{Description:"Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based updates should only be used with multicopters.",DisplayName:"Harmonic Notch Filter dynamic frequency tracking mode",Range:{high:"4",low:"0"},User:"Advanced",Values:{0:"Disabled",1:"Throttle",2:"RPM Sensor",3:"ESC Telemetry",4:"Dynamic FFT"}},INS_HNTCH_OPTS:{Bitmask:{0:"Double notch",1:"Dynamic harmonic",2:"Update at loop rate"},Description:"Harmonic Notch Filter options. Double-notches can provide deeper attenuation across a wider bandwidth than single notches and are suitable for larger aircraft. Dynamic harmonics attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz.",DisplayName:"Harmonic Notch Filter options",RebootRequired:"True",User:"Advanced"},INS_HNTCH_REF:{Description:"A reference value of zero disables dynamic updates on the Harmonic Notch Filter and a positive value enables dynamic updates on the Harmonic Notch Filter. For throttle-based scaling, this parameter is the reference value associated with the specified frequency to facilitate frequency scaling of the Harmonic Notch Filter. For RPM and ESC telemetry based tracking, this parameter is set to 1 to enable the Harmonic Notch Filter using the RPM sensor or ESC telemetry set to measure rotor speed. The sensor data is converted to Hz automatically for use in the Harmonic Notch Filter. This reference value may also be used to scale the sensor data, if required. For example, rpm sensor data is required to measure heli motor RPM. Therefore the reference value can be used to scale the RPM sensor to the rotor RPM.",DisplayName:"Harmonic Notch Filter reference value",Range:{high:"1.0",low:"0.0"},RebootRequired:"True",User:"Advanced"}},i11={INS_LOG_BAT_CNT:{Description:"Number of samples to take when logging streams of IMU sensor readings. Will be rounded down to a multiple of 32. This option takes effect on the next reboot.",DisplayName:"sample count per batch",Increment:"32",RebootRequired:"True",User:"Advanced"},INS_LOG_BAT_LGCT:{Description:"Number of samples to push to count every INS_LOG_BAT_LGIN",DisplayName:"logging count",Increment:"1"},INS_LOG_BAT_LGIN:{Description:"Interval between pushing samples to the AP_Logger log",DisplayName:"logging interval",Increment:"10",Units:"ms"},INS_LOG_BAT_MASK:{Bitmask:{0:"IMU1",1:"IMU2",2:"IMU3"},Description:"Bitmap of which IMUs to log batch data for. This option takes effect on the next reboot.",DisplayName:"Sensor Bitmask",RebootRequired:"True",User:"Advanced"},INS_LOG_BAT_OPT:{Bitmask:{0:"Sensor-Rate Logging (sample at full sensor rate seen by AP)",1:"Sample post-filtering"},Description:"Options for the BatchSampler. Post-filter and sensor-rate logging cannot be used at the same time.",DisplayName:"Batch Logging Options Mask",User:"Advanced"}},a11={INS_NOTCH_ATT:{Description:"Notch attenuation in dB",DisplayName:"Attenuation",Range:{high:"30",low:"5"},Units:"dB",User:"Advanced"},INS_NOTCH_BW:{Description:"Notch bandwidth in Hz",DisplayName:"Bandwidth",Range:{high:"100",low:"5"},Units:"Hz",User:"Advanced"},INS_NOTCH_ENABLE:{Description:"Enable notch filter",DisplayName:"Enable",User:"Advanced",Values:{0:"Disabled",1:"Enabled"}},INS_NOTCH_FREQ:{Description:"Notch center frequency in Hz",DisplayName:"Frequency",Range:{high:"400",low:"10"},Units:"Hz",User:"Advanced"}},r11={INS_TCAL1_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL1_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL1_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL1_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL1_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL1_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},n11={INS_TCAL2_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL2_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL2_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL2_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL2_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL2_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},o11={INS_TCAL3_ACC1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ACC2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ACC3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_ACC3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_ACC3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Accelerometer 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_ENABLE:{Description:"Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",DisplayName:"Enable temperature calibration",RebootRequired:"True",User:"Advanced",Values:{0:"Disabled",1:"Enabled",2:"LearnCalibration"}},INS_TCAL3_GYR1_X:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR1_Y:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR1_Z:{Calibration:"1",Description:"This is the 1st order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 1st order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_GYR2_X:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR2_Y:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR2_Z:{Calibration:"1",Description:"This is the 2nd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 2nd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_GYR3_X:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient X axis",User:"Advanced"},INS_TCAL3_GYR3_Y:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Y axis",User:"Advanced"},INS_TCAL3_GYR3_Z:{Calibration:"1",Description:"This is the 3rd order temperature coefficient from a temperature calibration",DisplayName:"Gyroscope 3rd order temperature coefficient Z axis",User:"Advanced"},INS_TCAL3_TMAX:{Calibration:"1",Description:"The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",DisplayName:"Temperature calibration max",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"},INS_TCAL3_TMIN:{Calibration:"1",Description:"The minimum temperature that the calibration is valid for",DisplayName:"Temperature calibration min",Range:{high:"80",low:"-70"},Units:"degC",User:"Advanced"}},s11={LEAK1_LOGIC:{Description:"Default reading of leak detector when dry",DisplayName:"Default reading of leak detector when dry",User:"Standard",Values:{0:"Low",1:"High"}},LEAK1_PIN:{Description:"Pin that the leak detector is connected to",DisplayName:"Pin that leak detector is connected to",RebootRequired:"True",User:"Standard",Values:{13:"Pixhawk 3.3ADC1",14:"Pixhawk 3.3ADC2",15:"Pixhawk 6.6ADC",27:"Navigator Built-In",50:"Pixhawk Aux1",51:"Pixhawk Aux2",52:"Pixhawk Aux3",53:"Pixhawk Aux4",54:"Pixhawk Aux5",55:"Pixhawk Aux6","-1":"Disabled"}},LEAK2_LOGIC:{Description:"Default reading of leak detector when dry",DisplayName:"Default reading of leak detector when dry",User:"Standard",Values:{0:"Low",1:"High"}},LEAK2_PIN:{Description:"Pin that the leak detector is connected to",DisplayName:"Pin that leak detector is connected to",RebootRequired:"True",User:"Standard",Values:{13:"Pixhawk 3.3ADC1",14:"Pixhawk 3.3ADC2",15:"Pixhawk 6.6ADC",27:"Navigator Leak1",50:"Pixhawk Aux1",51:"Pixhawk Aux2",52:"Pixhawk Aux3",53:"Pixhawk Aux4",54:"Pixhawk Aux5",55:"Pixhawk Aux6","-1":"Disabled"}},LEAK3_LOGIC:{Description:"Default reading of leak detector when dry",DisplayName:"Default reading of leak detector when dry",User:"Standard",Values:{0:"Low",1:"High"}},LEAK3_PIN:{Description:"Pin that the leak detector is connected to",DisplayName:"Pin that leak detector is connected to",RebootRequired:"True",User:"Standard",Values:{13:"Pixhawk 3.3ADC1",14:"Pixhawk 3.3ADC2",15:"Pixhawk 6.6ADC",27:"Navigator Leak1",50:"Pixhawk Aux1",51:"Pixhawk Aux2",52:"Pixhawk Aux3",53:"Pixhawk Aux4",54:"Pixhawk Aux5",55:"Pixhawk Aux6","-1":"Disabled"}}},l11={LOG_BACKEND_TYPE:{Bitmask:{0:"File",1:"MAVLink",2:"Block"},Description:"Bitmap of what Logger backend types to enable. Block-based logging is available on SITL and boards with dataflash chips. Multiple backends can be selected.",DisplayName:"AP_Logger Backend Storage type",User:"Standard"},LOG_DISARMED:{Description:"If LOG_DISARMED is set to 1 then logging will be enabled while disarmed. This can make for very large logfiles but can help a lot when tracking down startup issues",DisplayName:"Enable logging while disarmed",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},LOG_FILE_BUFSIZE:{Description:'The File and Block backends use a buffer to store data before writing to the block device. Raising this value may reduce "gaps" in your SD card logging. This buffer size may be reduced depending on available memory. PixHawk requires at least 4 kilobytes. Maximum value available here is 64 kilobytes.',DisplayName:"Maximum AP_Logger File and Block Backend buffer size (in kilobytes)",User:"Standard"},LOG_FILE_DSRMROT:{Description:"When set, the current log file is closed when the vehicle is disarmed. If LOG_DISARMED is set then a fresh log will be opened. Applies to the File and Block logging backends.",DisplayName:"Stop logging to current file on disarm",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},LOG_FILE_MB_FREE:{Description:"Set this such that the free space is larger than your largest typical flight log",DisplayName:"Old logs on the SD card will be deleted to maintain this amount of free space",Range:{high:"1000",low:"10"},Units:"MB",User:"Standard"},LOG_FILE_TIMEOUT:{Description:"This controls the amount of time before failing writes to a log file cause the file to be closed and logging stopped.",DisplayName:"Timeout before giving up on file writes",Units:"s",User:"Standard"},LOG_MAV_BUFSIZE:{Description:"Maximum amount of memory to allocate to AP_Logger-over-mavlink",DisplayName:"Maximum AP_Logger MAVLink Backend buffer size",Units:"kB",User:"Advanced"},LOG_REPLAY:{Description:"If LOG_REPLAY is set to 1 then the EKF2 state estimator will log detailed information needed for diagnosing problems with the Kalman filter. It is suggested that you also raise LOG_FILE_BUFSIZE to give more buffer space for logging and use a high quality microSD card to ensure no sensor data is lost",DisplayName:"Enable logging of information needed for Replay",User:"Standard",Values:{0:"Disabled",1:"Enabled"}}},c11={LOIT_ACC_MAX:{Description:"Loiter maximum correction acceleration in cm/s/s. Higher values cause the copter to correct position errors more aggressively.",DisplayName:"Loiter maximum correction acceleration",Increment:"1",Range:{high:"981",low:"100"},Units:"cm/s/s",User:"Advanced"},LOIT_ANG_MAX:{Description:"Loiter maximum lean angle. Set to zero for 2/3 of PSC_ANGLE_MAX or ANGLE_MAX",DisplayName:"Loiter Angle Max",Increment:"1",Range:{high:"45",low:"0"},Units:"deg",User:"Advanced"},LOIT_BRK_ACCEL:{Description:"Loiter braking acceleration in cm/s/s. Higher values stop the copter more quickly when the stick is centered.",DisplayName:"Loiter braking acceleration",Increment:"1",Range:{high:"250",low:"25"},Units:"cm/s/s",User:"Advanced"},LOIT_BRK_DELAY:{Description:"Loiter brake start delay (in seconds)",DisplayName:"Loiter brake start delay (in seconds)",Increment:"0.1",Range:{high:"2",low:"0"},Units:"s",User:"Advanced"},LOIT_BRK_JERK:{Description:"Loiter braking jerk in cm/s/s/s. Higher values will remove braking faster if the pilot moves the sticks during a braking maneuver.",DisplayName:"Loiter braking jerk",Increment:"1",Range:{high:"5000",low:"500"},Units:"cm/s/s/s",User:"Advanced"},LOIT_SPEED:{Description:"Defines the maximum speed in cm/s which the aircraft will travel horizontally while in loiter mode",DisplayName:"Loiter Horizontal Maximum Speed",Increment:"50",Range:{high:"3500",low:"20"},Units:"cm/s",User:"Standard"}},d11={MIS_OPTIONS:{Bitmask:{0:"Clear Mission on reboot"},Description:"Bitmask of what options to use in missions.",DisplayName:"Mission options bitmask",User:"Advanced"},MIS_RESTART:{Description:"Controls mission starting point when entering Auto mode (either restart from beginning of mission or resume from last command run)",DisplayName:"Mission Restart when entering Auto mode",User:"Advanced",Values:{0:"Resume Mission",1:"Restart Mission"}},MIS_TOTAL:{Description:"The number of mission mission items that has been loaded by the ground station. Do not change this manually.",DisplayName:"Total mission commands",Increment:"1",Range:{high:"32766",low:"0"},ReadOnly:"True",User:"Advanced"}},C11={MNT2_ANGMAX_PAN:{Description:"MOunt2's maximum physical pan (yaw) angular position",DisplayName:"Mount2's maximum pan angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_ANGMAX_ROL:{Description:"Mount2's maximum physical roll angular position",DisplayName:"Mount2's maximum roll angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_ANGMAX_TIL:{Description:"Mount2's maximum physical tilt (pitch) angular position",DisplayName:"Mount2's maximum tilt angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_ANGMIN_PAN:{Description:"Mount2's minimum physical pan (yaw) angular position",DisplayName:"Mount2's minimum pan angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_ANGMIN_ROL:{Description:"Mount2's minimum physical roll angular position",DisplayName:"Mount2's minimum roll angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_ANGMIN_TIL:{Description:"Mount2's minimum physical tilt (pitch) angular position",DisplayName:"Mount2's minimum tilt angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT2_DEFLT_MODE:{Description:"Mount default operating mode on startup and after control is returned from autopilot",DisplayName:"Mount default operating mode",User:"Standard",Values:{0:"Retracted",1:"Neutral",2:"MavLink Targeting",3:"RC Targeting",4:"GPS Point"}},MNT2_LEAD_PTCH:{Description:"Causes the servo angle output to lead the current angle of the vehicle by some amount of time based on current angular rate. Increase until the servo is responsive but doesn't overshoot. Does nothing with pan stabilization enabled.",DisplayName:"Mount2's Pitch stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT2_LEAD_RLL:{Description:"Causes the servo angle output to lead the current angle of the vehicle by some amount of time based on current angular rate, compensating for servo delay. Increase until the servo is responsive but doesn't overshoot. Does nothing with pan stabilization enabled.",DisplayName:"Mount2's Roll stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT2_NEUTRAL_X:{Description:"Mount2 roll angle when in neutral position",DisplayName:"Mount2 roll angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_NEUTRAL_Y:{Description:"Mount2 tilt/pitch angle when in neutral position",DisplayName:"Mount2 tilt/pitch angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_NEUTRAL_Z:{Description:"Mount2 pan/yaw angle when in neutral position",DisplayName:"Mount2 pan/yaw angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_RC_IN_PAN:{Description:"0 for none, any other for the RC channel to be used to control pan (yaw) movements",DisplayName:"Mount2's pan (yaw) RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT2_RC_IN_ROLL:{Description:"0 for none, any other for the RC channel to be used to control roll movements",DisplayName:"Mount2's roll RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT2_RC_IN_TILT:{Description:"0 for none, any other for the RC channel to be used to control tilt (pitch) movements",DisplayName:"Mount2's tilt (pitch) RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT2_RETRACT_X:{Description:"Mount2 roll angle when in retracted position",DisplayName:"Mount2 roll angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_RETRACT_Y:{Description:"Mount2 tilt/pitch angle when in retracted position",DisplayName:"Mount2 tilt/pitch angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_RETRACT_Z:{Description:"Mount2 yaw/pan angle when in retracted position",DisplayName:"Mount2 yaw/pan angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT2_STAB_PAN:{Description:"enable pan/yaw stabilisation relative to Earth",DisplayName:"Stabilize mount2 pan/yaw angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT2_STAB_ROLL:{Description:"enable roll stabilisation relative to Earth",DisplayName:"Stabilize Mount2's roll angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT2_STAB_TILT:{Description:"enable tilt/pitch stabilisation relative to Earth",DisplayName:"Stabilize Mount2's pitch/tilt angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT2_TYPE:{Description:"Mount Type (None, Servo or MAVLink)",DisplayName:"Mount2 Type",User:"Standard",Values:{0:"None",1:"Servo",2:"3DR Solo",3:"Alexmos Serial",4:"SToRM32 MAVLink",5:"SToRM32 Serial"}},MNT_ANGMAX_PAN:{Description:"Maximum physical pan (yaw) angular position of the mount",DisplayName:"Maximum pan angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_ANGMAX_ROL:{Description:"Maximum physical roll angular position of the mount",DisplayName:"Maximum roll angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_ANGMAX_TIL:{Description:"Maximum physical tilt (pitch) angular position of the mount",DisplayName:"Maximum tilt angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_ANGMIN_PAN:{Description:"Minimum physical pan (yaw) angular position of mount.",DisplayName:"Minimum pan angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_ANGMIN_ROL:{Description:"Minimum physical roll angular position of mount.",DisplayName:"Minimum roll angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_ANGMIN_TIL:{Description:"Minimum physical tilt (pitch) angular position of mount.",DisplayName:"Minimum tilt angle",Increment:"10",Range:{high:"17999",low:"-18000"},Units:"cdeg",User:"Standard"},MNT_DEFLT_MODE:{Description:"Mount default operating mode on startup and after control is returned from autopilot",DisplayName:"Mount default operating mode",User:"Standard",Values:{0:"Retracted",1:"Neutral",2:"MavLink Targeting",3:"RC Targeting",4:"GPS Point"}},MNT_JSTICK_SPD:{Description:"0 for position control, small for low speeds, 100 for max speed. A good general value is 10 which gives a movement speed of 3 degrees per second.",DisplayName:"mount joystick speed",Increment:"1",Range:{high:"100",low:"0"},User:"Standard"},MNT_LEAD_PTCH:{Description:"Causes the servo angle output to lead the current angle of the vehicle by some amount of time based on current angular rate. Increase until the servo is responsive but doesn't overshoot. Does nothing with pan stabilization enabled.",DisplayName:"Pitch stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT_LEAD_RLL:{Description:"Causes the servo angle output to lead the current angle of the vehicle by some amount of time based on current angular rate, compensating for servo delay. Increase until the servo is responsive but doesn't overshoot. Does nothing with pan stabilization enabled.",DisplayName:"Roll stabilization lead time",Increment:".005",Range:{high:"0.2",low:"0.0"},Units:"s",User:"Standard"},MNT_NEUTRAL_X:{Description:"Mount roll angle when in neutral position",DisplayName:"Mount roll angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_NEUTRAL_Y:{Description:"Mount tilt/pitch angle when in neutral position",DisplayName:"Mount tilt/pitch angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_NEUTRAL_Z:{Description:"Mount pan/yaw angle when in neutral position",DisplayName:"Mount pan/yaw angle when in neutral position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_RC_IN_PAN:{Description:"0 for none, any other for the RC channel to be used to control pan (yaw) movements",DisplayName:"pan (yaw) RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT_RC_IN_ROLL:{Description:"0 for none, any other for the RC channel to be used to control roll movements",DisplayName:"roll RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT_RC_IN_TILT:{Description:"0 for none, any other for the RC channel to be used to control tilt (pitch) movements",DisplayName:"tilt (pitch) RC input channel",User:"Standard",Values:{0:"Disabled",5:"RC5",6:"RC6",7:"RC7",8:"RC8",9:"RC9",10:"RC10",11:"RC11",12:"RC12"}},MNT_RETRACT_X:{Description:"Mount roll angle when in retracted position",DisplayName:"Mount roll angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_RETRACT_Y:{Description:"Mount tilt/pitch angle when in retracted position",DisplayName:"Mount tilt/pitch angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_RETRACT_Z:{Description:"Mount yaw/pan angle when in retracted position",DisplayName:"Mount yaw/pan angle when in retracted position",Increment:"1",Range:{high:"179.99",low:"-180.00"},Units:"deg",User:"Standard"},MNT_STAB_PAN:{Description:"enable pan/yaw stabilisation relative to Earth",DisplayName:"Stabilize mount pan/yaw angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT_STAB_ROLL:{Description:"enable roll stabilisation relative to Earth",DisplayName:"Stabilize mount's roll angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT_STAB_TILT:{Description:"enable tilt/pitch stabilisation relative to Earth",DisplayName:"Stabilize mount's pitch/tilt angle",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},MNT_TYPE:{Description:"Mount Type (None, Servo or MAVLink)",DisplayName:"Mount Type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"Servo",2:"3DR Solo",3:"Alexmos Serial",4:"SToRM32 MAVLink",5:"SToRM32 Serial"}}},m11={MOT_10_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_11_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_12_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_1_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_2_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_3_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_4_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_5_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_6_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_7_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_8_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_9_DIRECTION:{Description:"Used to change motor rotation directions without changing wires",DisplayName:"Motor normal or reverse",User:"Standard",Values:{1:"normal","-1":"reverse"}},MOT_BAT_CURR_MAX:{Description:"Maximum current over which maximum throttle is limited (0 = Disabled)",DisplayName:"Motor Current Max",Range:{high:"200",low:"0"},Units:"A",User:"Advanced"},MOT_BAT_CURR_TC:{Description:"Time constant used to limit the maximum current",DisplayName:"Motor Current Max Time Constant",Range:{high:"10",low:"0"},Units:"s",User:"Advanced"},MOT_BAT_IDX:{Description:"Which battery monitor should be used for doing compensation",DisplayName:"Battery compensation index",User:"Advanced",Values:{0:"First battery",1:"Second battery"}},MOT_BAT_VOLT_MAX:{Description:"Battery voltage compensation maximum voltage (voltage above this will have no additional scaling effect on thrust). Recommend 4.2 * cell count, 0 = Disabled",DisplayName:"Battery voltage compensation maximum voltage",Range:{high:"53",low:"6"},Units:"V",User:"Advanced"},MOT_BAT_VOLT_MIN:{Description:"Battery voltage compensation minimum voltage (voltage below this will have no additional scaling effect on thrust). Recommend 3.3 * cell count, 0 = Disabled",DisplayName:"Battery voltage compensation minimum voltage",Range:{high:"42",low:"6"},Units:"V",User:"Advanced"},MOT_BOOST_SCALE:{Description:"Booster motor output scaling factor vs main throttle. The output to the BoostThrottle servo will be the main throttle times this scaling factor. A higher scaling factor will put more of the load on the booster motor. A value of 1 will set the BoostThrottle equal to the main throttle.",DisplayName:"Motor boost scale",Increment:"0.1",Range:{high:"5",low:"0"},User:"Advanced"},MOT_FV_CPLNG_K:{Description:"Used to decouple pitch from forward/vertical motion. 0 to disable, 1.2 normal",DisplayName:"Forward/vertical to pitch decoupling factor",Increment:"0.1",Range:{high:"1.5",low:"0.0"},User:"Standard"},MOT_HOVER_LEARN:{Description:"Enable/Disable automatic learning of hover throttle",DisplayName:"Hover Value Learning",User:"Advanced",Values:{0:"Disabled"}},MOT_PWM_MAX:{Description:"This sets the max PWM value in microseconds that will ever be output to the motors, 0 = use input RC3_MAX",DisplayName:"PWM output maximum",Range:{high:"2000",low:"0"},Units:"PWM",User:"Advanced"},MOT_PWM_MIN:{Description:"This sets the min PWM output value in microseconds that will ever be output to the motors, 0 = use input RC3_MIN",DisplayName:"PWM output minimum",Range:{high:"2000",low:"0"},Units:"PWM",User:"Advanced"},MOT_PWM_TYPE:{Description:"This selects the output PWM type, allowing for normal PWM continuous output, OneShot, brushed or DShot motor output",DisplayName:"Output PWM type",RebootRequired:"True",User:"Advanced",Values:{0:"Normal",1:"OneShot",2:"OneShot125",3:"Brushed",4:"DShot150",5:"DShot300",6:"DShot600",7:"DShot1200"}},MOT_SAFE_DISARM:{Description:"Disables motor PWM output when disarmed",DisplayName:"Motor PWM output disabled when disarmed",User:"Advanced",Values:{0:"PWM enabled while disarmed",1:"PWM disabled while disarmed"}},MOT_SAFE_TIME:{Description:"Time taken to disable and enable the motor PWM output when disarmed and armed.",DisplayName:"Time taken to disable and enable the motor PWM output when disarmed and armed.",Increment:"0.001",Range:{high:"5",low:"0"},Units:"s",User:"Advanced"},MOT_SLEW_DN_TIME:{Description:"Time in seconds to slew output from full to zero. This is used to limit the rate at which output can change. Range is constrained between 0 and 0.5.",DisplayName:"Output slew time for decreasing throttle",Increment:"0.001",Range:{high:".5",low:"0"},Units:"s",User:"Advanced"},MOT_SLEW_UP_TIME:{Description:"Time in seconds to slew output from zero to full. This is used to limit the rate at which output can change. Range is constrained between 0 and 0.5.",DisplayName:"Output slew time for increasing throttle",Increment:"0.001",Range:{high:".5",low:"0"},Units:"s",User:"Advanced"},MOT_SPIN_ARM:{Description:"Point at which the motors start to spin expressed as a number from 0 to 1 in the entire output range. Should be lower than MOT_SPIN_MIN.",DisplayName:"Motor Spin armed",User:"Advanced",Values:{"0.0":"Low","0.1":"Default","0.2":"High"}},MOT_SPIN_MAX:{Description:"Point at which the thrust saturates expressed as a number from 0 to 1 in the entire output range",DisplayName:"Motor Spin maximum",User:"Advanced",Values:{"0.9":"Low","0.95":"Default","1.0":"High"}},MOT_SPIN_MIN:{Description:"Point at which the thrust starts expressed as a number from 0 to 1 in the entire output range. Should be higher than MOT_SPIN_ARM.",DisplayName:"Motor Spin minimum",User:"Advanced",Values:{"0.0":"Low","0.15":"Default","0.3":"High"}},MOT_SPOOL_TIME:{Description:"Time in seconds to spool up the motors from zero to min throttle. ",DisplayName:"Spool up time",Increment:"0.1",Range:{high:"2",low:"0"},Units:"s",User:"Advanced"},MOT_THST_EXPO:{Description:"Motor thrust curve exponent (0.0 for linear to 1.0 for second order curve)",DisplayName:"Thrust Curve Expo",Range:{high:"1.0",low:"-1.0"},User:"Advanced"},MOT_THST_HOVER:{Description:"Motor thrust needed to hover expressed as a number from 0 to 1",DisplayName:"Thrust Hover Value",Range:{high:"0.8",low:"0.2"},User:"Advanced"},MOT_YAW_HEADROOM:{Description:"Yaw control is given at least this pwm in microseconds range",DisplayName:"Matrix Yaw Min",Range:{high:"500",low:"0"},Units:"PWM",User:"Advanced"},MOT_YAW_SV_ANGLE:{Description:"Yaw servo's maximum lean angle",DisplayName:"Yaw Servo Max Lean Angle",Increment:"1",Range:{high:"80",low:"5"},Units:"deg",User:"Standard"}},u11={MSP_OPTIONS:{Bitmask:{0:"EnableTelemetryMode"},Description:"A bitmask to set some MSP specific options",DisplayName:"MSP OSD Options",User:"Standard"},MSP_OSD_NCELLS:{Description:"Used for average cell voltage calculation",DisplayName:"Cell count override",User:"Standard",Values:{0:"Auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",14:"14"}}},h11={NTF_BUZZ_ON_LVL:{Description:"Specifies pin level that indicates buzzer should play",DisplayName:"Buzzer-on pin logic level",User:"Advanced",Values:{0:"LowIsOn",1:"HighIsOn"}},NTF_BUZZ_PIN:{Description:"Enables to connect active buzzer to arbitrary pin. Requires 3-pin buzzer or additional MOSFET!",DisplayName:"Buzzer pin",User:"Advanced",Values:{0:"Disabled"}},NTF_BUZZ_TYPES:{Bitmask:{0:"Built-in buzzer",1:"DShot",2:"UAVCAN"},Description:"Controls what types of Buzzer will be enabled",DisplayName:"Buzzer Driver Types",User:"Advanced"},NTF_BUZZ_VOLUME:{Description:"Control the volume of the buzzer",DisplayName:"Buzzer volume",Range:{high:"100",low:"0"},Units:"%"},NTF_DISPLAY_TYPE:{Description:"This sets up the type of on-board I2C display. Disabled by default.",DisplayName:"Type of on-board I2C display",User:"Advanced",Values:{0:"Disable",1:"ssd1306",2:"sh1106",10:"SITL"}},NTF_LED_BRIGHT:{Description:"Select the RGB LED brightness level. When USB is connected brightness will never be higher than low regardless of the setting.",DisplayName:"LED Brightness",User:"Advanced",Values:{0:"Off",1:"Low",2:"Medium",3:"High"}},NTF_LED_LEN:{Description:"The number of Serial LED's to use for notifications (NeoPixel's and ProfiLED)",DisplayName:"Serial LED String Length",Range:{high:"32",low:"1"},RebootRequired:"True",User:"Advanced"},NTF_LED_OVERRIDE:{Description:'Specifies the source for the colours and brightness for the LED. OutbackChallenge conforms to the MedicalExpress (https://uavchallenge.org/medical-express/) rules, essentially "Green" is disarmed (safe-to-approach), "Red" is armed (not safe-to-approach). Traffic light is a simplified color set, red when armed, yellow when the safety switch is not surpressing outputs (but disarmed), and green when outputs are surpressed and disarmed, the LED will blink faster if disarmed and failing arming checks.',DisplayName:"Specifies colour source for the RGBLed",User:"Advanced",Values:{0:"Standard",1:"MAVLink/Scripting/AP_Periph",2:"OutbackChallenge",3:"TrafficLight"}},NTF_LED_TYPES:{Bitmask:{0:"Built-in LED",1:"Internal ToshibaLED",2:"External ToshibaLED",3:"External PCA9685",4:"Oreo LED",5:"UAVCAN",6:"NCP5623 External",7:"NCP5623 Internal",8:"NeoPixel",9:"ProfiLED",10:"Scripting",11:"DShot"},Description:"Controls what types of LEDs will be enabled",DisplayName:"LED Driver Types",User:"Advanced"},NTF_OREO_THEME:{Description:"Enable/Disable Solo Oreo LED driver, 0 to disable, 1 for Aircraft theme, 2 for Rover theme",DisplayName:"OreoLED Theme",User:"Advanced",Values:{0:"Disabled",1:"Aircraft",2:"Rover"}}},p11={PRX_FILT:{Description:"Cutoff frequency for low pass filter applied to each face in the proximity boundary",DisplayName:"Proximity filter cutoff frequency",Range:{high:"20",low:"0"},Units:"Hz",User:"Advanced"},PRX_IGN_ANG1:{Description:"Proximity sensor ignore angle 1",DisplayName:"Proximity sensor ignore angle 1",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_ANG2:{Description:"Proximity sensor ignore angle 2",DisplayName:"Proximity sensor ignore angle 2",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_ANG3:{Description:"Proximity sensor ignore angle 3",DisplayName:"Proximity sensor ignore angle 3",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_ANG4:{Description:"Proximity sensor ignore angle 4",DisplayName:"Proximity sensor ignore angle 4",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_ANG5:{Description:"Proximity sensor ignore angle 5",DisplayName:"Proximity sensor ignore angle 5",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_ANG6:{Description:"Proximity sensor ignore angle 6",DisplayName:"Proximity sensor ignore angle 6",Range:{high:"360",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID1:{Description:"Proximity sensor ignore width 1",DisplayName:"Proximity sensor ignore width 1",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID2:{Description:"Proximity sensor ignore width 2",DisplayName:"Proximity sensor ignore width 2",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID3:{Description:"Proximity sensor ignore width 3",DisplayName:"Proximity sensor ignore width 3",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID4:{Description:"Proximity sensor ignore width 4",DisplayName:"Proximity sensor ignore width 4",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID5:{Description:"Proximity sensor ignore width 5",DisplayName:"Proximity sensor ignore width 5",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_IGN_WID6:{Description:"Proximity sensor ignore width 6",DisplayName:"Proximity sensor ignore width 6",Range:{high:"127",low:"0"},Units:"deg",User:"Standard"},PRX_LOG_RAW:{Description:"Set this parameter to one if logging unfiltered(raw) distances from sensor should be enabled",DisplayName:"Proximity raw distances log",User:"Advanced",Values:{0:"Off",1:"On"}},PRX_ORIENT:{Description:"Proximity sensor orientation",DisplayName:"Proximity sensor orientation",User:"Standard",Values:{0:"Default",1:"Upside Down"}},PRX_TYPE:{Description:"What type of proximity sensor is connected",DisplayName:"Proximity type",RebootRequired:"True",User:"Standard",Values:{0:"None",1:"LightWareSF40C-legacy",2:"MAVLink",3:"TeraRangerTower",4:"RangeFinder",5:"RPLidarA2",6:"TeraRangerTowerEvo",7:"LightwareSF40c",8:"LightwareSF45B",10:"SITL",12:"AirSimSITL"}},PRX_YAW_CORR:{Description:"Proximity sensor yaw correction",DisplayName:"Proximity sensor yaw correction",Range:{high:"180",low:"-180"},Units:"deg",User:"Standard"}},f11={PSC_ACCZ_D:{Description:"Acceleration (vertical) controller D gain. Compensates for short-term change in desired vertical acceleration vs actual acceleration",DisplayName:"Acceleration (vertical) controller D gain",Range:{high:"0.400",low:"0.000"},User:"Standard"},PSC_ACCZ_FF:{Description:"Acceleration (vertical) controller feed forward",DisplayName:"Acceleration (vertical) controller feed forward",Increment:"0.001",Range:{high:"0.5",low:"0"},User:"Standard"},PSC_ACCZ_FLTD:{Description:"Acceleration (vertical) controller derivative frequency in Hz",DisplayName:"Acceleration (vertical) controller derivative frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},PSC_ACCZ_FLTE:{Description:"Acceleration (vertical) controller error frequency in Hz",DisplayName:"Acceleration (vertical) controller error frequency in Hz",Increment:"1",Range:{high:"100",low:"1"},Units:"Hz",User:"Standard"},PSC_ACCZ_FLTT:{Description:"Acceleration (vertical) controller target frequency in Hz",DisplayName:"Acceleration (vertical) controller target frequency in Hz",Increment:"1",Range:{high:"50",low:"1"},Units:"Hz",User:"Standard"},PSC_ACCZ_I:{Description:"Acceleration (vertical) controller I gain. Corrects long-term difference in desired vertical acceleration and actual acceleration",DisplayName:"Acceleration (vertical) controller I gain",Range:{high:"3.000",low:"0.000"},User:"Standard"},PSC_ACCZ_IMAX:{Description:"Acceleration (vertical) controller I gain maximum. Constrains the maximum pwm that the I term will generate",DisplayName:"Acceleration (vertical) controller I gain maximum",Range:{high:"1000",low:"0"},Units:"d%",User:"Standard"},PSC_ACCZ_P:{Description:"Acceleration (vertical) controller P gain. Converts the difference between desired vertical acceleration and actual acceleration into a motor output",DisplayName:"Acceleration (vertical) controller P gain",Increment:"0.05",Range:{high:"1.500",low:"0.200"},User:"Standard"},PSC_ACCZ_SMAX:{Description:"Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",DisplayName:"Accel (vertical) slew rate limit",Increment:"0.5",Range:{high:"200",low:"0"},User:"Advanced"},PSC_ACC_XY_FILT:{Description:"Lower values will slow the response of the navigation controller and reduce twitchiness",DisplayName:"XY Acceleration filter cutoff frequency",Increment:"0.1",Range:{high:"5",low:"0.5"},Units:"Hz",User:"Advanced"},PSC_ANGLE_MAX:{Description:"Maximum lean angle autopilot can request. Set to zero to use ANGLE_MAX parameter value",DisplayName:"Position Control Angle Max",Increment:"1",Range:{high:"45",low:"0"},Units:"deg",User:"Advanced"},PSC_JERK_XY:{Description:"Jerk limit of the horizontal kinematic path generation used to determine how quickly the aircraft varies the acceleration target",DisplayName:"Jerk limit for the horizontal kinematic input shaping",Increment:"1",Range:{high:"20",low:"1"},Units:"m/s/s/s",User:"Advanced"},PSC_JERK_Z:{Description:"Jerk limit of the vertical kinematic path generation used to determine how quickly the aircraft varies the acceleration target",DisplayName:"Jerk limit for the vertical kinematic input shaping",Increment:"1",Range:{high:"50",low:"5"},Units:"m/s/s/s",User:"Advanced"},PSC_POSXY_P:{Description:"Position controller P gain. Converts the distance (in the latitude direction) to the target location into a desired speed which is then passed to the loiter latitude rate controller",DisplayName:"Position (horizontal) controller P gain",Range:{high:"2.000",low:"0.500"},User:"Standard"},PSC_POSZ_P:{Description:"Position (vertical) controller P gain. Converts the difference between the desired altitude and actual altitude into a climb or descent rate which is passed to the throttle rate controller",DisplayName:"Position (vertical) controller P gain",Range:{high:"3.000",low:"1.000"},User:"Standard"},PSC_VELXY_D:{Description:"Velocity (horizontal) D gain. Corrects short-term changes in velocity",DisplayName:"Velocity (horizontal) D gain",Increment:"0.001",Range:{high:"1.00",low:"0.00"},User:"Advanced"},PSC_VELXY_FF:{Description:"Velocity (horizontal) feed forward gain. Converts the difference between desired velocity to a target acceleration",DisplayName:"Velocity (horizontal) feed forward gain",Increment:"0.01",Range:{high:"6",low:"0"},User:"Advanced"},PSC_VELXY_FLTD:{Description:"Velocity (horizontal) input filter. This filter (in Hz) is applied to the input for D term",DisplayName:"Velocity (horizontal) input filter",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},PSC_VELXY_FLTE:{Description:"Velocity (horizontal) input filter. This filter (in Hz) is applied to the input for P and I terms",DisplayName:"Velocity (horizontal) input filter",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},PSC_VELXY_I:{Description:"Velocity (horizontal) I gain. Corrects long-term difference between desired and actual velocity to a target acceleration",DisplayName:"Velocity (horizontal) I gain",Increment:"0.01",Range:{high:"1.00",low:"0.02"},User:"Advanced"},PSC_VELXY_IMAX:{Description:"Velocity (horizontal) integrator maximum. Constrains the target acceleration that the I gain will output",DisplayName:"Velocity (horizontal) integrator maximum",Increment:"10",Range:{high:"4500",low:"0"},Units:"cm/s/s",User:"Advanced"},PSC_VELXY_P:{Description:"Velocity (horizontal) P gain. Converts the difference between desired and actual velocity to a target acceleration",DisplayName:"Velocity (horizontal) P gain",Increment:"0.1",Range:{high:"6.0",low:"0.1"},User:"Advanced"},PSC_VELZ_D:{Description:"Velocity (vertical) controller D gain. Corrects short-term changes in velocity",DisplayName:"Velocity (vertical) controller D gain",Increment:"0.001",Range:{high:"1.00",low:"0.00"},User:"Advanced"},PSC_VELZ_FF:{Description:"Velocity (vertical) controller Feed Forward gain. Produces an output that is proportional to the magnitude of the target",DisplayName:"Velocity (vertical) controller Feed Forward gain",Increment:"0.01",Range:{high:"1",low:"0"},User:"Advanced"},PSC_VELZ_FLTD:{Description:"Velocity (vertical) input filter for D term. This filter (in Hz) is applied to the input for D terms",DisplayName:"Velocity (vertical) input filter for D term",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},PSC_VELZ_FLTE:{Description:"Velocity (vertical) error filter. This filter (in Hz) is applied to the input for P and I terms",DisplayName:"Velocity (vertical) error filter",Range:{high:"100",low:"0"},Units:"Hz",User:"Advanced"},PSC_VELZ_I:{Description:"Velocity (vertical) controller I gain. Corrects long-term difference in desired velocity to a target acceleration",DisplayName:"Velocity (vertical) controller I gain",Increment:"0.01",Range:{high:"1.00",low:"0.02"},User:"Advanced"},PSC_VELZ_IMAX:{Description:"Velocity (vertical) controller I gain maximum. Constrains the target acceleration that the I gain will output",DisplayName:"Velocity (vertical) controller I gain maximum",Range:{high:"8.000",low:"1.000"},User:"Standard"},PSC_VELZ_P:{Description:"Velocity (vertical) controller P gain. Converts the difference between desired vertical speed and actual speed into a desired acceleration that is passed to the throttle acceleration controller",DisplayName:"Velocity (vertical) controller P gain",Range:{high:"8.000",low:"1.000"},User:"Standard"}},V11={RALLY_INCL_HOME:{Description:"Controls if Home is included as a Rally point (i.e. as a safe landing place) for RTL",DisplayName:"Rally Include Home",User:"Standard",Values:{0:"DoNotIncludeHome",1:"IncludeHome"}},RALLY_LIMIT_KM:{Description:"Maximum distance to rally point. If the closest rally point is more than this number of kilometers from the current position and the home location is closer than any of the rally points from the current position then do RTL to home rather than to the closest rally point. This prevents a leftover rally point from a different airfield being used accidentally. If this is set to 0 then the closest rally point is always used.",DisplayName:"Rally Limit",Increment:"0.1",Units:"km",User:"Advanced"},RALLY_TOTAL:{Description:"Number of rally points currently loaded",DisplayName:"Rally Total",User:"Advanced"}},L11={RC_OPTIONS:{Bitmask:{0:"Ignore RC Receiver",1:"Ignore MAVLink Overrides",2:"Ignore Receiver Failsafe bit but allow other RC failsafes if setup",3:"FPort Pad",4:"Log RC input bytes",5:"Arming check throttle for 0 input",6:"Skip the arming check for neutral Roll/Pitch/Yay sticks",7:"Allow Switch reverse",8:"Use passthrough for CRSF telemetry",9:"Suppress CRSF mode/rate message for ELRS systems",10:"Enable RC Protocol re-detection"},Description:"RC input options",DisplayName:"RC options",User:"Advanced"},RC_OVERRIDE_TIME:{Description:"Timeout after which RC overrides will no longer be used, and RC input will resume, 0 will disable RC overrides, -1 will never timeout, and continue using overrides until they are disabled",DisplayName:"RC override timeout",Range:{high:"120.0",low:"0.0"},Units:"s",User:"Advanced"},RC_PROTOCOLS:{Bitmask:{0:"All",1:"PPM",2:"IBUS",3:"SBUS",4:"SBUS_NI",5:"DSM",6:"SUMD",7:"SRXL",8:"SRXL2",9:"CRSF",10:"ST24",11:"FPORT",12:"FPORT2"},Description:"Bitmask of enabled RC protocols. Allows narrowing the protocol detection to only specific types of RC receivers which can avoid issues with incorrect detection. Set to 1 to enable all protocols.",DisplayName:"RC protocols enabled",User:"Advanced"}},H11={RC10_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC10_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC10_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC10_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC10_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},M11={RC11_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC11_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC11_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC11_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC11_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},g11={RC12_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC12_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC12_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC12_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC12_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},A11={RC13_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC13_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC13_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC13_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC13_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},v11={RC14_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC14_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC14_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC14_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC14_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},_11={RC15_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC15_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC15_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC15_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC15_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},S11={RC16_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC16_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC16_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC16_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC16_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},D11={RC1_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC1_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC1_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC1_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC1_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},y11={RC2_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC2_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC2_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC2_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC2_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},R11={RC3_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC3_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC3_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC3_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC3_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},b11={RC4_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC4_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC4_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC4_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC4_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},N11={RC5_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC5_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC5_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC5_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC5_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},w11={RC6_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC6_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC6_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC6_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC6_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},T11={RC7_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC7_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC7_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC7_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC7_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},E11={RC8_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC8_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC8_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC8_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC8_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},P11={RC9_DZ:{Description:"PWM dead zone in microseconds around trim or bottom",DisplayName:"RC dead-zone",Range:{high:"200",low:"0"},Units:"PWM",User:"Advanced"},RC9_MAX:{Description:"RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC max PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC9_MIN:{Description:"RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC min PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"},RC9_REVERSED:{Description:"Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",DisplayName:"RC reversed",User:"Advanced",Values:{0:"Normal",1:"Reversed"}},RC9_TRIM:{Description:"RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"RC trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Advanced"}},I11={RCMAP_FORWARD:{Description:"Forward channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Forward is normally on channel 5, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Forward channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_LATERAL:{Description:"Lateral channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Lateral is normally on channel 6, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Lateral channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_PITCH:{Description:"Pitch channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Pitch is normally on channel 2, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Pitch channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_ROLL:{Description:"Roll channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Roll is normally on channel 1, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Roll channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_THROTTLE:{Description:"Throttle channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Throttle is normally on channel 3, but you can move it to any channel with this parameter. Warning APM 2.X: Changing the throttle channel could produce unexpected fail-safe results if connection between receiver and on-board PPM Encoder is lost. Disabling on-board PPM Encoder is recommended. Reboot is required for changes to take effect.",DisplayName:"Throttle channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"},RCMAP_YAW:{Description:"Yaw channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Yaw (also known as rudder) is normally on channel 4, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",DisplayName:"Yaw channel",Increment:"1",Range:{high:"8",low:"1"},RebootRequired:"True",User:"Advanced"}},O11={RELAY_DEFAULT:{Description:"The state of the relay on boot.",DisplayName:"Default relay state",User:"Standard",Values:{0:"Off",1:"On",2:"NoChange"}},RELAY_PIN:{Description:"Digital pin number for first relay control. This is the pin used for camera control.",DisplayName:"First Relay Pin",User:"Standard",Values:{27:"BBBMini Pin P8.17",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN2:{Description:"Digital pin number for 2nd relay control.",DisplayName:"Second Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",65:"BBBMini Pin P8.18",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN3:{Description:"Digital pin number for 3rd relay control.",DisplayName:"Third Relay Pin",User:"Standard",Values:{22:"BBBMini Pin P8.19",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN4:{Description:"Digital pin number for 4th relay control.",DisplayName:"Fourth Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",63:"BBBMini Pin P8.34",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN5:{Description:"Digital pin number for 5th relay control.",DisplayName:"Fifth Relay Pin",User:"Standard",Values:{49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",62:"BBBMini Pin P8.13",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}},RELAY_PIN6:{Description:"Digital pin number for 6th relay control.",DisplayName:"Sixth Relay Pin",User:"Standard",Values:{37:"BBBMini Pin P8.14",49:"BB Blue GP0 pin 4",50:"AUXOUT1",51:"AUXOUT2",52:"AUXOUT3",53:"AUXOUT4",54:"AUXOUT5",55:"AUXOUT6",57:"BB Blue GP0 pin 3",113:"BB Blue GP0 pin 6",116:"BB Blue GP0 pin 5","-1":"Disabled"}}},U11={RNGFND1_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and UAVCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND1_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND1_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND1_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND1_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND1_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND1_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND1_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"PX4-airspeed port",15:"Pixhawk-airspeed port",50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6","-1":"Not Used"}},RNGFND1_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND1_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND1_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND1_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND1_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND1_TYPE:{Description:"What type of rangefinder device that is connected",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"uLanding",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"UAVCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",100:"SITL"}},RNGFND1_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND1_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND1_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND1_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},x11={RNGFND2_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and UAVCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND2_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND2_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND2_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND2_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND2_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND2_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND2_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"PX4-airspeed port",15:"Pixhawk-airspeed port",50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6","-1":"Not Used"}},RNGFND2_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND2_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND2_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND2_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND2_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND2_TYPE:{Description:"What type of rangefinder device that is connected",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"uLanding",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"UAVCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",100:"SITL"}},RNGFND2_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND2_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND2_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND2_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},F11={RNGFND3_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and UAVCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND3_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND3_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND3_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND3_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND3_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND3_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND3_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"PX4-airspeed port",15:"Pixhawk-airspeed port",50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6","-1":"Not Used"}},RNGFND3_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND3_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND3_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND3_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND3_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND3_TYPE:{Description:"What type of rangefinder device that is connected",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"uLanding",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"UAVCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",100:"SITL"}},RNGFND3_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND3_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND3_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND3_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},k11={RNGFND4_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and UAVCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND4_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND4_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND4_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND4_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND4_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND4_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND4_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"PX4-airspeed port",15:"Pixhawk-airspeed port",50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6","-1":"Not Used"}},RNGFND4_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND4_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND4_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND4_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND4_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND4_TYPE:{Description:"What type of rangefinder device that is connected",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"uLanding",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"UAVCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",100:"SITL"}},RNGFND4_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND4_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND4_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND4_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},B11={RNGFND5_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and UAVCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND5_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND5_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND5_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND5_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND5_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND5_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND5_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"PX4-airspeed port",15:"Pixhawk-airspeed port",50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6","-1":"Not Used"}},RNGFND5_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND5_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND5_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND5_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND5_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND5_TYPE:{Description:"What type of rangefinder device that is connected",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"uLanding",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"UAVCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",100:"SITL"}},RNGFND5_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND5_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND5_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND5_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},z11={RNGFND6_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and UAVCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND6_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND6_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND6_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND6_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND6_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND6_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND6_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"PX4-airspeed port",15:"Pixhawk-airspeed port",50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6","-1":"Not Used"}},RNGFND6_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND6_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND6_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND6_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND6_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND6_TYPE:{Description:"What type of rangefinder device that is connected",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"uLanding",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"UAVCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",100:"SITL"}},RNGFND6_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND6_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND6_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND6_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},Z11={RNGFND7_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and UAVCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND7_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND7_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND7_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND7_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND7_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND7_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND7_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"PX4-airspeed port",15:"Pixhawk-airspeed port",50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6","-1":"Not Used"}},RNGFND7_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND7_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND7_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND7_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND7_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND7_TYPE:{Description:"What type of rangefinder device that is connected",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"uLanding",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"UAVCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",100:"SITL"}},RNGFND7_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND7_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND7_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND7_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},G11={RNGFND8_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and UAVCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND8_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND8_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND8_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND8_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND8_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND8_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND8_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"PX4-airspeed port",15:"Pixhawk-airspeed port",50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6","-1":"Not Used"}},RNGFND8_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND8_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND8_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND8_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND8_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND8_TYPE:{Description:"What type of rangefinder device that is connected",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"uLanding",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"UAVCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",100:"SITL"}},RNGFND8_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND8_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND8_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND8_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},W11={RNGFND9_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and UAVCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFND9_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFND9_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFND9_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND9_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFND9_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFND9_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFND9_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"PX4-airspeed port",15:"Pixhawk-airspeed port",50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6","-1":"Not Used"}},RNGFND9_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFND9_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFND9_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFND9_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFND9_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFND9_TYPE:{Description:"What type of rangefinder device that is connected",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"uLanding",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"UAVCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",100:"SITL"}},RNGFND9_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFND9_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFND9_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFND9_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},X11={RNGFNDA_ADDR:{Description:"This sets the bus address of the sensor, where applicable. Used for the I2C and UAVCAN sensors to allow for multiple sensors on different addresses.",DisplayName:"Bus address of sensor",Increment:"1",Range:{high:"127",low:"0"},User:"Standard"},RNGFNDA_FUNCTION:{Description:"Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",DisplayName:"Rangefinder function",User:"Standard",Values:{0:"Linear",1:"Inverted",2:"Hyperbolic"}},RNGFNDA_GNDCLEAR:{Description:"This parameter sets the expected range measurement(in cm) that the range finder should return when the vehicle is on the ground.",DisplayName:"Distance (in cm) from the range finder to the ground",Increment:"1",Range:{high:"127",low:"5"},Units:"cm",User:"Standard"},RNGFNDA_MAX_CM:{Description:"Maximum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder maximum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFNDA_MIN_CM:{Description:"Minimum distance in centimeters that rangefinder can reliably read",DisplayName:"Rangefinder minimum distance",Increment:"1",Units:"cm",User:"Standard"},RNGFNDA_OFFSET:{Description:"Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",DisplayName:"rangefinder offset",Increment:"0.001",Units:"V",User:"Standard"},RNGFNDA_ORIENT:{Description:"Orientation of rangefinder",DisplayName:"Rangefinder orientation",User:"Advanced",Values:{0:"Forward",1:"Forward-Right",2:"Right",3:"Back-Right",4:"Back",5:"Back-Left",6:"Left",7:"Forward-Left",24:"Up",25:"Down"}},RNGFNDA_PIN:{Description:"Analog or PWM input pin that rangefinder is connected to. Airspeed ports can be used for Analog input, AUXOUT can be used for PWM input",DisplayName:"Rangefinder pin",User:"Standard",Values:{11:"PX4-airspeed port",15:"Pixhawk-airspeed port",50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6","-1":"Not Used"}},RNGFNDA_POS_X:{Description:"X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",DisplayName:" X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_POS_Y:{Description:"Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",DisplayName:"Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_POS_Z:{Description:"Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",DisplayName:"Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},RNGFNDA_PWRRNG:{Description:"This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",DisplayName:"Powersave range",Range:{high:"32767",low:"0"},Units:"m",User:"Standard"},RNGFNDA_RMETRIC:{Description:"This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",DisplayName:"Ratiometric",User:"Standard",Values:{0:"No",1:"Yes"}},RNGFNDA_SCALING:{Description:"Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts.",DisplayName:"Rangefinder scaling",Increment:"0.001",Units:"m/V",User:"Standard"},RNGFNDA_STOP_PIN:{Description:"Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range.",DisplayName:"Rangefinder stop pin",User:"Standard",Values:{50:"Pixhawk AUXOUT1",51:"Pixhawk AUXOUT2",52:"Pixhawk AUXOUT3",53:"Pixhawk AUXOUT4",54:"Pixhawk AUXOUT5",55:"Pixhawk AUXOUT6",111:"PX4 FMU Relay1",112:"PX4 FMU Relay2",113:"PX4IO Relay1",114:"PX4IO Relay2",115:"PX4IO ACC1",116:"PX4IO ACC2","-1":"Not Used"}},RNGFNDA_TYPE:{Description:"What type of rangefinder device that is connected",DisplayName:"Rangefinder type",User:"Standard",Values:{0:"None",1:"Analog",2:"MaxbotixI2C",3:"LidarLite-I2C",5:"PWM",6:"BBB-PRU",7:"LightWareI2C",8:"LightWareSerial",9:"Bebop",10:"MAVLink",11:"uLanding",12:"LeddarOne",13:"MaxbotixSerial",14:"TeraRangerI2C",15:"LidarLiteV3-I2C",16:"VL53L0X or VL53L1X",17:"NMEA",18:"WASP-LRF",19:"BenewakeTF02",20:"Benewake-Serial",21:"LidarLightV3HP",22:"PWM",23:"BlueRoboticsPing",24:"UAVCAN",25:"BenewakeTFminiPlus-I2C",26:"LanbaoPSK-CM8JL65-CC5",27:"BenewakeTF03",28:"VL53L1X-ShortRange",29:"LeddarVu8-Serial",30:"HC-SR04",31:"GYUS42v2",32:"MSP",33:"USD1_CAN",100:"SITL"}},RNGFNDA_WSP_AVG:{Description:"Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",DisplayName:"Multi-pulse averages",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_BAUD:{Description:"Desired baud rate",DisplayName:"Baud rate",User:"Advanced",Values:{0:"Low Speed",1:"High Speed"}},RNGFNDA_WSP_FRQ:{Description:"Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",DisplayName:"Frequency",Range:{high:"10000",low:"0"},User:"Advanced"},RNGFNDA_WSP_MAVG:{Description:"Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",DisplayName:"Moving Average Range",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_MEDF:{Description:"Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",DisplayName:"Moving Median Filter",Range:{high:"255",low:"0"},User:"Advanced"},RNGFNDA_WSP_THR:{Description:"Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",DisplayName:"Sensitivity threshold",Range:{high:"255",low:"-1"},User:"Advanced"}},Y11={RPM2_PIN:{Description:"Which pin to use",DisplayName:"RPM2 input pin number",User:"Standard",Values:{50:"PixhawkAUX1",51:"PixhawkAUX2",52:"PixhawkAUX3",53:"PixhawkAUX4",54:"PixhawkAUX5",55:"PixhawkAUX6","-1":"Disabled"}},RPM2_SCALING:{Description:"Scaling factor between sensor reading and RPM.",DisplayName:"RPM scaling",Increment:"0.001",User:"Advanced"},RPM2_TYPE:{Description:"What type of RPM sensor is connected",DisplayName:"Second RPM type",User:"Advanced",Values:{0:"None",1:"PWM",2:"AUXPIN",3:"EFI",4:"Harmonic Notch"}},RPM_MAX:{Description:"Maximum RPM to report",DisplayName:"Maximum RPM",Increment:"1",User:"Standard"},RPM_MIN:{Description:"Minimum RPM to report",DisplayName:"Minimum RPM",Increment:"1",User:"Standard"},RPM_MIN_QUAL:{Description:"Minimum data quality to be used",DisplayName:"Minimum Quality",Increment:"0.1",User:"Advanced"},RPM_PIN:{Description:"Which pin to use",DisplayName:"Input pin number",User:"Standard",Values:{50:"PixhawkAUX1",51:"PixhawkAUX2",52:"PixhawkAUX3",53:"PixhawkAUX4",54:"PixhawkAUX5",55:"PixhawkAUX6","-1":"Disabled"}},RPM_SCALING:{Description:"Scaling factor between sensor reading and RPM.",DisplayName:"RPM scaling",Increment:"0.001",User:"Standard"},RPM_TYPE:{Description:"What type of RPM sensor is connected",DisplayName:"RPM type",User:"Standard",Values:{0:"None",1:"PWM",2:"AUXPIN",3:"EFI",4:"Harmonic Notch"}}},$11={SCHED_DEBUG:{Description:'Set to non-zero to enable scheduler debug messages. When set to show "Slips" the scheduler will display a message whenever a scheduled task is delayed due to too much CPU load. When set to ShowOverruns the scheduled will display a message whenever a task takes longer than the limit promised in the task table.',DisplayName:"Scheduler debug level",User:"Advanced",Values:{0:"Disabled",2:"ShowSlips",3:"ShowOverruns"}},SCHED_LOOP_RATE:{Description:"This controls the rate of the main control loop in Hz. This should only be changed by developers. This only takes effect on restart. Values over 400 are considered highly experimental.",DisplayName:"Scheduling main loop rate",RebootRequired:"True",User:"Advanced",Values:{50:"50Hz",100:"100Hz",200:"200Hz",250:"250Hz",300:"300Hz",400:"400Hz"}},SCHED_OPTIONS:{Bitmask:{0:"Enable per-task perf info"},Description:"This controls optional aspects of the scheduler.",DisplayName:"Scheduling options",User:"Advanced"}},q11={SCR_DEBUG_LVL:{Description:"The higher the number the more verbose builtin scripting debug will be.",DisplayName:"Scripting Debug Level",User:"Advanced"},SCR_DIR_DISABLE:{Bitmask:{0:"ROMFS",1:"APM/scripts"},Description:"This will stop scripts being loaded from the given locations",DisplayName:"Directory disable",RebootRequired:"True",User:"Advanced"},SCR_ENABLE:{Description:"Controls if scripting is enabled",DisplayName:"Enable Scripting",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"Lua Scripts"}},SCR_HEAP_SIZE:{Description:"Amount of memory available for scripting",DisplayName:"Scripting Heap Size",Increment:"1024",Range:{high:"1048576",low:"1024"},RebootRequired:"True",User:"Advanced"},SCR_USER1:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter1",User:"Standard"},SCR_USER2:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter2",User:"Standard"},SCR_USER3:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter3",User:"Standard"},SCR_USER4:{Description:"General purpose user variable input for scripts",DisplayName:"Scripting User Parameter4",User:"Standard"},SCR_VM_I_COUNT:{Description:"The number virtual machine instructions that can be run before considering a script to have taken an excessive amount of time",DisplayName:"Scripting Virtual Machine Instruction Count",Increment:"10000",Range:{high:"1000000",low:"1000"},User:"Advanced"}},K11={SERIAL0_BAUD:{Description:"The baud rate used on the USB console. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial0 baud rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL0_PROTOCOL:{Description:"Control what protocol to use on the console. ",DisplayName:"Console protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVlink1",2:"MAVLink2"}},SERIAL1_BAUD:{Description:"The baud rate used on the Telem1 port. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Telem1 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL1_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire. The Swap option allows the RX and TX pins to be swapped on STM32F7 based boards.",DisplayName:"Telem1 options",RebootRequired:"True",User:"Advanced"},SERIAL1_PROTOCOL:{Description:"Control what protocol to use on the Telem1 port. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Telem1 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire","-1":"None"}},SERIAL2_BAUD:{Description:"The baud rate of the Telem2 port. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Telemetry 2 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL2_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Telem2 options",RebootRequired:"True",User:"Advanced"},SERIAL2_PROTOCOL:{Description:"Control what protocol to use on the Telem2 port. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Telemetry 2 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire","-1":"None"}},SERIAL3_BAUD:{Description:"The baud rate used for the Serial 3 (GPS). Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 3 (GPS) Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL3_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial3 options",RebootRequired:"True",User:"Advanced"},SERIAL3_PROTOCOL:{Description:"Control what protocol Serial 3 (GPS) should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial 3 (GPS) protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire","-1":"None"}},SERIAL4_BAUD:{Description:"The baud rate used for Serial4. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 4 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL4_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial4 options",RebootRequired:"True",User:"Advanced"},SERIAL4_PROTOCOL:{Description:"Control what protocol Serial4 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial4 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire","-1":"None"}},SERIAL5_BAUD:{Description:"The baud rate used for Serial5. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 5 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL5_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial5 options",RebootRequired:"True",User:"Advanced"},SERIAL5_PROTOCOL:{Description:"Control what protocol Serial5 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial5 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire","-1":"None"}},SERIAL6_BAUD:{Description:"The baud rate used for Serial6. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 6 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL6_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial6 options",RebootRequired:"True",User:"Advanced"},SERIAL6_PROTOCOL:{Description:"Control what protocol Serial6 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial6 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire","-1":"None"}},SERIAL7_BAUD:{Description:"The baud rate used for Serial7. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 7 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL7_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial7 options",RebootRequired:"True",User:"Advanced"},SERIAL7_PROTOCOL:{Description:"Control what protocol Serial7 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial7 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire","-1":"None"}},SERIAL8_BAUD:{Description:"The baud rate used for Serial8. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",DisplayName:"Serial 8 Baud Rate",User:"Standard",Values:{1:"1200",2:"2400",4:"4800",9:"9600",19:"19200",38:"38400",57:"57600",111:"111100",115:"115200",230:"230400",256:"256000",460:"460800",500:"500000",921:"921600",1500:"1500000"}},SERIAL8_OPTIONS:{Bitmask:{0:"InvertRX",1:"InvertTX",2:"HalfDuplex",3:"Swap",4:"RX_PullDown",5:"RX_PullUp",6:"TX_PullDown",7:"TX_PullUp",8:"RX_NoDMA",9:"TX_NoDMA",10:"Don't forward mavlink to/from",11:"DisableFIFO"},Description:"Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire.",DisplayName:"Serial8 options",RebootRequired:"True",User:"Advanced"},SERIAL8_PROTOCOL:{Description:"Control what protocol Serial8 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",DisplayName:"Serial8 protocol selection",RebootRequired:"True",User:"Standard",Values:{1:"MAVLink1",2:"MAVLink2",3:"Frsky D",4:"Frsky SPort",5:"GPS",7:"Alexmos Gimbal Serial",8:"SToRM32 Gimbal Serial",9:"Rangefinder",10:"FrSky SPort Passthrough (OpenTX)",11:"Lidar360",13:"Beacon",14:"Volz servo out",15:"SBus servo out",16:"ESC Telemetry",17:"Devo Telemetry",18:"OpticalFlow",19:"RobotisServo",20:"NMEA Output",21:"WindVane",22:"SLCAN",23:"RCIN",24:"MegaSquirt EFI",25:"LTM",26:"RunCam",27:"HottTelem",28:"Scripting",29:"Crossfire",30:"Generator",31:"Winch",32:"MSP",33:"DJI FPV",34:"AirSpeed",35:"ADSB",36:"AHRS",37:"SmartAudio",38:"FETtecOneWire","-1":"None"}},SERIAL_PASS1:{Description:"This sets one side of pass-through between two serial ports. Once both sides are set then all data received on either port will be passed to the other port",DisplayName:"Serial passthru first port",User:"Advanced",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},SERIAL_PASS2:{Description:"This sets one side of pass-through between two serial ports. Once both sides are set then all data received on either port will be passed to the other port",DisplayName:"Serial passthru second port",User:"Advanced",Values:{0:"Serial0",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5",6:"Serial6","-1":"Disabled"}},SERIAL_PASSTIMO:{Description:"This sets a timeout for serial pass-through in seconds. When the pass-through is enabled by setting the SERIAL_PASS1 and SERIAL_PASS2 parameters then it remains in effect until no data comes from the first port for SERIAL_PASSTIMO seconds. This allows the port to revent to its normal usage (such as MAVLink connection to a GCS) when it is no longer needed. A value of 0 means no timeout.",DisplayName:"Serial passthru timeout",Range:{high:"120",low:"0"},Units:"s",User:"Advanced"}},j11={SERVO_DSHOT_ESC:{Description:"This sets the DShot ESC type for all outputs. The ESC type affects the range of DShot commands available. None means that no dshot commands will be executed.",DisplayName:"Servo DShot ESC type",User:"Advanced",Values:{0:"None",1:"BLHeli32/BLHeli_S/Kiss"}},SERVO_DSHOT_RATE:{Description:"This sets the DShot output rate for all outputs as a multiple of the loop rate. 0 sets the output rate to be fixed at 1Khz for low loop rates. This value should never be set below 500Hz.",DisplayName:"Servo DShot output rate",User:"Advanced",Values:{0:"1Khz",1:"loop-rate",2:"double loop-rate",3:"triple loop-rate",4:"quadruple loop rate"}},SERVO_RATE:{Description:"This sets the default output rate in Hz for all outputs.",DisplayName:"Servo default output rate",Range:{high:"400",low:"25"},Units:"Hz",User:"Advanced"}},Q11={SERVO10_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO10_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO10_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO10_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO10_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},J11={SERVO11_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO11_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO11_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO11_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO11_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},e21={SERVO12_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO12_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO12_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO12_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO12_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},t21={SERVO13_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO13_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO13_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO13_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO13_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},i21={SERVO14_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO14_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO14_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO14_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO14_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},a21={SERVO15_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO15_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO15_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO15_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO15_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},r21={SERVO16_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO16_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO16_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO16_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO16_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},n21={SERVO1_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO1_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO1_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO1_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO1_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},o21={SERVO2_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO2_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO2_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO2_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO2_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},s21={SERVO3_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO3_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO3_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO3_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO3_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},l21={SERVO4_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO4_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO4_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO4_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO4_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},c21={SERVO5_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO5_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO5_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO5_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO5_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},d21={SERVO6_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO6_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO6_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO6_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO6_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},C21={SERVO7_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO7_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO7_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO7_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO7_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},m21={SERVO8_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO8_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO8_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO8_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO8_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},u21={SERVO9_FUNCTION:{Description:"Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",DisplayName:"Servo output function",User:"Standard",Values:{0:"Disabled",1:"RCPassThru",2:"Flap",3:"FlapAuto",4:"Aileron",6:"MountPan",7:"MountTilt",8:"MountRoll",9:"MountOpen",10:"CameraTrigger",12:"Mount2Pan",13:"Mount2Tilt",14:"Mount2Roll",15:"Mount2Open",16:"DifferentialSpoilerLeft1",17:"DifferentialSpoilerRight1",19:"Elevator",21:"Rudder",22:"SprayerPump",23:"SprayerSpinner",24:"FlaperonLeft",25:"FlaperonRight",26:"GroundSteering",27:"Parachute",28:"Gripper",29:"LandingGear",30:"EngineRunEnable",31:"HeliRSC",32:"HeliTailRSC",33:"Motor1",34:"Motor2",35:"Motor3",36:"Motor4",37:"Motor5",38:"Motor6",39:"Motor7",40:"Motor8",41:"TiltMotorsFront",45:"TiltMotorsRear",46:"TiltMotorRearLeft",47:"TiltMotorRearRight",51:"RCIN1",52:"RCIN2",53:"RCIN3",54:"RCIN4",55:"RCIN5",56:"RCIN6",57:"RCIN7",58:"RCIN8",59:"RCIN9",60:"RCIN10",61:"RCIN11",62:"RCIN12",63:"RCIN13",64:"RCIN14",65:"RCIN15",66:"RCIN16",67:"Ignition",69:"Starter",70:"Throttle",71:"TrackerYaw",72:"TrackerPitch",73:"ThrottleLeft",74:"ThrottleRight",75:"TiltMotorFrontLeft",76:"TiltMotorFrontRight",77:"ElevonLeft",78:"ElevonRight",79:"VTailLeft",80:"VTailRight",81:"BoostThrottle",82:"Motor9",83:"Motor10",84:"Motor11",85:"Motor12",86:"DifferentialSpoilerLeft2",87:"DifferentialSpoilerRight2",88:"Winch",89:"Main Sail",90:"CameraISO",91:"CameraAperture",92:"CameraFocus",93:"CameraShutterSpeed",94:"Script1",95:"Script2",96:"Script3",97:"Script4",98:"Script5",99:"Script6",100:"Script7",101:"Script8",102:"Script9",103:"Script10",104:"Script11",105:"Script12",106:"Script13",107:"Script14",108:"Script15",109:"Script16",120:"NeoPixel1",121:"NeoPixel2",122:"NeoPixel3",123:"NeoPixel4",124:"RateRoll",125:"RatePitch",126:"RateThrust",127:"RateYaw",128:"WingSailElevator",129:"ProfiLED1",130:"ProfiLED2",131:"ProfiLED3",132:"ProfiLEDClock",133:"Winch Clutch",134:"SERVOn_MIN",135:"SERVOn_TRIM",136:"SERVOn_MAX",137:"SailMastRotation"}},SERVO9_MAX:{Description:"maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Maximum PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"},SERVO9_MIN:{Description:"minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Minimum PWM",Increment:"1",Range:{high:"2200",low:"500"},Units:"PWM",User:"Standard"},SERVO9_REVERSED:{Description:"Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",DisplayName:"Servo reverse",User:"Standard",Values:{0:"Normal",1:"Reversed"}},SERVO9_TRIM:{Description:"Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",DisplayName:"Trim PWM",Increment:"1",Range:{high:"2200",low:"800"},Units:"PWM",User:"Standard"}},h21={SERVO_BLH_3DMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which are dynamically reversible. This is used to configure ESCs in '3D' mode, allowing for the motor to spin in either direction",DisplayName:"BLHeli bitmask of 3D channels",User:"Advanced"},SERVO_BLH_AUTO:{Description:"If set to 1 this auto-enables BLHeli pass-thru support for all multicopter motors",DisplayName:"BLHeli pass-thru auto-enable for multicopter motors",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},SERVO_BLH_BDMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which support bi-directional dshot. This is used for ESCs which have firmware that supports bi-directional dshot allowing fast rpm telemetry values to be returned for the harmonic notch.",DisplayName:"BLHeli bitmask of bi-directional dshot channels",User:"Advanced"},SERVO_BLH_DEBUG:{Description:"When set to 1 this enabled verbose debugging output over MAVLink when the blheli protocol is active. This can be used to diagnose failures.",DisplayName:"BLHeli debug level",User:"Standard",Values:{0:"Disabled",1:"Enabled"}},SERVO_BLH_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Enable of BLHeli pass-thru servo protocol support to specific channels. This mask is in addition to motors enabled using SERVO_BLH_AUTO (if any)",DisplayName:"BLHeli Channel Bitmask",User:"Advanced"},SERVO_BLH_OTYPE:{Description:"When set to a non-zero value this overrides the output type for the output channels given by SERVO_BLH_MASK. This can be used to enable DShot on outputs that are not part of the multicopter motors group.",DisplayName:"BLHeli output type override",User:"Advanced",Values:{0:"None",1:"OneShot",2:"OneShot125",3:"Brushed",4:"DShot150",5:"DShot300",6:"DShot600",7:"DShot1200"}},SERVO_BLH_POLES:{Description:"This allows calculation of true RPM from ESC's eRPM. The default is 14.",DisplayName:"BLHeli Motor Poles",Range:{high:"127",low:"1"},User:"Advanced"},SERVO_BLH_PORT:{Description:"This sets the serial port to use for blheli pass-thru",DisplayName:"Control port",User:"Advanced",Values:{0:"Console",1:"Serial1",2:"Serial2",3:"Serial3",4:"Serial4",5:"Serial5"}},SERVO_BLH_RVMASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Mask of channels which are reversed. This is used to configure ESCs in reversed mode",DisplayName:"BLHeli bitmask of reversed channels",User:"Advanced"},SERVO_BLH_TEST:{Description:"Setting SERVO_BLH_TEST to a motor number enables an internal test of the BLHeli ESC protocol to the corresponding ESC. The debug output is displayed on the USB console.",DisplayName:"BLHeli internal interface test",User:"Advanced",Values:{0:"Disabled",1:"TestMotor1",2:"TestMotor2",3:"TestMotor3",4:"TestMotor4",5:"TestMotor5",6:"TestMotor6",7:"TestMotor7",8:"TestMotor8"}},SERVO_BLH_TMOUT:{Description:"This sets the inactivity timeout for the BLHeli protocol in seconds. If no packets are received in this time normal MAVLink operations are resumed. A value of 0 means no timeout",DisplayName:"BLHeli protocol timeout",Range:{high:"300",low:"0"},Units:"s",User:"Standard"},SERVO_BLH_TRATE:{Description:"This sets the rate in Hz for requesting telemetry from ESCs. It is the rate per ESC. Setting to zero disables telemetry requests",DisplayName:"BLHeli telemetry rate",Range:{high:"500",low:"0"},Units:"Hz",User:"Standard"}},p21={SERVO_FTW_MASK:{Bitmask:{0:"SERVO1",1:"SERVO2",2:"SERVO3",3:"SERVO4",4:"SERVO5",5:"SERVO6",6:"SERVO7",7:"SERVO8",8:"SERVO9",9:"SERVO10",10:"SERVO11",11:"SERVO12"},Description:"Servo channel mask specifying FETtec ESC output.",DisplayName:"Servo channel output bitmask",RebootRequired:"True",User:"Standard"},SERVO_FTW_POLES:{Description:"Number of motor electrical poles",DisplayName:"Nr. electrical poles",Range:{high:"50",low:"2"},User:"Standard"},SERVO_FTW_RVMASK:{Bitmask:{0:"SERVO1",1:"SERVO2",2:"SERVO3",3:"SERVO4",4:"SERVO5",5:"SERVO6",6:"SERVO7",7:"SERVO8",8:"SERVO9",9:"SERVO10",10:"SERVO11",11:"SERVO12"},Description:"Servo channel mask to reverse rotation of FETtec ESC outputs.",DisplayName:"Servo channel reverse rotation bitmask",User:"Standard"}},f21={SERVO_ROB_POSMAX:{Description:"Position maximum at servo max value. This should be within the position control range of the servos, normally 0 to 4095",DisplayName:"Robotis servo position max",Range:{high:"4095",low:"0"},User:"Standard"},SERVO_ROB_POSMIN:{Description:"Position minimum at servo min value. This should be within the position control range of the servos, normally 0 to 4095",DisplayName:"Robotis servo position min",Range:{high:"4095",low:"0"},User:"Standard"}},V21={SERVO_SBUS_RATE:{Description:"This sets the SBUS output frame rate in Hz.",DisplayName:"SBUS default output rate",Range:{high:"250",low:"25"},Units:"Hz",User:"Advanced"}},L21={SERVO_VOLZ_MASK:{Bitmask:{0:"Channel1",1:"Channel2",2:"Channel3",3:"Channel4",4:"Channel5",5:"Channel6",6:"Channel7",7:"Channel8",8:"Channel9",9:"Channel10",10:"Channel11",11:"Channel12",12:"Channel13",13:"Channel14",14:"Channel15",15:"Channel16"},Description:"Enable of volz servo protocol to specific channels",DisplayName:"Channel Bitmask",User:"Standard"}},H21={SR0_EXTRA1:{Description:"Stream rate of ATTITUDE and SIMSTATE (SITL only) to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, and SYSTEM_TIME to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_EXT_STAT:{Description:"Stream rate of SYS_STATUS, MEMINFO, MISSION_CURRENT, GPS_RAW_INT, NAV_CONTROLLER_OUTPUT, and LIMITS_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_PRESSURE, and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR0_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS_RAW to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},M21={SR1_EXTRA1:{Description:"Stream rate of ATTITUDE and SIMSTATE (SITL only) to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, and SYSTEM_TIME to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_EXT_STAT:{Description:"Stream rate of SYS_STATUS, MEMINFO, MISSION_CURRENT, GPS_RAW_INT, NAV_CONTROLLER_OUTPUT, and LIMITS_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_PRESSURE, and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR1_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS_RAW to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},g21={SR2_EXTRA1:{Description:"Stream rate of ATTITUDE and SIMSTATE (SITL only) to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, and SYSTEM_TIME to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_EXT_STAT:{Description:"Stream rate of SYS_STATUS, MEMINFO, MISSION_CURRENT, GPS_RAW_INT, NAV_CONTROLLER_OUTPUT, and LIMITS_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_PRESSURE, and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR2_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS_RAW to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},A21={SR3_EXTRA1:{Description:"Stream rate of ATTITUDE and SIMSTATE (SITL only) to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, and SYSTEM_TIME to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_EXT_STAT:{Description:"Stream rate of SYS_STATUS, MEMINFO, MISSION_CURRENT, GPS_RAW_INT, NAV_CONTROLLER_OUTPUT, and LIMITS_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_PRESSURE, and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR3_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS_RAW to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},v21={SR4_EXTRA1:{Description:"Stream rate of ATTITUDE and SIMSTATE (SITL only) to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, and SYSTEM_TIME to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_EXT_STAT:{Description:"Stream rate of SYS_STATUS, MEMINFO, MISSION_CURRENT, GPS_RAW_INT, NAV_CONTROLLER_OUTPUT, and LIMITS_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_PRESSURE, and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR4_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS_RAW to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},_21={SR5_EXTRA1:{Description:"Stream rate of ATTITUDE and SIMSTATE (SITL only) to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, and SYSTEM_TIME to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_EXT_STAT:{Description:"Stream rate of SYS_STATUS, MEMINFO, MISSION_CURRENT, GPS_RAW_INT, NAV_CONTROLLER_OUTPUT, and LIMITS_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_PRESSURE, and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR5_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS_RAW to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},S21={SR6_EXTRA1:{Description:"Stream rate of ATTITUDE and SIMSTATE (SITL only) to ground station",DisplayName:"Extra data type 1 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_EXTRA2:{Description:"Stream rate of VFR_HUD to ground station",DisplayName:"Extra data type 2 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_EXTRA3:{Description:"Stream rate of AHRS, HWSTATUS, and SYSTEM_TIME to ground station",DisplayName:"Extra data type 3 stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_EXT_STAT:{Description:"Stream rate of SYS_STATUS, MEMINFO, MISSION_CURRENT, GPS_RAW_INT, NAV_CONTROLLER_OUTPUT, and LIMITS_STATUS to ground station",DisplayName:"Extended status stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_PARAMS:{Description:"Stream rate of PARAM_VALUE to ground station",DisplayName:"Parameter stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_POSITION:{Description:"Stream rate of GLOBAL_POSITION_INT to ground station",DisplayName:"Position stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_RAW_SENS:{Description:"Stream rate of RAW_IMU, SCALED_IMU2, SCALED_PRESSURE, and SENSOR_OFFSETS to ground station",DisplayName:"Raw sensor stream rate",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"},SR6_RC_CHAN:{Description:"Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS_RAW to ground station",DisplayName:"RC Channel stream rate to ground station",Increment:"1",Range:{high:"50",low:"0"},Units:"Hz",User:"Advanced"}},D21={ACRO_BAL_PITCH:{Description:"rate at which pitch angle returns to level in acro mode. A higher value causes the vehicle to return to level faster.",DisplayName:"Acro Balance Pitch",Increment:"0.1",Range:{high:"3",low:"0"},User:"Advanced"},ACRO_BAL_ROLL:{Description:"rate at which roll angle returns to level in acro mode. A higher value causes the vehicle to return to level faster.",DisplayName:"Acro Balance Roll",Increment:"0.1",Range:{high:"3",low:"0"},User:"Advanced"},ACRO_EXPO:{Description:"Acro roll/pitch Expo to allow faster rotation when stick at edges",DisplayName:"Acro Expo",User:"Advanced",Values:{0:"Disabled","0.1":"Very Low","0.2":"Low","0.3":"Medium","0.4":"High","0.5":"Very High"}},ACRO_RP_P:{Description:"Converts pilot roll and pitch into a desired rate of rotation in ACRO and SPORT mode. Higher values mean faster rate of rotation.",DisplayName:"Acro Roll and Pitch P gain",Range:{high:"10",low:"1"},User:"Standard"},ACRO_TRAINER:{Description:"Type of trainer used in acro mode",DisplayName:"Acro Trainer",User:"Advanced",Values:{0:"Disabled",1:"Leveling",2:"Leveling and Limited"}},ACRO_YAW_P:{Description:"Converts pilot yaw input into a desired rate of rotation. Higher values mean faster rate of rotation.",DisplayName:"Acro Yaw P gain",Range:{high:"10",low:"1"},User:"Standard"},ANGLE_MAX:{Description:"Maximum lean angle in all flight modes",DisplayName:"Angle Max",Increment:"10",Range:{high:"8000",low:"1000"},Units:"cdeg",User:"Advanced"},FORMAT_VERSION:{Description:"This value is incremented when changes are made to the eeprom format",DisplayName:"Eeprom format version number",ReadOnly:"True",User:"Advanced"},FRAME_CONFIG:{Description:"Set this parameter according to your vehicle/motor configuration",DisplayName:"Frame configuration",RebootRequired:"True",User:"Standard",Values:{0:"BlueROV1",1:"Vectored",2:"Vectored_6DOF",3:"Vectored_6DOF_90",4:"SimpleROV-3",5:"SimpleROV-4",6:"SimpleROV-5",7:"Custom"}},FS_CRASH_CHECK:{Description:"This enables automatic crash checking. When enabled the motors will disarm if a crash is detected.",DisplayName:"Crash check enable",User:"Advanced",Values:{0:"Disabled",1:"Warn only",2:"Disarm"}},FS_EKF_ACTION:{Description:"Controls the action that will be taken when an EKF failsafe is invoked",DisplayName:"EKF Failsafe Action",User:"Advanced",Values:{0:"Disabled",1:"Warn only",2:"Disarm"}},FS_EKF_THRESH:{Description:"Allows setting the maximum acceptable compass and velocity variance",DisplayName:"EKF failsafe variance threshold",User:"Advanced",Values:{"0.6":"Strict","0.8":"Default","1.0":"Relaxed"}},FS_GCS_ENABLE:{Description:"Controls what action to take when GCS heartbeat is lost.",DisplayName:"Ground Station Failsafe Enable",User:"Standard",Values:{0:"Disabled",1:"Warn only",2:"Disarm",3:"Enter depth hold mode",4:"Enter surface mode"}},FS_LEAK_ENABLE:{Description:"Controls what action to take if a leak is detected.",DisplayName:"Leak Failsafe Enable",User:"Standard",Values:{0:"Disabled",1:"Warn only",2:"Enter surface mode"}},FS_PILOT_INPUT:{Description:"Controls what action to take if no pilot input has been received after the timeout period specified by the FS_PILOT_TIMEOUT parameter",DisplayName:"Pilot input failsafe action",User:"Standard",Values:{0:"Disabled",1:"Warn Only",2:"Disarm"}},FS_PILOT_TIMEOUT:{Description:"Controls the maximum interval between received pilot inputs before the failsafe action is triggered",DisplayName:"Timeout for activation of pilot input failsafe",Range:{high:"3.0",low:"0.1"},Units:"s",User:"Standard"},FS_PRESS_ENABLE:{Description:"Controls what action to take if internal pressure exceeds FS_PRESS_MAX parameter.",DisplayName:"Internal Pressure Failsafe Enable",User:"Standard",Values:{0:"Disabled",1:"Warn only"}},FS_PRESS_MAX:{Description:"The maximum internal pressure allowed before triggering failsafe. Failsafe action is determined by FS_PRESS_ENABLE parameter",DisplayName:"Internal Pressure Failsafe Threshold",Units:"Pa",User:"Standard"},FS_TEMP_ENABLE:{Description:"Controls what action to take if internal temperature exceeds FS_TEMP_MAX parameter.",DisplayName:"Internal Temperature Failsafe Enable",User:"Standard",Values:{0:"Disabled",1:"Warn only"}},FS_TEMP_MAX:{Description:"The maximum internal temperature allowed before triggering failsafe. Failsafe action is determined by FS_TEMP_ENABLE parameter.",DisplayName:"Internal Temperature Failsafe Threshold",Units:"degC",User:"Standard"},FS_TERRAIN_ENAB:{Description:"Controls what action to take if terrain information is lost during AUTO mode",DisplayName:"Terrain Failsafe Enable",User:"Standard",Values:{0:"Disarm",1:"Hold Position",2:"Surface"}},GCS_PID_MASK:{Bitmask:{0:"Roll",1:"Pitch",2:"Yaw"},Description:"bitmask of PIDs to send MAVLink PID_TUNING messages for",DisplayName:"GCS PID tuning mask",User:"Advanced",Values:{0:"None",1:"Roll",2:"Pitch",4:"Yaw"}},JS_GAIN_DEFAULT:{Description:"Default gain at boot, must be in range [JS_GAIN_MIN , JS_GAIN_MAX]",DisplayName:"Default gain at boot",Range:{high:"1.0",low:"0.1"},User:"Standard"},JS_GAIN_MAX:{Description:"Maximum joystick gain",DisplayName:"Maximum joystick gain",Range:{high:"1.0",low:"0.2"},User:"Standard"},JS_GAIN_MIN:{Description:"Minimum joystick gain",DisplayName:"Minimum joystick gain",Range:{high:"0.8",low:"0.1"},User:"Standard"},JS_GAIN_STEPS:{Description:"Controls the number of steps between minimum and maximum joystick gain when the gain is adjusted using buttons. Set to 1 to always use JS_GAIN_DEFAULT.",DisplayName:"Gain steps",Range:{high:"10",low:"1"},User:"Standard"},JS_LIGHTS_STEPS:{Description:"Number of steps in brightness between minimum and maximum brightness",DisplayName:"Lights brightness steps",Range:{high:"10",low:"1"},Units:"PWM",User:"Standard"},JS_THR_GAIN:{Description:"Scalar for gain on the throttle channel",DisplayName:"Throttle gain scalar",Range:{high:"4.0",low:"0.5"},User:"Standard"},LOG_BITMASK:{Bitmask:{0:"ATTITUDE_FAST",1:"ATTITUDE_MED",2:"GPS",3:"PM",4:"CTUN",5:"NTUN",6:"RCIN",7:"IMU",8:"CMD",9:"CURRENT",10:"RCOUT",11:"OPTFLOW",12:"PID",13:"COMPASS",14:"INAV",15:"CAMERA",17:"MOTBATT",18:"IMU_FAST",19:"IMU_RAW"},Description:"4 byte bitmap of log types to enable",DisplayName:"Log bitmask",User:"Standard",Values:{0:"Disabled",830:"Default",894:"Default+RCIN",958:"Default+IMU",1854:"Default+Motors",45054:"NearlyAll",131071:"All+FastATT",262142:"All+MotBatt",393214:"All+FastIMU",397310:"All+FastIMU+PID",655358:"All+FullIMU","-6146":"NearlyAll-AC315"}},PILOT_ACCEL_Z:{Description:"The vertical acceleration used when pilot is controlling the altitude",DisplayName:"Pilot vertical acceleration",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s/s",User:"Standard"},PILOT_SPEED_DN:{Description:"The maximum vertical descending velocity the pilot may request in cm/s",DisplayName:"Pilot maximum vertical descending speed",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s",User:"Standard"},PILOT_SPEED_UP:{Description:"The maximum vertical ascending velocity the pilot may request in cm/s",DisplayName:"Pilot maximum vertical ascending speed",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s",User:"Standard"},PILOT_THR_FILT:{Description:"Throttle filter cutoff (Hz) - active whenever altitude control is inactive - 0 to disable",DisplayName:"Throttle filter cutoff",Increment:".5",Range:{high:"10",low:"0"},Units:"Hz",User:"Advanced"},RC_SPEED:{Description:"This is the speed in Hertz that your ESCs will receive updates",DisplayName:"ESC Update Speed",Increment:"1",Range:{high:"490",low:"50"},Units:"Hz",User:"Advanced"},RNGFND_GAIN:{Description:"Used to adjust the speed with which the target altitude is changed when objects are sensed below the sub",DisplayName:"Rangefinder gain",Increment:"0.01",Range:{high:"2.0",low:"0.01"},User:"Standard"},SURFACE_DEPTH:{Description:"The depth the external pressure sensor will read when the vehicle is considered at the surface (in centimeters)",DisplayName:"Depth reading at surface",Range:{high:"0",low:"-100"},Units:"cm",User:"Standard"},SYSID_MYGCS:{Description:"Allows restricting radio overrides to only come from my ground station",DisplayName:"My ground station number",User:"Advanced"},SYSID_THISMAV:{Description:"Allows setting an individual MAVLink system id for this vehicle to distinguish it from others on the same network",DisplayName:"MAVLink system ID of this vehicle",Range:{high:"255",low:"1"},User:"Advanced"},THR_DZ:{Description:"The PWM deadzone in microseconds above and below mid throttle. Used in AltHold, Loiter, PosHold flight modes",DisplayName:"Throttle deadzone",Increment:"1",Range:{high:"300",low:"0"},Units:"PWM",User:"Standard"},WP_YAW_BEHAVIOR:{Description:"Determines how the autopilot controls the yaw during missions and RTL",DisplayName:"Yaw behaviour during missions",User:"Standard",Values:{0:"Never change yaw",1:"Face next waypoint",2:"Face next waypoint except RTL",3:"Face along GPS course",4:"Correct crosstrack error"}},XTRACK_ANG_LIM:{Description:"Maximum allowed angle (in degrees) between current track and desired heading during waypoint navigation",DisplayName:"Crosstrack correction angle limit",Range:{high:"90",low:"10"},User:"Standard"}},y21={TERRAIN_ENABLE:{Description:"enable terrain data. This enables the vehicle storing a database of terrain data on the SD card. The terrain data is requested from the ground station as needed, and stored for later use on the SD card. To be useful the ground station must support TERRAIN_REQUEST messages and have access to a terrain database, such as the SRTM database.",DisplayName:"Terrain data enable",User:"Advanced",Values:{0:"Disable",1:"Enable"}},TERRAIN_OPTIONS:{Bitmask:{0:"Disable Download"},Description:"Options to change behaviour of terrain system",DisplayName:"Terrain options",User:"Advanced"},TERRAIN_SPACING:{Description:"Distance between terrain grid points in meters. This controls the horizontal resolution of the terrain data that is stored on te SD card and requested from the ground station. If your GCS is using the ArduPilot SRTM database like Mission Planner or MAVProxy, then a resolution of 100 meters is appropriate. Grid spacings lower than 100 meters waste SD card space if the GCS cannot provide that resolution. The grid spacing also controls how much data is kept in memory during flight. A larger grid spacing will allow for a larger amount of data in memory. A grid spacing of 100 meters results in the vehicle keeping 12 grid squares in memory with each grid square having a size of 2.7 kilometers by 3.2 kilometers. Any additional grid squares are stored on the SD once they are fetched from the GCS and will be loaded as needed.",DisplayName:"Terrain grid spacing",Increment:"1",Units:"m",User:"Advanced"}},R21={VISO_DELAY_MS:{Description:"Visual odometry sensor delay relative to inertial measurements",DisplayName:"Visual odometry sensor delay",Range:{high:"250",low:"0"},Units:"ms",User:"Advanced"},VISO_ORIENT:{Description:"Visual odometery camera orientation",DisplayName:"Visual odometery camera orientation",User:"Advanced",Values:{0:"Forward",2:"Right",4:"Back",6:"Left",24:"Up",25:"Down"}},VISO_POS_M_NSE:{Description:"Visual odometry position measurement noise minimum (meters). This value will be used if the sensor provides a lower noise value (or no noise value)",DisplayName:"Visual odometry position measurement noise ",Range:{high:"10.0",low:"0.1"},Units:"m",User:"Advanced"},VISO_POS_X:{Description:"X position of the camera in body frame. Positive X is forward of the origin.",DisplayName:"Visual odometry camera X position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_POS_Y:{Description:"Y position of the camera in body frame. Positive Y is to the right of the origin.",DisplayName:"Visual odometry camera Y position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_POS_Z:{Description:"Z position of the camera in body frame. Positive Z is down from the origin.",DisplayName:"Visual odometry camera Z position offset",Increment:"0.01",Range:{high:"5",low:"-5"},Units:"m",User:"Advanced"},VISO_SCALE:{Description:"Visual odometry scaling factor applied to position estimates from sensor",DisplayName:"Visual odometry scaling factor",User:"Advanced"},VISO_TYPE:{Description:"Visual odometry camera connection type",DisplayName:"Visual odometry camera connection type",RebootRequired:"True",User:"Advanced",Values:{0:"None",1:"MAVLink",2:"IntelT265"}},VISO_VEL_M_NSE:{Description:"Visual odometry velocity measurement noise in m/s",DisplayName:"Visual odometry velocity measurement noise",Range:{high:"5.0",low:"0.05"},Units:"m/s",User:"Advanced"},VISO_YAW_M_NSE:{Description:"Visual odometry yaw measurement noise minimum (radians), This value will be used if the sensor provides a lower noise value (or no noise value)",DisplayName:"Visual odometry yaw measurement noise",Range:{high:"1.0",low:"0.05"},Units:"rad",User:"Advanced"}},b21={VTX_BAND:{Description:"Video Transmitter Band",DisplayName:"Video Transmitter Band",User:"Standard",Values:{0:"Band A",1:"Band B",2:"Band E",3:"Airwave",4:"RaceBand",5:"Low RaceBand"}},VTX_CHANNEL:{Description:"Video Transmitter Channel",DisplayName:"Video Transmitter Channel",Range:{high:"7",low:"0"},User:"Standard"},VTX_ENABLE:{Description:"Toggles the Video Transmitter on and off",DisplayName:"Is the Video Transmitter enabled or not",Values:{0:"Disable",1:"Enable"}},VTX_FREQ:{Description:"Video Transmitter Frequency. The frequency is derived from the setting of BAND and CHANNEL",DisplayName:"Video Transmitter Frequency",Range:{high:"6000",low:"5000"},ReadOnly:"True",User:"Standard"},VTX_MAX_POWER:{Description:"Video Transmitter Maximum Power Level. Different VTXs support different power levels, this prevents the power aux switch from requesting too high a power level. The switch supports 6 power levels and the selected power will be a subdivision between 0 and this setting.",DisplayName:"Video Transmitter Max Power Level",Range:{high:"1000",low:"25"}},VTX_OPTIONS:{Bitmask:{0:"Pitmode",1:"Pitmode until armed",2:"Pitmode when disarmed",3:"Unlocked",4:"Add leading zero byte to requests"},Description:"Video Transmitter Options. Pitmode puts the VTX in a low power state. Unlocked enables certain restricted frequencies and power levels. Do not enable the Unlocked option unless you have appropriate permissions in your jurisdiction to transmit at high power levels.",DisplayName:"Video Transmitter Options",User:"Advanced"},VTX_POWER:{Description:"Video Transmitter Power Level. Different VTXs support different power levels, the power level chosen will be rounded down to the nearest supported power level",DisplayName:"Video Transmitter Power Level",Range:{high:"1000",low:"1"}}},N21={WPNAV_ACCEL:{Description:"Defines the horizontal acceleration in cm/s/s used during missions",DisplayName:"Waypoint Acceleration ",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s/s",User:"Standard"},WPNAV_ACCEL_Z:{Description:"Defines the vertical acceleration in cm/s/s used during missions",DisplayName:"Waypoint Vertical Acceleration",Increment:"10",Range:{high:"500",low:"50"},Units:"cm/s/s",User:"Standard"},WPNAV_JERK:{Description:"Defines the horizontal jerk in m/s/s used during missions",DisplayName:"Waypoint Jerk",Range:{high:"20",low:"1"},Units:"m/s/s/s",User:"Standard"},WPNAV_RADIUS:{Description:"Defines the distance from a waypoint, that when crossed indicates the wp has been hit.",DisplayName:"Waypoint Radius",Increment:"1",Range:{high:"1000",low:"5"},Units:"cm",User:"Standard"},WPNAV_RFND_USE:{Description:"This controls if waypoint missions use rangefinder for terrain following",DisplayName:"Waypoint missions use rangefinder for terrain following",User:"Advanced",Values:{0:"Disable",1:"Enable"}},WPNAV_SPEED:{Description:"Defines the speed in cm/s which the aircraft will attempt to maintain horizontally during a WP mission",DisplayName:"Waypoint Horizontal Speed Target",Increment:"50",Range:{high:"2000",low:"20"},Units:"cm/s",User:"Standard"},WPNAV_SPEED_DN:{Description:"Defines the speed in cm/s which the aircraft will attempt to maintain while descending during a WP mission",DisplayName:"Waypoint Descent Speed Target",Increment:"10",Range:{high:"500",low:"10"},Units:"cm/s",User:"Standard"},WPNAV_SPEED_UP:{Description:"Defines the speed in cm/s which the aircraft will attempt to maintain while climbing during a WP mission",DisplayName:"Waypoint Climb Speed Target",Increment:"50",Range:{high:"1000",low:"10"},Units:"cm/s",User:"Standard"},WPNAV_TER_MARGIN:{Description:"Waypoint Terrain following altitude margin. Vehicle will stop if distance from target altitude is larger than this margin (in meters)",DisplayName:"Waypoint Terrain following altitude margin",Range:{high:"100",low:"0.1"},Units:"m",User:"Advanced"}},w21={version:0},HB1={AHRS_:EQ,ARMING_:PQ,ARSPD:IQ,ATC_:OQ,AVOID_:UQ,BARO:xQ,BARO1_WCF_:FQ,BARO2_WCF_:kQ,BARO3_WCF_:BQ,BATT2_:zQ,BATT3_:ZQ,BATT4_:GQ,BATT5_:WQ,BATT6_:XQ,BATT7_:YQ,BATT8_:$Q,BATT9_:qQ,BATT_:KQ,BRD_:jQ,BRD_RADIO:QQ,BRD_RTC:JQ,BTN0_:eJ,BTN10_:tJ,BTN11_:iJ,BTN12_:aJ,BTN13_:rJ,BTN14_:nJ,BTN15_:oJ,BTN1_:sJ,BTN2_:lJ,BTN3_:cJ,BTN4_:dJ,BTN5_:CJ,BTN6_:mJ,BTN7_:uJ,BTN8_:hJ,BTN9_:pJ,CAM_:fJ,CAM_RC_:VJ,CAN_:LJ,CAN_D1_:HJ,CAN_D1_KDE_:MJ,CAN_D1_PC_:gJ,CAN_D1_TST_:AJ,CAN_D1_UC_:vJ,CAN_D2_:_J,CAN_D2_KDE_:SJ,CAN_D2_PC_:DJ,CAN_D2_TST_:yJ,CAN_D2_UC_:RJ,CAN_D3_:bJ,CAN_D3_KDE_:NJ,CAN_D3_PC_:wJ,CAN_D3_TST_:TJ,CAN_D3_UC_:EJ,CAN_P1_:PJ,CAN_P2_:IJ,CAN_P3_:OJ,CAN_SLCAN_:UJ,CIRCLE_:xJ,COMPASS_:FJ,COMPASS_PMOT:kJ,EAHRS:BJ,EK2_:zJ,EK3_:ZJ,EK3_SRC:GJ,FENCE_:WJ,FFT_:XJ,FLOW:YJ,FRSKY_:$J,GEN_:qJ,GPS:KJ,GPS_MB1_:jJ,GPS_MB2_:QJ,GRIP_:JJ,INS_:e11,INS_HNTCH_:t11,INS_LOG_:i11,INS_NOTCH_:a11,INS_TCAL1_:r11,INS_TCAL2_:n11,INS_TCAL3_:o11,LEAK:s11,LOG:l11,LOIT_:c11,MIS_:d11,MNT:C11,MOT_:m11,MSP:u11,NTF_:h11,PRX:p11,PSC:f11,RALLY_:V11,RC:L11,RC10_:H11,RC11_:M11,RC12_:g11,RC13_:A11,RC14_:v11,RC15_:_11,RC16_:S11,RC1_:D11,RC2_:y11,RC3_:R11,RC4_:b11,RC5_:N11,RC6_:w11,RC7_:T11,RC8_:E11,RC9_:P11,RCMAP_:I11,RELAY_:O11,RNGFND1_:U11,RNGFND2_:x11,RNGFND3_:F11,RNGFND4_:k11,RNGFND5_:B11,RNGFND6_:z11,RNGFND7_:Z11,RNGFND8_:G11,RNGFND9_:W11,RNGFNDA_:X11,RPM:Y11,SCHED_:$11,SCR_:q11,SERIAL:K11,SERVO:j11,SERVO10_:Q11,SERVO11_:J11,SERVO12_:e21,SERVO13_:t21,SERVO14_:i21,SERVO15_:a21,SERVO16_:r21,SERVO1_:n21,SERVO2_:o21,SERVO3_:s21,SERVO4_:l21,SERVO5_:c21,SERVO6_:d21,SERVO7_:C21,SERVO8_:m21,SERVO9_:u21,SERVO_BLH_:h21,SERVO_FTW_:p21,SERVO_ROB_:f21,SERVO_SBUS_:V21,SERVO_VOLZ_:L21,SR0_:H21,SR1_:M21,SR2_:g21,SR3_:A21,SR4_:v21,SR5_:_21,SR6_:S21,Sub:D21,TERRAIN_:y21,VISO:R21,VTX_:b21,WPNAV_:N21,json:w21},MB1=Object.freeze(Object.defineProperty({__proto__:null,AHRS_:EQ,ARMING_:PQ,ARSPD:IQ,ATC_:OQ,AVOID_:UQ,BARO:xQ,BARO1_WCF_:FQ,BARO2_WCF_:kQ,BARO3_WCF_:BQ,BATT2_:zQ,BATT3_:ZQ,BATT4_:GQ,BATT5_:WQ,BATT6_:XQ,BATT7_:YQ,BATT8_:$Q,BATT9_:qQ,BATT_:KQ,BRD_:jQ,BRD_RADIO:QQ,BRD_RTC:JQ,BTN0_:eJ,BTN10_:tJ,BTN11_:iJ,BTN12_:aJ,BTN13_:rJ,BTN14_:nJ,BTN15_:oJ,BTN1_:sJ,BTN2_:lJ,BTN3_:cJ,BTN4_:dJ,BTN5_:CJ,BTN6_:mJ,BTN7_:uJ,BTN8_:hJ,BTN9_:pJ,CAM_:fJ,CAM_RC_:VJ,CAN_:LJ,CAN_D1_:HJ,CAN_D1_KDE_:MJ,CAN_D1_PC_:gJ,CAN_D1_TST_:AJ,CAN_D1_UC_:vJ,CAN_D2_:_J,CAN_D2_KDE_:SJ,CAN_D2_PC_:DJ,CAN_D2_TST_:yJ,CAN_D2_UC_:RJ,CAN_D3_:bJ,CAN_D3_KDE_:NJ,CAN_D3_PC_:wJ,CAN_D3_TST_:TJ,CAN_D3_UC_:EJ,CAN_P1_:PJ,CAN_P2_:IJ,CAN_P3_:OJ,CAN_SLCAN_:UJ,CIRCLE_:xJ,COMPASS_:FJ,COMPASS_PMOT:kJ,EAHRS:BJ,EK2_:zJ,EK3_:ZJ,EK3_SRC:GJ,FENCE_:WJ,FFT_:XJ,FLOW:YJ,FRSKY_:$J,GEN_:qJ,GPS:KJ,GPS_MB1_:jJ,GPS_MB2_:QJ,GRIP_:JJ,INS_:e11,INS_HNTCH_:t11,INS_LOG_:i11,INS_NOTCH_:a11,INS_TCAL1_:r11,INS_TCAL2_:n11,INS_TCAL3_:o11,LEAK:s11,LOG:l11,LOIT_:c11,MIS_:d11,MNT:C11,MOT_:m11,MSP:u11,NTF_:h11,PRX:p11,PSC:f11,RALLY_:V11,RC:L11,RC10_:H11,RC11_:M11,RC12_:g11,RC13_:A11,RC14_:v11,RC15_:_11,RC16_:S11,RC1_:D11,RC2_:y11,RC3_:R11,RC4_:b11,RC5_:N11,RC6_:w11,RC7_:T11,RC8_:E11,RC9_:P11,RCMAP_:I11,RELAY_:O11,RNGFND1_:U11,RNGFND2_:x11,RNGFND3_:F11,RNGFND4_:k11,RNGFND5_:B11,RNGFND6_:z11,RNGFND7_:Z11,RNGFND8_:G11,RNGFND9_:W11,RNGFNDA_:X11,RPM:Y11,SCHED_:$11,SCR_:q11,SERIAL:K11,SERVO:j11,SERVO10_:Q11,SERVO11_:J11,SERVO12_:e21,SERVO13_:t21,SERVO14_:i21,SERVO15_:a21,SERVO16_:r21,SERVO1_:n21,SERVO2_:o21,SERVO3_:s21,SERVO4_:l21,SERVO5_:c21,SERVO6_:d21,SERVO7_:C21,SERVO8_:m21,SERVO9_:u21,SERVO_BLH_:h21,SERVO_FTW_:p21,SERVO_ROB_:f21,SERVO_SBUS_:V21,SERVO_VOLZ_:L21,SR0_:H21,SR1_:M21,SR2_:g21,SR3_:A21,SR4_:v21,SR5_:_21,SR6_:S21,Sub:D21,TERRAIN_:y21,VISO:R21,VTX_:b21,WPNAV_:N21,json:w21,default:HB1},Symbol.toStringTag,{value:"Module"}));var T21=(e=>(e[e.PRE_FLIGHT=-1]="PRE_FLIGHT",e[e.STABILIZE=0]="STABILIZE",e[e.ACRO=1]="ACRO",e[e.ALT_HOLD=2]="ALT_HOLD",e[e.AUTO=3]="AUTO",e[e.GUIDED=4]="GUIDED",e[e.CIRCLE=7]="CIRCLE",e[e.SURFACE=9]="SURFACE",e[e.POSHOLD=16]="POSHOLD",e[e.MANUAL=19]="MANUAL",e[e.MOTOR_DETECT=20]="MOTOR_DETECT",e))(T21||{});class gB1 extends jC{constructor(i){super(a0.Sub,i);S1(this,"_mode",-1);S1(this,"_metadata",MB1)}mode(){return this._mode}modesAvailable(){const i=new Map;return Object.entries(T21).filter(([a])=>isNaN(Number(a))).forEach(([a,r])=>{i.set(a,r)}),i}onMAVLinkPackage(i){switch(i.message.type){case se.HEARTBEAT:{const a=i.message;if(a.base_mode.bits===0){this._mode=-1,this.onMode.emit();return}if(!(a.base_mode.bits&_n.MAV_MODE_FLAG_CUSTOM_MODE_ENABLED)){console.log(`no custom: ${JSON.stringify(a.base_mode)}`);return}this._mode=a.custom_mode,this.onMode.emit()}}}}const oa=class{static createVehicle(t,i,a){let r;switch(t){case M4.ArduPilot:r=oa.createArduPilotVehicle(i,a);break}if(r===void 0){unimplemented("Firmware not supported");return}return Pt.onRead.add(n=>r==null?void 0:r.onMessage(n)),oa._vehicles.push(new WeakRef(r)),oa.onVehicles.register_caller(this.vehicles),oa.onVehicles.emit(),r}static createArduPilotVehicle(t,i){switch(t){case a0.Copter:return new mB1(i);case a0.Plane:return new pB1(i);case a0.Rover:return new LB1(i);case a0.Sub:return new gB1(i);default:unimplemented("Firmware not supported")}}static vehicles(){return oa._vehicles=oa._vehicles.filter(t=>t.deref()!==void 0),oa._vehicles}};let m3=oa;S1(m3,"_vehicles",[]),S1(m3,"onVehicles",new Z5);function E21(e){if(!m3.vehicles().isEmpty()){Pt.onRead.remove(E21);return}const t=new TextDecoder,i=JSON.parse(t.decode(e)),{system_id:a,component_id:r}=i.header;if(i.message.type!==se.HEARTBEAT)return;const n=i.message;if(n.autopilot.type!==dd.MAV_AUTOPILOT_INVALID)switch(n.autopilot.type!==dd.MAV_AUTOPILOT_ARDUPILOTMEGA&&console.warn(`Vehicle not supported: ${a}/${r}: ${n.autopilot.type}`),n.mavtype.type){case I5.MAV_TYPE_SUBMARINE:m3.createVehicle(M4.ArduPilot,a0.Sub,a);break;case I5.MAV_TYPE_GROUND_ROVER:case I5.MAV_TYPE_SURFACE_BOAT:m3.createVehicle(M4.ArduPilot,a0.Rover,a);break;case I5.MAV_TYPE_FLAPPING_WING:case I5.MAV_TYPE_VTOL_TILTROTOR:case I5.MAV_TYPE_VTOL_QUADROTOR:case I5.MAV_TYPE_VTOL_DUOROTOR:case I5.MAV_TYPE_FIXED_WING:m3.createVehicle(M4.ArduPilot,a0.Plane,a);break;case I5.MAV_TYPE_TRICOPTER:case I5.MAV_TYPE_COAXIAL:case I5.MAV_TYPE_HEXAROTOR:case I5.MAV_TYPE_HELICOPTER:case I5.MAV_TYPE_OCTOROTOR:case I5.MAV_TYPE_DODECAROTOR:case I5.MAV_TYPE_QUADROTOR:m3.createVehicle(M4.ArduPilot,a0.Copter,a);break;default:console.warn(`Vehicle type not supported: ${a}/${r}: ${n.mavtype.type}`)}}Pt.onRead.add(E21);var _a={exports:{}};(function(e,t){(function(i,a){a()})(O5,function(){function i(d,C){return typeof C>"u"?C={autoBom:!1}:typeof C!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),C={autoBom:!C}),C.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(d.type)?new Blob(["\uFEFF",d],{type:d.type}):d}function a(d,C,m){var u=new XMLHttpRequest;u.open("GET",d),u.responseType="blob",u.onload=function(){l(u.response,C,m)},u.onerror=function(){console.error("could not download file")},u.send()}function r(d){var C=new XMLHttpRequest;C.open("HEAD",d,!1);try{C.send()}catch{}return 200<=C.status&&299>=C.status}function n(d){try{d.dispatchEvent(new MouseEvent("click"))}catch{var C=document.createEvent("MouseEvents");C.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),d.dispatchEvent(C)}}var o=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof O5=="object"&&O5.global===O5?O5:void 0,s=o.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),l=o.saveAs||(typeof window!="object"||window!==o?function(){}:"download"in HTMLAnchorElement.prototype&&!s?function(d,C,m){var u=o.URL||o.webkitURL,p=document.createElement("a");C=C||d.name||"download",p.download=C,p.rel="noopener",typeof d=="string"?(p.href=d,p.origin===location.origin?n(p):r(p.href)?a(d,C,m):n(p,p.target="_blank")):(p.href=u.createObjectURL(d),setTimeout(function(){u.revokeObjectURL(p.href)},4e4),setTimeout(function(){n(p)},0))}:"msSaveOrOpenBlob"in navigator?function(d,C,m){if(C=C||d.name||"download",typeof d!="string")navigator.msSaveOrOpenBlob(i(d,m),C);else if(r(d))a(d,C,m);else{var u=document.createElement("a");u.href=d,u.target="_blank",setTimeout(function(){n(u)})}}:function(d,C,m,u){if(u=u||open("","_blank"),u&&(u.document.title=u.document.body.innerText="downloading..."),typeof d=="string")return a(d,C,m);var p=d.type==="application/octet-stream",V=/constructor/i.test(o.HTMLElement)||o.safari,f=/CriOS\/[\d]+/.test(navigator.userAgent);if((f||p&&V||s)&&typeof FileReader<"u"){var M=new FileReader;M.onloadend=function(){var _=M.result;_=f?_:_.replace(/^data:[^;]*;/,"data:attachment/file;"),u?u.location.href=_:location=_,u=null},M.readAsDataURL(d)}else{var H=o.URL||o.webkitURL,g=H.createObjectURL(d);u?u.location=g:location.href=g,u=null,setTimeout(function(){H.revokeObjectURL(g)},4e4)}});o.saveAs=l.saveAs=l,e.exports=l})})(_a);const AB1=[{name:"ROV functions mapping",axesCorrespondencies:{[t5.A0]:{action:Et.axis_y,min:-1e3,max:1e3},[t5.A1]:{action:Et.axis_x,min:1e3,max:-1e3},[t5.A2]:{action:Et.axis_r,min:-1e3,max:1e3},[t5.A3]:{action:Et.axis_z,min:1e3,max:0}},buttonsCorrespondencies:{[p3.regular]:{[B1.B0]:{action:ft.shift},[B1.B1]:{action:Qe["Mode manual"]},[B1.B2]:{action:Qe["Mode depth hold"]},[B1.B3]:{action:Qe["Mode stabilize"]},[B1.B4]:{action:it.go_to_previous_view},[B1.B5]:{action:it.go_to_next_view},[B1.B6]:{action:Qe["Mount tilt down"]},[B1.B7]:{action:Qe["Mount tilt up"]},[B1.B8]:{action:Qe.Disarm},[B1.B9]:{action:Qe.Arm},[B1.B10]:{action:Qe["Mount center"]},[B1.B11]:{action:Qe["Input hold set"]},[B1.B12]:{action:Qe["Gain inc"]},[B1.B13]:{action:Qe["Gain dec"]},[B1.B14]:{action:Qe["Lights1 dimmer"]},[B1.B15]:{action:Qe["Lights1 brighter"]},[B1.B16]:{action:it.toggle_bottom_bar},[B1.B17]:{action:Qe["Roll pitch toggle"]}},[p3.shift]:{[B1.B0]:{action:E2.no_function},[B1.B1]:{action:E2.no_function},[B1.B2]:{action:Qe["Mode poshold"]},[B1.B3]:{action:Qe["Mode acro"]},[B1.B4]:{action:E2.no_function},[B1.B5]:{action:E2.no_function},[B1.B6]:{action:Qe["Servo 1 min"]},[B1.B7]:{action:Qe["Servo 1 max"]},[B1.B8]:{action:E2.no_function},[B1.B9]:{action:E2.no_function},[B1.B10]:{action:Qe["Relay 1 toggle"]},[B1.B11]:{action:E2.no_function},[B1.B12]:{action:Qe["Trim pitch inc"]},[B1.B13]:{action:Qe["Trim pitch dec"]},[B1.B14]:{action:Qe["Trim roll dec"]},[B1.B15]:{action:Qe["Trim roll inc"]},[B1.B16]:{action:E2.no_function},[B1.B17]:{action:E2.no_function}}}},{name:"Boat functions mapping",axesCorrespondencies:{[t5.A0]:{action:Et.axis_y,min:-1e3,max:1e3},[t5.A1]:{action:Et.axis_x,min:1e3,max:-1e3},[t5.A2]:{action:Et.axis_r,min:-1e3,max:1e3},[t5.A3]:{action:Et.axis_z,min:1e3,max:-1e3}},buttonsCorrespondencies:{[p3.regular]:{[B1.B0]:{action:ft.shift},[B1.B1]:{action:E2.no_function},[B1.B2]:{action:E2.no_function},[B1.B3]:{action:E2.no_function},[B1.B4]:{action:it.go_to_previous_view},[B1.B5]:{action:it.go_to_next_view},[B1.B6]:{action:E2.no_function},[B1.B7]:{action:E2.no_function},[B1.B8]:{action:it.mavlink_disarm},[B1.B9]:{action:it.mavlink_arm},[B1.B10]:{action:E2.no_function},[B1.B11]:{action:E2.no_function},[B1.B12]:{action:E2.no_function},[B1.B13]:{action:E2.no_function},[B1.B14]:{action:E2.no_function},[B1.B15]:{action:E2.no_function},[B1.B16]:{action:it.toggle_bottom_bar},[B1.B17]:{action:E2.no_function}},[p3.shift]:{[B1.B0]:{action:E2.no_function},[B1.B1]:{action:E2.no_function},[B1.B2]:{action:E2.no_function},[B1.B3]:{action:E2.no_function},[B1.B4]:{action:E2.no_function},[B1.B5]:{action:E2.no_function},[B1.B6]:{action:E2.no_function},[B1.B7]:{action:E2.no_function},[B1.B8]:{action:E2.no_function},[B1.B9]:{action:E2.no_function},[B1.B10]:{action:E2.no_function},[B1.B11]:{action:E2.no_function},[B1.B12]:{action:E2.no_function},[B1.B13]:{action:E2.no_function},[B1.B14]:{action:E2.no_function},[B1.B15]:{action:E2.no_function},[B1.B16]:{action:E2.no_function},[B1.B17]:{action:E2.no_function}}}}],o_={[ut.DualSense]:{name:"DualSense",axes:[0,1,2,3],buttons:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]},[ut.DualShock4]:{name:"DualShock4",axes:[0,1,2,3],buttons:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]},[ut.IpegaPG9023]:{name:"Ipega9023",axes:[0,1,2,3],buttons:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]},[ut.XboxOneS_Bluetooth]:{name:"Xbox One S",axes:[0,1,2,3],buttons:[0,1,2,3,4,11,6,7,8,9,5,11,12,13,14,15,16,17]},[ut.XboxController_Bluetooth]:{name:"Xbox Controller (bluetooth)",axes:[0,1,2,3],buttons:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,16]},[ut.XboxController_Wired]:{name:"Xbox Controller (wired)",axes:[0,1,2,3],buttons:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]},[ut.XboxController_360]:{name:ut.XboxController_360,axes:[0,1,2,3],buttons:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]},[ut.LogitechExtreme3DPro]:{name:ut.XboxController_360,axes:[0,1,5,6,7,2,3,8,9,4],buttons:[0,1,2,3,4,5,6,7,8,9,10,11]},[ut.Unknown]:{name:"Standard gamepad",axes:[0,1,2,3,4,5,6,7],buttons:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]}};class s_ extends Error{constructor(t,i,a){const r=t.status||t.status===0?t.status:"",n=t.statusText||"",o=`${r} ${n}`.trim(),s=o?`status code ${o}`:"an unknown error";super(`Request failed with ${s}`),Object.defineProperty(this,"response",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="HTTPError",this.response=t,this.request=i,this.options=a}}class P21 extends Error{constructor(t){super("Request timed out"),Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="TimeoutError",this.request=t}}const tc=e=>e!==null&&typeof e=="object",ul=(...e)=>{for(const t of e)if((!tc(t)||Array.isArray(t))&&t!==void 0)throw new TypeError("The `options` argument must be an object");return VH({},...e)},I21=(e={},t={})=>{const i=new globalThis.Headers(e),a=t instanceof globalThis.Headers,r=new globalThis.Headers(t);for(const[n,o]of r.entries())a&&o==="undefined"||o===void 0?i.delete(n):i.set(n,o);return i},VH=(...e)=>{let t={},i={};for(const a of e)if(Array.isArray(a))Array.isArray(t)||(t=[]),t=[...t,...a];else if(tc(a)){for(let[r,n]of Object.entries(a))tc(n)&&r in t&&(n=VH(t[r],n)),t={...t,[r]:n};tc(a.headers)&&(i=I21(i,a.headers),t.headers=i)}return t},vB1=(()=>{let e=!1,t=!1;const i=typeof globalThis.ReadableStream=="function",a=typeof globalThis.Request=="function";return i&&a&&(t=new globalThis.Request("https://empty.invalid",{body:new globalThis.ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type")),e&&!t})(),_B1=typeof globalThis.AbortController=="function",SB1=typeof globalThis.ReadableStream=="function",DB1=typeof globalThis.FormData=="function",O21=["get","post","put","patch","head","delete"],yB1={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*"},Tu=2147483647,U21=Symbol("stop"),RB1={json:!0,parseJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,fetch:!0},bB1={method:!0,headers:!0,body:!0,mode:!0,credentials:!0,cache:!0,redirect:!0,referrer:!0,referrerPolicy:!0,integrity:!0,keepalive:!0,signal:!0,window:!0,dispatcher:!0,duplex:!0},NB1=e=>O21.includes(e)?e.toUpperCase():e,wB1=["get","put","head","delete","options","trace"],TB1=[408,413,429,500,502,503,504],x21=[413,429,503],l_={limit:2,methods:wB1,statusCodes:TB1,afterStatusCodes:x21,maxRetryAfter:Number.POSITIVE_INFINITY,backoffLimit:Number.POSITIVE_INFINITY,delay:e=>.3*2**(e-1)*1e3},EB1=(e={})=>{if(typeof e=="number")return{...l_,limit:e};if(e.methods&&!Array.isArray(e.methods))throw new Error("retry.methods must be an array");if(e.statusCodes&&!Array.isArray(e.statusCodes))throw new Error("retry.statusCodes must be an array");return{...l_,...e,afterStatusCodes:x21}};async function PB1(e,t,i,a){return new Promise((r,n)=>{const o=setTimeout(()=>{i&&i.abort(),n(new P21(e))},a.timeout);a.fetch(e,t).then(r).catch(n).then(()=>{clearTimeout(o)})})}async function IB1(e,{signal:t}){return new Promise((i,a)=>{t&&(t.throwIfAborted(),t.addEventListener("abort",r,{once:!0}));function r(){clearTimeout(n),a(t.reason)}const n=setTimeout(()=>{t==null||t.removeEventListener("abort",r),i()},e)})}const OB1=(e,t)=>{const i={};for(const a in t)!(a in bB1)&&!(a in RB1)&&!(a in e)&&(i[a]=t[a]);return i};class pd{static create(t,i){const a=new pd(t,i),r=async()=>{if(typeof a._options.timeout=="number"&&a._options.timeout>Tu)throw new RangeError(`The \`timeout\` option cannot be greater than ${Tu}`);await Promise.resolve();let s=await a._fetch();for(const l of a._options.hooks.afterResponse){const d=await l(a.request,a._options,a._decorateResponse(s.clone()));d instanceof globalThis.Response&&(s=d)}if(a._decorateResponse(s),!s.ok&&a._options.throwHttpErrors){let l=new s_(s,a.request,a._options);for(const d of a._options.hooks.beforeError)l=await d(l);throw l}if(a._options.onDownloadProgress){if(typeof a._options.onDownloadProgress!="function")throw new TypeError("The `onDownloadProgress` option must be a function");if(!SB1)throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");return a._stream(s.clone(),a._options.onDownloadProgress)}return s},o=a._options.retry.methods.includes(a.request.method.toLowerCase())?a._retry(r):r();for(const[s,l]of Object.entries(yB1))o[s]=async()=>{a.request.headers.set("accept",a.request.headers.get("accept")||l);const C=(await o).clone();if(s==="json"){if(C.status===204||(await C.clone().arrayBuffer()).byteLength===0)return"";if(i.parseJson)return i.parseJson(await C.text())}return C[s]()};return o}constructor(t,i={}){var a,r,n,o;if(Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"abortController",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_retryCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_input",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._input=t,this._options={credentials:this._input.credentials||"same-origin",...i,headers:I21(this._input.headers,i.headers),hooks:VH({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},i.hooks),method:NB1((a=i.method)!=null?a:this._input.method),prefixUrl:String(i.prefixUrl||""),retry:EB1(i.retry),throwHttpErrors:i.throwHttpErrors!==!1,timeout:(r=i.timeout)!=null?r:1e4,fetch:(n=i.fetch)!=null?n:globalThis.fetch.bind(globalThis)},typeof this._input!="string"&&!(this._input instanceof URL||this._input instanceof globalThis.Request))throw new TypeError("`input` must be a string, URL, or Request");if(this._options.prefixUrl&&typeof this._input=="string"){if(this._input.startsWith("/"))throw new Error("`input` must not begin with a slash when using `prefixUrl`");this._options.prefixUrl.endsWith("/")||(this._options.prefixUrl+="/"),this._input=this._options.prefixUrl+this._input}if(_B1){if(this.abortController=new globalThis.AbortController,this._options.signal){const s=this._options.signal;this._options.signal.addEventListener("abort",()=>{this.abortController.abort(s.reason)})}this._options.signal=this.abortController.signal}if(vB1&&(this._options.duplex="half"),this.request=new globalThis.Request(this._input,this._options),this._options.searchParams){const l="?"+(typeof this._options.searchParams=="string"?this._options.searchParams.replace(/^\?/,""):new URLSearchParams(this._options.searchParams).toString()),d=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,l);(DB1&&this._options.body instanceof globalThis.FormData||this._options.body instanceof URLSearchParams)&&!(this._options.headers&&this._options.headers["content-type"])&&this.request.headers.delete("content-type"),this.request=new globalThis.Request(new globalThis.Request(d,{...this.request}),this._options)}this._options.json!==void 0&&(this._options.body=JSON.stringify(this._options.json),this.request.headers.set("content-type",(o=this._options.headers.get("content-type"))!=null?o:"application/json"),this.request=new globalThis.Request(this.request,{body:this._options.body}))}_calculateRetryDelay(t){if(this._retryCount++,this._retryCount<=this._options.retry.limit&&!(t instanceof P21)){if(t instanceof s_){if(!this._options.retry.statusCodes.includes(t.response.status))return 0;const a=t.response.headers.get("Retry-After");if(a&&this._options.retry.afterStatusCodes.includes(t.response.status)){let r=Number(a);return Number.isNaN(r)?r=Date.parse(a)-Date.now():r*=1e3,this._options.retry.maxRetryAfter!==void 0&&r>this._options.retry.maxRetryAfter?0:r}if(t.response.status===413)return 0}const i=this._options.retry.delay(this._retryCount);return Math.min(this._options.retry.backoffLimit,i)}return 0}_decorateResponse(t){return this._options.parseJson&&(t.json=async()=>this._options.parseJson(await t.text())),t}async _retry(t){try{return await t()}catch(i){const a=Math.min(this._calculateRetryDelay(i),Tu);if(a!==0&&this._retryCount>0){await IB1(a,{signal:this._options.signal});for(const r of this._options.hooks.beforeRetry)if(await r({request:this.request,options:this._options,error:i,retryCount:this._retryCount})===U21)return;return this._retry(t)}throw i}}async _fetch(){for(const i of this._options.hooks.beforeRequest){const a=await i(this.request,this._options);if(a instanceof Request){this.request=a;break}if(a instanceof Response)return a}const t=OB1(this.request,this._options);return this._options.timeout===!1?this._options.fetch(this.request.clone(),t):PB1(this.request.clone(),t,this.abortController,this._options)}_stream(t,i){const a=Number(t.headers.get("content-length"))||0;let r=0;return t.status===204?(i&&i({percent:1,totalBytes:a,transferredBytes:r},new Uint8Array),new globalThis.Response(null,{status:t.status,statusText:t.statusText,headers:t.headers})):new globalThis.Response(new globalThis.ReadableStream({async start(n){const o=t.body.getReader();i&&i({percent:0,transferredBytes:0,totalBytes:a},new Uint8Array);async function s(){const{done:l,value:d}=await o.read();if(l){n.close();return}if(i){r+=d.byteLength;const C=a===0?0:r/a;i({percent:C,transferredBytes:r,totalBytes:a},d)}n.enqueue(d),await s()}await s()}}),{status:t.status,statusText:t.statusText,headers:t.headers})}}/*! MIT License © Sindre Sorhus */const $p=e=>{const t=(i,a)=>pd.create(i,ul(e,a));for(const i of O21)t[i]=(a,r)=>pd.create(a,ul(e,r,{method:i}));return t.create=i=>$p(ul(i)),t.extend=i=>$p(ul(e,i)),t.stop=U21,t},UB1=$p(),U8=UB1,xB1=async(e,t)=>{try{return await U8.get(`http://${e}/bag/v1.0/get/${t}`,{timeout:5e3}).json()}catch(i){throw new Error(`Could not get bag of holdings for ${t}. ${i}`)}},F21=async e=>{try{return await xB1(e,"cockpit")}catch(t){throw new Error(`Could not get Cockpit's storage data from vehicle. ${t}`)}},qp=async(e,t)=>(await F21(e))[t],FB1=async(e,t,i)=>{try{await U8.post(`http://${e}/bag/v1.0/set/${t}`,{json:i,timeout:5e3})}catch(a){throw new Error(`Could not set bag of holdings for ${t}. ${a}`)}},kB1=async(e,t)=>{try{await FB1(e,"cockpit",t)}catch(i){throw new Error(`Could not set Cockpit's storage data on vehicle. ${i}`)}},Kp=async(e,t,i)=>{let a={};try{a=await F21(e)}catch(n){console.error(n)}const r=a;r[t]=i,await kB1(e,r)},BB1=async e=>{try{const t=`http://${e}/beacon/v1.0/services`;return(await U8.get(t,{timeout:5e3}).json()).filter(a=>a.service_type==="_http").map(a=>({ipv4Address:a.ip,interfaceType:a.interface_type}))}catch(t){throw new Error(`Could not get information about IPs on BlueOS. ${t}`)}},zB1=async e=>{try{const t=`http://${e}/mavlink2rest/info`;return(await U8.get(t,{timeout:5e3}).json()).service.version}catch(t){throw new Error(`Could not get Mavlink2Rest version. ${t}`)}},ZB1=async e=>{try{const t=`http://${e}/ardupilot-manager/v1.0/firmware_info`;return(await U8.get(t,{timeout:5e3}).json()).version}catch(t){throw new Error(`Could not get Ardupilot firmware version. ${t}`)}},GB1=[...Object.values(Et),...Object.values(E2)],WB1=[...Object.values(it),...Object.values(Qe),...Object.values(E2),...Object.values(ft)],Eu="cockpit-protocol-mappings-v1",XB1="cockpit-protocol-mapping-index-v1",Pu="cockpit-standard-mappings-v2",k21=er("controller",()=>{const e=i1(new Map),t=i1([]),i=R5(Eu,AB1),a=R5(XB1,0),r=R5(Pu,o_),n=GB1,o=WB1,s=i1(!0),l=R5("cockpit-hold-last-joystick-input-when-window-hidden",!1),d=q({get(){return i.value[a.value]},set(N){i.value[a.value]=N}}),C=N=>{const w=i.value.findIndex(x=>x.name===N.name);if(w===-1){O2.fire({icon:"error",text:"Could not find mapping.",timer:3e3});return}a.value=w},m=N=>{t.value.push(N)};Jl.onJoystickUpdate(N=>u(N)),Jl.onJoystickStateUpdate(N=>V(N));const u=N=>{var x;const w=new Map(Array.from(N).map(([U,E])=>[U,new Pk1(E)]));for(const[U,E]of w)e.value.has(U)||(E.model=Jl.getModel(E.gamepad),e.value.set(U,E),console.info(`Joystick ${U} (${E.model}) connected.`),console.info("Enabling joystick forwarding."),s.value=!0);for(const U of e.value.keys()){if(N.has(U))continue;const E=(x=e.value.get(U))==null?void 0:x.model;e.value.delete(U),console.info(`Joystick ${U} (${E!=null?E:"Unknown model"}) disconnected.`),e.value.size===0&&(console.warn("Disabling joystick forwarding."),s.value=!1)}},p=E61();T1(p,N=>{l.value||(N==="hidden"?(console.warn("Window/tab hidden. Disabling joystick forwarding."),s.value=!1):(console.info("Window/tab visible. Enabling joystick forwarding."),s.value=!0))});const V=N=>{const w=e.value.get(N.detail.index);if(w===void 0||N.type!==Sn.Axis&&N.type!==Sn.Button)return;w.gamepad=N.detail.gamepad;const x=w.model||ut.Unknown;w.gamepadToCockpitMap=r.value[x];for(const U of t.value)U(w.state,d.value,f(w.state,d.value))},f=(N,w)=>{let x=ft.regular.id;Object.entries(w.buttonsCorrespondencies.regular).forEach(O=>{var J;const z=(J=N.buttons[Number(O[0])])!=null?J:0>.5,F=Object.values(ft).map(W=>JSON.stringify(W)).includes(JSON.stringify(O[1].action));z&&F&&(x=O[1].action.id)});const U=ft[x];return N.buttons.map((O,z)=>({id:z,value:O})).filter(O=>{var z;return(z=O.value)!=null?z:0>.5}).map(O=>w.buttonsCorrespondencies[x][O.id].action).concat(U)};let M=structuredClone(x2(d.value));return T1(i,()=>{const N=structuredClone(x2(M)),w=i.value[a.value],x=Object.values(w.axesCorrespondencies).map(E=>E.action.id),U=x.filter((E,O)=>x.indexOf(E)!==O).filter(E=>E!==E2.no_function.id);U.isEmpty()||(Object.entries(w.axesCorrespondencies).forEach(([E,O])=>{const z=U.includes(O.action.id),J=N.axesCorrespondencies[E].action.id===O.action.id;if(z&&J){const W=`Unmapping '${O.action.name}' from input ${E} layout. + Cannot use same action on multiple axes.`;O2.fire({text:W,icon:"warning"}),w.axesCorrespondencies[E].action=E2.no_function}}),i.value[a.value]=w),M=structuredClone(x2(i.value[a.value]))},{deep:!0}),setInterval(()=>{const N=[];Object.entries(d.value.buttonsCorrespondencies.regular).forEach(w=>{w[1].action.protocol==M5.CockpitModifierKey&&N.push({modKey:w[1].action.id,button:Number(w[0])})}),Object.entries(d.value.buttonsCorrespondencies).forEach(([w,x])=>{Object.entries(x).forEach(([U,E])=>{const O=ft[w];JSON.stringify(E.action)===JSON.stringify(O)&&(O2.fire({text:"Cannot map modifier key to it's own layout.",icon:"warning"}),d.value.buttonsCorrespondencies[w][Number(U)].action=E2.no_function)})}),N.forEach(w=>{const x=d.value.buttonsCorrespondencies[w.modKey][w.button].action;JSON.stringify(x)!==JSON.stringify(E2.no_function)&&(O2.fire({text:`Unmapping '${x.name} from ${w.modKey} layout. Cannot use same button as the modifier.`,icon:"warning"}),d.value.buttonsCorrespondencies[w.modKey][w.button].action=E2.no_function)})},500),Object.entries(o_).forEach(([N,w])=>{Object.keys(r.value).includes(N)||(r.value[N]=w)}),{registerControllerUpdateCallback:m,enableForwarding:s,holdLastInputWhenWindowHidden:l,joysticks:e,protocolMapping:d,protocolMappings:i,cockpitStdMappings:r,availableAxesActions:n,availableButtonActions:o,loadProtocolMapping:C,exportJoystickMapping:N=>{const w=new Blob([JSON.stringify(N.gamepadToCockpitMap)],{type:"text/plain;charset=utf-8"});_a.exports.saveAs(w,`cockpit-std-profile-joystick-${N.model}.json`)},importJoystickMapping:async(N,w)=>{const x=new FileReader;x.onload=U=>{const E=U.target.result,O=JSON.parse(E);if(!O.name||!O.axes||!O.buttons){O2.fire({icon:"error",text:"Invalid joystick mapping file.",timer:3e3});return}r.value[N.model]=O},x.readAsText(w.target.files[0])},exportJoysticksMappingsToVehicle:async(N,w)=>{await Kp(N,Pu,w),O2.fire({icon:"success",text:"Joystick mapping exported to vehicle.",timer:3e3})},importJoysticksMappingsFromVehicle:async N=>{const w=await qp(N,Pu);if(!w){O2.fire({icon:"error",text:"No joystick mappings to import from vehicle.",timer:3e3});return}try{Object.values(w).forEach(x=>{if(!x.name||!x.axes||!x.buttons)throw Error("Invalid joystick mapping inside vehicle.")})}catch(x){O2.fire({icon:"error",text:`Could not import joystick mapping from vehicle. ${x}`,timer:3e3});return}r.value=w,O2.fire({icon:"success",text:"Joystick mapping imported from vehicle.",timer:3e3})},exportFunctionsMapping:N=>{const w=new Blob([JSON.stringify(N)],{type:"text/plain;charset=utf-8"});_a.exports.saveAs(w,`cockpit-std-profile-joystick-${N.name}.json`)},importFunctionsMapping:async N=>{const w=new FileReader;w.onload=x=>{const U=x.target.result,E=JSON.parse(U);if(!E.name||!E.axesCorrespondencies||!E.buttonsCorrespondencies){O2.fire({icon:"error",text:"Invalid functions mapping file.",timer:3e3});return}d.value=E},w.readAsText(N.target.files[0])},exportFunctionsMappingToVehicle:async(N,w)=>{await Kp(N,Eu,w),O2.fire({icon:"success",text:"Joystick functions mapping exported to vehicle.",timer:3e3})},importFunctionsMappingFromVehicle:async N=>{const w=await qp(N,Eu);if(!w)throw new Error("Could not import functions mapping from vehicle. No data available.");w.forEach(x=>{if(!x||!x.name||!x.axesCorrespondencies||!x.buttonsCorrespondencies)throw new Error("Could not import joystick funtions from vehicle. Invalid data.")}),i.value=w}}});class c_{constructor(t){S1(this,"_customValue");S1(this,"_defaultValue");S1(this,"isCustom",!1);this._defaultValue=t,this._customValue=this.defaultValue}set val(t){this._customValue=t}get val(){return this.isCustom?this._customValue:this.defaultValue}get defaultValue(){return this._defaultValue()}reset(){this.isCustom=!1,this._customValue=this.defaultValue}}const r5=er("main-vehicle",()=>{const e=i1(),t=R5("cockpit-vehicle-address",Gp),i=new c_(()=>new cd(`ws://${t.value}:6040/ws/mavlink`)),a=i1(i),r=new c_(()=>new cd(`ws://${t.value}:6021`)),n=i1(r),o=i1(),s=i1(),l=i1(),d=$2({}),C=$2({}),m=$2({}),u=$2({}),p=$2({}),V=i1(void 0),f=i1(void 0),M=i1(void 0),H=i1(void 0),g=i1([]),_=VC({interval:100}),v=$2({}),S=$2({}),y=$2({}),D=i1(void 0),R=i1(),N=q(()=>o.value!==void 0&&new Date(_.value).getTime()-o.value.getTime()<5e3);async function w(){if(!V.value)throw new Error("No vehicle available to arm.");if(await L6(sa.ARM,"Confirm Arm","Arm Command Confirmed"))V.value.arm();else throw new Error("Arming cancelled by the user")}async function x(){if(!V.value)throw new Error("No vehicle available to disarm.");if(await L6(sa.DISARM,"Confirm Disarm","Disarm Command Confirmed"))V.value.disarm();else throw new Error("Disarming cancelled by the user")}async function U(){if(!V.value)throw new Error("No vehicle available for takeoff");U7.value=!0;const m1=await L6(sa.TAKEOFF,"Confirm Takeoff","Takeoff Command Confirmed");if(U7.value=!1,m1)V.value.takeoff(qr.value);else throw console.error("Takeoff cancelled by the user"),new Error("Takeoff cancelled by the user")}async function E(){if(!V.value)throw new Error("No vehicle available to change altitude.");U7.value=!0;const m1=await L6(sa.ALT_CHANGE,"Confirm Altitude Change","Alt Change Cmd Confirmed");if(U7.value=!1,m1)V.value.changeAltitude(d.rel-qr.value);else throw console.error("Altitude change cancelled by the user"),new Error("Altitude change cancelled by the user")}async function O(){if(!V.value)throw new Error("No vehicle available to land.");if(await L6(sa.LAND,"Confirm Landing","Landing Command Confirmed"))V.value.land();else throw console.error("Landing cancelled by the user"),new Error("Landing cancelled by the user")}async function z(m1,f1,L1,e1,Y,a1,c1){if(!V.value)throw new Error("No vehicle available to execute go to command.");if(await L6(sa.GOTO,"Confirm Go To Position","Go To Position Command Confirmed")){const _1=new Yk;_1.latitude=Y,_1.altitude=c1,_1.longitude=a1,V.value.goTo(m1,f1,L1,e1,_1)}else throw new Error("Go to position cancelled by the user")}function F(m1){var f1,L1;((f1=V.value)==null?void 0:f1.firmware())===M4.ArduPilot&&((L1=V.value)==null||L1.setParameter(m1))}function J(){var m1;(m1=V.value)==null||m1.sendGcsHeartbeat()}async function W(m1,f1){var L1;return await((L1=V.value)==null?void 0:L1.uploadMission(m1,f1))}async function r1(m1){var f1,L1;return(L1=await((f1=V.value)==null?void 0:f1.fetchMission(m1)))!=null?L1:[]}async function $(){var m1;(m1=V.value)==null||m1.clearMissions()}async function t1(){var m1;(m1=V.value)==null||m1.startMission()}function l1(){var m1,f1;return[...(f1=(m1=R.value)==null?void 0:m1.entries())!=null?f1:[]].filter(([,L1])=>L1>=0).map(([L1])=>L1)}function V1(m1){var L1,e1;const f1=(L1=R.value)==null?void 0:L1.get(m1);f1!==void 0&&((e1=V.value)==null||e1.setMode(f1))}Pt.onMainConnection.add(()=>{const m1=Pt.mainConnection();m1!==void 0&&(a.value.val=m1.uri())}),Pt.addConnection(a.value.val,pH.MAVLink);const A1=m1=>{var L1;return((L1=m1==null?void 0:m1.last())==null?void 0:L1.deref())||void 0};m3.onVehicles.once(m1=>{V.value=A1(m1),R.value=V.value.modesAvailable(),H.value=V.value.icon(),g.value=V.value.configurationPages(),V.value.onAltitude.add(f1=>{Object.assign(d,f1)}),V.value.onAttitude.add(f1=>{Object.assign(C,f1)}),V.value.onArm.add(f1=>{f.value=f1}),V.value.onTakeoff.add(f1=>{M.value=f1}),V.value.onCpuLoad.add(f1=>{e.value=f1}),V.value.onPosition.add(f1=>{Object.assign(m,f1)}),V.value.onVelocity.add(f1=>{Object.assign(p,f1)}),V.value.onPowerSupply.add(f1=>{Object.assign(u,f1)}),V.value.onStatusText.add(f1=>{Object.assign(v,f1)}),V.value.onStatusGPS.add(f1=>{Object.assign(S,f1)}),V.value.onGenericVariables.add(f1=>{Object.assign(y,f1)}),V.value.onMAVLinkMessage.add(se.HEARTBEAT,f1=>{if(f1.header.component_id!=1)return;const L1=f1.message;s.value=L1.autopilot.type,l.value=L1.mavtype.type,o.value=new Date}),A1(m1).onMode.add(f1=>{var L1,e1;D.value=[...(e1=(L1=R.value)==null?void 0:L1.entries())!=null?e1:[]].filter(([,Y])=>Y===f1).map(([Y])=>Y).first()})}),T1(V,async m1=>{if(m1===void 0)return;const f1=window;f1.vehicle={arm:w,disarm:x,modesAvailable:()=>{console.log(l1())},setFlightMode:V1},Y4(it.mavlink_arm,w),Y4(it.mavlink_disarm,x)});const n1=k21(),M1=new zk1,X=new Uk1;n1.registerControllerUpdateCallback(M1.updateControllerData),n1.registerControllerUpdateCallback(X.updateControllerData),setInterval(()=>{!V.value||(M1.vehicle===void 0&&M1.setVehicle(V.value),n1.enableForwarding&&M1.sendManualControl())},40),setInterval(()=>J(),1e3),setInterval(()=>{n1.enableForwarding&&X.sendCockpitActions()},10);const s1=q(()=>({bundlePolicy:"max-bundle",iceServers:[{urls:`turn:${t.value}:3478`,username:"user",credential:"pwd"},{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun1.l.google.com:19302"},{urls:"stun:stun2.l.google.com:19302"},{urls:"stun:stun3.l.google.com:19302"},{urls:"stun:stun4.l.google.com:19302"}]}));return{arm:w,takeoff:U,changeAlt:E,land:O,disarm:x,goTo:z,modesAvailable:l1,setFlightMode:V1,sendGcsHeartbeat:J,configure:F,fetchMission:r1,uploadMission:W,clearMissions:$,startMission:t1,globalAddress:t,mainConnectionURI:a,webRTCSignallingURI:n,cpuLoad:e,lastHeartbeat:o,firmwareType:s,vehicleType:l,altitude:d,attitude:C,coordinates:m,velocity:p,powerSupply:u,statusText:v,statusGPS:S,mode:D,modes:R,isArmed:f,flying:M,isVehicleOnline:N,icon:H,configurationPages:g,rtcConfiguration:s1,genericVariables:y}}),YB1=e=>(Dt("data-v-26225d3c"),e=e(),yt(),e),$B1={class:"custom-select"},qB1=["value"],KB1=YB1(()=>K("span",{class:"custom-arrow"},null,-1)),jB1=n2({__name:"Dropdown",props:{modelValue:{},options:{},disabled:{type:Boolean,default:!1},nameKey:{default:void 0},valueKey:{default:void 0}},emits:["update:modelValue"],setup(e,{emit:t}){const i=e,a=t,r=j2(i).options,n=j2(i).disabled,o=j2(i).modelValue,s=j2(i).nameKey,l=j2(i).valueKey;return(d,C)=>(C1(),N1("div",$B1,[N2(K("select",{"onUpdate:modelValue":[C[0]||(C[0]=m=>de(o)?o.value=m:null),C[1]||(C[1]=m=>a("update:modelValue",m))],class:c2(["flex items-center justify-center w-full py-1 pl-2 pr-8 text-base font-bold transition-all border-0 rounded-md shadow-inner cursor-pointer h-9 bg-slate-800/60 text-slate-100 hover:bg-slate-600/60",{"pointer-events-none":B(n)}])},[(C1(!0),N1(Y1,null,fe(B(r),m=>(C1(),N1("option",{key:m,value:B(l)?m[B(l)]:m},q1(B(s)!==void 0?m[B(s)]:m),9,qB1))),128))],2),[[OV,B(o)]]),KB1]))}});const w5=(e,t)=>{const i=e.__vccOpts||e;for(const[a,r]of t)i[a]=r;return i},Eo=w5(jB1,[["__scopeId","data-v-26225d3c"]]),QC=er("alert",()=>{const e=$2([new ii(_e.Success,"Cockpit started")]),t=R5("cockpit-enable-voice-alerts",!0),i=$2([]),a=R5("cockpit-selected-alert-speech-voice",void 0),r=R5("cockpit-enabled-alert-levels",[{level:_e.Success,enabled:!0},{level:_e.Error,enabled:!0},{level:_e.Info,enabled:!1},{level:_e.Warning,enabled:!0},{level:_e.Critical,enabled:!0}]),n=q(()=>e.sort((m,u)=>m.time_created.getTime()-u.time_created.getTime())),o=m=>{switch(e.push(m),m.level){case _e.Success:console.log(m.message);break;case _e.Error:console.error(m.message);break;case _e.Info:console.info(m.message);break;case _e.Warning:console.warn(m.message);break;case _e.Critical:console.error(m.message);break;default:unimplemented(`A new alert level was added but we have not updated + this part of the code. Regardless of that, here's the alert message: ${m.message}`);break}},s=window.speechSynthesis,l=[];s.onvoiceschanged=()=>{let m,u;if(s.getVoices().forEach(p=>{i.push(p),p.default&&(m=p.name),p.lang===navigator.language&&(u=p.name)}),a.value===void 0){if(u!==void 0){a.value=u;return}m&&(a.value=m)}};const d=q(()=>i.map(m=>({value:m.name,name:`${m.name} (${m.lang})`})));function C(m){const u=new SpeechSynthesisUtterance(m),p=i.find(V=>V.name===a.value);p&&(u.voice=p,u.lang=p.lang),l.push(u),u.onend=function(){delete l[l.indexOf(u)]},u.onerror=function(V){console.error(`SpeechSynthesisUtterance error: ${V.error}`)},s.speak(u)}return T1(e,()=>{const m=e.slice(-1)[0],u=r.value.find(p=>p.level===m.level);!t.value||(u===void 0||!u.enabled)&&!m.message.startsWith("#")||(C(m.level),C(m.message))}),{alerts:e,enableVoiceAlerts:t,enabledAlertLevels:r,selectedAlertSpeechVoiceName:a,availableAlertSpeechVoiceNames:d,sortedAlerts:n,pushAlert:o}});const uo=h2()({name:"VCardActions",props:F2(),setup(e,t){let{slots:i}=t;return I0({VBtn:{slim:!0,variant:"text"}}),M2(()=>{var a;return P("div",{class:["v-card-actions",e.class],style:e.style},[(a=i.default)==null?void 0:a.call(i)])}),{}}}),QB1=bo("v-card-subtitle"),Wi=bo("v-card-title");function LH(e){return sH(()=>{const t=[],i={};if(e.value.background)if(xp(e.value.background)){if(i.backgroundColor=e.value.background,!e.value.text&&sF1(e.value.background)){const a=li(e.value.background);if(a.a==null||a.a===1){const r=Ak(a);i.color=r,i.caretColor=r}}}else t.push(`bg-${e.value.background}`);return e.value.text&&(xp(e.value.text)?(i.color=e.value.text,i.caretColor=e.value.text):t.push(`text-${e.value.text}`)),{colorClasses:t,colorStyles:i}})}function Bi(e,t){const i=q(()=>({text:de(e)?e.value:t?e[t]:null})),{colorClasses:a,colorStyles:r}=LH(i);return{textColorClasses:a,textColorStyles:r}}function d0(e,t){const i=q(()=>({background:de(e)?e.value:t?e[t]:null})),{colorClasses:a,colorStyles:r}=LH(i);return{backgroundColorClasses:a,backgroundColorStyles:r}}const JB1=["x-small","small","default","large","x-large"],Po=k1({size:{type:[String,Number],default:"default"}},"size");function x8(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:P3();return sH(()=>{let i,a;return Jc(JB1,e.size)?i=`${t}--size-${e.size}`:e.size&&(a={width:f2(e.size),height:f2(e.size)}),{sizeClasses:i,sizeStyles:a}})}const T5=k1({tag:{type:String,default:"div"}},"tag"),ez1=k1({color:String,start:Boolean,end:Boolean,icon:Ce,...F2(),...Po(),...T5({tag:"i"}),...p5()},"VIcon"),Ze=h2()({name:"VIcon",props:ez1(),setup(e,t){let{attrs:i,slots:a}=t;const r=i1(),{themeClasses:n}=N5(e),{iconData:o}=sk1(q(()=>r.value||e.icon)),{sizeClasses:s}=x8(e),{textColorClasses:l,textColorStyles:d}=Bi(t2(e,"color"));return M2(()=>{var m,u;const C=(m=a.default)==null?void 0:m.call(a);return C&&(r.value=(u=sk(C).filter(p=>p.type===x4&&p.children&&typeof p.children=="string")[0])==null?void 0:u.children),P(o.value.component,{tag:e.tag,icon:o.value.icon,class:["v-icon","notranslate",n.value,s.value,l.value,{"v-icon--clickable":!!i.onClick,"v-icon--start":e.start,"v-icon--end":e.end},e.class],style:[s.value?void 0:{fontSize:f2(e.size),height:f2(e.size),width:f2(e.size)},d.value,e.style],role:i.onClick?"button":void 0,"aria-hidden":!i.onClick},{default:()=>[C]})}),{}}});const ar=k1({height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},"dimension");function rr(e){return{dimensionStyles:q(()=>({height:f2(e.height),maxHeight:f2(e.maxHeight),maxWidth:f2(e.maxWidth),minHeight:f2(e.minHeight),minWidth:f2(e.minWidth),width:f2(e.width)}))}}function tz1(e){return{aspectStyles:q(()=>{const t=Number(e.aspectRatio);return t?{paddingBottom:String(1/t*100)+"%"}:void 0})}}const B21=k1({aspectRatio:[String,Number],contentClass:String,inline:Boolean,...F2(),...ar()},"VResponsive"),d_=h2()({name:"VResponsive",props:B21(),setup(e,t){let{slots:i}=t;const{aspectStyles:a}=tz1(e),{dimensionStyles:r}=rr(e);return M2(()=>{var n;return P("div",{class:["v-responsive",{"v-responsive--inline":e.inline},e.class],style:[r.value,e.style]},[P("div",{class:"v-responsive__sizer",style:a.value},null),(n=i.additional)==null?void 0:n.call(i),i.default&&P("div",{class:["v-responsive__content",e.contentClass]},[i.default()])])}),{}}}),Io=k1({transition:{type:[Boolean,String,Object],default:"fade-transition",validator:e=>e!==!0}},"transition"),g4=(e,t)=>{let{slots:i}=t;const{transition:a,disabled:r,...n}=e,{component:o=q5,...s}=typeof a=="object"?a:{};return u5(o,V2(typeof a=="string"?{name:r?"":a}:s,n,{disabled:r}),i)};function iz1(e,t){if(!oH)return;const i=t.modifiers||{},a=t.value,{handler:r,options:n}=typeof a=="object"?a:{handler:a,options:{}},o=new IntersectionObserver(function(){var m;let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],l=arguments.length>1?arguments[1]:void 0;const d=(m=e._observe)==null?void 0:m[t.instance.$.uid];if(!d)return;const C=s.some(u=>u.isIntersecting);r&&(!i.quiet||d.init)&&(!i.once||C||d.init)&&r(C,s,l),C&&i.once?z21(e,t):d.init=!0},n);e._observe=Object(e._observe),e._observe[t.instance.$.uid]={init:!1,observer:o},o.observe(e)}function z21(e,t){var a;const i=(a=e._observe)==null?void 0:a[t.instance.$.uid];!i||(i.observer.unobserve(e),delete e._observe[t.instance.$.uid])}const az1={mounted:iz1,unmounted:z21},Z21=az1,rz1=k1({alt:String,cover:Boolean,draggable:{type:[Boolean,String],default:void 0},eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:()=>({root:void 0,rootMargin:void 0,threshold:void 0})},sizes:String,src:{type:[String,Object],default:""},crossorigin:String,referrerpolicy:String,srcset:String,position:String,...B21(),...F2(),...Io()},"VImg"),G21=h2()({name:"VImg",directives:{intersect:Z21},props:rz1(),emits:{loadstart:e=>!0,load:e=>!0,error:e=>!0},setup(e,t){let{emit:i,slots:a}=t;const r=b5("VImg"),n=g2(""),o=i1(),s=g2(e.eager?"loading":"idle"),l=g2(),d=g2(),C=q(()=>e.src&&typeof e.src=="object"?{src:e.src.src,srcset:e.srcset||e.src.srcset,lazySrc:e.lazySrc||e.src.lazySrc,aspect:Number(e.aspectRatio||e.src.aspect||0)}:{src:e.src,srcset:e.srcset,lazySrc:e.lazySrc,aspect:Number(e.aspectRatio||0)}),m=q(()=>C.value.aspect||l.value/d.value||0);T1(()=>e.src,()=>{u(s.value!=="idle")}),T1(m,(N,w)=>{!N&&w&&o.value&&H(o.value)}),B5(()=>u());function u(N){if(!(e.eager&&N)&&!(oH&&!N&&!e.eager)){if(s.value="loading",C.value.lazySrc){const w=new Image;w.src=C.value.lazySrc,H(w,null)}!C.value.src||k2(()=>{var w;i("loadstart",((w=o.value)==null?void 0:w.currentSrc)||C.value.src),setTimeout(()=>{var x;if(!r.isUnmounted)if((x=o.value)!=null&&x.complete){if(o.value.naturalWidth||V(),s.value==="error")return;m.value||H(o.value,null),s.value==="loading"&&p()}else m.value||H(o.value),f()})})}}function p(){var N;r.isUnmounted||(f(),H(o.value),s.value="loaded",i("load",((N=o.value)==null?void 0:N.currentSrc)||C.value.src))}function V(){var N;r.isUnmounted||(s.value="error",i("error",((N=o.value)==null?void 0:N.currentSrc)||C.value.src))}function f(){const N=o.value;N&&(n.value=N.currentSrc||N.src)}let M=-1;xe(()=>{clearTimeout(M)});function H(N){let w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:100;const x=()=>{if(clearTimeout(M),r.isUnmounted)return;const{naturalHeight:U,naturalWidth:E}=N;U||E?(l.value=E,d.value=U):!N.complete&&s.value==="loading"&&w!=null?M=window.setTimeout(x,w):(N.currentSrc.endsWith(".svg")||N.currentSrc.startsWith("data:image/svg+xml"))&&(l.value=1,d.value=1)};x()}const g=q(()=>({"v-img__img--cover":e.cover,"v-img__img--contain":!e.cover})),_=()=>{var x;if(!C.value.src||s.value==="idle")return null;const N=P("img",{class:["v-img__img",g.value],style:{objectPosition:e.position},src:C.value.src,srcset:C.value.srcset,alt:e.alt,crossorigin:e.crossorigin,referrerpolicy:e.referrerpolicy,draggable:e.draggable,sizes:e.sizes,ref:o,onLoad:p,onError:V},null),w=(x=a.sources)==null?void 0:x.call(a);return P(g4,{transition:e.transition,appear:!0},{default:()=>[N2(w?P("picture",{class:"v-img__picture"},[w,N]):N,[[Ut,s.value==="loaded"]])]})},v=()=>P(g4,{transition:e.transition},{default:()=>[C.value.lazySrc&&s.value!=="loaded"&&P("img",{class:["v-img__img","v-img__img--preload",g.value],style:{objectPosition:e.position},src:C.value.lazySrc,alt:e.alt,crossorigin:e.crossorigin,referrerpolicy:e.referrerpolicy,draggable:e.draggable},null)]}),S=()=>a.placeholder?P(g4,{transition:e.transition,appear:!0},{default:()=>[(s.value==="loading"||s.value==="error"&&!a.error)&&P("div",{class:"v-img__placeholder"},[a.placeholder()])]}):null,y=()=>a.error?P(g4,{transition:e.transition,appear:!0},{default:()=>[s.value==="error"&&P("div",{class:"v-img__error"},[a.error()])]}):null,D=()=>e.gradient?P("div",{class:"v-img__gradient",style:{backgroundImage:`linear-gradient(${e.gradient})`}},null):null,R=g2(!1);{const N=T1(m,w=>{w&&(requestAnimationFrame(()=>{requestAnimationFrame(()=>{R.value=!0})}),N())})}return M2(()=>{const N=d_.filterProps(e);return N2(P(d_,V2({class:["v-img",{"v-img--booting":!R.value},e.class],style:[{width:f2(e.width==="auto"?l.value:e.width)},e.style]},N,{aspectRatio:m.value,"aria-label":e.alt,role:e.alt?"img":void 0}),{additional:()=>P(Y1,null,[P(_,null,null),P(v,null,null),P(D,null,null),P(S,null,null),P(y,null,null)]),default:a.default}),[[k5("intersect"),{handler:u,options:e.options},null,{once:!0}]])}),{currentSrc:n,image:o,state:s,naturalWidth:l,naturalHeight:d}}}),nz1=[null,"default","comfortable","compact"],fi=k1({density:{type:String,default:"default",validator:e=>nz1.includes(e)}},"density");function I3(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:P3();return{densityClasses:q(()=>`${t}--density-${e.density}`)}}const p0=k1({rounded:{type:[Boolean,Number,String],default:void 0}},"rounded");function F0(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:P3();return{roundedClasses:q(()=>{const a=de(e)?e.value:e.rounded,r=[];if(a===!0||a==="")r.push(`${t}--rounded`);else if(typeof a=="string"||a===0)for(const n of String(a).split(" "))r.push(`rounded-${n}`);return r})}}const oz1=["elevated","flat","tonal","outlined","text","plain"];function F8(e,t){return P(Y1,null,[e&&P("span",{key:"overlay",class:`${t}__overlay`},null),P("span",{key:"underlay",class:`${t}__underlay`},null)])}const Ea=k1({color:String,variant:{type:String,default:"elevated",validator:e=>oz1.includes(e)}},"variant");function k8(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:P3();const i=q(()=>{const{variant:n}=B(e);return`${t}--variant-${n}`}),{colorClasses:a,colorStyles:r}=LH(q(()=>{const{variant:n,color:o}=B(e);return{[["elevated","flat"].includes(n)?"background":"text"]:o}}));return{colorClasses:a,colorStyles:r,variantClasses:i}}const sz1=k1({start:Boolean,end:Boolean,icon:Ce,image:String,text:String,...F2(),...fi(),...p0(),...Po(),...T5(),...p5(),...Ea({variant:"flat"})},"VAvatar"),ho=h2()({name:"VAvatar",props:sz1(),setup(e,t){let{slots:i}=t;const{themeClasses:a}=N5(e),{colorClasses:r,colorStyles:n,variantClasses:o}=k8(e),{densityClasses:s}=I3(e),{roundedClasses:l}=F0(e),{sizeClasses:d,sizeStyles:C}=x8(e);return M2(()=>P(e.tag,{class:["v-avatar",{"v-avatar--start":e.start,"v-avatar--end":e.end},a.value,r.value,s.value,l.value,d.value,o.value,e.class],style:[n.value,C.value,e.style]},{default:()=>{var m,u;return[e.image?P(G21,{key:"image",src:e.image,alt:"",cover:!0},null):e.icon?P(Ze,{key:"icon",icon:e.icon},null):(u=(m=i.default)==null?void 0:m.call(i))!=null?u:e.text,F8(!1,"v-avatar")]}})),{}}}),lz1=k1({defaults:Object,disabled:Boolean,reset:[Number,String],root:[Boolean,String],scoped:Boolean},"VDefaultsProvider"),ot=h2(!1)({name:"VDefaultsProvider",props:lz1(),setup(e,t){let{slots:i}=t;const{defaults:a,disabled:r,reset:n,root:o,scoped:s}=j2(e);return I0(a,{reset:n,root:o,scoped:s,disabled:r}),()=>{var l;return(l=i.default)==null?void 0:l.call(i)}}}),cz1=k1({appendAvatar:String,appendIcon:Ce,prependAvatar:String,prependIcon:Ce,subtitle:[String,Number],title:[String,Number],...F2(),...fi()},"VCardItem"),dz1=h2()({name:"VCardItem",props:cz1(),setup(e,t){let{slots:i}=t;return M2(()=>{var d;const a=!!(e.prependAvatar||e.prependIcon),r=!!(a||i.prepend),n=!!(e.appendAvatar||e.appendIcon),o=!!(n||i.append),s=!!(e.title!=null||i.title),l=!!(e.subtitle!=null||i.subtitle);return P("div",{class:["v-card-item",e.class],style:e.style},[r&&P("div",{key:"prepend",class:"v-card-item__prepend"},[i.prepend?P(ot,{key:"prepend-defaults",disabled:!a,defaults:{VAvatar:{density:e.density,icon:e.prependIcon,image:e.prependAvatar}}},i.prepend):a&&P(ho,{key:"prepend-avatar",density:e.density,icon:e.prependIcon,image:e.prependAvatar},null)]),P("div",{class:"v-card-item__content"},[s&&P(Wi,{key:"title"},{default:()=>{var C,m;return[(m=(C=i.title)==null?void 0:C.call(i))!=null?m:e.title]}}),l&&P(QB1,{key:"subtitle"},{default:()=>{var C,m;return[(m=(C=i.subtitle)==null?void 0:C.call(i))!=null?m:e.subtitle]}}),(d=i.default)==null?void 0:d.call(i)]),o&&P("div",{key:"append",class:"v-card-item__append"},[i.append?P(ot,{key:"append-defaults",disabled:!n,defaults:{VAvatar:{density:e.density,icon:e.appendIcon,image:e.appendAvatar}}},i.append):n&&P(ho,{key:"append-avatar",density:e.density,icon:e.appendIcon,image:e.appendAvatar},null)])])}),{}}}),C0=bo("v-card-text"),Pa=k1({border:[Boolean,Number,String]},"border");function nr(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:P3();return{borderClasses:q(()=>{const a=de(e)?e.value:e.border,r=[];if(a===!0||a==="")r.push(`${t}--border`);else if(typeof a=="string"||a===0)for(const n of String(a).split(" "))r.push(`border-${n}`);return r})}}const Xi=k1({elevation:{type:[Number,String],validator(e){const t=parseInt(e);return!isNaN(t)&&t>=0&&t<=24}}},"elevation");function O3(e){return{elevationClasses:q(()=>{const i=de(e)?e.value:e.elevation,a=[];return i==null||a.push(`elevation-${i}`),a})}}function W21(e,t){const i=i1(),a=g2(!1);if(oH){const r=new IntersectionObserver(n=>{e==null||e(n,r),a.value=!!n.find(o=>o.isIntersecting)},t);xe(()=>{r.disconnect()}),T1(i,(n,o)=>{o&&(r.unobserve(o),a.value=!1),n&&r.observe(n)},{flush:"post"})}return{intersectionRef:i,isIntersecting:a}}const C_={center:"center",top:"bottom",bottom:"top",left:"right",right:"left"},JC=k1({location:String},"location");function em(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i=arguments.length>2?arguments[2]:void 0;const{isRtl:a}=pi();return{locationStyles:q(()=>{if(!e.location)return{};const{side:n,align:o}=Op(e.location.split(" ").length>1?e.location:`${e.location} center`,a.value);function s(d){return i?i(d):0}const l={};return n!=="center"&&(t?l[C_[n]]=`calc(100% - ${s(n)}px)`:l[n]=0),o!=="center"?t?l[C_[o]]=`calc(100% - ${s(o)}px)`:l[o]=0:(n==="center"?l.top=l.left="50%":l[{top:"left",bottom:"left",left:"top",right:"top"}[n]]="50%",l.transform={top:"translateX(-50%)",bottom:"translateX(-50%)",left:"translateY(-50%)",right:"translateY(-50%)",center:"translate(-50%, -50%)"}[n]),l})}}const Cz1=k1({absolute:Boolean,active:{type:Boolean,default:!0},bgColor:String,bgOpacity:[Number,String],bufferValue:{type:[Number,String],default:0},clickable:Boolean,color:String,height:{type:[Number,String],default:4},indeterminate:Boolean,max:{type:[Number,String],default:100},modelValue:{type:[Number,String],default:0},reverse:Boolean,stream:Boolean,striped:Boolean,roundedBar:Boolean,...F2(),...JC({location:"top"}),...p0(),...T5(),...p5()},"VProgressLinear"),tm=h2()({name:"VProgressLinear",props:Cz1(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:i}=t;const a=ue(e,"modelValue"),{isRtl:r,rtlClasses:n}=pi(),{themeClasses:o}=N5(e),{locationStyles:s}=em(e),{textColorClasses:l,textColorStyles:d}=Bi(e,"color"),{backgroundColorClasses:C,backgroundColorStyles:m}=d0(q(()=>e.bgColor||e.color)),{backgroundColorClasses:u,backgroundColorStyles:p}=d0(e,"color"),{roundedClasses:V}=F0(e),{intersectionRef:f,isIntersecting:M}=W21(),H=q(()=>parseInt(e.max,10)),g=q(()=>parseInt(e.height,10)),_=q(()=>parseFloat(e.bufferValue)/H.value*100),v=q(()=>parseFloat(a.value)/H.value*100),S=q(()=>r.value!==e.reverse),y=q(()=>e.indeterminate?"fade-transition":"slide-x-transition"),D=q(()=>e.bgOpacity==null?e.bgOpacity:parseFloat(e.bgOpacity));function R(N){if(!f.value)return;const{left:w,right:x,width:U}=f.value.getBoundingClientRect(),E=S.value?U-N.clientX+(x-U):N.clientX-w;a.value=Math.round(E/U*H.value)}return M2(()=>P(e.tag,{ref:f,class:["v-progress-linear",{"v-progress-linear--absolute":e.absolute,"v-progress-linear--active":e.active&&M.value,"v-progress-linear--reverse":S.value,"v-progress-linear--rounded":e.rounded,"v-progress-linear--rounded-bar":e.roundedBar,"v-progress-linear--striped":e.striped},V.value,o.value,n.value,e.class],style:[{bottom:e.location==="bottom"?0:void 0,top:e.location==="top"?0:void 0,height:e.active?f2(g.value):0,"--v-progress-linear-height":f2(g.value),...s.value},e.style],role:"progressbar","aria-hidden":e.active?"false":"true","aria-valuemin":"0","aria-valuemax":e.max,"aria-valuenow":e.indeterminate?void 0:v.value,onClick:e.clickable&&R},{default:()=>[e.stream&&P("div",{key:"stream",class:["v-progress-linear__stream",l.value],style:{...d.value,[S.value?"left":"right"]:f2(-g.value),borderTop:`${f2(g.value/2)} dotted`,opacity:D.value,top:`calc(50% - ${f2(g.value/4)})`,width:f2(100-_.value,"%"),"--v-progress-linear-stream-to":f2(g.value*(S.value?1:-1))}},null),P("div",{class:["v-progress-linear__background",C.value],style:[m.value,{opacity:D.value,width:f2(e.stream?_.value:100,"%")}]},null),P(q5,{name:y.value},{default:()=>[e.indeterminate?P("div",{class:"v-progress-linear__indeterminate"},[["long","short"].map(N=>P("div",{key:N,class:["v-progress-linear__indeterminate",N,u.value],style:p.value},null))]):P("div",{class:["v-progress-linear__determinate",u.value],style:[p.value,{width:f2(v.value,"%")}]},null)]}),i.default&&P("div",{class:"v-progress-linear__content"},[i.default({value:v.value,buffer:_.value})])]})),{}}}),im=k1({loading:[Boolean,String]},"loader");function B8(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:P3();return{loaderClasses:q(()=>({[`${t}--loading`]:e.loading}))}}function am(e,t){var a;let{slots:i}=t;return P("div",{class:`${e.name}__loader`},[((a=i.default)==null?void 0:a.call(i,{color:e.color,isActive:e.active}))||P(tm,{absolute:e.absolute,active:e.active,color:e.color,height:"2",indeterminate:!0},null)])}const mz1=["static","relative","fixed","absolute","sticky"],HH=k1({position:{type:String,validator:e=>mz1.includes(e)}},"position");function MH(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:P3();return{positionClasses:q(()=>e.position?`${t}--${e.position}`:void 0)}}function uz1(){const e=b5("useRoute");return q(()=>{var t;return(t=e==null?void 0:e.proxy)==null?void 0:t.$route})}function X21(){var e,t;return(t=(e=b5("useRouter"))==null?void 0:e.proxy)==null?void 0:t.$router}function rm(e,t){const i=fn("RouterLink"),a=q(()=>!!(e.href||e.to)),r=q(()=>(a==null?void 0:a.value)||Rv(t,"click")||Rv(e,"click"));if(typeof i=="string")return{isLink:a,isClickable:r,href:t2(e,"href")};const n=e.to?i.useLink(e):void 0,o=uz1();return{isLink:a,isClickable:r,route:n==null?void 0:n.route,navigate:n==null?void 0:n.navigate,isActive:n&&q(()=>{var s,l,d;return e.exact?o.value?((d=n.isExactActive)==null?void 0:d.value)&&wa(n.route.value.query,o.value.query):(l=n.isExactActive)==null?void 0:l.value:(s=n.isActive)==null?void 0:s.value}),href:q(()=>e.to?n==null?void 0:n.route.value.href:e.href)}}const nm=k1({href:String,replace:Boolean,to:[String,Object],exact:Boolean},"router");let Iu=!1;function hz1(e,t){let i=!1,a,r;ze&&(k2(()=>{window.addEventListener("popstate",n),a=e==null?void 0:e.beforeEach((o,s,l)=>{Iu?i?t(l):l():setTimeout(()=>i?t(l):l()),Iu=!0}),r=e==null?void 0:e.afterEach(()=>{Iu=!1})}),j5(()=>{window.removeEventListener("popstate",n),a==null||a(),r==null||r()}));function n(o){var s;(s=o.state)!=null&&s.replaced||(i=!0,setTimeout(()=>i=!1))}}const jp=Symbol("rippleStop"),pz1=80;function m_(e,t){e.style.transform=t,e.style.webkitTransform=t}function Qp(e){return e.constructor.name==="TouchEvent"}function Y21(e){return e.constructor.name==="KeyboardEvent"}const fz1=function(e,t){var m;let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=0,r=0;if(!Y21(e)){const u=t.getBoundingClientRect(),p=Qp(e)?e.touches[e.touches.length-1]:e;a=p.clientX-u.left,r=p.clientY-u.top}let n=0,o=.3;(m=t._ripple)!=null&&m.circle?(o=.15,n=t.clientWidth/2,n=i.center?n:n+Math.sqrt((a-n)**2+(r-n)**2)/4):n=Math.sqrt(t.clientWidth**2+t.clientHeight**2)/2;const s=`${(t.clientWidth-n*2)/2}px`,l=`${(t.clientHeight-n*2)/2}px`,d=i.center?s:`${a-n}px`,C=i.center?l:`${r-n}px`;return{radius:n,scale:o,x:d,y:C,centerX:s,centerY:l}},fd={show(e,t){var p;let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!((p=t==null?void 0:t._ripple)!=null&&p.enabled))return;const a=document.createElement("span"),r=document.createElement("span");a.appendChild(r),a.className="v-ripple__container",i.class&&(a.className+=` ${i.class}`);const{radius:n,scale:o,x:s,y:l,centerX:d,centerY:C}=fz1(e,t,i),m=`${n*2}px`;r.className="v-ripple__animation",r.style.width=m,r.style.height=m,t.appendChild(a);const u=window.getComputedStyle(t);u&&u.position==="static"&&(t.style.position="relative",t.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),m_(r,`translate(${s}, ${l}) scale3d(${o},${o},${o})`),r.dataset.activated=String(performance.now()),setTimeout(()=>{r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),m_(r,`translate(${d}, ${C}) scale3d(1,1,1)`)},0)},hide(e){var n;if(!((n=e==null?void 0:e._ripple)!=null&&n.enabled))return;const t=e.getElementsByClassName("v-ripple__animation");if(t.length===0)return;const i=t[t.length-1];if(i.dataset.isHiding)return;i.dataset.isHiding="true";const a=performance.now()-Number(i.dataset.activated),r=Math.max(250-a,0);setTimeout(()=>{i.classList.remove("v-ripple__animation--in"),i.classList.add("v-ripple__animation--out"),setTimeout(()=>{var s;e.getElementsByClassName("v-ripple__animation").length===1&&e.dataset.previousPosition&&(e.style.position=e.dataset.previousPosition,delete e.dataset.previousPosition),((s=i.parentNode)==null?void 0:s.parentNode)===e&&e.removeChild(i.parentNode)},300)},r)}};function $21(e){return typeof e>"u"||!!e}function Ks(e){const t={},i=e.currentTarget;if(!(!(i!=null&&i._ripple)||i._ripple.touched||e[jp])){if(e[jp]=!0,Qp(e))i._ripple.touched=!0,i._ripple.isTouch=!0;else if(i._ripple.isTouch)return;if(t.center=i._ripple.centered||Y21(e),i._ripple.class&&(t.class=i._ripple.class),Qp(e)){if(i._ripple.showTimerCommit)return;i._ripple.showTimerCommit=()=>{fd.show(e,i,t)},i._ripple.showTimer=window.setTimeout(()=>{var a;(a=i==null?void 0:i._ripple)!=null&&a.showTimerCommit&&(i._ripple.showTimerCommit(),i._ripple.showTimerCommit=null)},pz1)}else fd.show(e,i,t)}}function u_(e){e[jp]=!0}function R0(e){const t=e.currentTarget;if(!!(t!=null&&t._ripple)){if(window.clearTimeout(t._ripple.showTimer),e.type==="touchend"&&t._ripple.showTimerCommit){t._ripple.showTimerCommit(),t._ripple.showTimerCommit=null,t._ripple.showTimer=window.setTimeout(()=>{R0(e)});return}window.setTimeout(()=>{t._ripple&&(t._ripple.touched=!1)}),fd.hide(t)}}function q21(e){const t=e.currentTarget;!(t!=null&&t._ripple)||(t._ripple.showTimerCommit&&(t._ripple.showTimerCommit=null),window.clearTimeout(t._ripple.showTimer))}let js=!1;function K21(e){!js&&(e.keyCode===vv.enter||e.keyCode===vv.space)&&(js=!0,Ks(e))}function j21(e){js=!1,R0(e)}function Q21(e){js&&(js=!1,R0(e))}function J21(e,t,i){var o;const{value:a,modifiers:r}=t,n=$21(a);if(n||fd.hide(e),e._ripple=(o=e._ripple)!=null?o:{},e._ripple.enabled=n,e._ripple.centered=r.center,e._ripple.circle=r.circle,Pp(a)&&a.class&&(e._ripple.class=a.class),n&&!i){if(r.stop){e.addEventListener("touchstart",u_,{passive:!0}),e.addEventListener("mousedown",u_);return}e.addEventListener("touchstart",Ks,{passive:!0}),e.addEventListener("touchend",R0,{passive:!0}),e.addEventListener("touchmove",q21,{passive:!0}),e.addEventListener("touchcancel",R0),e.addEventListener("mousedown",Ks),e.addEventListener("mouseup",R0),e.addEventListener("mouseleave",R0),e.addEventListener("keydown",K21),e.addEventListener("keyup",j21),e.addEventListener("blur",Q21),e.addEventListener("dragstart",R0,{passive:!0})}else!n&&i&&ee1(e)}function ee1(e){e.removeEventListener("mousedown",Ks),e.removeEventListener("touchstart",Ks),e.removeEventListener("touchend",R0),e.removeEventListener("touchmove",q21),e.removeEventListener("touchcancel",R0),e.removeEventListener("mouseup",R0),e.removeEventListener("mouseleave",R0),e.removeEventListener("keydown",K21),e.removeEventListener("keyup",j21),e.removeEventListener("dragstart",R0),e.removeEventListener("blur",Q21)}function Vz1(e,t){J21(e,t,!1)}function Lz1(e){delete e._ripple,ee1(e)}function Hz1(e,t){if(t.value===t.oldValue)return;const i=$21(t.oldValue);J21(e,t,i)}const Fn={mounted:Vz1,unmounted:Lz1,updated:Hz1},Mz1=k1({appendAvatar:String,appendIcon:Ce,disabled:Boolean,flat:Boolean,hover:Boolean,image:String,link:{type:Boolean,default:void 0},prependAvatar:String,prependIcon:Ce,ripple:{type:[Boolean,Object],default:!0},subtitle:[String,Number],text:[String,Number],title:[String,Number],...Pa(),...F2(),...fi(),...ar(),...Xi(),...im(),...JC(),...HH(),...p0(),...nm(),...T5(),...p5(),...Ea({variant:"elevated"})},"VCard"),st=h2()({name:"VCard",directives:{Ripple:Fn},props:Mz1(),setup(e,t){let{attrs:i,slots:a}=t;const{themeClasses:r}=N5(e),{borderClasses:n}=nr(e),{colorClasses:o,colorStyles:s,variantClasses:l}=k8(e),{densityClasses:d}=I3(e),{dimensionStyles:C}=rr(e),{elevationClasses:m}=O3(e),{loaderClasses:u}=B8(e),{locationStyles:p}=em(e),{positionClasses:V}=MH(e),{roundedClasses:f}=F0(e),M=rm(e,i),H=q(()=>e.link!==!1&&M.isLink.value),g=q(()=>!e.disabled&&e.link!==!1&&(e.link||M.isClickable.value));return M2(()=>{const _=H.value?"a":e.tag,v=!!(a.title||e.title!=null),S=!!(a.subtitle||e.subtitle!=null),y=v||S,D=!!(a.append||e.appendAvatar||e.appendIcon),R=!!(a.prepend||e.prependAvatar||e.prependIcon),N=!!(a.image||e.image),w=y||R||D,x=!!(a.text||e.text!=null);return N2(P(_,{class:["v-card",{"v-card--disabled":e.disabled,"v-card--flat":e.flat,"v-card--hover":e.hover&&!(e.disabled||e.flat),"v-card--link":g.value},r.value,n.value,o.value,d.value,m.value,u.value,V.value,f.value,l.value,e.class],style:[s.value,C.value,p.value,e.style],href:M.href.value,onClick:g.value&&M.navigate,tabindex:e.disabled?-1:void 0},{default:()=>{var U;return[N&&P("div",{key:"image",class:"v-card__image"},[a.image?P(ot,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{cover:!0,src:e.image}}},a.image):P(G21,{key:"image-img",cover:!0,src:e.image},null)]),P(am,{name:"v-card",active:!!e.loading,color:typeof e.loading=="boolean"?void 0:e.loading},{default:a.loader}),w&&P(dz1,{key:"item",prependAvatar:e.prependAvatar,prependIcon:e.prependIcon,title:e.title,subtitle:e.subtitle,appendAvatar:e.appendAvatar,appendIcon:e.appendIcon},{default:a.item,prepend:a.prepend,title:a.title,subtitle:a.subtitle,append:a.append}),x&&P(C0,{key:"text"},{default:()=>{var E,O;return[(O=(E=a.text)==null?void 0:E.call(a))!=null?O:e.text]}}),(U=a.default)==null?void 0:U.call(a),a.actions&&P(uo,null,{default:a.actions}),F8(g.value,"v-card")]}}),[[k5("ripple"),g.value&&e.ripple]])}),{}}});const gz1=k1({color:String,inset:Boolean,length:[Number,String],thickness:[Number,String],vertical:Boolean,...F2(),...p5()},"VDivider"),Qs=h2()({name:"VDivider",props:gz1(),setup(e,t){let{attrs:i}=t;const{themeClasses:a}=N5(e),{textColorClasses:r,textColorStyles:n}=Bi(t2(e,"color")),o=q(()=>{const s={};return e.length&&(s[e.vertical?"maxHeight":"maxWidth"]=f2(e.length)),e.thickness&&(s[e.vertical?"borderRightWidth":"borderTopWidth"]=f2(e.thickness)),s});return M2(()=>P("hr",{class:[{"v-divider":!0,"v-divider--inset":e.inset,"v-divider--vertical":e.vertical},a.value,r.value,e.class],style:[o.value,n.value,e.style],"aria-orientation":!i.role||i.role==="separator"?e.vertical?"vertical":"horizontal":void 0,role:`${i.role||"separator"}`},null)),{}}}),Az1={};function vz1(e,t){return C1(),Q1(st,{class:"elevation-0"},{default:v1(()=>[P(Wi,{class:"flex-centered mt-2"},{default:v1(()=>[Se(e.$slots,"title")]),_:3}),P(Qs),P(C0,{class:"flex-centered flex-column"},{default:v1(()=>[Se(e.$slots,"content")]),_:3})]),_:3})}const kn=w5(Az1,[["render",vz1]]);const _z1=k1({disabled:Boolean,group:Boolean,hideOnLeave:Boolean,leaveAbsolute:Boolean,mode:String,origin:String},"transition");function k0(e,t,i){return h2()({name:e,props:_z1({mode:i,origin:t}),setup(a,r){let{slots:n}=r;const o={onBeforeEnter(s){a.origin&&(s.style.transformOrigin=a.origin)},onLeave(s){if(a.leaveAbsolute){const{offsetTop:l,offsetLeft:d,offsetWidth:C,offsetHeight:m}=s;s._transitionInitialStyles={position:s.style.position,top:s.style.top,left:s.style.left,width:s.style.width,height:s.style.height},s.style.position="absolute",s.style.top=`${l}px`,s.style.left=`${d}px`,s.style.width=`${C}px`,s.style.height=`${m}px`}a.hideOnLeave&&s.style.setProperty("display","none","important")},onAfterLeave(s){if(a.leaveAbsolute&&(s==null?void 0:s._transitionInitialStyles)){const{position:l,top:d,left:C,width:m,height:u}=s._transitionInitialStyles;delete s._transitionInitialStyles,s.style.position=l||"",s.style.top=d||"",s.style.left=C||"",s.style.width=m||"",s.style.height=u||""}}};return()=>{const s=a.group?Gr:q5;return u5(s,{name:a.disabled?"":e,css:!a.disabled,...a.group?void 0:{mode:a.mode},...a.disabled?{}:o},n.default)}}})}function te1(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"in-out";return h2()({name:e,props:{mode:{type:String,default:i},disabled:Boolean},setup(a,r){let{slots:n}=r;return()=>u5(q5,{name:a.disabled?"":e,css:!a.disabled,...a.disabled?{}:t},n.default)}})}function ie1(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";const i=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1)?"width":"height",a=gt(`offset-${i}`);return{onBeforeEnter(o){o._parent=o.parentNode,o._initialStyle={transition:o.style.transition,overflow:o.style.overflow,[i]:o.style[i]}},onEnter(o){const s=o._initialStyle;o.style.setProperty("transition","none","important"),o.style.overflow="hidden";const l=`${o[a]}px`;o.style[i]="0",o.offsetHeight,o.style.transition=s.transition,e&&o._parent&&o._parent.classList.add(e),requestAnimationFrame(()=>{o.style[i]=l})},onAfterEnter:n,onEnterCancelled:n,onLeave(o){o._initialStyle={transition:"",overflow:o.style.overflow,[i]:o.style[i]},o.style.overflow="hidden",o.style[i]=`${o[a]}px`,o.offsetHeight,requestAnimationFrame(()=>o.style[i]="0")},onAfterLeave:r,onLeaveCancelled:r};function r(o){e&&o._parent&&o._parent.classList.remove(e),n(o)}function n(o){const s=o._initialStyle[i];o.style.overflow=o._initialStyle.overflow,s!=null&&(o.style[i]=s),delete o._initialStyle}}const Sz1=k1({target:[Object,Array]},"v-dialog-transition"),gH=h2()({name:"VDialogTransition",props:Sz1(),setup(e,t){let{slots:i}=t;const a={onBeforeEnter(r){r.style.pointerEvents="none",r.style.visibility="hidden"},async onEnter(r,n){var u;await new Promise(p=>requestAnimationFrame(p)),await new Promise(p=>requestAnimationFrame(p)),r.style.visibility="";const{x:o,y:s,sx:l,sy:d,speed:C}=p_(e.target,r),m=P6(r,[{transform:`translate(${o}px, ${s}px) scale(${l}, ${d})`,opacity:0},{}],{duration:225*C,easing:VF1});(u=h_(r))==null||u.forEach(p=>{P6(p,[{opacity:0},{opacity:0,offset:.33},{}],{duration:225*2*C,easing:rd})}),m.finished.then(()=>n())},onAfterEnter(r){r.style.removeProperty("pointer-events")},onBeforeLeave(r){r.style.pointerEvents="none"},async onLeave(r,n){var u;await new Promise(p=>requestAnimationFrame(p));const{x:o,y:s,sx:l,sy:d,speed:C}=p_(e.target,r);P6(r,[{},{transform:`translate(${o}px, ${s}px) scale(${l}, ${d})`,opacity:0}],{duration:125*C,easing:LF1}).finished.then(()=>n()),(u=h_(r))==null||u.forEach(p=>{P6(p,[{},{opacity:0,offset:.2},{opacity:0}],{duration:125*2*C,easing:rd})})},onAfterLeave(r){r.style.removeProperty("pointer-events")}};return()=>e.target?P(q5,V2({name:"dialog-transition"},a,{css:!1}),i):P(q5,{name:"dialog-transition"},i)}});function h_(e){var i;const t=(i=e.querySelector(":scope > .v-card, :scope > .v-sheet, :scope > .v-list"))==null?void 0:i.children;return t&&[...t]}function p_(e,t){const i=Ck(e),a=cH(t),[r,n]=getComputedStyle(t).transformOrigin.split(" ").map(H=>parseFloat(H)),[o,s]=getComputedStyle(t).getPropertyValue("--v-overlay-anchor-origin").split(" ");let l=i.left+i.width/2;o==="left"||s==="left"?l-=i.width/2:(o==="right"||s==="right")&&(l+=i.width/2);let d=i.top+i.height/2;o==="top"||s==="top"?d-=i.height/2:(o==="bottom"||s==="bottom")&&(d+=i.height/2);const C=i.width/a.width,m=i.height/a.height,u=Math.max(1,C,m),p=C/u||0,V=m/u||0,f=a.width*a.height/(window.innerWidth*window.innerHeight),M=f>.12?Math.min(1.5,(f-.12)*10+1):1;return{x:l-(r+a.left),y:d-(n+a.top),sx:p,sy:V,speed:M}}k0("fab-transition","center center","out-in");k0("dialog-bottom-transition");k0("dialog-top-transition");k0("fade-transition");const ae1=k0("scale-transition");k0("scroll-x-transition");k0("scroll-x-reverse-transition");k0("scroll-y-transition");k0("scroll-y-reverse-transition");k0("slide-x-transition");k0("slide-x-reverse-transition");const re1=k0("slide-y-transition");k0("slide-y-reverse-transition");const ne1=te1("expand-transition",ie1()),oe1=te1("expand-x-transition",ie1("",!0));function se1(e){const{t}=ir();function i(a){var l;let{name:r}=a;const n={prepend:"prependAction",prependInner:"prependAction",append:"appendAction",appendInner:"appendAction",clear:"clear"}[r],o=e[`onClick:${r}`],s=o&&n?t(`$vuetify.input.${n}`,(l=e.label)!=null?l:""):void 0;return P(Ze,{icon:e[`${r}Icon`],"aria-label":s,onClick:o},null)}return{InputIcon:i}}const Dz1=k1({active:Boolean,color:String,messages:{type:[Array,String],default:()=>[]},...F2(),...Io({transition:{component:re1,leaveAbsolute:!0,group:!0}})},"VMessages"),yz1=h2()({name:"VMessages",props:Dz1(),setup(e,t){let{slots:i}=t;const a=q(()=>Ft(e.messages)),{textColorClasses:r,textColorStyles:n}=Bi(q(()=>e.color));return M2(()=>P(g4,{transition:e.transition,tag:"div",class:["v-messages",r.value,e.class],style:[n.value,e.style],role:"alert","aria-live":"polite"},{default:()=>[e.active&&a.value.map((o,s)=>P("div",{class:"v-messages__message",key:`${s}-${a.value}`},[i.message?i.message({message:o}):o]))]})),{}}}),AH=k1({focused:Boolean,"onUpdate:focused":E0()},"focus");function z8(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:P3();const i=ue(e,"focused"),a=q(()=>({[`${t}--focused`]:i.value}));function r(){i.value=!0}function n(){i.value=!1}return{focusClasses:a,isFocused:i,focus:r,blur:n}}const le1=Symbol.for("vuetify:form"),Rz1=k1({disabled:Boolean,fastFail:Boolean,readonly:Boolean,modelValue:{type:Boolean,default:null},validateOn:{type:String,default:"input"}},"form");function bz1(e){const t=ue(e,"modelValue"),i=q(()=>e.disabled),a=q(()=>e.readonly),r=g2(!1),n=i1([]),o=i1([]);async function s(){const C=[];let m=!0;o.value=[],r.value=!0;for(const u of n.value){const p=await u.validate();if(p.length>0&&(m=!1,C.push({id:u.id,errorMessages:p})),!m&&e.fastFail)break}return o.value=C,r.value=!1,{valid:m,errors:o.value}}function l(){n.value.forEach(C=>C.reset())}function d(){n.value.forEach(C=>C.resetValidation())}return T1(n,()=>{let C=0,m=0;const u=[];for(const p of n.value)p.isValid===!1?(m++,u.push({id:p.id,errorMessages:p.errorMessages})):p.isValid===!0&&C++;o.value=u,t.value=m>0?!1:C===n.value.length?!0:null},{deep:!0}),X2(le1,{register:C=>{let{id:m,validate:u,reset:p,resetValidation:V}=C;n.value.some(f=>f.id===m),n.value.push({id:m,validate:u,reset:p,resetValidation:V,isValid:null,errorMessages:[]})},unregister:C=>{n.value=n.value.filter(m=>m.id!==C)},update:(C,m,u)=>{const p=n.value.find(V=>V.id===C);!p||(p.isValid=m,p.errorMessages=u)},isDisabled:i,isReadonly:a,isValidating:r,isValid:t,items:n,validateOn:t2(e,"validateOn")}),{errors:o,isDisabled:i,isReadonly:a,isValidating:r,isValid:t,items:n,validate:s,reset:l,resetValidation:d}}function vH(){return H2(le1,null)}const Nz1=k1({disabled:{type:Boolean,default:null},error:Boolean,errorMessages:{type:[Array,String],default:()=>[]},maxErrors:{type:[Number,String],default:1},name:String,label:String,readonly:{type:Boolean,default:null},rules:{type:Array,default:()=>[]},modelValue:null,validateOn:String,validationValue:null,...AH()},"validation");function wz1(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:P3(),i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:x0();const a=ue(e,"modelValue"),r=q(()=>e.validationValue===void 0?a.value:e.validationValue),n=vH(),o=i1([]),s=g2(!0),l=q(()=>!!(Ft(a.value===""?null:a.value).length||Ft(r.value===""?null:r.value).length)),d=q(()=>{var v;return!!((v=e.disabled)!=null?v:n==null?void 0:n.isDisabled.value)}),C=q(()=>{var v;return!!((v=e.readonly)!=null?v:n==null?void 0:n.isReadonly.value)}),m=q(()=>{var v;return(v=e.errorMessages)!=null&&v.length?Ft(e.errorMessages).concat(o.value).slice(0,Math.max(0,+e.maxErrors)):o.value}),u=q(()=>{var y,D;let v=((y=e.validateOn)!=null?y:n==null?void 0:n.validateOn.value)||"input";v==="lazy"&&(v="input lazy");const S=new Set((D=v==null?void 0:v.split(" "))!=null?D:[]);return{blur:S.has("blur")||S.has("input"),input:S.has("input"),submit:S.has("submit"),lazy:S.has("lazy")}}),p=q(()=>{var v;return e.error||((v=e.errorMessages)==null?void 0:v.length)?!1:e.rules.length?s.value?o.value.length||u.value.lazy?null:!0:!o.value.length:!0}),V=g2(!1),f=q(()=>({[`${t}--error`]:p.value===!1,[`${t}--dirty`]:l.value,[`${t}--disabled`]:d.value,[`${t}--readonly`]:C.value})),M=q(()=>{var v;return(v=e.name)!=null?v:B(i)});B5(()=>{n==null||n.register({id:M.value,validate:_,reset:H,resetValidation:g})}),xe(()=>{n==null||n.unregister(M.value)}),ee(async()=>{u.value.lazy||await _(!0),n==null||n.update(M.value,p.value,m.value)}),M3(()=>u.value.input,()=>{T1(r,()=>{if(r.value!=null)_();else if(e.focused){const v=T1(()=>e.focused,S=>{S||_(),v()})}})}),M3(()=>u.value.blur,()=>{T1(()=>e.focused,v=>{v||_()})}),T1(p,()=>{n==null||n.update(M.value,p.value,m.value)});function H(){a.value=null,k2(g)}function g(){s.value=!0,u.value.lazy?o.value=[]:_(!0)}async function _(){var y;let v=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;const S=[];V.value=!0;for(const D of e.rules){if(S.length>=+((y=e.maxErrors)!=null?y:1))break;const N=await(typeof D=="function"?D:()=>D)(r.value);if(N!==!0){if(N!==!1&&typeof N!="string"){console.warn(`${N} is not a valid value. Rule functions must return boolean true or a string.`);continue}S.push(N||"")}}return o.value=S,V.value=!1,s.value=v,o.value}return{errorMessages:m,isDirty:l,isDisabled:d,isReadonly:C,isPristine:s,isValid:p,isValidating:V,reset:H,resetValidation:g,validate:_,validationClasses:f}}const Z8=k1({id:String,appendIcon:Ce,centerAffix:{type:Boolean,default:!0},prependIcon:Ce,hideDetails:[Boolean,String],hideSpinButtons:Boolean,hint:String,persistentHint:Boolean,messages:{type:[Array,String],default:()=>[]},direction:{type:String,default:"horizontal",validator:e=>["horizontal","vertical"].includes(e)},"onClick:prepend":E0(),"onClick:append":E0(),...F2(),...fi(),...Nz1()},"VInput"),$4=h2()({name:"VInput",props:{...Z8()},emits:{"update:modelValue":e=>!0},setup(e,t){let{attrs:i,slots:a,emit:r}=t;const{densityClasses:n}=I3(e),{rtlClasses:o}=pi(),{InputIcon:s}=se1(e),l=x0(),d=q(()=>e.id||`input-${l}`),C=q(()=>`${d.value}-messages`),{errorMessages:m,isDirty:u,isDisabled:p,isReadonly:V,isPristine:f,isValid:M,isValidating:H,reset:g,resetValidation:_,validate:v,validationClasses:S}=wz1(e,"v-input",d),y=q(()=>({id:d,messagesId:C,isDirty:u,isDisabled:p,isReadonly:V,isPristine:f,isValid:M,isValidating:H,reset:g,resetValidation:_,validate:v})),D=q(()=>{var R;return((R=e.errorMessages)==null?void 0:R.length)||!f.value&&m.value.length?m.value:e.hint&&(e.persistentHint||e.focused)?e.hint:e.messages});return M2(()=>{var U,E,O,z;const R=!!(a.prepend||e.prependIcon),N=!!(a.append||e.appendIcon),w=D.value.length>0,x=!e.hideDetails||e.hideDetails==="auto"&&(w||!!a.details);return P("div",{class:["v-input",`v-input--${e.direction}`,{"v-input--center-affix":e.centerAffix,"v-input--hide-spin-buttons":e.hideSpinButtons},n.value,o.value,S.value,e.class],style:e.style},[R&&P("div",{key:"prepend",class:"v-input__prepend"},[(U=a.prepend)==null?void 0:U.call(a,y.value),e.prependIcon&&P(s,{key:"prepend-icon",name:"prepend"},null)]),a.default&&P("div",{class:"v-input__control"},[(E=a.default)==null?void 0:E.call(a,y.value)]),N&&P("div",{key:"append",class:"v-input__append"},[e.appendIcon&&P(s,{key:"append-icon",name:"append"},null),(O=a.append)==null?void 0:O.call(a,y.value)]),x&&P("div",{class:"v-input__details"},[P(yz1,{id:C.value,active:w,messages:D.value},{message:a.message}),(z=a.details)==null?void 0:z.call(a,y.value)])])}),{reset:g,resetValidation:_,validate:v,isValid:M,errorMessages:m}}});const Tz1=k1({bgColor:String,color:String,indeterminate:[Boolean,String],modelValue:{type:[Number,String],default:0},rotate:{type:[Number,String],default:0},width:{type:[Number,String],default:4},...F2(),...Po(),...T5({tag:"div"}),...p5()},"VProgressCircular"),_H=h2()({name:"VProgressCircular",props:Tz1(),setup(e,t){let{slots:i}=t;const a=20,r=2*Math.PI*a,n=i1(),{themeClasses:o}=N5(e),{sizeClasses:s,sizeStyles:l}=x8(e),{textColorClasses:d,textColorStyles:C}=Bi(t2(e,"color")),{textColorClasses:m,textColorStyles:u}=Bi(t2(e,"bgColor")),{intersectionRef:p,isIntersecting:V}=W21(),{resizeRef:f,contentRect:M}=No(),H=q(()=>Math.max(0,Math.min(100,parseFloat(e.modelValue)))),g=q(()=>Number(e.width)),_=q(()=>l.value?Number(e.size):M.value?M.value.width:Math.max(g.value,32)),v=q(()=>a/(1-g.value/_.value)*2),S=q(()=>g.value/_.value*v.value),y=q(()=>f2((100-H.value)/100*r));return c0(()=>{p.value=n.value,f.value=n.value}),M2(()=>P(e.tag,{ref:n,class:["v-progress-circular",{"v-progress-circular--indeterminate":!!e.indeterminate,"v-progress-circular--visible":V.value,"v-progress-circular--disable-shrink":e.indeterminate==="disable-shrink"},o.value,s.value,d.value,e.class],style:[l.value,C.value,e.style],role:"progressbar","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":e.indeterminate?void 0:H.value},{default:()=>[P("svg",{style:{transform:`rotate(calc(-90deg + ${Number(e.rotate)}deg))`},xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${v.value} ${v.value}`},[P("circle",{class:["v-progress-circular__underlay",m.value],style:u.value,fill:"transparent",cx:"50%",cy:"50%",r:a,"stroke-width":S.value,"stroke-dasharray":r,"stroke-dashoffset":0},null),P("circle",{class:"v-progress-circular__overlay",fill:"transparent",cx:"50%",cy:"50%",r:a,"stroke-width":S.value,"stroke-dasharray":r,"stroke-dashoffset":y.value},null)]),i.default&&P("div",{class:"v-progress-circular__content"},[i.default({value:H.value})])]})),{}}});const Ez1=k1({text:String,clickable:Boolean,...F2(),...p5()},"VLabel"),SH=h2()({name:"VLabel",props:Ez1(),setup(e,t){let{slots:i}=t;return M2(()=>{var a;return P("label",{class:["v-label",{"v-label--clickable":e.clickable},e.class],style:e.style},[e.text,(a=i.default)==null?void 0:a.call(i)])}),{}}});const ce1=Symbol.for("vuetify:selection-control-group"),de1=k1({color:String,disabled:{type:Boolean,default:null},defaultsTarget:String,error:Boolean,id:String,inline:Boolean,falseIcon:Ce,trueIcon:Ce,ripple:{type:Boolean,default:!0},multiple:{type:Boolean,default:null},name:String,readonly:{type:Boolean,default:null},modelValue:null,type:String,valueComparator:{type:Function,default:wa},...F2(),...fi(),...p5()},"SelectionControlGroup"),Pz1=k1({...de1({defaultsTarget:"VSelectionControl"})},"VSelectionControlGroup");h2()({name:"VSelectionControlGroup",props:Pz1(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:i}=t;const a=ue(e,"modelValue"),r=x0(),n=q(()=>e.id||`v-selection-control-group-${r}`),o=q(()=>e.name||n.value),s=new Set;return X2(ce1,{modelValue:a,forceUpdate:()=>{s.forEach(l=>l())},onForceUpdate:l=>{s.add(l),j5(()=>{s.delete(l)})}}),I0({[e.defaultsTarget]:{color:t2(e,"color"),disabled:t2(e,"disabled"),density:t2(e,"density"),error:t2(e,"error"),inline:t2(e,"inline"),modelValue:a,multiple:q(()=>!!e.multiple||e.multiple==null&&Array.isArray(a.value)),name:o,falseIcon:t2(e,"falseIcon"),trueIcon:t2(e,"trueIcon"),readonly:t2(e,"readonly"),ripple:t2(e,"ripple"),type:t2(e,"type"),valueComparator:t2(e,"valueComparator")}}),M2(()=>{var l;return P("div",{class:["v-selection-control-group",{"v-selection-control-group--inline":e.inline},e.class],style:e.style,role:e.type==="radio"?"radiogroup":void 0},[(l=i.default)==null?void 0:l.call(i)])}),{}}});const DH=k1({label:String,baseColor:String,trueValue:null,falseValue:null,value:null,...F2(),...de1()},"VSelectionControl");function Iz1(e){const t=H2(ce1,void 0),{densityClasses:i}=I3(e),a=ue(e,"modelValue"),r=q(()=>e.trueValue!==void 0?e.trueValue:e.value!==void 0?e.value:!0),n=q(()=>e.falseValue!==void 0?e.falseValue:!1),o=q(()=>!!e.multiple||e.multiple==null&&Array.isArray(a.value)),s=q({get(){const p=t?t.modelValue.value:a.value;return o.value?Ft(p).some(V=>e.valueComparator(V,r.value)):e.valueComparator(p,r.value)},set(p){if(e.readonly)return;const V=p?r.value:n.value;let f=V;o.value&&(f=p?[...Ft(a.value),V]:Ft(a.value).filter(M=>!e.valueComparator(M,r.value))),t?t.modelValue.value=f:a.value=f}}),{textColorClasses:l,textColorStyles:d}=Bi(q(()=>{if(!(e.error||e.disabled))return s.value?e.color:e.baseColor})),{backgroundColorClasses:C,backgroundColorStyles:m}=d0(q(()=>s.value&&!e.error&&!e.disabled?e.color:void 0)),u=q(()=>s.value?e.trueIcon:e.falseIcon);return{group:t,densityClasses:i,trueValue:r,falseValue:n,model:s,textColorClasses:l,textColorStyles:d,backgroundColorClasses:C,backgroundColorStyles:m,icon:u}}const Vd=h2()({name:"VSelectionControl",directives:{Ripple:Fn},inheritAttrs:!1,props:DH(),emits:{"update:modelValue":e=>!0},setup(e,t){let{attrs:i,slots:a}=t;const{group:r,densityClasses:n,icon:o,model:s,textColorClasses:l,textColorStyles:d,backgroundColorClasses:C,backgroundColorStyles:m,trueValue:u}=Iz1(e),p=x0(),V=q(()=>e.id||`input-${p}`),f=g2(!1),M=g2(!1),H=i1();r==null||r.onForceUpdate(()=>{H.value&&(H.value.checked=s.value)});function g(S){f.value=!0,id(S.target,":focus-visible")!==!1&&(M.value=!0)}function _(){f.value=!1,M.value=!1}function v(S){e.readonly&&r&&k2(()=>r.forceUpdate()),s.value=S.target.checked}return M2(()=>{var N,w,x;const S=a.label?a.label({label:e.label,props:{for:V.value}}):e.label,[y,D]=$C(i),R=P("input",V2({ref:H,checked:s.value,disabled:!!(e.readonly||e.disabled),id:V.value,onBlur:_,onFocus:g,onInput:v,"aria-disabled":!!(e.readonly||e.disabled),type:e.type,value:u.value,name:e.name,"aria-checked":e.type==="checkbox"?s.value:void 0},D),null);return P("div",V2({class:["v-selection-control",{"v-selection-control--dirty":s.value,"v-selection-control--disabled":e.disabled,"v-selection-control--error":e.error,"v-selection-control--focused":f.value,"v-selection-control--focus-visible":M.value,"v-selection-control--inline":e.inline},n.value,e.class]},y,{style:e.style}),[P("div",{class:["v-selection-control__wrapper",l.value],style:d.value},[(N=a.default)==null?void 0:N.call(a,{backgroundColorClasses:C,backgroundColorStyles:m}),N2(P("div",{class:["v-selection-control__input"]},[(x=(w=a.input)==null?void 0:w.call(a,{model:s,textColorClasses:l,textColorStyles:d,backgroundColorClasses:C,backgroundColorStyles:m,inputNode:R,icon:o.value,props:{onFocus:g,onBlur:_,id:V.value}}))!=null?x:P(Y1,null,[o.value&&P(Ze,{key:"icon",icon:o.value},null),R])]),[[k5("ripple"),e.ripple&&[!e.disabled&&!e.readonly,null,["center","circle"]]]])]),S&&P(SH,{for:V.value,clickable:!0,onClick:U=>U.stopPropagation()},{default:()=>[S]})])}),{isFocused:f,input:H}}}),Oz1=k1({indeterminate:Boolean,inset:Boolean,flat:Boolean,loading:{type:[Boolean,String],default:!1},...Z8(),...DH()},"VSwitch"),At=h2()({name:"VSwitch",inheritAttrs:!1,props:Oz1(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,t){let{attrs:i,slots:a}=t;const r=ue(e,"indeterminate"),n=ue(e,"modelValue"),{loaderClasses:o}=B8(e),{isFocused:s,focus:l,blur:d}=z8(e),C=i1(),m=q(()=>typeof e.loading=="string"&&e.loading!==""?e.loading:e.color),u=x0(),p=q(()=>e.id||`switch-${u}`);function V(){r.value&&(r.value=!1)}function f(M){var H,g;M.stopPropagation(),M.preventDefault(),(g=(H=C.value)==null?void 0:H.input)==null||g.click()}return M2(()=>{const[M,H]=$C(i),g=$4.filterProps(e),_=Vd.filterProps(e);return P($4,V2({class:["v-switch",{"v-switch--inset":e.inset},{"v-switch--indeterminate":r.value},o.value,e.class]},M,g,{modelValue:n.value,"onUpdate:modelValue":v=>n.value=v,id:p.value,focused:s.value,style:e.style}),{...a,default:v=>{let{id:S,messagesId:y,isDisabled:D,isReadonly:R,isValid:N}=v;return P(Vd,V2({ref:C},_,{modelValue:n.value,"onUpdate:modelValue":[w=>n.value=w,V],id:S.value,"aria-describedby":y.value,type:"checkbox","aria-checked":r.value?"mixed":void 0,disabled:D.value,readonly:R.value,onFocus:l,onBlur:d},H),{...a,default:w=>{let{backgroundColorClasses:x,backgroundColorStyles:U}=w;return P("div",{class:["v-switch__track",...x.value],style:U.value,onClick:f},null)},input:w=>{let{inputNode:x,icon:U,backgroundColorClasses:E,backgroundColorStyles:O}=w;return P(Y1,null,[x,P("div",{class:["v-switch__thumb",{"v-switch__thumb--filled":U||e.loading},e.inset?void 0:E.value],style:e.inset?void 0:O.value},[P(ae1,null,{default:()=>[e.loading?P(am,{name:"v-switch",active:!0,color:N.value===!1?void 0:m.value},{default:z=>a.loader?a.loader(z):P(_H,{active:z.isActive,color:z.color,indeterminate:!0,size:"16",width:"2"},null)}):U&&P(Ze,{key:U,icon:U,size:"x-small"},null)]})])])}})}})}),{}}}),Uz1=K("span",{class:"text-sm font-medium text-slate-500"},"Enable voice on specific alert levels:",-1),xz1={class:"flex items-center justify-start"},Fz1=K("span",{class:"text-sm font-medium text-slate-500"},"Alert voice:",-1),kz1=n2({__name:"ConfigurationAlertsView",setup(e){const t=QC();return(i,a)=>(C1(),Q1(kn,null,{title:v1(()=>[L2("Alerts configuration")]),content:v1(()=>[P(At,{modelValue:B(t).enableVoiceAlerts,"onUpdate:modelValue":a[0]||(a[0]=r=>B(t).enableVoiceAlerts=r),label:"Enable voice alerts",class:"m-2 text-slate-800",color:"rgb(0, 20, 80)"},null,8,["modelValue"]),Uz1,K("div",xz1,[(C1(!0),N1(Y1,null,fe(B(t).enabledAlertLevels,r=>(C1(),N1("div",{key:r.level,class:"mx-2"},[P(At,{modelValue:r.enabled,"onUpdate:modelValue":n=>r.enabled=n,label:zi(r.level),class:"text-slate-800",color:"rgb(0, 20, 80)"},null,8,["modelValue","onUpdate:modelValue","label"])]))),128))]),Fz1,P(Eo,{modelValue:B(t).selectedAlertSpeechVoiceName,"onUpdate:modelValue":a[1]||(a[1]=r=>B(t).selectedAlertSpeechVoiceName=r),options:B(t).availableAlertSpeechVoiceNames,"name-key":"name","value-key":"value",class:"max-w-[200px] my-2"},null,8,["modelValue","options"])]),_:1}))}});const Ce1=k1({divided:Boolean,...Pa(),...F2(),...fi(),...Xi(),...p0(),...T5(),...p5(),...Ea()},"VBtnGroup"),f_=h2()({name:"VBtnGroup",props:Ce1(),setup(e,t){let{slots:i}=t;const{themeClasses:a}=N5(e),{densityClasses:r}=I3(e),{borderClasses:n}=nr(e),{elevationClasses:o}=O3(e),{roundedClasses:s}=F0(e);I0({VBtn:{height:"auto",color:t2(e,"color"),density:t2(e,"density"),flat:!0,variant:t2(e,"variant")}}),M2(()=>P(e.tag,{class:["v-btn-group",{"v-btn-group--divided":e.divided},a.value,n.value,r.value,o.value,s.value,e.class],style:e.style},i))}}),yH=k1({modelValue:{type:null,default:void 0},multiple:Boolean,mandatory:[Boolean,String],max:Number,selectedClass:String,disabled:Boolean},"group"),RH=k1({value:null,disabled:Boolean,selectedClass:String},"group-item");function bH(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;const a=b5("useGroupItem");if(!a)throw new Error("[Vuetify] useGroupItem composable must be used inside a component setup function");const r=x0();X2(Symbol.for(`${t.description}:id`),r);const n=H2(t,null);if(!n){if(!i)return n;throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${t.description}`)}const o=t2(e,"value"),s=q(()=>!!(n.disabled.value||e.disabled));n.register({id:r,value:o,disabled:s},a),xe(()=>{n.unregister(r)});const l=q(()=>n.isSelected(r)),d=q(()=>l.value&&[n.selectedClass.value,e.selectedClass]);return T1(l,C=>{a.emit("group:selected",{value:C})}),{id:r,isSelected:l,toggle:()=>n.select(r,!l.value),select:C=>n.select(r,C),selectedClass:d,value:o,disabled:s,group:n}}function NH(e,t){let i=!1;const a=$2([]),r=ue(e,"modelValue",[],u=>u==null?[]:me1(a,Ft(u)),u=>{const p=zz1(a,u);return e.multiple?p:p[0]}),n=b5("useGroup");function o(u,p){const V=u,f=Symbol.for(`${t.description}:id`),H=ss(f,n==null?void 0:n.vnode).indexOf(p);H>-1?a.splice(H,0,V):a.push(V)}function s(u){if(i)return;l();const p=a.findIndex(V=>V.id===u);a.splice(p,1)}function l(){const u=a.find(p=>!p.disabled);u&&e.mandatory==="force"&&!r.value.length&&(r.value=[u.id])}ee(()=>{l()}),xe(()=>{i=!0});function d(u,p){const V=a.find(f=>f.id===u);if(!(p&&(V==null?void 0:V.disabled)))if(e.multiple){const f=r.value.slice(),M=f.findIndex(g=>g===u),H=~M;if(p=p!=null?p:!H,H&&e.mandatory&&f.length<=1||!H&&e.max!=null&&f.length+1>e.max)return;M<0&&p?f.push(u):M>=0&&!p&&f.splice(M,1),r.value=f}else{const f=r.value.includes(u);if(e.mandatory&&f)return;r.value=(p!=null?p:!f)?[u]:[]}}function C(u){if(e.multiple,r.value.length){const p=r.value[0],V=a.findIndex(H=>H.id===p);let f=(V+u)%a.length,M=a[f];for(;M.disabled&&f!==V;)f=(f+u)%a.length,M=a[f];if(M.disabled)return;r.value=[a[f].id]}else{const p=a.find(V=>!V.disabled);p&&(r.value=[p.id])}}const m={register:o,unregister:s,selected:r,select:d,disabled:t2(e,"disabled"),prev:()=>C(a.length-1),next:()=>C(1),isSelected:u=>r.value.includes(u),selectedClass:q(()=>e.selectedClass),items:q(()=>a),getItemIndex:u=>Bz1(a,u)};return X2(t,m),m}function Bz1(e,t){const i=me1(e,[t]);return i.length?e.findIndex(a=>a.id===i[0]):-1}function me1(e,t){const i=[];return t.forEach(a=>{const r=e.find(o=>wa(a,o.value)),n=e[a];(r==null?void 0:r.value)!=null?i.push(r.id):n!=null&&i.push(n.id)}),i}function zz1(e,t){const i=[];return t.forEach(a=>{const r=e.findIndex(n=>n.id===a);if(~r){const n=e[r];i.push(n.value!=null?n.value:r)}}),i}const ue1=Symbol.for("vuetify:v-btn-toggle"),Zz1=k1({...Ce1(),...yH()},"VBtnToggle");h2()({name:"VBtnToggle",props:Zz1(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:i}=t;const{isSelected:a,next:r,prev:n,select:o,selected:s}=NH(e,ue1);return M2(()=>{const l=f_.filterProps(e);return P(f_,V2({class:["v-btn-toggle",e.class]},l,{style:e.style}),{default:()=>{var d;return[(d=i.default)==null?void 0:d.call(i,{isSelected:a,next:r,prev:n,select:o,selected:s})]}})}),{next:r,prev:n,select:o}}});function Gz1(e,t){T1(()=>{var i;return(i=e.isActive)==null?void 0:i.value},i=>{e.isLink.value&&i&&t&&k2(()=>{t(!0)})},{immediate:!0})}const Wz1=k1({active:{type:Boolean,default:void 0},symbol:{type:null,default:ue1},flat:Boolean,icon:[Boolean,String,Function,Object],prependIcon:Ce,appendIcon:Ce,block:Boolean,slim:Boolean,stacked:Boolean,ripple:{type:[Boolean,Object],default:!0},text:String,...Pa(),...F2(),...fi(),...ar(),...Xi(),...RH(),...im(),...JC(),...HH(),...p0(),...nm(),...Po(),...T5({tag:"button"}),...p5(),...Ea({variant:"elevated"})},"VBtn"),re=h2()({name:"VBtn",directives:{Ripple:Fn},props:Wz1(),emits:{"group:selected":e=>!0},setup(e,t){let{attrs:i,slots:a}=t;const{themeClasses:r}=N5(e),{borderClasses:n}=nr(e),{colorClasses:o,colorStyles:s,variantClasses:l}=k8(e),{densityClasses:d}=I3(e),{dimensionStyles:C}=rr(e),{elevationClasses:m}=O3(e),{loaderClasses:u}=B8(e),{locationStyles:p}=em(e),{positionClasses:V}=MH(e),{roundedClasses:f}=F0(e),{sizeClasses:M,sizeStyles:H}=x8(e),g=bH(e,e.symbol,!1),_=rm(e,i),v=q(()=>{var N;return e.active!==void 0?e.active:_.isLink.value?(N=_.isActive)==null?void 0:N.value:g==null?void 0:g.isSelected.value}),S=q(()=>(g==null?void 0:g.disabled.value)||e.disabled),y=q(()=>e.variant==="elevated"&&!(e.disabled||e.flat||e.border)),D=q(()=>{if(!(e.value===void 0||typeof e.value=="symbol"))return Object(e.value)===e.value?JSON.stringify(e.value,null,0):e.value});function R(N){var w;S.value||_.isLink.value&&(N.metaKey||N.ctrlKey||N.shiftKey||N.button!==0||i.target==="_blank")||((w=_.navigate)==null||w.call(_,N),g==null||g.toggle())}return Gz1(_,g==null?void 0:g.select),M2(()=>{var O,z;const N=_.isLink.value?"a":e.tag,w=!!(e.prependIcon||a.prepend),x=!!(e.appendIcon||a.append),U=!!(e.icon&&e.icon!==!0),E=(g==null?void 0:g.isSelected.value)&&(!_.isLink.value||((O=_.isActive)==null?void 0:O.value))||!g||((z=_.isActive)==null?void 0:z.value);return N2(P(N,{type:N==="a"?void 0:"button",class:["v-btn",g==null?void 0:g.selectedClass.value,{"v-btn--active":v.value,"v-btn--block":e.block,"v-btn--disabled":S.value,"v-btn--elevated":y.value,"v-btn--flat":e.flat,"v-btn--icon":!!e.icon,"v-btn--loading":e.loading,"v-btn--slim":e.slim,"v-btn--stacked":e.stacked},r.value,n.value,E?o.value:void 0,d.value,m.value,u.value,V.value,f.value,M.value,l.value,e.class],style:[E?s.value:void 0,C.value,p.value,H.value,e.style],disabled:S.value||void 0,href:_.href.value,onClick:R,value:D.value},{default:()=>{var F,J;return[F8(!0,"v-btn"),!e.icon&&w&&P("span",{key:"prepend",class:"v-btn__prepend"},[a.prepend?P(ot,{key:"prepend-defaults",disabled:!e.prependIcon,defaults:{VIcon:{icon:e.prependIcon}}},a.prepend):P(Ze,{key:"prepend-icon",icon:e.prependIcon},null)]),P("span",{class:"v-btn__content","data-no-activator":""},[!a.default&&U?P(Ze,{key:"content-icon",icon:e.icon},null):P(ot,{key:"content-defaults",disabled:!U,defaults:{VIcon:{icon:e.icon}}},{default:()=>{var W,r1;return[(r1=(W=a.default)==null?void 0:W.call(a))!=null?r1:e.text]}})]),!e.icon&&x&&P("span",{key:"append",class:"v-btn__append"},[a.append?P(ot,{key:"append-defaults",disabled:!e.appendIcon,defaults:{VIcon:{icon:e.appendIcon}}},a.append):P(Ze,{key:"append-icon",icon:e.appendIcon},null)]),!!e.loading&&P("span",{key:"loader",class:"v-btn__loader"},[(J=(F=a.loader)==null?void 0:F.call(a))!=null?J:P(_H,{color:typeof e.loading=="boolean"?void 0:e.loading,indeterminate:!0,size:"23",width:"2"},null)])]}}),[[k5("ripple"),!S.value&&e.ripple,null]])}),{}}});function Xz1(){const e=i1([]);RV(()=>e.value=[]);function t(i,a){e.value[a]=i}return{refs:e,updateRef:t}}const Yz1=k1({activeColor:String,start:{type:[Number,String],default:1},modelValue:{type:Number,default:e=>e.start},disabled:Boolean,length:{type:[Number,String],default:1,validator:e=>e%1===0},totalVisible:[Number,String],firstIcon:{type:Ce,default:"$first"},prevIcon:{type:Ce,default:"$prev"},nextIcon:{type:Ce,default:"$next"},lastIcon:{type:Ce,default:"$last"},ariaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.root"},pageAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.page"},currentPageAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.currentPage"},firstAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.first"},previousAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.previous"},nextAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.next"},lastAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.last"},ellipsis:{type:String,default:"..."},showFirstLastPage:Boolean,...Pa(),...F2(),...fi(),...Xi(),...p0(),...Po(),...T5({tag:"nav"}),...p5(),...Ea({variant:"text"})},"VPagination"),$z1=h2()({name:"VPagination",props:Yz1(),emits:{"update:modelValue":e=>!0,first:e=>!0,prev:e=>!0,next:e=>!0,last:e=>!0},setup(e,t){let{slots:i,emit:a}=t;const r=ue(e,"modelValue"),{t:n,n:o}=ir(),{isRtl:s}=pi(),{themeClasses:l}=N5(e),{width:d}=I8(),C=g2(-1);I0(void 0,{scoped:!0});const{resizeRef:m}=No(R=>{if(!R.length)return;const{target:N,contentRect:w}=R[0],x=N.querySelector(".v-pagination__list > *");if(!x)return;const U=w.width,E=x.offsetWidth+parseFloat(getComputedStyle(x).marginRight)*2;C.value=f(U,E)}),u=q(()=>parseInt(e.length,10)),p=q(()=>parseInt(e.start,10)),V=q(()=>e.totalVisible!=null?parseInt(e.totalVisible,10):C.value>=0?C.value:f(d.value,58));function f(R,N){const w=e.showFirstLastPage?5:3;return Math.max(0,Math.floor(+((R-N*w)/N).toFixed(2)))}const M=q(()=>{if(u.value<=0||isNaN(u.value)||u.value>Number.MAX_SAFE_INTEGER)return[];if(V.value<=0)return[];if(V.value===1)return[r.value];if(u.value<=V.value)return Yr(u.value,p.value);const R=V.value%2===0,N=R?V.value/2:Math.floor(V.value/2),w=R?N:N+1,x=u.value-N;if(w-r.value>=0)return[...Yr(Math.max(1,V.value-1),p.value),e.ellipsis,u.value];if(r.value-x>=(R?1:0)){const U=V.value-1,E=u.value-U+p.value;return[p.value,e.ellipsis,...Yr(U,E)]}else{const U=Math.max(1,V.value-3),E=U===1?r.value:r.value-Math.ceil(U/2)+p.value;return[p.value,e.ellipsis,...Yr(U,E),e.ellipsis,u.value]}});function H(R,N,w){R.preventDefault(),r.value=N,w&&a(w,N)}const{refs:g,updateRef:_}=Xz1();I0({VPaginationBtn:{color:t2(e,"color"),border:t2(e,"border"),density:t2(e,"density"),size:t2(e,"size"),variant:t2(e,"variant"),rounded:t2(e,"rounded"),elevation:t2(e,"elevation")}});const v=q(()=>M.value.map((R,N)=>{const w=x=>_(x,N);if(typeof R=="string")return{isActive:!1,key:`ellipsis-${N}`,page:R,props:{ref:w,ellipsis:!0,icon:!0,disabled:!0}};{const x=R===r.value;return{isActive:x,key:R,page:o(R),props:{ref:w,ellipsis:!1,icon:!0,disabled:!!e.disabled||+e.length<2,color:x?e.activeColor:e.color,ariaCurrent:x,ariaLabel:n(x?e.currentPageAriaLabel:e.pageAriaLabel,R),onClick:U=>H(U,R)}}}})),S=q(()=>{const R=!!e.disabled||r.value<=p.value,N=!!e.disabled||r.value>=p.value+u.value-1;return{first:e.showFirstLastPage?{icon:s.value?e.lastIcon:e.firstIcon,onClick:w=>H(w,p.value,"first"),disabled:R,ariaLabel:n(e.firstAriaLabel),ariaDisabled:R}:void 0,prev:{icon:s.value?e.nextIcon:e.prevIcon,onClick:w=>H(w,r.value-1,"prev"),disabled:R,ariaLabel:n(e.previousAriaLabel),ariaDisabled:R},next:{icon:s.value?e.prevIcon:e.nextIcon,onClick:w=>H(w,r.value+1,"next"),disabled:N,ariaLabel:n(e.nextAriaLabel),ariaDisabled:N},last:e.showFirstLastPage?{icon:s.value?e.firstIcon:e.lastIcon,onClick:w=>H(w,p.value+u.value-1,"last"),disabled:N,ariaLabel:n(e.lastAriaLabel),ariaDisabled:N}:void 0}});function y(){var N;const R=r.value-p.value;(N=g.value[R])==null||N.$el.focus()}function D(R){R.key===Ip.left&&!e.disabled&&r.value>+e.start?(r.value=r.value-1,k2(y)):R.key===Ip.right&&!e.disabled&&r.valueP(e.tag,{ref:m,class:["v-pagination",l.value,e.class],style:e.style,role:"navigation","aria-label":n(e.ariaLabel),onKeydown:D,"data-test":"v-pagination-root"},{default:()=>[P("ul",{class:"v-pagination__list"},[e.showFirstLastPage&&P("li",{key:"first",class:"v-pagination__first","data-test":"v-pagination-first"},[i.first?i.first(S.value.first):P(re,V2({_as:"VPaginationBtn"},S.value.first),null)]),P("li",{key:"prev",class:"v-pagination__prev","data-test":"v-pagination-prev"},[i.prev?i.prev(S.value.prev):P(re,V2({_as:"VPaginationBtn"},S.value.prev),null)]),v.value.map((R,N)=>P("li",{key:R.key,class:["v-pagination__item",{"v-pagination__item--is-active":R.isActive}],"data-test":"v-pagination-item"},[i.item?i.item(R):P(re,V2({_as:"VPaginationBtn"},R.props),{default:()=>[R.page]})])),P("li",{key:"next",class:"v-pagination__next","data-test":"v-pagination-next"},[i.next?i.next(S.value.next):P(re,V2({_as:"VPaginationBtn"},S.value.next),null)]),e.showFirstLastPage&&P("li",{key:"last",class:"v-pagination__last","data-test":"v-pagination-last"},[i.last?i.last(S.value.last):P(re,V2({_as:"VPaginationBtn"},S.value.last),null)])])]})),{}}});const he1=k1({indeterminate:Boolean,indeterminateIcon:{type:Ce,default:"$checkboxIndeterminate"},...DH({falseIcon:"$checkboxOff",trueIcon:"$checkboxOn"})},"VCheckboxBtn"),Dn=h2()({name:"VCheckboxBtn",props:he1(),emits:{"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,t){let{slots:i}=t;const a=ue(e,"indeterminate"),r=ue(e,"modelValue");function n(l){a.value&&(a.value=!1)}const o=q(()=>a.value?e.indeterminateIcon:e.falseIcon),s=q(()=>a.value?e.indeterminateIcon:e.trueIcon);return M2(()=>{const l=Ta(Vd.filterProps(e),["modelValue"]);return P(Vd,V2(l,{modelValue:r.value,"onUpdate:modelValue":[d=>r.value=d,n],class:["v-checkbox-btn",e.class],style:e.style,type:"checkbox",falseIcon:o.value,trueIcon:s.value,"aria-checked":a.value?"mixed":void 0}),i)}),{}}}),qz1=k1({...Z8(),...Ta(he1(),["inline"])},"VCheckbox"),A4=h2()({name:"VCheckbox",inheritAttrs:!1,props:qz1(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(e,t){let{attrs:i,slots:a}=t;const r=ue(e,"modelValue"),{isFocused:n,focus:o,blur:s}=z8(e),l=x0(),d=q(()=>e.id||`checkbox-${l}`);return M2(()=>{const[C,m]=$C(i),u=$4.filterProps(e),p=Dn.filterProps(e);return P($4,V2({class:["v-checkbox",e.class]},C,u,{modelValue:r.value,"onUpdate:modelValue":V=>r.value=V,id:d.value,focused:n.value,style:e.style}),{...a,default:V=>{let{id:f,messagesId:M,isDisabled:H,isReadonly:g}=V;return P(Dn,V2(p,{id:f.value,"aria-describedby":M.value,disabled:H.value,readonly:g.value},m,{modelValue:r.value,"onUpdate:modelValue":_=>r.value=_,onFocus:o,onBlur:s}),a)}})}),{}}});const pe1=Symbol.for("vuetify:v-chip-group"),Kz1=k1({column:Boolean,filter:Boolean,valueComparator:{type:Function,default:wa},...F2(),...yH({selectedClass:"v-chip--selected"}),...T5(),...p5(),...Ea({variant:"tonal"})},"VChipGroup");h2()({name:"VChipGroup",props:Kz1(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:i}=t;const{themeClasses:a}=N5(e),{isSelected:r,select:n,next:o,prev:s,selected:l}=NH(e,pe1);return I0({VChip:{color:t2(e,"color"),disabled:t2(e,"disabled"),filter:t2(e,"filter"),variant:t2(e,"variant")}}),M2(()=>P(e.tag,{class:["v-chip-group",{"v-chip-group--column":e.column},a.value,e.class],style:e.style},{default:()=>{var d;return[(d=i.default)==null?void 0:d.call(i,{isSelected:r,select:n,next:o,prev:s,selected:l.value})]}})),{}}});const jz1=k1({activeClass:String,appendAvatar:String,appendIcon:Ce,closable:Boolean,closeIcon:{type:Ce,default:"$delete"},closeLabel:{type:String,default:"$vuetify.close"},draggable:Boolean,filter:Boolean,filterIcon:{type:String,default:"$complete"},label:Boolean,link:{type:Boolean,default:void 0},pill:Boolean,prependAvatar:String,prependIcon:Ce,ripple:{type:[Boolean,Object],default:!0},text:String,modelValue:{type:Boolean,default:!0},onClick:E0(),onClickOnce:E0(),...Pa(),...F2(),...fi(),...Xi(),...RH(),...p0(),...nm(),...Po(),...T5({tag:"span"}),...p5(),...Ea({variant:"tonal"})},"VChip"),fe1=h2()({name:"VChip",directives:{Ripple:Fn},props:jz1(),emits:{"click:close":e=>!0,"update:modelValue":e=>!0,"group:selected":e=>!0,click:e=>!0},setup(e,t){let{attrs:i,emit:a,slots:r}=t;const{t:n}=ir(),{borderClasses:o}=nr(e),{colorClasses:s,colorStyles:l,variantClasses:d}=k8(e),{densityClasses:C}=I3(e),{elevationClasses:m}=O3(e),{roundedClasses:u}=F0(e),{sizeClasses:p}=x8(e),{themeClasses:V}=N5(e),f=ue(e,"modelValue"),M=bH(e,pe1,!1),H=rm(e,i),g=q(()=>e.link!==!1&&H.isLink.value),_=q(()=>!e.disabled&&e.link!==!1&&(!!M||e.link||H.isClickable.value)),v=q(()=>({"aria-label":n(e.closeLabel),onClick(D){D.stopPropagation(),f.value=!1,a("click:close",D)}}));function S(D){var R;a("click",D),_.value&&((R=H.navigate)==null||R.call(H,D),M==null||M.toggle())}function y(D){(D.key==="Enter"||D.key===" ")&&(D.preventDefault(),S(D))}return()=>{const D=H.isLink.value?"a":e.tag,R=!!(e.appendIcon||e.appendAvatar),N=!!(R||r.append),w=!!(r.close||e.closable),x=!!(r.filter||e.filter)&&M,U=!!(e.prependIcon||e.prependAvatar),E=!!(U||r.prepend),O=!M||M.isSelected.value;return f.value&&N2(P(D,{class:["v-chip",{"v-chip--disabled":e.disabled,"v-chip--label":e.label,"v-chip--link":_.value,"v-chip--filter":x,"v-chip--pill":e.pill},V.value,o.value,O?s.value:void 0,C.value,m.value,u.value,p.value,d.value,M==null?void 0:M.selectedClass.value,e.class],style:[O?l.value:void 0,e.style],disabled:e.disabled||void 0,draggable:e.draggable,href:H.href.value,tabindex:_.value?0:void 0,onClick:S,onKeydown:_.value&&!g.value&&y},{default:()=>{var z,F;return[F8(_.value,"v-chip"),x&&P(oe1,{key:"filter"},{default:()=>[N2(P("div",{class:"v-chip__filter"},[r.filter?P(ot,{key:"filter-defaults",disabled:!e.filterIcon,defaults:{VIcon:{icon:e.filterIcon}}},r.filter):P(Ze,{key:"filter-icon",icon:e.filterIcon},null)]),[[Ut,M.isSelected.value]])]}),E&&P("div",{key:"prepend",class:"v-chip__prepend"},[r.prepend?P(ot,{key:"prepend-defaults",disabled:!U,defaults:{VAvatar:{image:e.prependAvatar,start:!0},VIcon:{icon:e.prependIcon,start:!0}}},r.prepend):P(Y1,null,[e.prependIcon&&P(Ze,{key:"prepend-icon",icon:e.prependIcon,start:!0},null),e.prependAvatar&&P(ho,{key:"prepend-avatar",image:e.prependAvatar,start:!0},null)])]),P("div",{class:"v-chip__content"},[(F=(z=r.default)==null?void 0:z.call(r,{isSelected:M==null?void 0:M.isSelected.value,selectedClass:M==null?void 0:M.selectedClass.value,select:M==null?void 0:M.select,toggle:M==null?void 0:M.toggle,value:M==null?void 0:M.value.value,disabled:e.disabled}))!=null?F:e.text]),N&&P("div",{key:"append",class:"v-chip__append"},[r.append?P(ot,{key:"append-defaults",disabled:!R,defaults:{VAvatar:{end:!0,image:e.appendAvatar},VIcon:{end:!0,icon:e.appendIcon}}},r.append):P(Y1,null,[e.appendIcon&&P(Ze,{key:"append-icon",end:!0,icon:e.appendIcon},null),e.appendAvatar&&P(ho,{key:"append-avatar",end:!0,image:e.appendAvatar},null)])]),w&&P("button",V2({key:"close",class:"v-chip__close"},v.value),[r.close?P(ot,{key:"close-defaults",defaults:{VIcon:{icon:e.closeIcon,size:"x-small"}}},r.close):P(Ze,{key:"close-icon",icon:e.closeIcon,size:"x-small"},null)])]}}),[[k5("ripple"),_.value&&e.ripple,null]])}}});const Jp=Symbol.for("vuetify:list");function Ve1(){const e=H2(Jp,{hasPrepend:g2(!1),updateHasPrepend:()=>null}),t={hasPrepend:g2(!1),updateHasPrepend:i=>{i&&(t.hasPrepend.value=i)}};return X2(Jp,t),e}function Le1(){return H2(Jp,null)}const Qz1={open:e=>{let{id:t,value:i,opened:a,parents:r}=e;if(i){const n=new Set;n.add(t);let o=r.get(t);for(;o!=null;)n.add(o),o=r.get(o);return n}else return a.delete(t),a},select:()=>null},He1={open:e=>{let{id:t,value:i,opened:a,parents:r}=e;if(i){let n=r.get(t);for(a.add(t);n!=null&&n!==t;)a.add(n),n=r.get(n);return a}else a.delete(t);return a},select:()=>null},Jz1={open:He1.open,select:e=>{let{id:t,value:i,opened:a,parents:r}=e;if(!i)return a;const n=[];let o=r.get(t);for(;o!=null;)n.push(o),o=r.get(o);return new Set(n)}},wH=e=>{const t={select:i=>{let{id:a,value:r,selected:n}=i;if(a=x2(a),e&&!r){const o=Array.from(n.entries()).reduce((s,l)=>{let[d,C]=l;return C==="on"?[...s,d]:s},[]);if(o.length===1&&o[0]===a)return n}return n.set(a,r?"on":"off"),n},in:(i,a,r)=>{let n=new Map;for(const o of i||[])n=t.select({id:o,value:!0,selected:new Map(n),children:a,parents:r});return n},out:i=>{const a=[];for(const[r,n]of i.entries())n==="on"&&a.push(r);return a}};return t},Me1=e=>{const t=wH(e);return{select:a=>{let{selected:r,id:n,...o}=a;n=x2(n);const s=r.has(n)?new Map([[n,r.get(n)]]):new Map;return t.select({...o,id:n,selected:s})},in:(a,r,n)=>{let o=new Map;return a!=null&&a.length&&(o=t.in(a.slice(0,1),r,n)),o},out:(a,r,n)=>t.out(a,r,n)}},eZ1=e=>{const t=wH(e);return{select:a=>{let{id:r,selected:n,children:o,...s}=a;return r=x2(r),o.has(r)?n:t.select({id:r,selected:n,children:o,...s})},in:t.in,out:t.out}},tZ1=e=>{const t=Me1(e);return{select:a=>{let{id:r,selected:n,children:o,...s}=a;return r=x2(r),o.has(r)?n:t.select({id:r,selected:n,children:o,...s})},in:t.in,out:t.out}},iZ1=e=>{const t={select:i=>{let{id:a,value:r,selected:n,children:o,parents:s}=i;a=x2(a);const l=new Map(n),d=[a];for(;d.length;){const m=d.shift();n.set(m,r?"on":"off"),o.has(m)&&d.push(...o.get(m))}let C=s.get(a);for(;C;){const m=o.get(C),u=m.every(V=>n.get(V)==="on"),p=m.every(V=>!n.has(V)||n.get(V)==="off");n.set(C,u?"on":p?"off":"indeterminate"),C=s.get(C)}return e&&!r&&Array.from(n.entries()).reduce((u,p)=>{let[V,f]=p;return f==="on"?[...u,V]:u},[]).length===0?l:n},in:(i,a,r)=>{let n=new Map;for(const o of i||[])n=t.select({id:o,value:!0,selected:new Map(n),children:a,parents:r});return n},out:(i,a)=>{const r=[];for(const[n,o]of i.entries())o==="on"&&!a.has(n)&&r.push(n);return r}};return t},Js=Symbol.for("vuetify:nested"),ge1={id:g2(),root:{register:()=>null,unregister:()=>null,parents:i1(new Map),children:i1(new Map),open:()=>null,openOnSelect:()=>null,select:()=>null,opened:i1(new Set),selected:i1(new Map),selectedValues:i1([])}},aZ1=k1({selectStrategy:[String,Function],openStrategy:[String,Object],opened:Array,selected:Array,mandatory:Boolean},"nested"),rZ1=e=>{let t=!1;const i=i1(new Map),a=i1(new Map),r=ue(e,"opened",e.opened,m=>new Set(m),m=>[...m.values()]),n=q(()=>{if(typeof e.selectStrategy=="object")return e.selectStrategy;switch(e.selectStrategy){case"single-leaf":return tZ1(e.mandatory);case"leaf":return eZ1(e.mandatory);case"independent":return wH(e.mandatory);case"single-independent":return Me1(e.mandatory);case"classic":default:return iZ1(e.mandatory)}}),o=q(()=>{if(typeof e.openStrategy=="object")return e.openStrategy;switch(e.openStrategy){case"list":return Jz1;case"single":return Qz1;case"multiple":default:return He1}}),s=ue(e,"selected",e.selected,m=>n.value.in(m,i.value,a.value),m=>n.value.out(m,i.value,a.value));xe(()=>{t=!0});function l(m){const u=[];let p=m;for(;p!=null;)u.unshift(p),p=a.value.get(p);return u}const d=b5("nested"),C={id:g2(),root:{opened:r,selected:s,selectedValues:q(()=>{const m=[];for(const[u,p]of s.value.entries())p==="on"&&m.push(u);return m}),register:(m,u,p)=>{u&&m!==u&&a.value.set(m,u),p&&i.value.set(m,[]),u!=null&&i.value.set(u,[...i.value.get(u)||[],m])},unregister:m=>{var p;if(t)return;i.value.delete(m);const u=a.value.get(m);if(u){const V=(p=i.value.get(u))!=null?p:[];i.value.set(u,V.filter(f=>f!==m))}a.value.delete(m),r.value.delete(m)},open:(m,u,p)=>{d.emit("click:open",{id:m,value:u,path:l(m),event:p});const V=o.value.open({id:m,value:u,opened:new Set(r.value),children:i.value,parents:a.value,event:p});V&&(r.value=V)},openOnSelect:(m,u,p)=>{const V=o.value.select({id:m,value:u,selected:new Map(s.value),opened:new Set(r.value),children:i.value,parents:a.value,event:p});V&&(r.value=V)},select:(m,u,p)=>{d.emit("click:select",{id:m,value:u,path:l(m),event:p});const V=n.value.select({id:m,value:u,selected:new Map(s.value),children:i.value,parents:a.value,event:p});V&&(s.value=V),C.root.openOnSelect(m,u,p)},children:i,parents:a}};return X2(Js,C),C.root},Ae1=(e,t)=>{const i=H2(Js,ge1),a=Symbol(x0()),r=q(()=>e.value!==void 0?e.value:a),n={...i,id:r,open:(o,s)=>i.root.open(r.value,o,s),openOnSelect:(o,s)=>i.root.openOnSelect(r.value,o,s),isOpen:q(()=>i.root.opened.value.has(r.value)),parent:q(()=>i.root.parents.value.get(r.value)),select:(o,s)=>i.root.select(r.value,o,s),isSelected:q(()=>i.root.selected.value.get(x2(r.value))==="on"),isIndeterminate:q(()=>i.root.selected.value.get(r.value)==="indeterminate"),isLeaf:q(()=>!i.root.children.value.get(r.value)),isGroupActivator:i.isGroupActivator};return!i.isGroupActivator&&i.root.register(r.value,i.id.value,t),xe(()=>{!i.isGroupActivator&&i.root.unregister(r.value)}),t&&X2(Js,n),n},nZ1=()=>{const e=H2(Js,ge1);X2(Js,{...e,isGroupActivator:!0})};function TH(){const e=g2(!1);return ee(()=>{window.requestAnimationFrame(()=>{e.value=!0})}),{ssrBootStyles:q(()=>e.value?void 0:{transition:"none !important"}),isBooted:yo(e)}}const oZ1=Gi({name:"VListGroupActivator",setup(e,t){let{slots:i}=t;return nZ1(),()=>{var a;return(a=i.default)==null?void 0:a.call(i)}}}),sZ1=k1({activeColor:String,baseColor:String,color:String,collapseIcon:{type:Ce,default:"$collapse"},expandIcon:{type:Ce,default:"$expand"},prependIcon:Ce,appendIcon:Ce,fluid:Boolean,subgroup:Boolean,title:String,value:null,...F2(),...T5()},"VListGroup"),V_=h2()({name:"VListGroup",props:sZ1(),setup(e,t){let{slots:i}=t;const{isOpen:a,open:r,id:n}=Ae1(t2(e,"value"),!0),o=q(()=>`v-list-group--id-${String(n.value)}`),s=Le1(),{isBooted:l}=TH();function d(p){r(!a.value,p)}const C=q(()=>({onClick:d,class:"v-list-group__header",id:o.value})),m=q(()=>a.value?e.collapseIcon:e.expandIcon),u=q(()=>({VListItem:{active:a.value,activeColor:e.activeColor,baseColor:e.baseColor,color:e.color,prependIcon:e.prependIcon||e.subgroup&&m.value,appendIcon:e.appendIcon||!e.subgroup&&m.value,title:e.title,value:e.value}}));return M2(()=>P(e.tag,{class:["v-list-group",{"v-list-group--prepend":s==null?void 0:s.hasPrepend.value,"v-list-group--fluid":e.fluid,"v-list-group--subgroup":e.subgroup,"v-list-group--open":a.value},e.class],style:e.style},{default:()=>[i.activator&&P(ot,{defaults:u.value},{default:()=>[P(oZ1,null,{default:()=>[i.activator({props:C.value,isOpen:a.value})]})]}),P(g4,{transition:{component:ne1},disabled:!l.value},{default:()=>{var p;return[N2(P("div",{class:"v-list-group__items",role:"group","aria-labelledby":o.value},[(p=i.default)==null?void 0:p.call(i)]),[[Ut,a.value]])]}})]})),{}}});const lZ1=bo("v-list-item-subtitle"),cZ1=bo("v-list-item-title"),dZ1=k1({active:{type:Boolean,default:void 0},activeClass:String,activeColor:String,appendAvatar:String,appendIcon:Ce,baseColor:String,disabled:Boolean,lines:String,link:{type:Boolean,default:void 0},nav:Boolean,prependAvatar:String,prependIcon:Ce,ripple:{type:[Boolean,Object],default:!0},slim:Boolean,subtitle:[String,Number],title:[String,Number],value:null,onClick:E0(),onClickOnce:E0(),...Pa(),...F2(),...fi(),...ar(),...Xi(),...p0(),...nm(),...T5(),...p5(),...Ea({variant:"text"})},"VListItem"),ha=h2()({name:"VListItem",directives:{Ripple:Fn},props:dZ1(),emits:{click:e=>!0},setup(e,t){let{attrs:i,slots:a,emit:r}=t;const n=rm(e,i),o=q(()=>e.value===void 0?n.href.value:e.value),{select:s,isSelected:l,isIndeterminate:d,isGroupActivator:C,root:m,parent:u,openOnSelect:p}=Ae1(o,!1),V=Le1(),f=q(()=>{var W;return e.active!==!1&&(e.active||((W=n.isActive)==null?void 0:W.value)||l.value)}),M=q(()=>e.link!==!1&&n.isLink.value),H=q(()=>!e.disabled&&e.link!==!1&&(e.link||n.isClickable.value||e.value!=null&&!!V)),g=q(()=>e.rounded||e.nav),_=q(()=>{var W;return(W=e.color)!=null?W:e.activeColor}),v=q(()=>{var W;return{color:f.value&&(W=_.value)!=null?W:e.baseColor,variant:e.variant}});T1(()=>{var W;return(W=n.isActive)==null?void 0:W.value},W=>{W&&u.value!=null&&m.open(u.value,!0),W&&p(W)},{immediate:!0});const{themeClasses:S}=N5(e),{borderClasses:y}=nr(e),{colorClasses:D,colorStyles:R,variantClasses:N}=k8(v),{densityClasses:w}=I3(e),{dimensionStyles:x}=rr(e),{elevationClasses:U}=O3(e),{roundedClasses:E}=F0(g),O=q(()=>e.lines?`v-list-item--${e.lines}-line`:void 0),z=q(()=>({isActive:f.value,select:s,isSelected:l.value,isIndeterminate:d.value}));function F(W){var r1;r("click",W),!(C||!H.value)&&((r1=n.navigate)==null||r1.call(n,W),e.value!=null&&s(!l.value,W))}function J(W){(W.key==="Enter"||W.key===" ")&&(W.preventDefault(),F(W))}return M2(()=>{const W=M.value?"a":e.tag,r1=a.title||e.title!=null,$=a.subtitle||e.subtitle!=null,t1=!!(e.appendAvatar||e.appendIcon),l1=!!(t1||a.append),V1=!!(e.prependAvatar||e.prependIcon),A1=!!(V1||a.prepend);return V==null||V.updateHasPrepend(A1),e.activeColor&&eF1("active-color",["color","base-color"]),N2(P(W,{class:["v-list-item",{"v-list-item--active":f.value,"v-list-item--disabled":e.disabled,"v-list-item--link":H.value,"v-list-item--nav":e.nav,"v-list-item--prepend":!A1&&(V==null?void 0:V.hasPrepend.value),"v-list-item--slim":e.slim,[`${e.activeClass}`]:e.activeClass&&f.value},S.value,y.value,D.value,w.value,U.value,O.value,E.value,N.value,e.class],style:[R.value,x.value,e.style],href:n.href.value,tabindex:H.value?V?-2:0:void 0,onClick:F,onKeydown:H.value&&!M.value&&J},{default:()=>{var n1;return[F8(H.value||f.value,"v-list-item"),A1&&P("div",{key:"prepend",class:"v-list-item__prepend"},[a.prepend?P(ot,{key:"prepend-defaults",disabled:!V1,defaults:{VAvatar:{density:e.density,image:e.prependAvatar},VIcon:{density:e.density,icon:e.prependIcon},VListItemAction:{start:!0}}},{default:()=>{var M1;return[(M1=a.prepend)==null?void 0:M1.call(a,z.value)]}}):P(Y1,null,[e.prependAvatar&&P(ho,{key:"prepend-avatar",density:e.density,image:e.prependAvatar},null),e.prependIcon&&P(Ze,{key:"prepend-icon",density:e.density,icon:e.prependIcon},null)]),P("div",{class:"v-list-item__spacer"},null)]),P("div",{class:"v-list-item__content","data-no-activator":""},[r1&&P(cZ1,{key:"title"},{default:()=>{var M1,X;return[(X=(M1=a.title)==null?void 0:M1.call(a,{title:e.title}))!=null?X:e.title]}}),$&&P(lZ1,{key:"subtitle"},{default:()=>{var M1,X;return[(X=(M1=a.subtitle)==null?void 0:M1.call(a,{subtitle:e.subtitle}))!=null?X:e.subtitle]}}),(n1=a.default)==null?void 0:n1.call(a,z.value)]),l1&&P("div",{key:"append",class:"v-list-item__append"},[a.append?P(ot,{key:"append-defaults",disabled:!t1,defaults:{VAvatar:{density:e.density,image:e.appendAvatar},VIcon:{density:e.density,icon:e.appendIcon},VListItemAction:{end:!0}}},{default:()=>{var M1;return[(M1=a.append)==null?void 0:M1.call(a,z.value)]}}):P(Y1,null,[e.appendIcon&&P(Ze,{key:"append-icon",density:e.density,icon:e.appendIcon},null),e.appendAvatar&&P(ho,{key:"append-avatar",density:e.density,image:e.appendAvatar},null)]),P("div",{class:"v-list-item__spacer"},null)])]}}),[[k5("ripple"),H.value&&e.ripple]])}),{}}}),CZ1=k1({color:String,inset:Boolean,sticky:Boolean,title:String,...F2(),...T5()},"VListSubheader"),mZ1=h2()({name:"VListSubheader",props:CZ1(),setup(e,t){let{slots:i}=t;const{textColorClasses:a,textColorStyles:r}=Bi(t2(e,"color"));return M2(()=>{const n=!!(i.default||e.title);return P(e.tag,{class:["v-list-subheader",{"v-list-subheader--inset":e.inset,"v-list-subheader--sticky":e.sticky},a.value,e.class],style:[{textColorStyles:r},e.style]},{default:()=>{var o,s;return[n&&P("div",{class:"v-list-subheader__text"},[(s=(o=i.default)==null?void 0:o.call(i))!=null?s:e.title])]}})}),{}}}),uZ1=k1({items:Array,returnObject:Boolean},"VListChildren"),ve1=h2()({name:"VListChildren",props:uZ1(),setup(e,t){let{slots:i}=t;return Ve1(),()=>{var a,r,n;return(n=(a=i.default)==null?void 0:a.call(i))!=null?n:(r=e.items)==null?void 0:r.map(o=>{var p,V,f,M;let{children:s,props:l,type:d,raw:C}=o;if(d==="divider")return(V=(p=i.divider)==null?void 0:p.call(i,{props:l}))!=null?V:P(Qs,l,null);if(d==="subheader")return(M=(f=i.subheader)==null?void 0:f.call(i,{props:l}))!=null?M:P(mZ1,l,null);const m={subtitle:i.subtitle?H=>{var g;return(g=i.subtitle)==null?void 0:g.call(i,{...H,item:C})}:void 0,prepend:i.prepend?H=>{var g;return(g=i.prepend)==null?void 0:g.call(i,{...H,item:C})}:void 0,append:i.append?H=>{var g;return(g=i.append)==null?void 0:g.call(i,{...H,item:C})}:void 0,title:i.title?H=>{var g;return(g=i.title)==null?void 0:g.call(i,{...H,item:C})}:void 0},u=V_.filterProps(l);return s?P(V_,V2({value:l==null?void 0:l.value},u),{activator:H=>{let{props:g}=H;const _={...l,...g,value:e.returnObject?C:l.value};return i.header?i.header({props:_}):P(ha,_,m)},default:()=>P(ve1,{items:s},i)}):i.item?i.item({props:l}):P(ha,V2(l,{value:e.returnObject?C:l.value}),m)})}}}),_e1=k1({items:{type:Array,default:()=>[]},itemTitle:{type:[String,Array,Function],default:"title"},itemValue:{type:[String,Array,Function],default:"value"},itemChildren:{type:[Boolean,String,Array,Function],default:"children"},itemProps:{type:[Boolean,String,Array,Function],default:"props"},returnObject:Boolean,valueComparator:{type:Function,default:wa}},"list-items");function Kr(e,t){var s;const i=Jt(t,e.itemTitle,t),a=Jt(t,e.itemValue,i),r=Jt(t,e.itemChildren),n=e.itemProps===!0?typeof t=="object"&&t!=null&&!Array.isArray(t)?"children"in t?Ta(t,["children"]):t:void 0:Jt(t,e.itemProps),o={title:i,value:a,...n};return{title:String((s=o.title)!=null?s:""),value:o.value,props:o,children:Array.isArray(r)?Se1(e,r):void 0,raw:t}}function Se1(e,t){const i=[];for(const a of t)i.push(Kr(e,a));return i}function De1(e){const t=q(()=>Se1(e,e.items)),i=q(()=>t.value.some(n=>n.value===null));function a(n){return i.value||(n=n.filter(o=>o!==null)),n.map(o=>e.returnObject&&typeof o=="string"?Kr(e,o):t.value.find(s=>e.valueComparator(o,s.value))||Kr(e,o))}function r(n){return e.returnObject?n.map(o=>{let{raw:s}=o;return s}):n.map(o=>{let{value:s}=o;return s})}return{items:t,transformIn:a,transformOut:r}}function hZ1(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function pZ1(e,t){const i=Jt(t,e.itemType,"item"),a=hZ1(t)?t:Jt(t,e.itemTitle),r=Jt(t,e.itemValue,void 0),n=Jt(t,e.itemChildren),o=e.itemProps===!0?Ta(t,["children"]):Jt(t,e.itemProps),s={title:a,value:r,...o};return{type:i,title:s.title,value:s.value,props:s,children:i==="item"&&n?ye1(e,n):void 0,raw:t}}function ye1(e,t){const i=[];for(const a of t)i.push(pZ1(e,a));return i}function fZ1(e){return{items:q(()=>ye1(e,e.items))}}const VZ1=k1({baseColor:String,activeColor:String,activeClass:String,bgColor:String,disabled:Boolean,lines:{type:[Boolean,String],default:"one"},slim:Boolean,nav:Boolean,...aZ1({selectStrategy:"single-leaf",openStrategy:"list"}),...Pa(),...F2(),...fi(),...ar(),...Xi(),itemType:{type:String,default:"type"},..._e1(),...p0(),...T5(),...p5(),...Ea({variant:"text"})},"VList"),Ld=h2()({name:"VList",props:VZ1(),emits:{"update:selected":e=>!0,"update:opened":e=>!0,"click:open":e=>!0,"click:select":e=>!0},setup(e,t){let{slots:i}=t;const{items:a}=fZ1(e),{themeClasses:r}=N5(e),{backgroundColorClasses:n,backgroundColorStyles:o}=d0(t2(e,"bgColor")),{borderClasses:s}=nr(e),{densityClasses:l}=I3(e),{dimensionStyles:d}=rr(e),{elevationClasses:C}=O3(e),{roundedClasses:m}=F0(e),{open:u,select:p}=rZ1(e),V=q(()=>e.lines?`v-list--${e.lines}-line`:void 0),f=t2(e,"activeColor"),M=t2(e,"baseColor"),H=t2(e,"color");Ve1(),I0({VListGroup:{activeColor:f,baseColor:M,color:H},VListItem:{activeClass:t2(e,"activeClass"),activeColor:f,baseColor:M,color:H,density:t2(e,"density"),disabled:t2(e,"disabled"),lines:t2(e,"lines"),nav:t2(e,"nav"),slim:t2(e,"slim"),variant:t2(e,"variant")}});const g=g2(!1),_=i1();function v(N){g.value=!0}function S(N){g.value=!1}function y(N){var w;!g.value&&!(N.relatedTarget&&((w=_.value)==null?void 0:w.contains(N.relatedTarget)))&&R()}function D(N){if(!!_.value){if(N.key==="ArrowDown")R("next");else if(N.key==="ArrowUp")R("prev");else if(N.key==="Home")R("first");else if(N.key==="End")R("last");else return;N.preventDefault()}}function R(N){if(_.value)return td(_.value,N)}return M2(()=>P(e.tag,{ref:_,class:["v-list",{"v-list--disabled":e.disabled,"v-list--nav":e.nav},r.value,n.value,s.value,l.value,C.value,V.value,m.value,e.class],style:[o.value,d.value,e.style],tabindex:e.disabled||g.value?-1:0,role:"listbox","aria-activedescendant":void 0,onFocusin:v,onFocusout:S,onFocus:y,onKeydown:D},{default:()=>[P(ve1,{items:a.value,returnObject:e.returnObject},i)]})),{open:u,select:p,focus:R}}});function Ou(e,t){return{x:e.x+t.x,y:e.y+t.y}}function LZ1(e,t){return{x:e.x-t.x,y:e.y-t.y}}function L_(e,t){if(e.side==="top"||e.side==="bottom"){const{side:i,align:a}=e,r=a==="left"?0:a==="center"?t.width/2:a==="right"?t.width:a,n=i==="top"?0:i==="bottom"?t.height:i;return Ou({x:r,y:n},t)}else if(e.side==="left"||e.side==="right"){const{side:i,align:a}=e,r=i==="left"?0:i==="right"?t.width:i,n=a==="top"?0:a==="center"?t.height/2:a==="bottom"?t.height:a;return Ou({x:r,y:n},t)}return Ou({x:t.width/2,y:t.height/2},t)}const Re1={static:gZ1,connected:vZ1},HZ1=k1({locationStrategy:{type:[String,Function],default:"static",validator:e=>typeof e=="function"||e in Re1},location:{type:String,default:"bottom"},origin:{type:String,default:"auto"},offset:[Number,String,Array]},"VOverlay-location-strategies");function MZ1(e,t){const i=i1({}),a=i1();ze&&M3(()=>!!(t.isActive.value&&e.locationStrategy),n=>{var o,s;T1(()=>e.locationStrategy,n),j5(()=>{window.removeEventListener("resize",r),a.value=void 0}),window.addEventListener("resize",r,{passive:!0}),typeof e.locationStrategy=="function"?a.value=(o=e.locationStrategy(t,e,i))==null?void 0:o.updateLocation:a.value=(s=Re1[e.locationStrategy](t,e,i))==null?void 0:s.updateLocation});function r(n){var o;(o=a.value)==null||o.call(a,n)}return{contentStyles:i,updateLocation:a}}function gZ1(){}function AZ1(e,t){t?e.style.removeProperty("left"):e.style.removeProperty("right");const i=cH(e);return t?i.x+=parseFloat(e.style.right||0):i.x-=parseFloat(e.style.left||0),i.y-=parseFloat(e.style.top||0),i}function vZ1(e,t,i){(Array.isArray(e.target.value)||gF1(e.target.value))&&Object.assign(i.value,{position:"fixed",top:0,[e.isRtl.value?"right":"left"]:0});const{preferredAnchor:r,preferredOrigin:n}=sH(()=>{const V=Op(t.location,e.isRtl.value),f=t.origin==="overlap"?V:t.origin==="auto"?yu(V):Op(t.origin,e.isRtl.value);return V.side===f.side&&V.align===Ru(f).align?{preferredAnchor:bv(V),preferredOrigin:bv(f)}:{preferredAnchor:V,preferredOrigin:f}}),[o,s,l,d]=["minWidth","minHeight","maxWidth","maxHeight"].map(V=>q(()=>{const f=parseFloat(t[V]);return isNaN(f)?1/0:f})),C=q(()=>{if(Array.isArray(t.offset))return t.offset;if(typeof t.offset=="string"){const V=t.offset.split(" ").map(parseFloat);return V.length<2&&V.push(0),V}return typeof t.offset=="number"?[t.offset,0]:[0,0]});let m=!1;const u=new ResizeObserver(()=>{m&&p()});T1([e.target,e.contentEl],(V,f)=>{let[M,H]=V,[g,_]=f;g&&!Array.isArray(g)&&u.unobserve(g),M&&!Array.isArray(M)&&u.observe(M),_&&u.unobserve(_),H&&u.observe(H)},{immediate:!0}),j5(()=>{u.disconnect()});function p(){if(m=!1,requestAnimationFrame(()=>{requestAnimationFrame(()=>m=!0)}),!e.target.value||!e.contentEl.value)return;const V=Ck(e.target.value),f=AZ1(e.contentEl.value,e.isRtl.value),M=nd(e.contentEl.value),H=12;M.length||(M.push(document.documentElement),e.contentEl.value.style.top&&e.contentEl.value.style.left||(f.x-=parseFloat(document.documentElement.style.getPropertyValue("--v-body-scroll-x")||0),f.y-=parseFloat(document.documentElement.style.getPropertyValue("--v-body-scroll-y")||0)));const g=M.reduce((x,U)=>{const E=U.getBoundingClientRect(),O=new on({x:U===document.documentElement?0:E.x,y:U===document.documentElement?0:E.y,width:U.clientWidth,height:U.clientHeight});return x?new on({x:Math.max(x.left,O.left),y:Math.max(x.top,O.top),width:Math.min(x.right,O.right)-Math.max(x.left,O.left),height:Math.min(x.bottom,O.bottom)-Math.max(x.top,O.top)}):O},void 0);g.x+=H,g.y+=H,g.width-=H*2,g.height-=H*2;let _={anchor:r.value,origin:n.value};function v(x){const U=new on(f),E=L_(x.anchor,V),O=L_(x.origin,U);let{x:z,y:F}=LZ1(E,O);switch(x.anchor.side){case"top":F-=C.value[0];break;case"bottom":F+=C.value[0];break;case"left":z-=C.value[0];break;case"right":z+=C.value[0];break}switch(x.anchor.align){case"top":F-=C.value[1];break;case"bottom":F+=C.value[1];break;case"left":z-=C.value[1];break;case"right":z+=C.value[1];break}return U.x+=z,U.y+=F,U.width=Math.min(U.width,l.value),U.height=Math.min(U.height,d.value),{overflows:wv(U,g),x:z,y:F}}let S=0,y=0;const D={x:0,y:0},R={x:!1,y:!1};let N=-1;for(;!(N++>10);){const{x,y:U,overflows:E}=v(_);S+=x,y+=U,f.x+=x,f.y+=U;{const O=Nv(_.anchor),z=E.x.before||E.x.after,F=E.y.before||E.y.after;let J=!1;if(["x","y"].forEach(W=>{if(W==="x"&&z&&!R.x||W==="y"&&F&&!R.y){const r1={anchor:{..._.anchor},origin:{..._.origin}},$=W==="x"?O==="y"?Ru:yu:O==="y"?yu:Ru;r1.anchor=$(r1.anchor),r1.origin=$(r1.origin);const{overflows:t1}=v(r1);(t1[W].before<=E[W].before&&t1[W].after<=E[W].after||t1[W].before+t1[W].after<(E[W].before+E[W].after)/2)&&(_=r1,J=R[W]=!0)}}),J)continue}E.x.before&&(S+=E.x.before,f.x+=E.x.before),E.x.after&&(S-=E.x.after,f.x-=E.x.after),E.y.before&&(y+=E.y.before,f.y+=E.y.before),E.y.after&&(y-=E.y.after,f.y-=E.y.after);{const O=wv(f,g);D.x=g.width-O.x.before-O.x.after,D.y=g.height-O.y.before-O.y.after,S+=O.x.before,f.x+=O.x.before,y+=O.y.before,f.y+=O.y.before}break}const w=Nv(_.anchor);return Object.assign(i.value,{"--v-overlay-anchor-origin":`${_.anchor.side} ${_.anchor.align}`,transformOrigin:`${_.origin.side} ${_.origin.align}`,top:f2(Uu(y)),left:e.isRtl.value?void 0:f2(Uu(S)),right:e.isRtl.value?f2(Uu(-S)):void 0,minWidth:f2(w==="y"?Math.min(o.value,V.width):o.value),maxWidth:f2(H_(xt(D.x,o.value===1/0?0:o.value,l.value))),maxHeight:f2(H_(xt(D.y,s.value===1/0?0:s.value,d.value)))}),{available:D,contentBox:f}}return T1(()=>[r.value,n.value,t.offset,t.minWidth,t.minHeight,t.maxWidth,t.maxHeight],()=>p()),k2(()=>{const V=p();if(!V)return;const{available:f,contentBox:M}=V;M.height>f.y&&requestAnimationFrame(()=>{p(),requestAnimationFrame(()=>{p()})})}),{updateLocation:p}}function Uu(e){return Math.round(e*devicePixelRatio)/devicePixelRatio}function H_(e){return Math.ceil(e*devicePixelRatio)/devicePixelRatio}let ef=!0;const Hd=[];function _Z1(e){!ef||Hd.length?(Hd.push(e),tf()):(ef=!1,e(),tf())}let M_=-1;function tf(){cancelAnimationFrame(M_),M_=requestAnimationFrame(()=>{const e=Hd.shift();e&&e(),Hd.length?tf():ef=!0})}const ic={none:null,close:yZ1,block:RZ1,reposition:bZ1},SZ1=k1({scrollStrategy:{type:[String,Function],default:"block",validator:e=>typeof e=="function"||e in ic}},"VOverlay-scroll-strategies");function DZ1(e,t){if(!ze)return;let i;c0(async()=>{i==null||i.stop(),t.isActive.value&&e.scrollStrategy&&(i=_o(),await k2(),i.active&&i.run(()=>{var a;typeof e.scrollStrategy=="function"?e.scrollStrategy(t,e,i):(a=ic[e.scrollStrategy])==null||a.call(ic,t,e,i)}))}),j5(()=>{i==null||i.stop()})}function yZ1(e){var i;function t(a){e.isActive.value=!1}be1((i=e.targetEl.value)!=null?i:e.contentEl.value,t)}function RZ1(e,t){var o;const i=(o=e.root.value)==null?void 0:o.offsetParent,a=[...new Set([...nd(e.targetEl.value,t.contained?i:void 0),...nd(e.contentEl.value,t.contained?i:void 0)])].filter(s=>!s.classList.contains("v-overlay-scroll-blocked")),r=window.innerWidth-document.documentElement.offsetWidth,n=(s=>uH(s)&&s)(i||document.documentElement);n&&e.root.value.classList.add("v-overlay--scroll-blocked"),a.forEach((s,l)=>{s.style.setProperty("--v-body-scroll-x",f2(-s.scrollLeft)),s.style.setProperty("--v-body-scroll-y",f2(-s.scrollTop)),s!==document.documentElement&&s.style.setProperty("--v-scrollbar-offset",f2(r)),s.classList.add("v-overlay-scroll-blocked")}),j5(()=>{a.forEach((s,l)=>{const d=parseFloat(s.style.getPropertyValue("--v-body-scroll-x")),C=parseFloat(s.style.getPropertyValue("--v-body-scroll-y"));s.style.removeProperty("--v-body-scroll-x"),s.style.removeProperty("--v-body-scroll-y"),s.style.removeProperty("--v-scrollbar-offset"),s.classList.remove("v-overlay-scroll-blocked"),s.scrollLeft=-d,s.scrollTop=-C}),n&&e.root.value.classList.remove("v-overlay--scroll-blocked")})}function bZ1(e,t,i){let a=!1,r=-1,n=-1;function o(s){_Z1(()=>{var C,m;const l=performance.now();(m=(C=e.updateLocation).value)==null||m.call(C,s),a=(performance.now()-l)/(1e3/60)>2})}n=(typeof requestIdleCallback>"u"?s=>s():requestIdleCallback)(()=>{i.run(()=>{var s;be1((s=e.targetEl.value)!=null?s:e.contentEl.value,l=>{a?(cancelAnimationFrame(r),r=requestAnimationFrame(()=>{r=requestAnimationFrame(()=>{o(l)})})):o(l)})})}),j5(()=>{typeof cancelIdleCallback<"u"&&cancelIdleCallback(n),cancelAnimationFrame(r)})}function be1(e,t){const i=[document,...nd(e)];i.forEach(a=>{a.addEventListener("scroll",t,{passive:!0})}),j5(()=>{i.forEach(a=>{a.removeEventListener("scroll",t)})})}const af=Symbol.for("vuetify:v-menu"),NZ1=k1({closeDelay:[Number,String],openDelay:[Number,String]},"delay");function wZ1(e,t){const i={},a=r=>()=>{if(!ze)return Promise.resolve(!0);const n=r==="openDelay";return i.closeDelay&&window.clearTimeout(i.closeDelay),delete i.closeDelay,i.openDelay&&window.clearTimeout(i.openDelay),delete i.openDelay,new Promise(o=>{var l;const s=parseInt((l=e[r])!=null?l:0,10);i[r]=window.setTimeout(()=>{t==null||t(n),o(n)},s)})};return{runCloseDelay:a("closeDelay"),runOpenDelay:a("openDelay")}}const TZ1=k1({target:[String,Object],activator:[String,Object],activatorProps:{type:Object,default:()=>({})},openOnClick:{type:Boolean,default:void 0},openOnHover:Boolean,openOnFocus:{type:Boolean,default:void 0},closeOnContentClick:Boolean,...NZ1()},"VOverlay-activator");function EZ1(e,t){let{isActive:i,isTop:a}=t;const r=b5("useActivator"),n=i1();let o=!1,s=!1,l=!0;const d=q(()=>e.openOnFocus||e.openOnFocus==null&&e.openOnHover),C=q(()=>e.openOnClick||e.openOnClick==null&&!e.openOnHover&&!d.value),{runOpenDelay:m,runCloseDelay:u}=wZ1(e,D=>{D===(e.openOnHover&&o||d.value&&s)&&!(e.openOnHover&&i.value&&!a.value)&&(i.value!==D&&(l=!0),i.value=D)}),p=i1(),V={onClick:D=>{D.stopPropagation(),n.value=D.currentTarget||D.target,i.value||(p.value=[D.clientX,D.clientY]),i.value=!i.value},onMouseenter:D=>{var R;(R=D.sourceCapabilities)!=null&&R.firesTouchEvents||(o=!0,n.value=D.currentTarget||D.target,m())},onMouseleave:D=>{o=!1,u()},onFocus:D=>{id(D.target,":focus-visible")!==!1&&(s=!0,D.stopPropagation(),n.value=D.currentTarget||D.target,m())},onBlur:D=>{s=!1,D.stopPropagation(),u()}},f=q(()=>{const D={};return C.value&&(D.onClick=V.onClick),e.openOnHover&&(D.onMouseenter=V.onMouseenter,D.onMouseleave=V.onMouseleave),d.value&&(D.onFocus=V.onFocus,D.onBlur=V.onBlur),D}),M=q(()=>{const D={};if(e.openOnHover&&(D.onMouseenter=()=>{o=!0,m()},D.onMouseleave=()=>{o=!1,u()}),d.value&&(D.onFocusin=()=>{s=!0,m()},D.onFocusout=()=>{s=!1,u()}),e.closeOnContentClick){const R=H2(af,null);D.onClick=()=>{i.value=!1,R==null||R.closeParents()}}return D}),H=q(()=>{const D={};return e.openOnHover&&(D.onMouseenter=()=>{l&&(o=!0,l=!1,m())},D.onMouseleave=()=>{o=!1,u()}),D});T1(a,D=>{D&&(e.openOnHover&&!o&&(!d.value||!s)||d.value&&!s&&(!e.openOnHover||!o))&&(i.value=!1)}),T1(i,D=>{D||setTimeout(()=>{p.value=void 0})},{flush:"post"});const g=i1();c0(()=>{!g.value||k2(()=>{n.value=Qc(g.value)})});const _=i1(),v=q(()=>e.target==="cursor"&&p.value?p.value:_.value?Qc(_.value):Ne1(e.target,r)||n.value),S=q(()=>Array.isArray(v.value)?void 0:v.value);let y;return T1(()=>!!e.activator,D=>{D&&ze?(y=_o(),y.run(()=>{PZ1(e,r,{activatorEl:n,activatorEvents:f})})):y&&y.stop()},{flush:"post",immediate:!0}),j5(()=>{y==null||y.stop()}),{activatorEl:n,activatorRef:g,target:v,targetEl:S,targetRef:_,activatorEvents:f,contentEvents:M,scrimEvents:H}}function PZ1(e,t,i){let{activatorEl:a,activatorEvents:r}=i;T1(()=>e.activator,(l,d)=>{if(d&&l!==d){const C=s(d);C&&o(C)}l&&k2(()=>n())},{immediate:!0}),T1(()=>e.activatorProps,()=>{n()}),j5(()=>{o()});function n(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:s(),d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.activatorProps;!l||Wx1(l,V2(r.value,d))}function o(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:s(),d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.activatorProps;!l||Xx1(l,V2(r.value,d))}function s(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:e.activator;const d=Ne1(l,t);return a.value=(d==null?void 0:d.nodeType)===Node.ELEMENT_NODE?d:void 0,a.value}}function Ne1(e,t){var a,r;if(!e)return;let i;if(e==="parent"){let n=(r=(a=t==null?void 0:t.proxy)==null?void 0:a.$el)==null?void 0:r.parentNode;for(;n!=null&&n.hasAttribute("data-no-activator");)n=n.parentNode;i=n}else typeof e=="string"?i=document.querySelector(e):"$el"in e?i=e.$el:i=e;return i}function IZ1(){if(!ze)return g2(!1);const{ssr:e}=I8();if(e){const t=g2(!1);return ee(()=>{t.value=!0}),t}else return g2(!0)}const EH=k1({eager:Boolean},"lazy");function we1(e,t){const i=g2(!1),a=q(()=>i.value||e.eager||t.value);T1(t,()=>i.value=!0);function r(){e.eager||(i.value=!1)}return{isBooted:i,hasContent:a,onAfterLeave:r}}function om(){const t=b5("useScopeId").vnode.scopeId;return{scopeId:t?{[t]:""}:void 0}}const g_=Symbol.for("vuetify:stack"),H7=$2([]);function OZ1(e,t,i){const a=b5("useStack"),r=!i,n=H2(g_,void 0),o=$2({activeChildren:new Set});X2(g_,o);const s=g2(+t.value);M3(e,()=>{var m;const C=(m=H7.at(-1))==null?void 0:m[1];s.value=C?C+10:+t.value,r&&H7.push([a.uid,s.value]),n==null||n.activeChildren.add(a.uid),j5(()=>{if(r){const u=x2(H7).findIndex(p=>p[0]===a.uid);H7.splice(u,1)}n==null||n.activeChildren.delete(a.uid)})});const l=g2(!0);r&&c0(()=>{var m;const C=((m=H7.at(-1))==null?void 0:m[0])===a.uid;setTimeout(()=>l.value=C)});const d=q(()=>!o.activeChildren.size);return{globalTop:yo(l),localTop:d,stackStyles:q(()=>({zIndex:s.value}))}}function UZ1(e){return{teleportTarget:q(()=>{const i=e.value;if(i===!0||!ze)return;const a=i===!1?document.body:typeof i=="string"?document.querySelector(i):i;if(a==null)return;let r=a.querySelector(":scope > .v-overlay-container");return r||(r=document.createElement("div"),r.className="v-overlay-container",a.appendChild(r)),r})}}function xZ1(){return!0}function Te1(e,t,i){if(!e||Ee1(e,i)===!1)return!1;const a=vk(t);if(typeof ShadowRoot<"u"&&a instanceof ShadowRoot&&a.host===e.target)return!1;const r=(typeof i.value=="object"&&i.value.include||(()=>[]))();return r.push(t),!r.some(n=>n==null?void 0:n.contains(e.target))}function Ee1(e,t){return(typeof t.value=="object"&&t.value.closeConditional||xZ1)(e)}function FZ1(e,t,i){const a=typeof i.value=="function"?i.value:i.value.handler;t._clickOutside.lastMousedownWasOutside&&Te1(e,t,i)&&setTimeout(()=>{Ee1(e,i)&&a&&a(e)},0)}function A_(e,t){const i=vk(e);t(document),typeof ShadowRoot<"u"&&i instanceof ShadowRoot&&t(i)}const kZ1={mounted(e,t){const i=r=>FZ1(r,e,t),a=r=>{e._clickOutside.lastMousedownWasOutside=Te1(r,e,t)};A_(e,r=>{r.addEventListener("click",i,!0),r.addEventListener("mousedown",a,!0)}),e._clickOutside||(e._clickOutside={lastMousedownWasOutside:!1}),e._clickOutside[t.instance.$.uid]={onClick:i,onMousedown:a}},unmounted(e,t){!e._clickOutside||(A_(e,i=>{var n;if(!i||!((n=e._clickOutside)!=null&&n[t.instance.$.uid]))return;const{onClick:a,onMousedown:r}=e._clickOutside[t.instance.$.uid];i.removeEventListener("click",a,!0),i.removeEventListener("mousedown",r,!0)}),delete e._clickOutside[t.instance.$.uid])}};function BZ1(e){const{modelValue:t,color:i,...a}=e;return P(q5,{name:"fade-transition",appear:!0},{default:()=>[e.modelValue&&P("div",V2({class:["v-overlay__scrim",e.color.backgroundColorClasses.value],style:e.color.backgroundColorStyles.value},a),null)]})}const PH=k1({absolute:Boolean,attach:[Boolean,String,Object],closeOnBack:{type:Boolean,default:!0},contained:Boolean,contentClass:null,contentProps:null,disabled:Boolean,noClickAnimation:Boolean,modelValue:Boolean,persistent:Boolean,scrim:{type:[Boolean,String],default:!0},zIndex:{type:[Number,String],default:2e3},...TZ1(),...F2(),...ar(),...EH(),...HZ1(),...SZ1(),...p5(),...Io()},"VOverlay"),Md=h2()({name:"VOverlay",directives:{ClickOutside:kZ1},inheritAttrs:!1,props:{_disableGlobalStack:Boolean,...PH()},emits:{"click:outside":e=>!0,"update:modelValue":e=>!0,afterLeave:()=>!0},setup(e,t){let{slots:i,attrs:a,emit:r}=t;const n=ue(e,"modelValue"),o=q({get:()=>n.value,set:l1=>{l1&&e.disabled||(n.value=l1)}}),{teleportTarget:s}=UZ1(q(()=>e.attach||e.contained)),{themeClasses:l}=N5(e),{rtlClasses:d,isRtl:C}=pi(),{hasContent:m,onAfterLeave:u}=we1(e,o),p=d0(q(()=>typeof e.scrim=="string"?e.scrim:null)),{globalTop:V,localTop:f,stackStyles:M}=OZ1(o,t2(e,"zIndex"),e._disableGlobalStack),{activatorEl:H,activatorRef:g,target:_,targetEl:v,targetRef:S,activatorEvents:y,contentEvents:D,scrimEvents:R}=EZ1(e,{isActive:o,isTop:f}),{dimensionStyles:N}=rr(e),w=IZ1(),{scopeId:x}=om();T1(()=>e.disabled,l1=>{l1&&(o.value=!1)});const U=i1(),E=i1(),{contentStyles:O,updateLocation:z}=MZ1(e,{isRtl:C,contentEl:E,target:_,isActive:o});DZ1(e,{root:U,contentEl:E,targetEl:v,isActive:o,updateLocation:z});function F(l1){r("click:outside",l1),e.persistent?t1():o.value=!1}function J(){return o.value&&V.value}ze&&T1(o,l1=>{l1?window.addEventListener("keydown",W):window.removeEventListener("keydown",W)},{immediate:!0});function W(l1){var V1,A1;l1.key==="Escape"&&V.value&&(e.persistent?t1():(o.value=!1,(V1=E.value)!=null&&V1.contains(document.activeElement)&&((A1=H.value)==null||A1.focus())))}const r1=X21();M3(()=>e.closeOnBack,()=>{hz1(r1,l1=>{V.value&&o.value?(l1(!1),e.persistent?t1():o.value=!1):l1()})});const $=i1();T1(()=>o.value&&(e.absolute||e.contained)&&s.value==null,l1=>{if(l1){const V1=Sk(U.value);V1&&V1!==document.scrollingElement&&($.value=V1.scrollTop)}});function t1(){e.noClickAnimation||E.value&&P6(E.value,[{transformOrigin:"center"},{transform:"scale(1.03)"},{transformOrigin:"center"}],{duration:150,easing:rd})}return M2(()=>{var l1;return P(Y1,null,[(l1=i.activator)==null?void 0:l1.call(i,{isActive:o.value,props:V2({ref:g,targetRef:S},y.value,e.activatorProps)}),w.value&&m.value&&P(La,{disabled:!s.value,to:s.value},{default:()=>[P("div",V2({class:["v-overlay",{"v-overlay--absolute":e.absolute||e.contained,"v-overlay--active":o.value,"v-overlay--contained":e.contained},l.value,d.value,e.class],style:[M.value,{top:f2($.value)},e.style],ref:U},x,a),[P(BZ1,V2({color:p,modelValue:o.value&&!!e.scrim},R.value),null),P(g4,{appear:!0,persisted:!0,transition:e.transition,target:_.value,onAfterLeave:()=>{u(),r("afterLeave")}},{default:()=>{var V1;return[N2(P("div",V2({ref:E,class:["v-overlay__content",e.contentClass],style:[N.value,O.value]},D.value,e.contentProps),[(V1=i.default)==null?void 0:V1.call(i,{isActive:o})]),[[Ut,o.value],[k5("click-outside"),{handler:F,closeConditional:J,include:()=>[H.value]}]])]}})])]})])}),{activatorEl:H,target:_,animateClick:t1,contentEl:E,globalTop:V,localTop:f,updateLocation:z}}}),xu=Symbol("Forwarded refs");function Fu(e,t){let i=e;for(;i;){const a=Reflect.getOwnPropertyDescriptor(i,t);if(a)return a;i=Object.getPrototypeOf(i)}}function Oo(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),a=1;a!0},setup(e,t){let{slots:i}=t;const a=ue(e,"modelValue"),{scopeId:r}=om(),n=x0(),o=q(()=>e.id||`v-menu-${n}`),s=i1(),l=H2(af,null),d=g2(0);X2(af,{register(){++d.value},unregister(){--d.value},closeParents(){setTimeout(()=>{d.value||(a.value=!1,l==null||l.closeParents())},40)}});async function C(f){var g,_,v;const M=f.relatedTarget,H=f.target;await k2(),a.value&&M!==H&&((g=s.value)==null?void 0:g.contentEl)&&((_=s.value)==null?void 0:_.globalTop)&&![document,s.value.contentEl].includes(H)&&!s.value.contentEl.contains(H)&&((v=ed(s.value.contentEl)[0])==null||v.focus())}T1(a,f=>{f?(l==null||l.register(),document.addEventListener("focusin",C,{once:!0})):(l==null||l.unregister(),document.removeEventListener("focusin",C))});function m(){l==null||l.closeParents()}function u(f){var M,H,g;e.disabled||f.key==="Tab"&&(ck(ed((M=s.value)==null?void 0:M.contentEl,!1),f.shiftKey?"prev":"next",v=>v.tabIndex>=0)||(a.value=!1,(g=(H=s.value)==null?void 0:H.activatorEl)==null||g.focus()))}function p(f){var H;if(e.disabled)return;const M=(H=s.value)==null?void 0:H.contentEl;M&&a.value?f.key==="ArrowDown"?(f.preventDefault(),td(M,"next")):f.key==="ArrowUp"&&(f.preventDefault(),td(M,"prev")):["ArrowDown","ArrowUp"].includes(f.key)&&(a.value=!0,f.preventDefault(),setTimeout(()=>setTimeout(()=>p(f))))}const V=q(()=>V2({"aria-haspopup":"menu","aria-expanded":String(a.value),"aria-owns":o.value,onKeydown:p},e.activatorProps));return M2(()=>{const f=Md.filterProps(e);return P(Md,V2({ref:s,class:["v-menu",e.class],style:e.style},f,{modelValue:a.value,"onUpdate:modelValue":M=>a.value=M,absolute:!0,activatorProps:V.value,"onClick:outside":m,onKeydown:u},r),{activator:i.activator,default:function(){for(var M=arguments.length,H=new Array(M),g=0;g{var _;return[(_=i.default)==null?void 0:_.call(i,...H)]}})}})}),Oo({id:o,\u03A8openChildren:d},s)}});const ZZ1=k1({active:Boolean,max:[Number,String],value:{type:[Number,String],default:0},...F2(),...Io({transition:{component:re1}})},"VCounter"),GZ1=h2()({name:"VCounter",functional:!0,props:ZZ1(),setup(e,t){let{slots:i}=t;const a=q(()=>e.max?`${e.value} / ${e.max}`:String(e.value));return M2(()=>P(g4,{transition:e.transition},{default:()=>[N2(P("div",{class:["v-counter",e.class],style:e.style},[i.default?i.default({counter:a.value,max:e.max,value:e.value}):a.value]),[[Ut,e.active]])]})),{}}});const WZ1=k1({floating:Boolean,...F2()},"VFieldLabel"),hl=h2()({name:"VFieldLabel",props:WZ1(),setup(e,t){let{slots:i}=t;return M2(()=>P(SH,{class:["v-field-label",{"v-field-label--floating":e.floating},e.class],style:e.style,"aria-hidden":e.floating||void 0},i)),{}}}),XZ1=["underlined","outlined","filled","solo","solo-inverted","solo-filled","plain"],Ie1=k1({appendInnerIcon:Ce,bgColor:String,clearable:Boolean,clearIcon:{type:Ce,default:"$clear"},active:Boolean,centerAffix:{type:Boolean,default:void 0},color:String,baseColor:String,dirty:Boolean,disabled:{type:Boolean,default:null},error:Boolean,flat:Boolean,label:String,persistentClear:Boolean,prependInnerIcon:Ce,reverse:Boolean,singleLine:Boolean,variant:{type:String,default:"filled",validator:e=>XZ1.includes(e)},"onClick:clear":E0(),"onClick:appendInner":E0(),"onClick:prependInner":E0(),...F2(),...im(),...p0(),...p5()},"VField"),Oe1=h2()({name:"VField",inheritAttrs:!1,props:{id:String,...AH(),...Ie1()},emits:{"update:focused":e=>!0,"update:modelValue":e=>!0},setup(e,t){let{attrs:i,emit:a,slots:r}=t;const{themeClasses:n}=N5(e),{loaderClasses:o}=B8(e),{focusClasses:s,isFocused:l,focus:d,blur:C}=z8(e),{InputIcon:m}=se1(e),{roundedClasses:u}=F0(e),{rtlClasses:p}=pi(),V=q(()=>e.dirty||e.active),f=q(()=>!e.singleLine&&!!(e.label||r.label)),M=x0(),H=q(()=>e.id||`input-${M}`),g=q(()=>`${H.value}-messages`),_=i1(),v=i1(),S=i1(),y=q(()=>["plain","underlined"].includes(e.variant)),{backgroundColorClasses:D,backgroundColorStyles:R}=d0(t2(e,"bgColor")),{textColorClasses:N,textColorStyles:w}=Bi(q(()=>e.error||e.disabled?void 0:V.value&&l.value?e.color:e.baseColor));T1(V,E=>{if(f.value){const O=_.value.$el,z=v.value.$el;requestAnimationFrame(()=>{const F=cH(O),J=z.getBoundingClientRect(),W=J.x-F.x,r1=J.y-F.y-(F.height/2-J.height/2),$=J.width/.75,t1=Math.abs($-F.width)>1?{maxWidth:f2($)}:void 0,l1=getComputedStyle(O),V1=getComputedStyle(z),A1=parseFloat(l1.transitionDuration)*1e3||150,n1=parseFloat(V1.getPropertyValue("--v-field-label-scale")),M1=V1.getPropertyValue("color");O.style.visibility="visible",z.style.visibility="hidden",P6(O,{transform:`translate(${W}px, ${r1}px) scale(${n1})`,color:M1,...t1},{duration:A1,easing:rd,direction:E?"normal":"reverse"}).finished.then(()=>{O.style.removeProperty("visibility"),z.style.removeProperty("visibility")})})}},{flush:"post"});const x=q(()=>({isActive:V,isFocused:l,controlRef:S,blur:C,focus:d}));function U(E){E.target!==document.activeElement&&E.preventDefault()}return M2(()=>{var W,r1,$,t1;const E=e.variant==="outlined",O=r["prepend-inner"]||e.prependInnerIcon,z=!!(e.clearable||r.clear),F=!!(r["append-inner"]||e.appendInnerIcon||z),J=()=>r.label?r.label({...x.value,label:e.label,props:{for:H.value}}):e.label;return P("div",V2({class:["v-field",{"v-field--active":V.value,"v-field--appended":F,"v-field--center-affix":(W=e.centerAffix)!=null?W:!y.value,"v-field--disabled":e.disabled,"v-field--dirty":e.dirty,"v-field--error":e.error,"v-field--flat":e.flat,"v-field--has-background":!!e.bgColor,"v-field--persistent-clear":e.persistentClear,"v-field--prepended":O,"v-field--reverse":e.reverse,"v-field--single-line":e.singleLine,"v-field--no-label":!J(),[`v-field--variant-${e.variant}`]:!0},n.value,D.value,s.value,o.value,u.value,p.value,e.class],style:[R.value,e.style],onClick:U},i),[P("div",{class:"v-field__overlay"},null),P(am,{name:"v-field",active:!!e.loading,color:e.error?"error":typeof e.loading=="string"?e.loading:e.color},{default:r.loader}),O&&P("div",{key:"prepend",class:"v-field__prepend-inner"},[e.prependInnerIcon&&P(m,{key:"prepend-icon",name:"prependInner"},null),(r1=r["prepend-inner"])==null?void 0:r1.call(r,x.value)]),P("div",{class:"v-field__field","data-no-activator":""},[["filled","solo","solo-inverted","solo-filled"].includes(e.variant)&&f.value&&P(hl,{key:"floating-label",ref:v,class:[N.value],floating:!0,for:H.value,style:w.value},{default:()=>[J()]}),P(hl,{ref:_,for:H.value},{default:()=>[J()]}),($=r.default)==null?void 0:$.call(r,{...x.value,props:{id:H.value,class:"v-field__input","aria-describedby":g.value},focus:d,blur:C})]),z&&P(oe1,{key:"clear"},{default:()=>[N2(P("div",{class:"v-field__clearable",onMousedown:l1=>{l1.preventDefault(),l1.stopPropagation()}},[r.clear?r.clear():P(m,{name:"clear"},null)]),[[Ut,e.dirty]])]}),F&&P("div",{key:"append",class:"v-field__append-inner"},[(t1=r["append-inner"])==null?void 0:t1.call(r,x.value),e.appendInnerIcon&&P(m,{key:"append-icon",name:"appendInner"},null)]),P("div",{class:["v-field__outline",N.value],style:w.value},[E&&P(Y1,null,[P("div",{class:"v-field__outline__start"},null),f.value&&P("div",{class:"v-field__outline__notch"},[P(hl,{ref:v,floating:!0,for:H.value},{default:()=>[J()]})]),P("div",{class:"v-field__outline__end"},null)]),y.value&&f.value&&P(hl,{ref:v,floating:!0,for:H.value},{default:()=>[J()]})])])}),{controlRef:S}}});function YZ1(e){const t=Object.keys(Oe1.props).filter(i=>!YC(i)&&i!=="class"&&i!=="style");return nk(e,t)}const $Z1=["color","file","time","date","datetime-local","week","month"],IH=k1({autofocus:Boolean,counter:[Boolean,Number,String],counterValue:[Number,Function],prefix:String,placeholder:String,persistentPlaceholder:Boolean,persistentCounter:Boolean,suffix:String,role:String,type:{type:String,default:"text"},modelModifiers:Object,...Z8(),...Ie1()},"VTextField"),kt=h2()({name:"VTextField",directives:{Intersect:Z21},inheritAttrs:!1,props:IH(),emits:{"click:control":e=>!0,"mousedown:control":e=>!0,"update:focused":e=>!0,"update:modelValue":e=>!0},setup(e,t){let{attrs:i,emit:a,slots:r}=t;const n=ue(e,"modelValue"),{isFocused:o,focus:s,blur:l}=z8(e),d=q(()=>{var y;return typeof e.counterValue=="function"?e.counterValue(n.value):typeof e.counterValue=="number"?e.counterValue:((y=n.value)!=null?y:"").toString().length}),C=q(()=>{if(i.maxlength)return i.maxlength;if(!(!e.counter||typeof e.counter!="number"&&typeof e.counter!="string"))return e.counter}),m=q(()=>["plain","underlined"].includes(e.variant));function u(y,D){var R,N;!e.autofocus||!y||(N=(R=D[0].target)==null?void 0:R.focus)==null||N.call(R)}const p=i1(),V=i1(),f=i1(),M=q(()=>$Z1.includes(e.type)||e.persistentPlaceholder||o.value||e.active);function H(){var y;f.value!==document.activeElement&&((y=f.value)==null||y.focus()),o.value||s()}function g(y){a("mousedown:control",y),y.target!==f.value&&(H(),y.preventDefault())}function _(y){H(),a("click:control",y)}function v(y){y.stopPropagation(),H(),k2(()=>{n.value=null,zx1(e["onClick:clear"],y)})}function S(y){var R;const D=y.target;if(n.value=D.value,((R=e.modelModifiers)==null?void 0:R.trim)&&["text","search","password","tel","url"].includes(e.type)){const N=[D.selectionStart,D.selectionEnd];k2(()=>{D.selectionStart=N[0],D.selectionEnd=N[1]})}}return M2(()=>{const y=!!(r.counter||e.counter!==!1&&e.counter!=null),D=!!(y||r.details),[R,N]=$C(i),{modelValue:w,...x}=$4.filterProps(e),U=YZ1(e);return P($4,V2({ref:p,modelValue:n.value,"onUpdate:modelValue":E=>n.value=E,class:["v-text-field",{"v-text-field--prefixed":e.prefix,"v-text-field--suffixed":e.suffix,"v-input--plain-underlined":m.value},e.class],style:e.style},R,x,{centerAffix:!m.value,focused:o.value}),{...r,default:E=>{let{id:O,isDisabled:z,isDirty:F,isReadonly:J,isValid:W}=E;return P(Oe1,V2({ref:V,onMousedown:g,onClick:_,"onClick:clear":v,"onClick:prependInner":e["onClick:prependInner"],"onClick:appendInner":e["onClick:appendInner"],role:e.role},U,{id:O.value,active:M.value||F.value,dirty:F.value||e.dirty,disabled:z.value,focused:o.value,error:W.value===!1}),{...r,default:r1=>{let{props:{class:$,...t1}}=r1;const l1=N2(P("input",V2({ref:f,value:n.value,onInput:S,autofocus:e.autofocus,readonly:J.value,disabled:z.value,name:e.name,placeholder:e.placeholder,size:1,type:e.type,onFocus:H,onBlur:l},t1,N),null),[[k5("intersect"),{handler:u},null,{once:!0}]]);return P(Y1,null,[e.prefix&&P("span",{class:"v-text-field__prefix"},[P("span",{class:"v-text-field__prefix__text"},[e.prefix])]),r.default?P("div",{class:$,"data-no-activator":""},[r.default(),l1]):Fi(l1,{class:$}),e.suffix&&P("span",{class:"v-text-field__suffix"},[P("span",{class:"v-text-field__suffix__text"},[e.suffix])])])}})},details:D?E=>{var O;return P(Y1,null,[(O=r.details)==null?void 0:O.call(r,E),y&&P(Y1,null,[P("span",null,null),P(GZ1,{active:e.persistentCounter||o.value,value:d.value,max:C.value},r.counter)])])}:void 0})}),Oo({},p,V,f)}});const qZ1=k1({renderless:Boolean,...F2()},"VVirtualScrollItem"),KZ1=h2()({name:"VVirtualScrollItem",inheritAttrs:!1,props:qZ1(),emits:{"update:height":e=>!0},setup(e,t){let{attrs:i,emit:a,slots:r}=t;const{resizeRef:n,contentRect:o}=No(void 0,"border");T1(()=>{var s;return(s=o.value)==null?void 0:s.height},s=>{s!=null&&a("update:height",s)}),M2(()=>{var s,l;return e.renderless?P(Y1,null,[(s=r.default)==null?void 0:s.call(r,{itemRef:n})]):P("div",V2({ref:n,class:["v-virtual-scroll__item",e.class],style:e.style},i),[(l=r.default)==null?void 0:l.call(r)])})}}),jZ1=-1,QZ1=1,ku=100,JZ1=k1({itemHeight:{type:[Number,String],default:null},height:[Number,String]},"virtual");function eG1(e,t){const i=I8(),a=g2(0);c0(()=>{a.value=parseFloat(e.itemHeight||0)});const r=g2(0),n=g2(Math.ceil((parseInt(e.height)||i.height.value)/(a.value||16))||1),o=g2(0),s=g2(0),l=i1(),d=i1();let C=0;const{resizeRef:m,contentRect:u}=No();c0(()=>{m.value=l.value});const p=q(()=>{var r1;return l.value===document.documentElement?i.height.value:((r1=u.value)==null?void 0:r1.height)||parseInt(e.height)||0}),V=q(()=>!!(l.value&&d.value&&p.value&&a.value));let f=Array.from({length:t.value.length}),M=Array.from({length:t.value.length});const H=g2(0);let g=-1;function _(r1){return f[r1]||a.value}const v=xx1(()=>{const r1=performance.now();M[0]=0;const $=t.value.length;for(let t1=1;t1<=$-1;t1++)M[t1]=(M[t1-1]||0)+_(t1-1);H.value=Math.max(H.value,performance.now()-r1)},H),S=T1(V,r1=>{!r1||(S(),C=d.value.offsetTop,v.immediate(),z(),~g&&k2(()=>{ze&&window.requestAnimationFrame(()=>{J(g),g=-1})}))});T1(p,(r1,$)=>{$&&z()}),j5(()=>{v.clear()});function y(r1,$){const t1=f[r1],l1=a.value;a.value=l1?Math.min(a.value,$):$,(t1!==$||l1!==a.value)&&(f[r1]=$,v())}function D(r1){return r1=xt(r1,0,t.value.length-1),M[r1]||0}function R(r1){return tG1(M,r1)}let N=0,w=0,x=0;function U(){if(!l.value||!d.value)return;const r1=l.value.scrollTop,$=performance.now();$-x>500?(w=Math.sign(r1-N),C=d.value.offsetTop):w=r1-N,N=r1,x=$,z()}function E(){!l.value||!d.value||(w=0,x=0,z())}let O=-1;function z(){cancelAnimationFrame(O),O=requestAnimationFrame(F)}function F(){if(!l.value||!p.value)return;const r1=N-C,$=Math.sign(w),t1=Math.max(0,r1-ku),l1=xt(R(t1),0,t.value.length),V1=r1+p.value+ku,A1=xt(R(V1)+1,l1+1,t.value.length);if(($!==jZ1||l1n.value)){const n1=D(r.value)-D(l1),M1=D(A1)-D(n.value);Math.max(n1,M1)>ku?(r.value=l1,n.value=A1):(l1<=0&&(r.value=l1),A1>=t.value.length&&(n.value=A1))}o.value=D(r.value),s.value=D(t.value.length)-D(n.value)}function J(r1){const $=D(r1);!l.value||r1&&!$?g=r1:l.value.scrollTop=$}const W=q(()=>t.value.slice(r.value,n.value).map((r1,$)=>({raw:r1,index:$+r.value})));return T1(t,()=>{f=Array.from({length:t.value.length}),M=Array.from({length:t.value.length}),v.immediate(),z()},{deep:!0}),{containerRef:l,markerRef:d,computedItems:W,paddingTop:o,paddingBottom:s,scrollToIndex:J,handleScroll:U,handleScrollend:E,handleItemResize:y}}function tG1(e,t){let i=e.length-1,a=0,r=0,n=null,o=-1;if(e[i]>1,n=e[r],n>t)i=r-1;else if(n[]},renderless:Boolean,...JZ1(),...F2(),...ar()},"VVirtualScroll"),Ue1=h2()({name:"VVirtualScroll",props:iG1(),setup(e,t){let{slots:i}=t;const a=b5("VVirtualScroll"),{dimensionStyles:r}=rr(e),{containerRef:n,markerRef:o,handleScroll:s,handleScrollend:l,handleItemResize:d,scrollToIndex:C,paddingTop:m,paddingBottom:u,computedItems:p}=eG1(e,t2(e,"items"));return M3(()=>e.renderless,()=>{function V(){var H,g;const M=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1)?"addEventListener":"removeEventListener";n.value===document.documentElement?(document[M]("scroll",s,{passive:!0}),document[M]("scrollend",l)):((H=n.value)==null||H[M]("scroll",s,{passive:!0}),(g=n.value)==null||g[M]("scrollend",l))}ee(()=>{n.value=Sk(a.vnode.el,!0),V(!0)}),j5(V)}),M2(()=>{const V=p.value.map(f=>P(KZ1,{key:f.index,renderless:e.renderless,"onUpdate:height":M=>d(f.index,M)},{default:M=>{var H;return(H=i.default)==null?void 0:H.call(i,{item:f.raw,index:f.index,...M})}}));return e.renderless?P(Y1,null,[P("div",{ref:o,class:"v-virtual-scroll__spacer",style:{paddingTop:f2(m.value)}},null),V,P("div",{class:"v-virtual-scroll__spacer",style:{paddingBottom:f2(u.value)}},null)]):P("div",{ref:n,class:["v-virtual-scroll",e.class],onScrollPassive:s,onScrollend:l,style:[r.value,e.style]},[P("div",{ref:o,class:"v-virtual-scroll__container",style:{paddingTop:f2(m.value),paddingBottom:f2(u.value)}},[V])])}),{scrollToIndex:C}}});function xe1(e,t){const i=g2(!1);let a;function r(s){cancelAnimationFrame(a),i.value=!0,a=requestAnimationFrame(()=>{a=requestAnimationFrame(()=>{i.value=!1})})}async function n(){await new Promise(s=>requestAnimationFrame(s)),await new Promise(s=>requestAnimationFrame(s)),await new Promise(s=>requestAnimationFrame(s)),await new Promise(s=>{if(i.value){const l=T1(i,()=>{l(),s()})}else s()})}async function o(s){var C,m;if(s.key==="Tab"&&((C=t.value)==null||C.focus()),!["PageDown","PageUp","Home","End"].includes(s.key))return;const l=(m=e.value)==null?void 0:m.$el;if(!l)return;(s.key==="Home"||s.key==="End")&&l.scrollTo({top:s.key==="Home"?0:l.scrollHeight,behavior:"smooth"}),await n();const d=l.querySelectorAll(":scope > :not(.v-virtual-scroll__spacer)");if(s.key==="PageDown"||s.key==="Home"){const u=l.getBoundingClientRect().top;for(const p of d)if(p.getBoundingClientRect().top>=u){p.focus();break}}else{const u=l.getBoundingClientRect().bottom;for(const p of[...d].reverse())if(p.getBoundingClientRect().bottom<=u){p.focus();break}}}return{onListScroll:r,onListKeydown:o}}const Fe1=k1({chips:Boolean,closableChips:Boolean,closeText:{type:String,default:"$vuetify.close"},openText:{type:String,default:"$vuetify.open"},eager:Boolean,hideNoData:Boolean,hideSelected:Boolean,menu:Boolean,menuIcon:{type:Ce,default:"$dropdown"},menuProps:{type:Object},multiple:Boolean,noDataText:{type:String,default:"$vuetify.noDataText"},openOnClear:Boolean,itemColor:String,..._e1({itemChildren:!1})},"Select"),aG1=k1({...Fe1(),...Ta(IH({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...Io({transition:{component:gH}})},"VSelect"),e8=h2()({name:"VSelect",props:aG1(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:menu":e=>!0},setup(e,t){let{slots:i}=t;const{t:a}=ir(),r=i1(),n=i1(),o=i1(),s=ue(e,"menu"),l=q({get:()=>s.value,set:W=>{var r1;s.value&&!W&&((r1=n.value)==null?void 0:r1.\u03A8openChildren)||(s.value=W)}}),{items:d,transformIn:C,transformOut:m}=De1(e),u=ue(e,"modelValue",[],W=>C(W===null?[null]:Ft(W)),W=>{var $;const r1=m(W);return e.multiple?r1:($=r1[0])!=null?$:null}),p=q(()=>typeof e.counterValue=="function"?e.counterValue(u.value):typeof e.counterValue=="number"?e.counterValue:u.value.length),V=vH(),f=q(()=>u.value.map(W=>W.value)),M=g2(!1),H=q(()=>l.value?e.closeText:e.openText);let g="",_;const v=q(()=>e.hideSelected?d.value.filter(W=>!u.value.some(r1=>r1===W)):d.value),S=q(()=>e.hideNoData&&!d.value.length||e.readonly||(V==null?void 0:V.isReadonly.value)),y=q(()=>{var W;return{...e.menuProps,activatorProps:{...((W=e.menuProps)==null?void 0:W.activatorProps)||{},"aria-haspopup":"listbox"}}}),D=i1(),{onListScroll:R,onListKeydown:N}=xe1(D,r);function w(W){e.openOnClear&&(l.value=!0)}function x(){S.value||(l.value=!l.value)}function U(W){var V1,A1;if(!W.key||e.readonly||(V==null?void 0:V.isReadonly.value))return;["Enter"," ","ArrowDown","ArrowUp","Home","End"].includes(W.key)&&W.preventDefault(),["Enter","ArrowDown"," "].includes(W.key)&&(l.value=!0),["Escape","Tab"].includes(W.key)&&(l.value=!1),W.key==="Home"?(V1=D.value)==null||V1.focus("first"):W.key==="End"&&((A1=D.value)==null||A1.focus("last"));const r1=1e3;function $(n1){const M1=n1.key.length===1,X=!n1.ctrlKey&&!n1.metaKey&&!n1.altKey;return M1&&X}if(e.multiple||!$(W))return;const t1=performance.now();t1-_>r1&&(g=""),g+=W.key.toLowerCase(),_=t1;const l1=d.value.find(n1=>n1.title.toLowerCase().startsWith(g));l1!==void 0&&(u.value=[l1])}function E(W){if(e.multiple){const r1=u.value.findIndex($=>e.valueComparator($.value,W.value));if(r1===-1)u.value=[...u.value,W];else{const $=[...u.value];$.splice(r1,1),u.value=$}}else u.value=[W],l.value=!1}function O(W){var r1;(r1=D.value)!=null&&r1.$el.contains(W.relatedTarget)||(l.value=!1)}function z(){var W;M.value&&((W=r.value)==null||W.focus())}function F(W){M.value=!0}function J(W){if(W==null)u.value=[];else if(id(r.value,":autofill")||id(r.value,":-webkit-autofill")){const r1=d.value.find($=>$.title===W);r1&&E(r1)}else r.value&&(r.value.value="")}return T1(l,()=>{if(!e.hideSelected&&l.value&&u.value.length){const W=v.value.findIndex(r1=>u.value.some($=>e.valueComparator($.value,r1.value)));ze&&window.requestAnimationFrame(()=>{var r1;W>=0&&((r1=o.value)==null||r1.scrollToIndex(W))})}}),M2(()=>{const W=!!(e.chips||i.chip),r1=!!(!e.hideNoData||v.value.length||i["prepend-item"]||i["append-item"]||i["no-data"]),$=u.value.length>0,t1=kt.filterProps(e),l1=$||!M.value&&e.label&&!e.persistentPlaceholder?void 0:e.placeholder;return P(kt,V2({ref:r},t1,{modelValue:u.value.map(V1=>V1.props.value).join(", "),"onUpdate:modelValue":J,focused:M.value,"onUpdate:focused":V1=>M.value=V1,validationValue:u.externalValue,counterValue:p.value,dirty:$,class:["v-select",{"v-select--active-menu":l.value,"v-select--chips":!!e.chips,[`v-select--${e.multiple?"multiple":"single"}`]:!0,"v-select--selected":u.value.length,"v-select--selection-slot":!!i.selection},e.class],style:e.style,inputmode:"none",placeholder:l1,"onClick:clear":w,"onMousedown:control":x,onBlur:O,onKeydown:U,"aria-label":a(H.value),title:a(H.value)}),{...i,default:()=>P(Y1,null,[P(Pe1,V2({ref:n,modelValue:l.value,"onUpdate:modelValue":V1=>l.value=V1,activator:"parent",contentClass:"v-select__content",disabled:S.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterLeave:z},y.value),{default:()=>{var V1;return[r1&&P(Ld,{ref:D,selected:f.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:A1=>A1.preventDefault(),onKeydown:N,onFocusin:F,onScrollPassive:R,tabindex:"-1",color:(V1=e.itemColor)!=null?V1:e.color},{default:()=>{var A1,n1,M1,X;return[(A1=i["prepend-item"])==null?void 0:A1.call(i),!v.value.length&&!e.hideNoData&&((M1=(n1=i["no-data"])==null?void 0:n1.call(i))!=null?M1:P(ha,{title:a(e.noDataText)},null)),P(Ue1,{ref:o,renderless:!0,items:v.value},{default:s1=>{var Y,a1;let{item:m1,index:f1,itemRef:L1}=s1;const e1=V2(m1.props,{ref:L1,key:f1,onClick:()=>E(m1)});return(a1=(Y=i.item)==null?void 0:Y.call(i,{item:m1,index:f1,props:e1}))!=null?a1:P(ha,V2(e1,{role:"option"}),{prepend:c1=>{let{isSelected:H1}=c1;return P(Y1,null,[e.multiple&&!e.hideSelected?P(Dn,{key:m1.value,modelValue:H1,ripple:!1,tabindex:"-1"},null):void 0,m1.props.prependIcon&&P(Ze,{icon:m1.props.prependIcon},null)])}})}}),(X=i["append-item"])==null?void 0:X.call(i)]}})]}}),u.value.map((V1,A1)=>{function n1(m1){m1.stopPropagation(),m1.preventDefault(),E(V1)}const M1={"onClick:close":n1,onMousedown(m1){m1.preventDefault(),m1.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},X=W?!!i.chip:!!i.selection,s1=X?lH(W?i.chip({item:V1,index:A1,props:M1}):i.selection({item:V1,index:A1})):void 0;if(!(X&&!s1))return P("div",{key:V1.value,class:"v-select__selection"},[W?i.chip?P(ot,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:V1.title}}},{default:()=>[s1]}):P(fe1,V2({key:"chip",closable:e.closableChips,size:"small",text:V1.title,disabled:V1.props.disabled},M1),null):s1!=null?s1:P("span",{class:"v-select__selection-text"},[V1.title,e.multiple&&A1+(a!=null?a:1)),i=ue(e,"itemsPerPage",void 0,a=>+(a!=null?a:10));return{page:t,itemsPerPage:i}}function oG1(e){const{page:t,itemsPerPage:i,itemsLength:a}=e,r=q(()=>i.value===-1?0:i.value*(t.value-1)),n=q(()=>i.value===-1?a.value:Math.min(a.value,r.value+i.value)),o=q(()=>i.value===-1||a.value===0?1:Math.ceil(a.value/i.value));c0(()=>{t.value>o.value&&(t.value=o.value)});function s(u){i.value=u,t.value=1}function l(){t.value=xt(t.value+1,1,o.value)}function d(){t.value=xt(t.value-1,1,o.value)}function C(u){t.value=xt(u,1,o.value)}const m={page:t,itemsPerPage:i,startIndex:r,stopIndex:n,pageCount:o,itemsLength:a,nextPage:l,prevPage:d,setPage:C,setItemsPerPage:s};return X2(ke1,m),m}function sG1(){const e=H2(ke1);if(!e)throw new Error("Missing pagination!");return e}function lG1(e){const{items:t,startIndex:i,stopIndex:a,itemsPerPage:r}=e;return{paginatedItems:q(()=>r.value<=0?t.value:t.value.slice(i.value,a.value))}}const Be1=k1({prevIcon:{type:String,default:"$prev"},nextIcon:{type:String,default:"$next"},firstIcon:{type:String,default:"$first"},lastIcon:{type:String,default:"$last"},itemsPerPageText:{type:String,default:"$vuetify.dataFooter.itemsPerPageText"},pageText:{type:String,default:"$vuetify.dataFooter.pageText"},firstPageLabel:{type:String,default:"$vuetify.dataFooter.firstPage"},prevPageLabel:{type:String,default:"$vuetify.dataFooter.prevPage"},nextPageLabel:{type:String,default:"$vuetify.dataFooter.nextPage"},lastPageLabel:{type:String,default:"$vuetify.dataFooter.lastPage"},itemsPerPageOptions:{type:Array,default:()=>[{value:10,title:"10"},{value:25,title:"25"},{value:50,title:"50"},{value:100,title:"100"},{value:-1,title:"$vuetify.dataFooter.itemsPerPageAll"}]},showCurrentPage:Boolean},"VDataTableFooter"),v_=h2()({name:"VDataTableFooter",props:Be1(),setup(e,t){let{slots:i}=t;const{t:a}=ir(),{page:r,pageCount:n,startIndex:o,stopIndex:s,itemsLength:l,itemsPerPage:d,setItemsPerPage:C}=sG1(),m=q(()=>e.itemsPerPageOptions.map(u=>typeof u=="number"?{value:u,title:u===-1?a("$vuetify.dataFooter.itemsPerPageAll"):String(u)}:{...u,title:a(u.title)}));return M2(()=>{var u;return P("div",{class:"v-data-table-footer"},[(u=i.prepend)==null?void 0:u.call(i),P("div",{class:"v-data-table-footer__items-per-page"},[P("span",null,[a(e.itemsPerPageText)]),P(e8,{items:m.value,modelValue:d.value,"onUpdate:modelValue":p=>C(Number(p)),density:"compact",variant:"outlined","hide-details":!0},null)]),P("div",{class:"v-data-table-footer__info"},[P("div",null,[a(e.pageText,l.value?o.value+1:0,s.value,l.value)])]),P("div",{class:"v-data-table-footer__pagination"},[P($z1,{modelValue:r.value,"onUpdate:modelValue":p=>r.value=p,density:"comfortable","first-aria-label":e.firstPageLabel,"last-aria-label":e.lastPageLabel,length:n.value,"next-aria-label":e.nextPageLabel,"prev-aria-label":e.prevPageLabel,rounded:!0,"show-first-last-page":!0,"total-visible":e.showCurrentPage?1:0,variant:"plain"},null)])])}),{}}}),OH=fF1({align:{type:String,default:"start"},fixed:Boolean,fixedOffset:[Number,String],height:[Number,String],lastFixed:Boolean,noPadding:Boolean,tag:String,width:[Number,String]},(e,t)=>{var r;let{slots:i}=t;const a=(r=e.tag)!=null?r:"td";return P(a,{class:["v-data-table__td",{"v-data-table-column--fixed":e.fixed,"v-data-table-column--last-fixed":e.lastFixed,"v-data-table-column--no-padding":e.noPadding},`v-data-table-column--align-${e.align}`],style:{height:f2(e.height),width:f2(e.width),left:f2(e.fixedOffset||null)}},{default:()=>{var n;return[(n=i.default)==null?void 0:n.call(i)]}})}),cG1=k1({headers:Array},"DataTable-header"),ze1=Symbol.for("vuetify:data-table-headers"),Ze1={title:"",sortable:!1},dG1={...Ze1,width:48};function CG1(){const t=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).map(i=>({element:i,priority:0}));return{enqueue:(i,a)=>{let r=!1;for(let n=0;na){t.splice(n,0,{element:i,priority:a}),r=!0;break}r||t.push({element:i,priority:a})},size:()=>t.length,count:()=>{let i=0;if(!t.length)return 0;const a=Math.floor(t[0].priority);for(let r=0;rt.shift()}}function rf(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];if(!e.children)t.push(e);else for(const i of e.children)rf(i,t);return t}function Ge1(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:new Set;for(const i of e)i.key&&t.add(i.key),i.children&&Ge1(i.children,t);return t}function mG1(e){if(!!e.key){if(e.key==="data-table-group")return Ze1;if(["data-table-expand","data-table-select"].includes(e.key))return dG1}}function UH(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.children?Math.max(t,...e.children.map(i=>UH(i,t+1))):t}function uG1(e){let t=!1;function i(n){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(!!n)if(o&&(n.fixed=!0),n.fixed)if(n.children)for(let s=n.children.length-1;s>=0;s--)i(n.children[s],!0);else t?isNaN(+n.width)&&(`${n.key}`,void 0):n.lastFixed=!0,t=!0;else if(n.children)for(let s=n.children.length-1;s>=0;s--)i(n.children[s]);else t=!1}for(let n=e.length-1;n>=0;n--)i(e[n]);function a(n){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!n)return o;if(n.children){n.fixedOffset=o;for(const s of n.children)o=a(s,o)}else n.fixed&&(n.fixedOffset=o,o+=parseFloat(n.width||"0")||0);return o}let r=0;for(const n of e)r=a(n,r)}function hG1(e,t){const i=[];let a=0;const r=CG1(e);for(;r.size()>0;){let o=r.count();const s=[];let l=1;for(;o>0;){const{element:d,priority:C}=r.dequeue(),m=t-a-UH(d);if(s.push({...d,rowspan:m!=null?m:1,colspan:d.children?rf(d).length:1}),d.children)for(const u of d.children){const p=C%1+l/Math.pow(10,a+2);r.enqueue(u,a+m+p)}l+=1,o-=1}a+=1,i.push(s)}return{columns:e.map(o=>rf(o)).flat(),headers:i}}function We1(e){var i,a,r,n;const t=[];for(const o of e){const s={...mG1(o),...o},l=(i=s.key)!=null?i:typeof s.value=="string"?s.value:null,d=(r=(a=s.value)!=null?a:l)!=null?r:null,C={...s,key:l,value:d,sortable:(n=s.sortable)!=null?n:s.key!=null||!!s.sort,children:s.children?We1(s.children):void 0};t.push(C)}return t}function pG1(e,t){const i=i1([]),a=i1([]),r=i1(),n=i1();c0(()=>{var V,f,M,H;const l=(e.headers||Object.keys((V=e.items[0])!=null?V:{}).map(g=>({key:g,title:zi(g)}))).slice(),d=Ge1(l);((f=t==null?void 0:t.groupBy)==null?void 0:f.value.length)&&!d.has("data-table-group")&&l.unshift({key:"data-table-group",title:"Group"}),((M=t==null?void 0:t.showSelect)==null?void 0:M.value)&&!d.has("data-table-select")&&l.unshift({key:"data-table-select"}),((H=t==null?void 0:t.showExpand)==null?void 0:H.value)&&!d.has("data-table-expand")&&l.push({key:"data-table-expand"});const C=We1(l);uG1(C);const m=Math.max(...C.map(g=>UH(g)))+1,u=hG1(C,m);i.value=u.headers,a.value=u.columns;const p=u.headers.flat(1);r.value=p.reduce((g,_)=>(_.sortable&&_.key&&_.sort&&(g[_.key]=_.sort),g),{}),n.value=p.reduce((g,_)=>(_.key&&_.filter&&(g[_.key]=_.filter),g),{})});const o={headers:i,columns:a,sortFunctions:r,filterFunctions:n};return X2(ze1,o),o}function sm(){const e=H2(ze1);if(!e)throw new Error("Missing headers!");return e}const fG1={showSelectAll:!1,allSelected:()=>[],select:e=>{var a;let{items:t,value:i}=e;return new Set(i?[(a=t[0])==null?void 0:a.value]:[])},selectAll:e=>{let{selected:t}=e;return t}},Xe1={showSelectAll:!0,allSelected:e=>{let{currentPage:t}=e;return t},select:e=>{let{items:t,value:i,selected:a}=e;for(const r of t)i?a.add(r.value):a.delete(r.value);return a},selectAll:e=>{let{value:t,currentPage:i,selected:a}=e;return Xe1.select({items:i,value:t,selected:a})}},Ye1={showSelectAll:!0,allSelected:e=>{let{allItems:t}=e;return t},select:e=>{let{items:t,value:i,selected:a}=e;for(const r of t)i?a.add(r.value):a.delete(r.value);return a},selectAll:e=>{let{value:t,allItems:i,selected:a}=e;return Ye1.select({items:i,value:t,selected:a})}},VG1=k1({showSelect:Boolean,selectStrategy:{type:[String,Object],default:"page"},modelValue:{type:Array,default:()=>[]},valueComparator:{type:Function,default:wa}},"DataTable-select"),$e1=Symbol.for("vuetify:data-table-selection");function LG1(e,t){let{allItems:i,currentPage:a}=t;const r=ue(e,"modelValue",e.modelValue,M=>new Set(Ft(M).map(H=>{var g,_;return(_=(g=i.value.find(v=>e.valueComparator(H,v.value)))==null?void 0:g.value)!=null?_:H})),M=>[...M.values()]),n=q(()=>i.value.filter(M=>M.selectable)),o=q(()=>a.value.filter(M=>M.selectable)),s=q(()=>{if(typeof e.selectStrategy=="object")return e.selectStrategy;switch(e.selectStrategy){case"single":return fG1;case"all":return Ye1;case"page":default:return Xe1}});function l(M){return Ft(M).every(H=>r.value.has(H.value))}function d(M){return Ft(M).some(H=>r.value.has(H.value))}function C(M,H){const g=s.value.select({items:M,value:H,selected:new Set(r.value)});r.value=g}function m(M){C([M],!l([M]))}function u(M){const H=s.value.selectAll({value:M,allItems:n.value,currentPage:o.value,selected:new Set(r.value)});r.value=H}const p=q(()=>r.value.size>0),V=q(()=>{const M=s.value.allSelected({allItems:n.value,currentPage:o.value});return!!M.length&&l(M)}),f={toggleSelect:m,select:C,selectAll:u,isSelected:l,isSomeSelected:d,someSelected:p,allSelected:V,showSelectAll:s.value.showSelectAll};return X2($e1,f),f}function lm(){const e=H2($e1);if(!e)throw new Error("Missing selection!");return e}const HG1=k1({sortBy:{type:Array,default:()=>[]},customKeySort:Object,multiSort:Boolean,mustSort:Boolean},"DataTable-sort"),qe1=Symbol.for("vuetify:data-table-sort");function MG1(e){const t=ue(e,"sortBy"),i=t2(e,"mustSort"),a=t2(e,"multiSort");return{sortBy:t,mustSort:i,multiSort:a}}function gG1(e){const{sortBy:t,mustSort:i,multiSort:a,page:r}=e,n=l=>{var m;if(l.key==null)return;let d=(m=t.value.map(u=>({...u})))!=null?m:[];const C=d.find(u=>u.key===l.key);C?C.order==="desc"?i.value?C.order="asc":d=d.filter(u=>u.key!==l.key):C.order="desc":a.value?d=[...d,{key:l.key,order:"asc"}]:d=[{key:l.key,order:"asc"}],t.value=d,r&&(r.value=1)};function o(l){return!!t.value.find(d=>d.key===l.key)}const s={sortBy:t,toggleSort:n,isSorted:o};return X2(qe1,s),s}function AG1(){const e=H2(qe1);if(!e)throw new Error("Missing sort!");return e}function vG1(e,t,i,a){const r=ir();return{sortedItems:q(()=>i.value.length?_G1(t.value,i.value,r.current.value,{...e.customKeySort,...a==null?void 0:a.value}):t.value)}}function _G1(e,t,i,a){const r=new Intl.Collator(i,{sensitivity:"accent",usage:"sort"});return[...e].sort((n,o)=>{var s;for(let l=0;lp!=null?p.toString().toLocaleLowerCase():p),m!==u)return ll(m)&&ll(u)?0:ll(m)?-1:ll(u)?1:!isNaN(m)&&!isNaN(u)?Number(m)-Number(u):r.compare(m,u)}return 0})}const Ke1=k1({color:String,sticky:Boolean,multiSort:Boolean,sortAscIcon:{type:Ce,default:"$sortAsc"},sortDescIcon:{type:Ce,default:"$sortDesc"},...im()},"VDataTableHeaders"),__=h2()({name:"VDataTableHeaders",props:Ke1(),setup(e,t){let{slots:i}=t;const{toggleSort:a,sortBy:r,isSorted:n}=AG1(),{someSelected:o,allSelected:s,selectAll:l,showSelectAll:d}=lm(),{columns:C,headers:m}=sm(),{loaderClasses:u}=B8(e);function p(_,v){if(!(!e.sticky&&!_.fixed))return{position:"sticky",left:_.fixed?f2(_.fixedOffset):void 0,top:e.sticky?`calc(var(--v-table-header-height) * ${v})`:void 0}}function V(_){const v=r.value.find(S=>S.key===_.key);return v?v.order==="asc"?e.sortAscIcon:e.sortDescIcon:e.sortAscIcon}const{backgroundColorClasses:f,backgroundColorStyles:M}=d0(e,"color"),H=q(()=>({headers:m.value,columns:C.value,toggleSort:a,isSorted:n,sortBy:r.value,someSelected:o.value,allSelected:s.value,selectAll:l,getSortIcon:V})),g=_=>{let{column:v,x:S,y}=_;const D=v.key==="data-table-select"||v.key==="data-table-expand";return P(OH,V2({tag:"th",align:v.align,class:["v-data-table__th",{"v-data-table__th--sortable":v.sortable,"v-data-table__th--sorted":n(v),"v-data-table__th--fixed":v.fixed},u.value],style:{width:f2(v.width),minWidth:f2(v.minWidth),...p(v,y)},colspan:v.colspan,rowspan:v.rowspan,onClick:v.sortable?()=>a(v):void 0,fixed:v.fixed,lastFixed:v.lastFixed,noPadding:D},v.headerProps),{default:()=>{var w,x;const R=`header.${v.key}`,N={column:v,selectAll:l,isSorted:n,toggleSort:a,sortBy:r.value,someSelected:o.value,allSelected:s.value,getSortIcon:V};return i[R]?i[R](N):v.key==="data-table-select"?(x=(w=i["header.data-table-select"])==null?void 0:w.call(i,N))!=null?x:d&&P(Dn,{modelValue:s.value,indeterminate:o.value&&!s.value,"onUpdate:modelValue":l},null):P("div",{class:"v-data-table-header__content"},[P("span",null,[v.title]),v.sortable&&P(Ze,{key:"icon",class:"v-data-table-header__sort-icon",icon:V(v)},null),e.multiSort&&n(v)&&P("div",{key:"badge",class:["v-data-table-header__sort-badge",...f.value],style:M.value},[r.value.findIndex(U=>U.key===v.key)+1])])}})};M2(()=>P(Y1,null,[i.headers?i.headers(H.value):m.value.map((_,v)=>P("tr",null,[_.map((S,y)=>P(g,{column:S,x:y,y:v},null))])),e.loading&&P("tr",{class:"v-data-table-progress"},[P("th",{colspan:C.value.length},[P(am,{name:"v-data-table-progress",absolute:!0,active:!0,color:typeof e.loading=="boolean"?void 0:e.loading,indeterminate:!0},{default:i.loader})])])]))}}),SG1=k1({groupBy:{type:Array,default:()=>[]}},"DataTable-group"),je1=Symbol.for("vuetify:data-table-group");function DG1(e){return{groupBy:ue(e,"groupBy")}}function yG1(e){const{groupBy:t,sortBy:i}=e,a=i1(new Set),r=q(()=>t.value.map(d=>{var C;return{...d,order:(C=d.order)!=null?C:!1}}).concat(i.value));function n(d){return a.value.has(d.id)}function o(d){const C=new Set(a.value);n(d)?C.delete(d.id):C.add(d.id),a.value=C}function s(d){function C(m){const u=[];for(const p of m.items)"type"in p&&p.type==="group"?u.push(...C(p)):u.push(p);return u}return C({type:"group",items:d,id:"dummy",key:"dummy",value:"dummy",depth:0})}const l={sortByWithGroups:r,toggleGroup:o,opened:a,groupBy:t,extractRows:s,isGroupOpen:n};return X2(je1,l),l}function Qe1(){const e=H2(je1);if(!e)throw new Error("Missing group!");return e}function RG1(e,t){if(!e.length)return[];const i=new Map;for(const a of e){const r=vn(a.raw,t);i.has(r)||i.set(r,[]),i.get(r).push(a)}return i}function Je1(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"root";if(!t.length)return[];const r=RG1(e,t[0]),n=[],o=t.slice(1);return r.forEach((s,l)=>{const d=t[0],C=`${a}_${d}_${l}`;n.push({depth:i,id:C,key:d,value:l,items:o.length?Je1(s,o,i+1,C):s,type:"group"})}),n}function e51(e,t){const i=[];for(const a of e)"type"in a&&a.type==="group"?(a.value!=null&&i.push(a),(t.has(a.id)||a.value==null)&&i.push(...e51(a.items,t))):i.push(a);return i}function bG1(e,t,i){return{flatItems:q(()=>{if(!t.value.length)return e.value;const r=Je1(e.value,t.value.map(n=>n.key));return e51(r,i.value)})}}const NG1=k1({item:{type:Object,required:!0}},"VDataTableGroupHeaderRow"),wG1=h2()({name:"VDataTableGroupHeaderRow",props:NG1(),setup(e,t){let{slots:i}=t;const{isGroupOpen:a,toggleGroup:r,extractRows:n}=Qe1(),{isSelected:o,isSomeSelected:s,select:l}=lm(),{columns:d}=sm(),C=q(()=>n([e.item]));return()=>P("tr",{class:"v-data-table-group-header-row",style:{"--v-data-table-group-header-row-depth":e.item.depth}},[d.value.map(m=>{var u,p,V,f;if(m.key==="data-table-group"){const M=a(e.item)?"$expand":"$next",H=()=>r(e.item);return(p=(u=i["data-table-group"])==null?void 0:u.call(i,{item:e.item,count:C.value.length,props:{icon:M,onClick:H}}))!=null?p:P(OH,{class:"v-data-table-group-header-row__column"},{default:()=>[P(re,{size:"small",variant:"text",icon:M,onClick:H},null),P("span",null,[e.item.value]),P("span",null,[L2("("),C.value.length,L2(")")])]})}if(m.key==="data-table-select"){const M=o(C.value),H=s(C.value)&&!M,g=_=>l(C.value,_);return(f=(V=i["data-table-select"])==null?void 0:V.call(i,{props:{modelValue:M,indeterminate:H,"onUpdate:modelValue":g}}))!=null?f:P("td",null,[P(Dn,{modelValue:M,indeterminate:H,"onUpdate:modelValue":g},null)])}return P("td",null,null)})])}}),TG1=k1({expandOnClick:Boolean,showExpand:Boolean,expanded:{type:Array,default:()=>[]}},"DataTable-expand"),t51=Symbol.for("vuetify:datatable:expanded");function EG1(e){const t=t2(e,"expandOnClick"),i=ue(e,"expanded",e.expanded,s=>new Set(s),s=>[...s.values()]);function a(s,l){const d=new Set(i.value);l?d.add(s.value):d.delete(s.value),i.value=d}function r(s){return i.value.has(s.value)}function n(s){a(s,!r(s))}const o={expand:a,expanded:i,expandOnClick:t,isExpanded:r,toggleExpand:n};return X2(t51,o),o}function i51(){const e=H2(t51);if(!e)throw new Error("foo");return e}const PG1=k1({index:Number,item:Object,cellProps:[Object,Function],onClick:E0(),onContextmenu:E0(),onDblclick:E0()},"VDataTableRow"),IG1=h2()({name:"VDataTableRow",props:PG1(),setup(e,t){let{slots:i}=t;const{isSelected:a,toggleSelect:r}=lm(),{isExpanded:n,toggleExpand:o}=i51(),{columns:s}=sm();M2(()=>P("tr",{class:["v-data-table__tr",{"v-data-table__tr--clickable":!!(e.onClick||e.onContextmenu||e.onDblclick)}],onClick:e.onClick,onContextmenu:e.onContextmenu,onDblclick:e.onDblclick},[e.item&&s.value.map((l,d)=>{const C=e.item,m=`item.${l.key}`,u={index:e.index,item:C.raw,internalItem:C,value:vn(C.columns,l.key),column:l,isSelected:a,toggleSelect:r,isExpanded:n,toggleExpand:o},p=typeof e.cellProps=="function"?e.cellProps({index:u.index,item:u.item,internalItem:u.internalItem,value:u.value,column:l}):e.cellProps,V=typeof l.cellProps=="function"?l.cellProps({index:u.index,item:u.item,internalItem:u.internalItem,value:u.value}):l.cellProps;return P(OH,V2({align:l.align,fixed:l.fixed,fixedOffset:l.fixedOffset,lastFixed:l.lastFixed,noPadding:l.key==="data-table-select"||l.key==="data-table-expand",width:l.width},p,V),{default:()=>{var f,M,H,g;return i[m]?i[m](u):l.key==="data-table-select"?(M=(f=i["item.data-table-select"])==null?void 0:f.call(i,u))!=null?M:P(Dn,{disabled:!C.selectable,modelValue:a([C]),onClick:ht(()=>r(C),["stop"])},null):l.key==="data-table-expand"?(g=(H=i["item.data-table-expand"])==null?void 0:H.call(i,u))!=null?g:P(re,{icon:n(C)?"$collapse":"$expand",size:"small",variant:"text",onClick:ht(()=>o(C),["stop"])},null):q1(u.value)}})})]))}}),a51=k1({loading:[Boolean,String],loadingText:{type:String,default:"$vuetify.dataIterator.loadingText"},hideNoData:Boolean,items:{type:Array,default:()=>[]},noDataText:{type:String,default:"$vuetify.noDataText"},rowProps:[Object,Function],cellProps:[Object,Function]},"VDataTableRows"),S_=h2()({name:"VDataTableRows",inheritAttrs:!1,props:a51(),setup(e,t){let{attrs:i,slots:a}=t;const{columns:r}=sm(),{expandOnClick:n,toggleExpand:o,isExpanded:s}=i51(),{isSelected:l,toggleSelect:d}=lm(),{toggleGroup:C,isGroupOpen:m}=Qe1(),{t:u}=ir();return M2(()=>{var p,V,f,M;return e.loading&&(!e.items.length||a.loading)?P("tr",{class:"v-data-table-rows-loading",key:"loading"},[P("td",{colspan:r.value.length},[(V=(p=a.loading)==null?void 0:p.call(a))!=null?V:u(e.loadingText)])]):!e.loading&&!e.items.length&&!e.hideNoData?P("tr",{class:"v-data-table-rows-no-data",key:"no-data"},[P("td",{colspan:r.value.length},[(M=(f=a["no-data"])==null?void 0:f.call(a))!=null?M:u(e.noDataText)])]):P(Y1,null,[e.items.map((H,g)=>{var S,y;if(H.type==="group"){const D={index:g,item:H,columns:r.value,isExpanded:s,toggleExpand:o,isSelected:l,toggleSelect:d,toggleGroup:C,isGroupOpen:m};return a["group-header"]?a["group-header"](D):P(wG1,V2({key:`group-header_${H.id}`,item:H},zv(i,":group-header",()=>D)),a)}const _={index:g,item:H.raw,internalItem:H,columns:r.value,isExpanded:s,toggleExpand:o,isSelected:l,toggleSelect:d},v={..._,props:V2({key:`item_${(S=H.key)!=null?S:H.index}`,onClick:n.value?()=>{o(H)}:void 0,index:g,item:H,cellProps:e.cellProps},zv(i,":row",()=>_),typeof e.rowProps=="function"?e.rowProps({item:_.item,index:_.index,internalItem:_.internalItem}):e.rowProps)};return P(Y1,{key:v.props.key},[a.item?a.item(v):P(IG1,v.props,a),s(H)&&((y=a["expanded-row"])==null?void 0:y.call(a,_))])})])}),{}}});const r51=k1({fixedHeader:Boolean,fixedFooter:Boolean,height:[Number,String],hover:Boolean,...F2(),...fi(),...T5(),...p5()},"VTable"),D_=h2()({name:"VTable",props:r51(),setup(e,t){let{slots:i,emit:a}=t;const{themeClasses:r}=N5(e),{densityClasses:n}=I3(e);return M2(()=>P(e.tag,{class:["v-table",{"v-table--fixed-height":!!e.height,"v-table--fixed-header":e.fixedHeader,"v-table--fixed-footer":e.fixedFooter,"v-table--has-top":!!i.top,"v-table--has-bottom":!!i.bottom,"v-table--hover":e.hover},r.value,n.value,e.class],style:e.style},{default:()=>{var o,s,l;return[(o=i.top)==null?void 0:o.call(i),i.default?P("div",{class:"v-table__wrapper",style:{height:f2(e.height)}},[P("table",null,[i.default()])]):(s=i.wrapper)==null?void 0:s.call(i),(l=i.bottom)==null?void 0:l.call(i)]}})),{}}}),OG1=k1({items:{type:Array,default:()=>[]},itemValue:{type:[String,Array,Function],default:"id"},itemSelectable:{type:[String,Array,Function],default:null},rowProps:[Object,Function],cellProps:[Object,Function],returnObject:Boolean},"DataTable-items");function UG1(e,t,i,a){const r=e.returnObject?t:Jt(t,e.itemValue),n=Jt(t,e.itemSelectable,!0),o=a.reduce((s,l)=>(l.key!=null&&(s[l.key]=Jt(t,l.value)),s),{});return{type:"item",key:e.returnObject?Jt(t,e.itemValue):r,index:i,value:r,selectable:n,columns:o,raw:t}}function xG1(e,t,i){return t.map((a,r)=>UG1(e,a,r,i))}function FG1(e,t){return{items:q(()=>xG1(e,e.items,t.value))}}function kG1(e){let{page:t,itemsPerPage:i,sortBy:a,groupBy:r,search:n}=e;const o=b5("VDataTable"),s=q(()=>({page:t.value,itemsPerPage:i.value,sortBy:a.value,groupBy:r.value,search:n.value}));let l=null;T1(s,()=>{wa(l,s.value)||((l==null?void 0:l.search)!==s.value.search&&(t.value=1),o.emit("update:options",s.value),l=s.value)},{deep:!0,immediate:!0})}const BG1=(e,t,i)=>e==null||t==null?-1:e.toString().toLocaleLowerCase().indexOf(t.toString().toLocaleLowerCase()),n51=k1({customFilter:Function,customKeyFilter:Object,filterKeys:[Array,String],filterMode:{type:String,default:"intersection"},noFilter:Boolean},"filter");function zG1(e,t,i){var s,l,d;const a=[],r=(s=i==null?void 0:i.default)!=null?s:BG1,n=i!=null&&i.filterKeys?Ft(i.filterKeys):!1,o=Object.keys((l=i==null?void 0:i.customKeyFilter)!=null?l:{}).length;if(!(e!=null&&e.length))return a;e:for(let C=0;Ca!=null&&a.transform?B(t).map(l=>[l,a.transform(l)]):B(t));c0(()=>{const l=typeof i=="function"?i():B(i),d=typeof l!="string"&&typeof l!="number"?"":String(l),C=zG1(o.value,d,{customKeyFilter:{...e.customKeyFilter,...B(a==null?void 0:a.customKeyFilter)},default:e.customFilter,filterKeys:e.filterKeys,filterMode:e.filterMode,noFilter:e.noFilter}),m=B(t),u=[],p=new Map;C.forEach(V=>{let{index:f,matches:M}=V;const H=m[f];u.push(H),p.set(H.value,M)}),r.value=u,n.value=p});function s(l){return n.value.get(l.value)}return{filteredItems:r,filteredMatches:n,getMatches:s}}const ZG1=k1({...a51(),width:[String,Number],search:String,...TG1(),...SG1(),...cG1(),...OG1(),...VG1(),...HG1(),...Ke1(),...r51()},"DataTable"),GG1=k1({...rG1(),...ZG1(),...n51(),...Be1()},"VDataTable"),WG1=h2()({name:"VDataTable",props:GG1(),emits:{"update:modelValue":e=>!0,"update:page":e=>!0,"update:itemsPerPage":e=>!0,"update:sortBy":e=>!0,"update:options":e=>!0,"update:groupBy":e=>!0,"update:expanded":e=>!0},setup(e,t){let{attrs:i,slots:a}=t;const{groupBy:r}=DG1(e),{sortBy:n,multiSort:o,mustSort:s}=MG1(e),{page:l,itemsPerPage:d}=nG1(e),{columns:C,headers:m,sortFunctions:u,filterFunctions:p}=pG1(e,{groupBy:r,showSelect:t2(e,"showSelect"),showExpand:t2(e,"showExpand")}),{items:V}=FG1(e,C),f=t2(e,"search"),{filteredItems:M}=o51(e,V,f,{transform:n1=>n1.columns,customKeyFilter:p}),{toggleSort:H}=gG1({sortBy:n,multiSort:o,mustSort:s,page:l}),{sortByWithGroups:g,opened:_,extractRows:v,isGroupOpen:S,toggleGroup:y}=yG1({groupBy:r,sortBy:n}),{sortedItems:D}=vG1(e,M,g,u),{flatItems:R}=bG1(D,r,_),N=q(()=>R.value.length),{startIndex:w,stopIndex:x,pageCount:U,setItemsPerPage:E}=oG1({page:l,itemsPerPage:d,itemsLength:N}),{paginatedItems:O}=lG1({items:R,startIndex:w,stopIndex:x,itemsPerPage:d}),z=q(()=>v(O.value)),{isSelected:F,select:J,selectAll:W,toggleSelect:r1,someSelected:$,allSelected:t1}=LG1(e,{allItems:V,currentPage:z}),{isExpanded:l1,toggleExpand:V1}=EG1(e);kG1({page:l,itemsPerPage:d,sortBy:n,groupBy:r,search:f}),I0({VDataTableRows:{hideNoData:t2(e,"hideNoData"),noDataText:t2(e,"noDataText"),loading:t2(e,"loading"),loadingText:t2(e,"loadingText")}});const A1=q(()=>({page:l.value,itemsPerPage:d.value,sortBy:n.value,pageCount:U.value,toggleSort:H,setItemsPerPage:E,someSelected:$.value,allSelected:t1.value,isSelected:F,select:J,selectAll:W,toggleSelect:r1,isExpanded:l1,toggleExpand:V1,isGroupOpen:S,toggleGroup:y,items:z.value.map(n1=>n1.raw),internalItems:z.value,groupedItems:O.value,columns:C.value,headers:m.value}));return M2(()=>{const n1=v_.filterProps(e),M1=__.filterProps(e),X=S_.filterProps(e),s1=D_.filterProps(e);return P(D_,V2({class:["v-data-table",{"v-data-table--show-select":e.showSelect,"v-data-table--loading":e.loading},e.class],style:e.style},s1),{top:()=>{var m1;return(m1=a.top)==null?void 0:m1.call(a,A1.value)},default:()=>{var m1,f1,L1,e1,Y,a1;return a.default?a.default(A1.value):P(Y1,null,[(m1=a.colgroup)==null?void 0:m1.call(a,A1.value),P("thead",null,[P(__,M1,a)]),(f1=a.thead)==null?void 0:f1.call(a,A1.value),P("tbody",null,[(L1=a["body.prepend"])==null?void 0:L1.call(a,A1.value),a.body?a.body(A1.value):P(S_,V2(i,X,{items:O.value}),a),(e1=a["body.append"])==null?void 0:e1.call(a,A1.value)]),(Y=a.tbody)==null?void 0:Y.call(a,A1.value),(a1=a.tfoot)==null?void 0:a1.call(a,A1.value)])},bottom:()=>a.bottom?a.bottom(A1.value):P(Y1,null,[P(Qs,null,null),P(v_,n1,{prepend:a["footer.prepend"]})])})}),{}}});const xH=Symbol.for("vuetify:v-slider");function XG1(e,t,i){const a=i==="vertical",r=t.getBoundingClientRect(),n="touches"in e?e.touches[0]:e;return a?n.clientY-(r.top+r.height/2):n.clientX-(r.left+r.width/2)}function YG1(e,t){return"touches"in e&&e.touches.length?e.touches[0][t]:"changedTouches"in e&&e.changedTouches.length?e.changedTouches[0][t]:e[t]}const $G1=k1({disabled:{type:Boolean,default:null},error:Boolean,readonly:{type:Boolean,default:null},max:{type:[Number,String],default:100},min:{type:[Number,String],default:0},step:{type:[Number,String],default:0},thumbColor:String,thumbLabel:{type:[Boolean,String],default:void 0,validator:e=>typeof e=="boolean"||e==="always"},thumbSize:{type:[Number,String],default:20},showTicks:{type:[Boolean,String],default:!1,validator:e=>typeof e=="boolean"||e==="always"},ticks:{type:[Array,Object]},tickSize:{type:[Number,String],default:2},color:String,trackColor:String,trackFillColor:String,trackSize:{type:[Number,String],default:4},direction:{type:String,default:"horizontal",validator:e=>["vertical","horizontal"].includes(e)},reverse:Boolean,...p0(),...Xi({elevation:2}),ripple:{type:Boolean,default:!0}},"Slider"),qG1=e=>{const t=q(()=>parseFloat(e.min)),i=q(()=>parseFloat(e.max)),a=q(()=>+e.step>0?parseFloat(e.step):0),r=q(()=>Math.max(Sv(a.value),Sv(t.value)));function n(o){if(o=parseFloat(o),a.value<=0)return o;const s=xt(o,t.value,i.value),l=t.value%a.value,d=Math.round((s-l)/a.value)*a.value+l;return parseFloat(Math.min(d,i.value).toFixed(r.value))}return{min:t,max:i,step:a,decimals:r,roundValue:n}},KG1=e=>{let{props:t,steps:i,onSliderStart:a,onSliderMove:r,onSliderEnd:n,getActiveThumb:o}=e;const{isRtl:s}=pi(),l=t2(t,"reverse"),d=q(()=>t.direction==="vertical"),C=q(()=>d.value!==l.value),{min:m,max:u,step:p,decimals:V,roundValue:f}=i,M=q(()=>parseInt(t.thumbSize,10)),H=q(()=>parseInt(t.tickSize,10)),g=q(()=>parseInt(t.trackSize,10)),_=q(()=>(u.value-m.value)/p.value),v=t2(t,"disabled"),S=q(()=>{var M1;return t.error||t.disabled?void 0:(M1=t.thumbColor)!=null?M1:t.color}),y=q(()=>{var M1;return t.error||t.disabled?void 0:(M1=t.trackColor)!=null?M1:t.color}),D=q(()=>{var M1;return t.error||t.disabled?void 0:(M1=t.trackFillColor)!=null?M1:t.color}),R=g2(!1),N=g2(0),w=i1(),x=i1();function U(M1){var c1;const X=t.direction==="vertical",s1=X?"top":"left",m1=X?"height":"width",f1=X?"clientY":"clientX",{[s1]:L1,[m1]:e1}=(c1=w.value)==null?void 0:c1.$el.getBoundingClientRect(),Y=YG1(M1,f1);let a1=Math.min(Math.max((Y-L1-N.value)/e1,0),1)||0;return(X?C.value:C.value!==s.value)&&(a1=1-a1),f(m.value+a1*(u.value-m.value))}const E=M1=>{n({value:U(M1)}),R.value=!1,N.value=0},O=M1=>{x.value=o(M1),x.value&&(x.value.focus(),R.value=!0,x.value.contains(M1.target)?N.value=XG1(M1,x.value,t.direction):(N.value=0,r({value:U(M1)})),a({value:U(M1)}))},z={passive:!0,capture:!0};function F(M1){r({value:U(M1)})}function J(M1){M1.stopPropagation(),M1.preventDefault(),E(M1),window.removeEventListener("mousemove",F,z),window.removeEventListener("mouseup",J)}function W(M1){var X;E(M1),window.removeEventListener("touchmove",F,z),(X=M1.target)==null||X.removeEventListener("touchend",W)}function r1(M1){var X;O(M1),window.addEventListener("touchmove",F,z),(X=M1.target)==null||X.addEventListener("touchend",W,{passive:!1})}function $(M1){M1.preventDefault(),O(M1),window.addEventListener("mousemove",F,z),window.addEventListener("mouseup",J,{passive:!1})}const t1=M1=>{const X=(M1-m.value)/(u.value-m.value)*100;return xt(isNaN(X)?0:X,0,100)},l1=t2(t,"showTicks"),V1=q(()=>l1.value?t.ticks?Array.isArray(t.ticks)?t.ticks.map(M1=>({value:M1,position:t1(M1),label:M1.toString()})):Object.keys(t.ticks).map(M1=>({value:parseFloat(M1),position:t1(parseFloat(M1)),label:t.ticks[M1]})):_.value!==1/0?Yr(_.value+1).map(M1=>{const X=m.value+M1*p.value;return{value:X,position:t1(X)}}):[]:[]),A1=q(()=>V1.value.some(M1=>{let{label:X}=M1;return!!X})),n1={activeThumbRef:x,color:t2(t,"color"),decimals:V,disabled:v,direction:t2(t,"direction"),elevation:t2(t,"elevation"),hasLabels:A1,isReversed:l,indexFromEnd:C,min:m,max:u,mousePressed:R,numTicks:_,onSliderMousedown:$,onSliderTouchstart:r1,parsedTicks:V1,parseMouseMove:U,position:t1,readonly:t2(t,"readonly"),rounded:t2(t,"rounded"),roundValue:f,showTicks:l1,startOffset:N,step:p,thumbSize:M,thumbColor:S,thumbLabel:t2(t,"thumbLabel"),ticks:t2(t,"ticks"),tickSize:H,trackColor:y,trackContainerRef:w,trackFillColor:D,trackSize:g,vertical:d};return X2(xH,n1),n1},jG1=k1({focused:Boolean,max:{type:Number,required:!0},min:{type:Number,required:!0},modelValue:{type:Number,required:!0},position:{type:Number,required:!0},ripple:{type:[Boolean,Object],default:!0},...F2()},"VSliderThumb"),QG1=h2()({name:"VSliderThumb",directives:{Ripple:Fn},props:jG1(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:i,emit:a}=t;const r=H2(xH),{isRtl:n,rtlClasses:o}=pi();if(!r)throw new Error("[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider");const{thumbColor:s,step:l,disabled:d,thumbSize:C,thumbLabel:m,direction:u,isReversed:p,vertical:V,readonly:f,elevation:M,mousePressed:H,decimals:g,indexFromEnd:_}=r,{textColorClasses:v,textColorStyles:S}=Bi(s),{pageup:y,pagedown:D,end:R,home:N,left:w,right:x,down:U,up:E}=Ip,O=[y,D,R,N,w,x,U,E],z=q(()=>l.value?[1,2,3]:[1,5,10]);function F(W,r1){if(!O.includes(W.key))return;W.preventDefault();const $=l.value||.1,t1=(e.max-e.min)/$;if([w,x,U,E].includes(W.key)){const V1=(V.value?[n.value?w:x,p.value?U:E]:_.value!==n.value?[w,E]:[x,E]).includes(W.key)?1:-1,A1=W.shiftKey?2:W.ctrlKey?1:0;r1=r1+V1*$*z.value[A1]}else if(W.key===N)r1=e.min;else if(W.key===R)r1=e.max;else{const l1=W.key===D?1:-1;r1=r1-l1*$*(t1>100?t1/10:10)}return Math.max(e.min,Math.min(e.max,r1))}function J(W){const r1=F(W,e.modelValue);r1!=null&&a("update:modelValue",r1)}return M2(()=>{const W=f2(_.value?100-e.position:e.position,"%"),{elevationClasses:r1}=O3(q(()=>d.value?void 0:M.value));return P("div",{class:["v-slider-thumb",{"v-slider-thumb--focused":e.focused,"v-slider-thumb--pressed":e.focused&&H.value},e.class,o.value],style:[{"--v-slider-thumb-position":W,"--v-slider-thumb-size":f2(C.value)},e.style],role:"slider",tabindex:d.value?-1:0,"aria-valuemin":e.min,"aria-valuemax":e.max,"aria-valuenow":e.modelValue,"aria-readonly":!!f.value,"aria-orientation":u.value,onKeydown:f.value?void 0:J},[P("div",{class:["v-slider-thumb__surface",v.value,r1.value],style:{...S.value}},null),N2(P("div",{class:["v-slider-thumb__ripple",v.value],style:S.value},null),[[k5("ripple"),e.ripple,null,{circle:!0,center:!0}]]),P(ae1,{origin:"bottom center"},{default:()=>{var $,t1;return[N2(P("div",{class:"v-slider-thumb__label-container"},[P("div",{class:["v-slider-thumb__label"]},[P("div",null,[(t1=($=i["thumb-label"])==null?void 0:$.call(i,{modelValue:e.modelValue}))!=null?t1:e.modelValue.toFixed(l.value?g.value:1)])])]),[[Ut,m.value&&e.focused||m.value==="always"]])]}})])}),{}}});const JG1=k1({start:{type:Number,required:!0},stop:{type:Number,required:!0},...F2()},"VSliderTrack"),eW1=h2()({name:"VSliderTrack",props:JG1(),emits:{},setup(e,t){let{slots:i}=t;const a=H2(xH);if(!a)throw new Error("[Vuetify] v-slider-track must be inside v-slider or v-range-slider");const{color:r,parsedTicks:n,rounded:o,showTicks:s,tickSize:l,trackColor:d,trackFillColor:C,trackSize:m,vertical:u,min:p,max:V,indexFromEnd:f}=a,{roundedClasses:M}=F0(o),{backgroundColorClasses:H,backgroundColorStyles:g}=d0(C),{backgroundColorClasses:_,backgroundColorStyles:v}=d0(d),S=q(()=>`inset-${u.value?"block":"inline"}-${f.value?"end":"start"}`),y=q(()=>u.value?"height":"width"),D=q(()=>({[S.value]:"0%",[y.value]:"100%"})),R=q(()=>e.stop-e.start),N=q(()=>({[S.value]:f2(e.start,"%"),[y.value]:f2(R.value,"%")})),w=q(()=>s.value?(u.value?n.value.slice().reverse():n.value).map((U,E)=>{var z,F;const O=U.value!==p.value&&U.value!==V.value?f2(U.position,"%"):void 0;return P("div",{key:U.value,class:["v-slider-track__tick",{"v-slider-track__tick--filled":U.position>=e.start&&U.position<=e.stop,"v-slider-track__tick--first":U.value===p.value,"v-slider-track__tick--last":U.value===V.value}],style:{[S.value]:O}},[(U.label||i["tick-label"])&&P("div",{class:"v-slider-track__tick-label"},[(F=(z=i["tick-label"])==null?void 0:z.call(i,{tick:U,index:E}))!=null?F:U.label])])}):[]);return M2(()=>P("div",{class:["v-slider-track",M.value,e.class],style:[{"--v-slider-track-size":f2(m.value),"--v-slider-tick-size":f2(l.value)},e.style]},[P("div",{class:["v-slider-track__background",_.value,{"v-slider-track__background--opacity":!!r.value||!C.value}],style:{...D.value,...v.value}},null),P("div",{class:["v-slider-track__fill",H.value],style:{...N.value,...g.value}},null),s.value&&P("div",{class:["v-slider-track__ticks",{"v-slider-track__ticks--always-show":s.value==="always"}]},[w.value])])),{}}}),tW1=k1({...AH(),...$G1(),...Z8(),modelValue:{type:[Number,String],default:0}},"VSlider"),po=h2()({name:"VSlider",props:tW1(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,start:e=>!0,end:e=>!0},setup(e,t){let{slots:i,emit:a}=t;const r=i1(),{rtlClasses:n}=pi(),o=qG1(e),s=ue(e,"modelValue",void 0,y=>o.roundValue(y==null?o.min.value:y)),{min:l,max:d,mousePressed:C,roundValue:m,onSliderMousedown:u,onSliderTouchstart:p,trackContainerRef:V,position:f,hasLabels:M,readonly:H}=KG1({props:e,steps:o,onSliderStart:()=>{a("start",s.value)},onSliderEnd:y=>{let{value:D}=y;const R=m(D);s.value=R,a("end",R)},onSliderMove:y=>{let{value:D}=y;return s.value=m(D)},getActiveThumb:()=>{var y;return(y=r.value)==null?void 0:y.$el}}),{isFocused:g,focus:_,blur:v}=z8(e),S=q(()=>f(s.value));return M2(()=>{const y=$4.filterProps(e),D=!!(e.label||i.label||i.prepend);return P($4,V2({class:["v-slider",{"v-slider--has-labels":!!i["tick-label"]||M.value,"v-slider--focused":g.value,"v-slider--pressed":C.value,"v-slider--disabled":e.disabled},n.value,e.class],style:e.style},y,{focused:g.value}),{...i,prepend:D?R=>{var N,w,x;return P(Y1,null,[(w=(N=i.label)==null?void 0:N.call(i,R))!=null?w:e.label?P(SH,{id:R.id.value,class:"v-slider__label",text:e.label},null):void 0,(x=i.prepend)==null?void 0:x.call(i,R)])}:void 0,default:R=>{let{id:N,messagesId:w}=R;return P("div",{class:"v-slider__container",onMousedown:H.value?void 0:u,onTouchstartPassive:H.value?void 0:p},[P("input",{id:N.value,name:e.name||N.value,disabled:!!e.disabled,readonly:!!e.readonly,tabindex:"-1",value:s.value},null),P(eW1,{ref:V,start:0,stop:S.value},{"tick-label":i["tick-label"]}),P(QG1,{ref:r,"aria-describedby":w.value,focused:g.value,min:l.value,max:d.value,modelValue:s.value,"onUpdate:modelValue":x=>s.value=x,position:S.value,elevation:e.elevation,onFocus:_,onBlur:v,ripple:e.ripple},{"thumb-label":i["thumb-label"]})])}})}),{}}}),iW1=["onClick"],aW1=n2({__name:"ConfigurationDevelopmentView",setup(e){const t=xb(),i=i1([]),a=[{title:"Name",value:"name"},{title:"Time (initial)",value:"initialTime"},{title:"Date (initial)",value:"initialDate"},{title:"N. events",value:"nEvents"},{title:"Download",value:"actions"}];B5(async()=>{await lp.iterate((o,s)=>{i.value.push({name:s,initialTime:o.initialTime,initialDate:o.initialDate,nEvents:o.events.length})})});const r=async o=>{const s=await lp.getItem(o),l=JSON.stringify(s,null,2),d=new Blob([l],{type:"application/json"});_a.exports.saveAs(d,o)},n=()=>location.reload();return(o,s)=>(C1(),Q1(kn,null,{title:v1(()=>[L2("Development configuration")]),content:v1(()=>[P(At,{modelValue:B(t).developmentMode,"onUpdate:modelValue":s[0]||(s[0]=l=>B(t).developmentMode=l),label:"Development mode",class:"ma-2",color:"rgb(0, 20, 80)"},null,8,["modelValue"]),P(At,{modelValue:B(t).enableSystemLogging,"onUpdate:modelValue":[s[1]||(s[1]=l=>B(t).enableSystemLogging=l),n],label:"Enable system logging",class:"m-2",color:"rgb(0, 20, 80)"},null,8,["modelValue"]),P(po,{modelValue:B(t).widgetDevInfoBlurLevel,"onUpdate:modelValue":s[2]||(s[2]=l=>B(t).widgetDevInfoBlurLevel=l),label:"Dev info blur level",min:"0",max:"10",class:"ma-2 w-25",color:"rgb(0, 20, 80)",step:"1","thumb-label":"always"},null,8,["modelValue"]),P(WG1,{items:i.value,headers:a,class:"max-w-[80%] max-h-[60%]"},{"item.actions":v1(({item:l})=>[K("div",{class:"text-center cursor-pointer icon-btn mdi mdi-download",onClick:d=>r(l.name)},null,8,iW1)]),_:1},8,["items"])]),_:1}))}}),rW1=k1({...F2(),...Rz1()},"VForm"),Bu=h2()({name:"VForm",props:rW1(),emits:{"update:modelValue":e=>!0,submit:e=>!0},setup(e,t){let{slots:i,emit:a}=t;const r=bz1(e),n=i1();function o(l){l.preventDefault(),r.reset()}function s(l){const d=l,C=r.validate();d.then=C.then.bind(C),d.catch=C.catch.bind(C),d.finally=C.finally.bind(C),a("submit",d),d.defaultPrevented||C.then(m=>{var p;let{valid:u}=m;u&&((p=n.value)==null||p.submit())}),d.preventDefault()}return M2(()=>{var l;return P("form",{ref:n,class:["v-form",e.class],style:e.style,novalidate:!0,onReset:o,onSubmit:s},[(l=i.default)==null?void 0:l.call(i,r)])}),Oo(r,n)}}),Uo=e=>(Dt("data-v-a9389ce3"),e=e(),yt(),e),nW1=Uo(()=>K("span",{class:"text-h6"},"Global vehicle address",-1)),oW1=Uo(()=>K("br",null,null,-1)),sW1=Uo(()=>K("span",{class:"text-h6"},"Mavlink2Rest connection",-1)),lW1=Uo(()=>K("br",null,null,-1)),cW1=Uo(()=>K("span",{class:"text-h6"},"WebRTC connection",-1)),dW1=Uo(()=>K("br",null,null,-1)),CW1=n2({__name:"ConfigurationGeneralView",setup(e){const t=r5(),i=i1(),a=i1(!1),r=i1(t.globalAddress),n=i1(),o=i1(!1),s=i1(t.webRTCSignallingURI),l=i1(),d=i1(!1),C=i1(t.mainConnectionURI),m=i1(t.isVehicleOnline);T1(()=>t.isVehicleOnline,()=>m.value=t.isVehicleOnline);const u=v=>{var S;return(S=Fk1(v))!=null?S:"Invalid host address. Should be an IP address or a hostname"},p=v=>{try{if(new cd(v).type()!==mo.WebSocket)throw new Error("URI should be of type WebSocket")}catch(S){return`Invalid connection URI. ${S}.`}return!0},V=async()=>{r.value=Gp,await g()},f=async()=>{C.value.reset(),await H()},M=()=>{s.value.reset()},H=async()=>{await l.value.validate(),m.value=void 0,setTimeout(()=>{var v;return(v=m.value)!=null?v:m.value=!1},5e3);try{Pt.addConnection(new cd(C.value.val),pH.MAVLink)}catch(v){console.error(v),alert(`Could not update main connection. ${v}.`);return}console.debug(`New connection successfully configured to ${C.value.val}.`)},g=async()=>{await i.value.validate(),t.globalAddress=r.value,location.reload()},_=async()=>{await n.value.validate(),t.webRTCSignallingURI.val=s.value.val};return(v,S)=>{const y=x5("v-template"),D=k5("tooltip");return C1(),Q1(kn,null,{title:v1(()=>[L2("General configuration")]),content:v1(()=>[P(st,{class:"pb-2 pa-5 ma-4","max-width":"600px"},{default:v1(()=>[P(Ze,{icon:"mdi-earth",class:"mr-3"}),nW1,P(Bu,{ref_key:"globalAddressForm",ref:i,modelValue:a.value,"onUpdate:modelValue":S[1]||(S[1]=R=>a.value=R),class:"justify-center d-flex align-center",onSubmit:ht(g,["prevent"])},{default:v1(()=>[P(kt,{modelValue:r.value,"onUpdate:modelValue":S[0]||(S[0]=R=>r.value=R),variant:"underlined",type:"input",hint:"Address of the Vehicle. E.g: blueos.local",class:"uri-input",rules:[u]},null,8,["modelValue","rules"]),N2(P(re,{icon:"mdi-check",class:"mx-1 mb-5 pa-0",rounded:"lg",flat:"",type:"submit"},null,512),[[D,"Set",void 0,{bottom:!0}]]),P(y,null,{default:v1(()=>[N2(P(re,{disabled:r.value===B(Gp),icon:"mdi-refresh",class:"mx-1 mb-5 pa-0",rounded:"lg",flat:"",onClick:V},null,8,["disabled"]),[[D,"Reset to default",void 0,{bottom:!0}]])]),_:1})]),_:1},8,["modelValue"]),K("span",null,"Current address: "+q1(B(t).globalAddress),1),oW1]),_:1}),P(st,{class:"pb-2 pa-5 ma-4","max-width":"600px"},{default:v1(()=>{var R,N;return[m.value===void 0?(C1(),Q1(_H,{key:0,indeterminate:"",size:"24",class:"mr-3"})):(C1(),Q1(Ze,{key:1,icon:m.value?"mdi-lan-connect":"mdi-lan-disconnect",class:"mr-3"},null,8,["icon"])),sW1,P(Bu,{ref_key:"connectionForm",ref:l,modelValue:d.value,"onUpdate:modelValue":S[4]||(S[4]=w=>d.value=w),class:"justify-center d-flex align-center",onSubmit:ht(H,["prevent"])},{default:v1(()=>[N2(P(A4,{modelValue:C.value.isCustom,"onUpdate:modelValue":S[2]||(S[2]=w=>C.value.isCustom=w),class:"mx-1 mb-5 pa-0",rounded:"lg","hide-details":""},null,8,["modelValue"]),[[D,"Enable custom",void 0,{bottom:!0}]]),P(kt,{modelValue:C.value.val,"onUpdate:modelValue":S[3]||(S[3]=w=>C.value.val=w),disabled:!C.value.isCustom,label:"Mavlink2Rest URI",variant:"underlined",type:"input",hint:"URI of a Mavlink2Rest web-socket",class:"uri-input",rules:[p]},null,8,["modelValue","disabled","rules"]),N2(P(re,{icon:"mdi-check",class:"mx-1 mb-5 pa-0",rounded:"lg",flat:"",type:"submit"},null,512),[[D,"Set",void 0,{bottom:!0}]]),P(y,null,{default:v1(()=>[N2(P(re,{disabled:C.value.toString()===C.value.defaultValue.toString(),icon:"mdi-refresh",class:"mx-1 mb-5 pa-0",rounded:"lg",flat:"",onClick:f},null,8,["disabled"]),[[D,"Reset to default",void 0,{bottom:!0}]])]),_:1})]),_:1},8,["modelValue"]),K("span",null,"Current address: "+q1((N=(R=B(Pt).mainConnection())==null?void 0:R.uri().toString())!=null?N:"none"),1),lW1,K("span",null,"Status: "+q1(m.value?"connected":m.value===void 0?"connecting...":"failed to connect"),1)]}),_:1}),P(st,{class:"pb-2 pa-5 ma-4","max-width":"600px"},{default:v1(()=>[P(Ze,{icon:"mdi-lan-pending",class:"mr-3"}),cW1,P(Bu,{ref_key:"webRTCSignallingForm",ref:n,modelValue:o.value,"onUpdate:modelValue":S[7]||(S[7]=R=>o.value=R),class:"justify-center d-flex align-center",onSubmit:ht(_,["prevent"])},{default:v1(()=>[N2(P(A4,{modelValue:s.value.isCustom,"onUpdate:modelValue":S[5]||(S[5]=R=>s.value.isCustom=R),class:"mx-1 mb-5 pa-0",rounded:"lg","hide-details":""},null,8,["modelValue"]),[[D,"Enable custom",void 0,{bottom:!0}]]),P(kt,{modelValue:s.value.val,"onUpdate:modelValue":S[6]||(S[6]=R=>s.value.val=R),disabled:!s.value.isCustom,label:"WebRTC Signalling Server URI",variant:"underlined",type:"input",hint:"URI of a WebRTC Signalling Server URI",class:"uri-input",rules:[p]},null,8,["modelValue","disabled","rules"]),N2(P(re,{icon:"mdi-check",class:"mx-1 mb-5 pa-0",rounded:"lg",flat:"",type:"submit"},null,512),[[D,"Set",void 0,{bottom:!0}]]),P(y,null,{default:v1(()=>[N2(P(re,{disabled:s.value.val.toString()===s.value.defaultValue.toString(),icon:"mdi-refresh",class:"mx-1 mb-5 pa-0",rounded:"lg",flat:"",onClick:M},null,8,["disabled"]),[[D,"Reset to default",void 0,{bottom:!0}]])]),_:1})]),_:1},8,["modelValue"]),K("span",null,"Current address: "+q1(B(t).webRTCSignallingURI.val.toString()),1),dW1]),_:1})]),_:1})}}});const y_=w5(CW1,[["__scopeId","data-v-a9389ce3"]]);var yn={exports:{}};const mW1="2.0.0",s51=256,uW1=Number.MAX_SAFE_INTEGER||9007199254740991,hW1=16,pW1=s51-6,fW1=["major","premajor","minor","preminor","patch","prepatch","prerelease"];var cm={MAX_LENGTH:s51,MAX_SAFE_COMPONENT_LENGTH:hW1,MAX_SAFE_BUILD_LENGTH:pW1,MAX_SAFE_INTEGER:uW1,RELEASE_TYPES:fW1,SEMVER_SPEC_VERSION:mW1,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};const VW1=typeof process=="object"&&{}&&{}.NODE_DEBUG&&/\bsemver\b/i.test({}.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};var dm=VW1;(function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:i,MAX_SAFE_BUILD_LENGTH:a,MAX_LENGTH:r}=cm,n=dm;t=e.exports={};const o=t.re=[],s=t.safeRe=[],l=t.src=[],d=t.t={};let C=0;const m="[a-zA-Z0-9-]",u=[["\\s",1],["\\d",r],[m,a]],p=f=>{for(const[M,H]of u)f=f.split(`${M}*`).join(`${M}{0,${H}}`).split(`${M}+`).join(`${M}{1,${H}}`);return f},V=(f,M,H)=>{const g=p(M),_=C++;n(f,_,M),d[f]=_,l[_]=M,o[_]=new RegExp(M,H?"g":void 0),s[_]=new RegExp(g,H?"g":void 0)};V("NUMERICIDENTIFIER","0|[1-9]\\d*"),V("NUMERICIDENTIFIERLOOSE","\\d+"),V("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${m}*`),V("MAINVERSION",`(${l[d.NUMERICIDENTIFIER]})\\.(${l[d.NUMERICIDENTIFIER]})\\.(${l[d.NUMERICIDENTIFIER]})`),V("MAINVERSIONLOOSE",`(${l[d.NUMERICIDENTIFIERLOOSE]})\\.(${l[d.NUMERICIDENTIFIERLOOSE]})\\.(${l[d.NUMERICIDENTIFIERLOOSE]})`),V("PRERELEASEIDENTIFIER",`(?:${l[d.NUMERICIDENTIFIER]}|${l[d.NONNUMERICIDENTIFIER]})`),V("PRERELEASEIDENTIFIERLOOSE",`(?:${l[d.NUMERICIDENTIFIERLOOSE]}|${l[d.NONNUMERICIDENTIFIER]})`),V("PRERELEASE",`(?:-(${l[d.PRERELEASEIDENTIFIER]}(?:\\.${l[d.PRERELEASEIDENTIFIER]})*))`),V("PRERELEASELOOSE",`(?:-?(${l[d.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[d.PRERELEASEIDENTIFIERLOOSE]})*))`),V("BUILDIDENTIFIER",`${m}+`),V("BUILD",`(?:\\+(${l[d.BUILDIDENTIFIER]}(?:\\.${l[d.BUILDIDENTIFIER]})*))`),V("FULLPLAIN",`v?${l[d.MAINVERSION]}${l[d.PRERELEASE]}?${l[d.BUILD]}?`),V("FULL",`^${l[d.FULLPLAIN]}$`),V("LOOSEPLAIN",`[v=\\s]*${l[d.MAINVERSIONLOOSE]}${l[d.PRERELEASELOOSE]}?${l[d.BUILD]}?`),V("LOOSE",`^${l[d.LOOSEPLAIN]}$`),V("GTLT","((?:<|>)?=?)"),V("XRANGEIDENTIFIERLOOSE",`${l[d.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),V("XRANGEIDENTIFIER",`${l[d.NUMERICIDENTIFIER]}|x|X|\\*`),V("XRANGEPLAIN",`[v=\\s]*(${l[d.XRANGEIDENTIFIER]})(?:\\.(${l[d.XRANGEIDENTIFIER]})(?:\\.(${l[d.XRANGEIDENTIFIER]})(?:${l[d.PRERELEASE]})?${l[d.BUILD]}?)?)?`),V("XRANGEPLAINLOOSE",`[v=\\s]*(${l[d.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[d.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[d.XRANGEIDENTIFIERLOOSE]})(?:${l[d.PRERELEASELOOSE]})?${l[d.BUILD]}?)?)?`),V("XRANGE",`^${l[d.GTLT]}\\s*${l[d.XRANGEPLAIN]}$`),V("XRANGELOOSE",`^${l[d.GTLT]}\\s*${l[d.XRANGEPLAINLOOSE]}$`),V("COERCE",`(^|[^\\d])(\\d{1,${i}})(?:\\.(\\d{1,${i}}))?(?:\\.(\\d{1,${i}}))?(?:$|[^\\d])`),V("COERCERTL",l[d.COERCE],!0),V("LONETILDE","(?:~>?)"),V("TILDETRIM",`(\\s*)${l[d.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",V("TILDE",`^${l[d.LONETILDE]}${l[d.XRANGEPLAIN]}$`),V("TILDELOOSE",`^${l[d.LONETILDE]}${l[d.XRANGEPLAINLOOSE]}$`),V("LONECARET","(?:\\^)"),V("CARETTRIM",`(\\s*)${l[d.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",V("CARET",`^${l[d.LONECARET]}${l[d.XRANGEPLAIN]}$`),V("CARETLOOSE",`^${l[d.LONECARET]}${l[d.XRANGEPLAINLOOSE]}$`),V("COMPARATORLOOSE",`^${l[d.GTLT]}\\s*(${l[d.LOOSEPLAIN]})$|^$`),V("COMPARATOR",`^${l[d.GTLT]}\\s*(${l[d.FULLPLAIN]})$|^$`),V("COMPARATORTRIM",`(\\s*)${l[d.GTLT]}\\s*(${l[d.LOOSEPLAIN]}|${l[d.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",V("HYPHENRANGE",`^\\s*(${l[d.XRANGEPLAIN]})\\s+-\\s+(${l[d.XRANGEPLAIN]})\\s*$`),V("HYPHENRANGELOOSE",`^\\s*(${l[d.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[d.XRANGEPLAINLOOSE]})\\s*$`),V("STAR","(<|>)?=?\\s*\\*"),V("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),V("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(yn,yn.exports);const LW1=Object.freeze({loose:!0}),HW1=Object.freeze({}),MW1=e=>e?typeof e!="object"?LW1:e:HW1;var FH=MW1;const R_=/^[0-9]+$/,l51=(e,t)=>{const i=R_.test(e),a=R_.test(t);return i&&a&&(e=+e,t=+t),e===t?0:i&&!a?-1:a&&!i?1:el51(t,e);var c51={compareIdentifiers:l51,rcompareIdentifiers:gW1};const pl=dm,{MAX_LENGTH:b_,MAX_SAFE_INTEGER:fl}=cm,{safeRe:N_,t:w_}=yn.exports,AW1=FH,{compareIdentifiers:H6}=c51;class _i{constructor(t,i){if(i=AW1(i),t instanceof _i){if(t.loose===!!i.loose&&t.includePrerelease===!!i.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>b_)throw new TypeError(`version is longer than ${b_} characters`);pl("SemVer",t,i),this.options=i,this.loose=!!i.loose,this.includePrerelease=!!i.includePrerelease;const a=t.trim().match(i.loose?N_[w_.LOOSE]:N_[w_.FULL]);if(!a)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+a[1],this.minor=+a[2],this.patch=+a[3],this.major>fl||this.major<0)throw new TypeError("Invalid major version");if(this.minor>fl||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>fl||this.patch<0)throw new TypeError("Invalid patch version");a[4]?this.prerelease=a[4].split(".").map(r=>{if(/^[0-9]+$/.test(r)){const n=+r;if(n>=0&&n=0;)typeof this.prerelease[n]=="number"&&(this.prerelease[n]++,n=-2);if(n===-1){if(i===this.prerelease.join(".")&&a===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(r)}}if(i){let n=[i,r];a===!1&&(n=[i]),H6(this.prerelease[0],i)===0?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}var Bt=_i;const T_=Bt,vW1=(e,t,i=!1)=>{if(e instanceof T_)return e;try{return new T_(e,t)}catch(a){if(!i)return null;throw a}};var xo=vW1;const _W1=xo,SW1=(e,t)=>{const i=_W1(e,t);return i?i.version:null};var DW1=SW1;const yW1=xo,RW1=(e,t)=>{const i=yW1(e.trim().replace(/^[=v]+/,""),t);return i?i.version:null};var bW1=RW1;const E_=Bt,NW1=(e,t,i,a,r)=>{typeof i=="string"&&(r=a,a=i,i=void 0);try{return new E_(e instanceof E_?e.version:e,i).inc(t,a,r).version}catch{return null}};var wW1=NW1;const P_=xo,TW1=(e,t)=>{const i=P_(e,null,!0),a=P_(t,null,!0),r=i.compare(a);if(r===0)return null;const n=r>0,o=n?i:a,s=n?a:i,l=!!o.prerelease.length;if(!!s.prerelease.length&&!l)return!s.patch&&!s.minor?"major":o.patch?"patch":o.minor?"minor":"major";const C=l?"pre":"";return i.major!==a.major?C+"major":i.minor!==a.minor?C+"minor":i.patch!==a.patch?C+"patch":"prerelease"};var EW1=TW1;const PW1=Bt,IW1=(e,t)=>new PW1(e,t).major;var OW1=IW1;const UW1=Bt,xW1=(e,t)=>new UW1(e,t).minor;var FW1=xW1;const kW1=Bt,BW1=(e,t)=>new kW1(e,t).patch;var zW1=BW1;const ZW1=xo,GW1=(e,t)=>{const i=ZW1(e,t);return i&&i.prerelease.length?i.prerelease:null};var WW1=GW1;const I_=Bt,XW1=(e,t,i)=>new I_(e,i).compare(new I_(t,i));var Yi=XW1;const YW1=Yi,$W1=(e,t,i)=>YW1(t,e,i);var qW1=$W1;const KW1=Yi,jW1=(e,t)=>KW1(e,t,!0);var QW1=jW1;const O_=Bt,JW1=(e,t,i)=>{const a=new O_(e,i),r=new O_(t,i);return a.compare(r)||a.compareBuild(r)};var kH=JW1;const eX1=kH,tX1=(e,t)=>e.sort((i,a)=>eX1(i,a,t));var iX1=tX1;const aX1=kH,rX1=(e,t)=>e.sort((i,a)=>aX1(a,i,t));var nX1=rX1;const oX1=Yi,sX1=(e,t,i)=>oX1(e,t,i)>0;var Cm=sX1;const lX1=Yi,cX1=(e,t,i)=>lX1(e,t,i)<0;var BH=cX1;const dX1=Yi,CX1=(e,t,i)=>dX1(e,t,i)===0;var d51=CX1;const mX1=Yi,uX1=(e,t,i)=>mX1(e,t,i)!==0;var C51=uX1;const hX1=Yi,pX1=(e,t,i)=>hX1(e,t,i)>=0;var zH=pX1;const fX1=Yi,VX1=(e,t,i)=>fX1(e,t,i)<=0;var ZH=VX1;const LX1=d51,HX1=C51,MX1=Cm,gX1=zH,AX1=BH,vX1=ZH,_X1=(e,t,i,a)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof i=="object"&&(i=i.version),e===i;case"!==":return typeof e=="object"&&(e=e.version),typeof i=="object"&&(i=i.version),e!==i;case"":case"=":case"==":return LX1(e,i,a);case"!=":return HX1(e,i,a);case">":return MX1(e,i,a);case">=":return gX1(e,i,a);case"<":return AX1(e,i,a);case"<=":return vX1(e,i,a);default:throw new TypeError(`Invalid operator: ${t}`)}};var m51=_X1;const SX1=Bt,DX1=xo,{safeRe:Vl,t:Ll}=yn.exports,yX1=(e,t)=>{if(e instanceof SX1)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let i=null;if(!t.rtl)i=e.match(Vl[Ll.COERCE]);else{let a;for(;(a=Vl[Ll.COERCERTL].exec(e))&&(!i||i.index+i[0].length!==e.length);)(!i||a.index+a[0].length!==i.index+i[0].length)&&(i=a),Vl[Ll.COERCERTL].lastIndex=a.index+a[1].length+a[2].length;Vl[Ll.COERCERTL].lastIndex=-1}return i===null?null:DX1(`${i[2]}.${i[3]||"0"}.${i[4]||"0"}`,t)};var RX1=yX1,zu,U_;function bX1(){return U_||(U_=1,zu=function(e){e.prototype[Symbol.iterator]=function*(){for(let t=this.head;t;t=t.next)yield t.value}}),zu}var NX1=Ae;Ae.Node=Rn;Ae.create=Ae;function Ae(e){var t=this;if(t instanceof Ae||(t=new Ae),t.tail=null,t.head=null,t.length=0,e&&typeof e.forEach=="function")e.forEach(function(r){t.push(r)});else if(arguments.length>0)for(var i=0,a=arguments.length;i1)i=t;else if(this.head)a=this.head.next,i=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var r=0;a!==null;r++)i=e(i,a.value,r),a=a.next;return i};Ae.prototype.reduceReverse=function(e,t){var i,a=this.tail;if(arguments.length>1)i=t;else if(this.tail)a=this.tail.prev,i=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var r=this.length-1;a!==null;r--)i=e(i,a.value,r),a=a.prev;return i};Ae.prototype.toArray=function(){for(var e=new Array(this.length),t=0,i=this.head;i!==null;t++)e[t]=i.value,i=i.next;return e};Ae.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,i=this.tail;i!==null;t++)e[t]=i.value,i=i.prev;return e};Ae.prototype.slice=function(e,t){t=t||this.length,t<0&&(t+=this.length),e=e||0,e<0&&(e+=this.length);var i=new Ae;if(tthis.length&&(t=this.length);for(var a=0,r=this.head;r!==null&&athis.length&&(t=this.length);for(var a=this.length,r=this.tail;r!==null&&a>t;a--)r=r.prev;for(;r!==null&&a>e;a--,r=r.prev)i.push(r.value);return i};Ae.prototype.splice=function(e,t,...i){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var a=0,r=this.head;r!==null&&a1;class IX1{constructor(t){if(typeof t=="number"&&(t={max:t}),t||(t={}),t.max&&(typeof t.max!="number"||t.max<0))throw new TypeError("max must be a non-negative number");this[kr]=t.max||1/0;const i=t.length||Zu;if(this[M6]=typeof i!="function"?Zu:i,this[ds]=t.stale||!1,t.maxAge&&typeof t.maxAge!="number")throw new TypeError("maxAge must be a number");this[jr]=t.maxAge||0,this[ra]=t.dispose,this[x_]=t.noDisposeOnSet||!1,this[u51]=t.updateAgeOnGet||!1,this.reset()}set max(t){if(typeof t!="number"||t<0)throw new TypeError("max must be a non-negative number");this[kr]=t||1/0,M7(this)}get max(){return this[kr]}set allowStale(t){this[ds]=!!t}get allowStale(){return this[ds]}set maxAge(t){if(typeof t!="number")throw new TypeError("maxAge must be a non-negative number");this[jr]=t,M7(this)}get maxAge(){return this[jr]}set lengthCalculator(t){typeof t!="function"&&(t=Zu),t!==this[M6]&&(this[M6]=t,this[la]=0,this[z5].forEach(i=>{i.length=this[M6](i.value,i.key),this[la]+=i.length})),M7(this)}get lengthCalculator(){return this[M6]}get length(){return this[la]}get itemCount(){return this[z5].length}rforEach(t,i){i=i||this;for(let a=this[z5].tail;a!==null;){const r=a.prev;F_(this,t,a,i),a=r}}forEach(t,i){i=i||this;for(let a=this[z5].head;a!==null;){const r=a.next;F_(this,t,a,i),a=r}}keys(){return this[z5].toArray().map(t=>t.key)}values(){return this[z5].toArray().map(t=>t.value)}reset(){this[ra]&&this[z5]&&this[z5].length&&this[z5].forEach(t=>this[ra](t.key,t.value)),this[Si]=new Map,this[z5]=new PX1,this[la]=0}dump(){return this[z5].map(t=>gd(this,t)?!1:{k:t.key,v:t.value,e:t.now+(t.maxAge||0)}).toArray().filter(t=>t)}dumpLru(){return this[z5]}set(t,i,a){if(a=a||this[jr],a&&typeof a!="number")throw new TypeError("maxAge must be a number");const r=a?Date.now():0,n=this[M6](i,t);if(this[Si].has(t)){if(n>this[kr])return $6(this,this[Si].get(t)),!1;const l=this[Si].get(t).value;return this[ra]&&(this[x_]||this[ra](t,l.value)),l.now=r,l.maxAge=a,l.value=i,this[la]+=n-l.length,l.length=n,this.get(t),M7(this),!0}const o=new OX1(t,i,n,r,a);return o.length>this[kr]?(this[ra]&&this[ra](t,i),!1):(this[la]+=o.length,this[z5].unshift(o),this[Si].set(t,this[z5].head),M7(this),!0)}has(t){if(!this[Si].has(t))return!1;const i=this[Si].get(t).value;return!gd(this,i)}get(t){return Gu(this,t,!0)}peek(t){return Gu(this,t,!1)}pop(){const t=this[z5].tail;return t?($6(this,t),t.value):null}del(t){$6(this,this[Si].get(t))}load(t){this.reset();const i=Date.now();for(let a=t.length-1;a>=0;a--){const r=t[a],n=r.e||0;if(n===0)this.set(r.k,r.v);else{const o=n-i;o>0&&this.set(r.k,r.v,o)}}}prune(){this[Si].forEach((t,i)=>Gu(this,i,!1))}}const Gu=(e,t,i)=>{const a=e[Si].get(t);if(a){const r=a.value;if(gd(e,r)){if($6(e,a),!e[ds])return}else i&&(e[u51]&&(a.value.now=Date.now()),e[z5].unshiftNode(a));return r.value}},gd=(e,t)=>{if(!t||!t.maxAge&&!e[jr])return!1;const i=Date.now()-t.now;return t.maxAge?i>t.maxAge:e[jr]&&i>e[jr]},M7=e=>{if(e[la]>e[kr])for(let t=e[z5].tail;e[la]>e[kr]&&t!==null;){const i=t.prev;$6(e,t),t=i}},$6=(e,t)=>{if(t){const i=t.value;e[ra]&&e[ra](i.key,i.value),e[la]-=i.length,e[Si].delete(i.key),e[z5].removeNode(t)}};class OX1{constructor(t,i,a,r,n){this.key=t,this.value=i,this.length=a,this.now=r,this.maxAge=n||0}}const F_=(e,t,i,a)=>{let r=i.value;gd(e,r)&&($6(e,i),e[ds]||(r=void 0)),r&&t.call(a,r.value,r.key,e)};var UX1=IX1,Wu,k_;function $i(){if(k_)return Wu;k_=1;class e{constructor(O,z){if(z=a(z),O instanceof e)return O.loose===!!z.loose&&O.includePrerelease===!!z.includePrerelease?O:new e(O.raw,z);if(O instanceof r)return this.raw=O.value,this.set=[[O]],this.format(),this;if(this.options=z,this.loose=!!z.loose,this.includePrerelease=!!z.includePrerelease,this.raw=O.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(F=>this.parseRange(F.trim())).filter(F=>F.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const F=this.set[0];if(this.set=this.set.filter(J=>!V(J[0])),this.set.length===0)this.set=[F];else if(this.set.length>1){for(const J of this.set)if(J.length===1&&f(J[0])){this.set=[J];break}}}this.format()}format(){return this.range=this.set.map(O=>O.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(O){const F=((this.options.includePrerelease&&u)|(this.options.loose&&p))+":"+O,J=i.get(F);if(J)return J;const W=this.options.loose,r1=W?s[l.HYPHENRANGELOOSE]:s[l.HYPHENRANGE];O=O.replace(r1,x(this.options.includePrerelease)),n("hyphen replace",O),O=O.replace(s[l.COMPARATORTRIM],d),n("comparator trim",O),O=O.replace(s[l.TILDETRIM],C),n("tilde trim",O),O=O.replace(s[l.CARETTRIM],m),n("caret trim",O);let $=O.split(" ").map(A1=>H(A1,this.options)).join(" ").split(/\s+/).map(A1=>w(A1,this.options));W&&($=$.filter(A1=>(n("loose invalid filter",A1,this.options),!!A1.match(s[l.COMPARATORLOOSE])))),n("range list",$);const t1=new Map,l1=$.map(A1=>new r(A1,this.options));for(const A1 of l1){if(V(A1))return[A1];t1.set(A1.value,A1)}t1.size>1&&t1.has("")&&t1.delete("");const V1=[...t1.values()];return i.set(F,V1),V1}intersects(O,z){if(!(O instanceof e))throw new TypeError("a Range is required");return this.set.some(F=>M(F,z)&&O.set.some(J=>M(J,z)&&F.every(W=>J.every(r1=>W.intersects(r1,z)))))}test(O){if(!O)return!1;if(typeof O=="string")try{O=new o(O,this.options)}catch{return!1}for(let z=0;zE.value==="<0.0.0-0",f=E=>E.value==="",M=(E,O)=>{let z=!0;const F=E.slice();let J=F.pop();for(;z&&F.length;)z=F.every(W=>J.intersects(W,O)),J=F.pop();return z},H=(E,O)=>(n("comp",E,O),E=S(E,O),n("caret",E),E=_(E,O),n("tildes",E),E=D(E,O),n("xrange",E),E=N(E,O),n("stars",E),E),g=E=>!E||E.toLowerCase()==="x"||E==="*",_=(E,O)=>E.trim().split(/\s+/).map(z=>v(z,O)).join(" "),v=(E,O)=>{const z=O.loose?s[l.TILDELOOSE]:s[l.TILDE];return E.replace(z,(F,J,W,r1,$)=>{n("tilde",E,F,J,W,r1,$);let t1;return g(J)?t1="":g(W)?t1=`>=${J}.0.0 <${+J+1}.0.0-0`:g(r1)?t1=`>=${J}.${W}.0 <${J}.${+W+1}.0-0`:$?(n("replaceTilde pr",$),t1=`>=${J}.${W}.${r1}-${$} <${J}.${+W+1}.0-0`):t1=`>=${J}.${W}.${r1} <${J}.${+W+1}.0-0`,n("tilde return",t1),t1})},S=(E,O)=>E.trim().split(/\s+/).map(z=>y(z,O)).join(" "),y=(E,O)=>{n("caret",E,O);const z=O.loose?s[l.CARETLOOSE]:s[l.CARET],F=O.includePrerelease?"-0":"";return E.replace(z,(J,W,r1,$,t1)=>{n("caret",E,J,W,r1,$,t1);let l1;return g(W)?l1="":g(r1)?l1=`>=${W}.0.0${F} <${+W+1}.0.0-0`:g($)?W==="0"?l1=`>=${W}.${r1}.0${F} <${W}.${+r1+1}.0-0`:l1=`>=${W}.${r1}.0${F} <${+W+1}.0.0-0`:t1?(n("replaceCaret pr",t1),W==="0"?r1==="0"?l1=`>=${W}.${r1}.${$}-${t1} <${W}.${r1}.${+$+1}-0`:l1=`>=${W}.${r1}.${$}-${t1} <${W}.${+r1+1}.0-0`:l1=`>=${W}.${r1}.${$}-${t1} <${+W+1}.0.0-0`):(n("no pr"),W==="0"?r1==="0"?l1=`>=${W}.${r1}.${$}${F} <${W}.${r1}.${+$+1}-0`:l1=`>=${W}.${r1}.${$}${F} <${W}.${+r1+1}.0-0`:l1=`>=${W}.${r1}.${$} <${+W+1}.0.0-0`),n("caret return",l1),l1})},D=(E,O)=>(n("replaceXRanges",E,O),E.split(/\s+/).map(z=>R(z,O)).join(" ")),R=(E,O)=>{E=E.trim();const z=O.loose?s[l.XRANGELOOSE]:s[l.XRANGE];return E.replace(z,(F,J,W,r1,$,t1)=>{n("xRange",E,F,J,W,r1,$,t1);const l1=g(W),V1=l1||g(r1),A1=V1||g($),n1=A1;return J==="="&&n1&&(J=""),t1=O.includePrerelease?"-0":"",l1?J===">"||J==="<"?F="<0.0.0-0":F="*":J&&n1?(V1&&(r1=0),$=0,J===">"?(J=">=",V1?(W=+W+1,r1=0,$=0):(r1=+r1+1,$=0)):J==="<="&&(J="<",V1?W=+W+1:r1=+r1+1),J==="<"&&(t1="-0"),F=`${J+W}.${r1}.${$}${t1}`):V1?F=`>=${W}.0.0${t1} <${+W+1}.0.0-0`:A1&&(F=`>=${W}.${r1}.0${t1} <${W}.${+r1+1}.0-0`),n("xRange return",F),F})},N=(E,O)=>(n("replaceStars",E,O),E.trim().replace(s[l.STAR],"")),w=(E,O)=>(n("replaceGTE0",E,O),E.trim().replace(s[O.includePrerelease?l.GTE0PRE:l.GTE0],"")),x=E=>(O,z,F,J,W,r1,$,t1,l1,V1,A1,n1,M1)=>(g(F)?z="":g(J)?z=`>=${F}.0.0${E?"-0":""}`:g(W)?z=`>=${F}.${J}.0${E?"-0":""}`:r1?z=`>=${z}`:z=`>=${z}${E?"-0":""}`,g(l1)?t1="":g(V1)?t1=`<${+l1+1}.0.0-0`:g(A1)?t1=`<${l1}.${+V1+1}.0-0`:n1?t1=`<=${l1}.${V1}.${A1}-${n1}`:E?t1=`<${l1}.${V1}.${+A1+1}-0`:t1=`<=${t1}`,`${z} ${t1}`.trim()),U=(E,O,z)=>{for(let F=0;F0){const J=E[F].semver;if(J.major===O.major&&J.minor===O.minor&&J.patch===O.patch)return!0}return!1}return!0};return Wu}var Xu,B_;function mm(){if(B_)return Xu;B_=1;const e=Symbol("SemVer ANY");class t{static get ANY(){return e}constructor(C,m){if(m=i(m),C instanceof t){if(C.loose===!!m.loose)return C;C=C.value}C=C.trim().split(/\s+/).join(" "),o("comparator",C,m),this.options=m,this.loose=!!m.loose,this.parse(C),this.semver===e?this.value="":this.value=this.operator+this.semver.version,o("comp",this)}parse(C){const m=this.options.loose?a[r.COMPARATORLOOSE]:a[r.COMPARATOR],u=C.match(m);if(!u)throw new TypeError(`Invalid comparator: ${C}`);this.operator=u[1]!==void 0?u[1]:"",this.operator==="="&&(this.operator=""),u[2]?this.semver=new s(u[2],this.options.loose):this.semver=e}toString(){return this.value}test(C){if(o("Comparator.test",C,this.options.loose),this.semver===e||C===e)return!0;if(typeof C=="string")try{C=new s(C,this.options)}catch{return!1}return n(C,this.operator,this.semver,this.options)}intersects(C,m){if(!(C instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new l(C.value,m).test(this.value):C.operator===""?C.value===""?!0:new l(this.value,m).test(C.semver):(m=i(m),m.includePrerelease&&(this.value==="<0.0.0-0"||C.value==="<0.0.0-0")||!m.includePrerelease&&(this.value.startsWith("<0.0.0")||C.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&C.operator.startsWith(">")||this.operator.startsWith("<")&&C.operator.startsWith("<")||this.semver.version===C.semver.version&&this.operator.includes("=")&&C.operator.includes("=")||n(this.semver,"<",C.semver,m)&&this.operator.startsWith(">")&&C.operator.startsWith("<")||n(this.semver,">",C.semver,m)&&this.operator.startsWith("<")&&C.operator.startsWith(">")))}}Xu=t;const i=FH,{safeRe:a,t:r}=yn.exports,n=m51,o=dm,s=Bt,l=$i();return Xu}const xX1=$i(),FX1=(e,t,i)=>{try{t=new xX1(t,i)}catch{return!1}return t.test(e)};var um=FX1;const kX1=$i(),BX1=(e,t)=>new kX1(e,t).set.map(i=>i.map(a=>a.value).join(" ").trim().split(" "));var zX1=BX1;const ZX1=Bt,GX1=$i(),WX1=(e,t,i)=>{let a=null,r=null,n=null;try{n=new GX1(t,i)}catch{return null}return e.forEach(o=>{n.test(o)&&(!a||r.compare(o)===-1)&&(a=o,r=new ZX1(a,i))}),a};var XX1=WX1;const YX1=Bt,$X1=$i(),qX1=(e,t,i)=>{let a=null,r=null,n=null;try{n=new $X1(t,i)}catch{return null}return e.forEach(o=>{n.test(o)&&(!a||r.compare(o)===1)&&(a=o,r=new YX1(a,i))}),a};var KX1=qX1;const Yu=Bt,jX1=$i(),z_=Cm,QX1=(e,t)=>{e=new jX1(e,t);let i=new Yu("0.0.0");if(e.test(i)||(i=new Yu("0.0.0-0"),e.test(i)))return i;i=null;for(let a=0;a{const s=new Yu(o.semver.version);switch(o.operator){case">":s.prerelease.length===0?s.patch++:s.prerelease.push(0),s.raw=s.format();case"":case">=":(!n||z_(s,n))&&(n=s);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),n&&(!i||z_(i,n))&&(i=n)}return i&&e.test(i)?i:null};var JX1=QX1;const eY1=$i(),tY1=(e,t)=>{try{return new eY1(e,t).range||"*"}catch{return null}};var iY1=tY1;const aY1=Bt,h51=mm(),{ANY:rY1}=h51,nY1=$i(),oY1=um,Z_=Cm,G_=BH,sY1=ZH,lY1=zH,cY1=(e,t,i,a)=>{e=new aY1(e,a),t=new nY1(t,a);let r,n,o,s,l;switch(i){case">":r=Z_,n=sY1,o=G_,s=">",l=">=";break;case"<":r=G_,n=lY1,o=Z_,s="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(oY1(e,t,a))return!1;for(let d=0;d{p.semver===rY1&&(p=new h51(">=0.0.0")),m=m||p,u=u||p,r(p.semver,m.semver,a)?m=p:o(p.semver,u.semver,a)&&(u=p)}),m.operator===s||m.operator===l||(!u.operator||u.operator===s)&&n(e,u.semver))return!1;if(u.operator===l&&o(e,u.semver))return!1}return!0};var GH=cY1;const dY1=GH,CY1=(e,t,i)=>dY1(e,t,">",i);var mY1=CY1;const uY1=GH,hY1=(e,t,i)=>uY1(e,t,"<",i);var pY1=hY1;const W_=$i(),fY1=(e,t,i)=>(e=new W_(e,i),t=new W_(t,i),e.intersects(t,i));var VY1=fY1;const LY1=um,HY1=Yi;var MY1=(e,t,i)=>{const a=[];let r=null,n=null;const o=e.sort((C,m)=>HY1(C,m,i));for(const C of o)LY1(C,t,i)?(n=C,r||(r=C)):(n&&a.push([r,n]),n=null,r=null);r&&a.push([r,null]);const s=[];for(const[C,m]of a)C===m?s.push(C):!m&&C===o[0]?s.push("*"):m?C===o[0]?s.push(`<=${m}`):s.push(`${C} - ${m}`):s.push(`>=${C}`);const l=s.join(" || "),d=typeof t.raw=="string"?t.raw:String(t);return l.length{if(e===t)return!0;e=new X_(e,i),t=new X_(t,i);let a=!1;e:for(const r of e.set){for(const n of t.set){const o=vY1(r,n,i);if(a=a||o!==null,o)continue e}if(a)return!1}return!0},AY1=[new WH(">=0.0.0-0")],Y_=[new WH(">=0.0.0")],vY1=(e,t,i)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===$u){if(t.length===1&&t[0].semver===$u)return!0;i.includePrerelease?e=AY1:e=Y_}if(t.length===1&&t[0].semver===$u){if(i.includePrerelease)return!0;t=Y_}const a=new Set;let r,n;for(const p of e)p.operator===">"||p.operator===">="?r=$_(r,p,i):p.operator==="<"||p.operator==="<="?n=q_(n,p,i):a.add(p.semver);if(a.size>1)return null;let o;if(r&&n){if(o=XH(r.semver,n.semver,i),o>0)return null;if(o===0&&(r.operator!==">="||n.operator!=="<="))return null}for(const p of a){if(r&&!g7(p,String(r),i)||n&&!g7(p,String(n),i))return null;for(const V of t)if(!g7(p,String(V),i))return!1;return!0}let s,l,d,C,m=n&&!i.includePrerelease&&n.semver.prerelease.length?n.semver:!1,u=r&&!i.includePrerelease&&r.semver.prerelease.length?r.semver:!1;m&&m.prerelease.length===1&&n.operator==="<"&&m.prerelease[0]===0&&(m=!1);for(const p of t){if(C=C||p.operator===">"||p.operator===">=",d=d||p.operator==="<"||p.operator==="<=",r){if(u&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===u.major&&p.semver.minor===u.minor&&p.semver.patch===u.patch&&(u=!1),p.operator===">"||p.operator===">="){if(s=$_(r,p,i),s===p&&s!==r)return!1}else if(r.operator===">="&&!g7(r.semver,String(p),i))return!1}if(n){if(m&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===m.major&&p.semver.minor===m.minor&&p.semver.patch===m.patch&&(m=!1),p.operator==="<"||p.operator==="<="){if(l=q_(n,p,i),l===p&&l!==n)return!1}else if(n.operator==="<="&&!g7(n.semver,String(p),i))return!1}if(!p.operator&&(n||r)&&o!==0)return!1}return!(r&&d&&!n&&o!==0||n&&C&&!r&&o!==0||u||m)},$_=(e,t,i)=>{if(!e)return t;const a=XH(e.semver,t.semver,i);return a>0?e:a<0||t.operator===">"&&e.operator===">="?t:e},q_=(e,t,i)=>{if(!e)return t;const a=XH(e.semver,t.semver,i);return a<0?e:a>0||t.operator==="<"&&e.operator==="<="?t:e};var _Y1=gY1;const qu=yn.exports,K_=cm,SY1=Bt,j_=c51,DY1=xo,yY1=DW1,RY1=bW1,bY1=wW1,NY1=EW1,wY1=OW1,TY1=FW1,EY1=zW1,PY1=WW1,IY1=Yi,OY1=qW1,UY1=QW1,xY1=kH,FY1=iX1,kY1=nX1,BY1=Cm,zY1=BH,ZY1=d51,GY1=C51,WY1=zH,XY1=ZH,YY1=m51,$Y1=RX1,qY1=mm(),KY1=$i(),jY1=um,QY1=zX1,JY1=XX1,e$1=KX1,t$1=JX1,i$1=iY1,a$1=GH,r$1=mY1,n$1=pY1,o$1=VY1,s$1=MY1,l$1=_Y1;var Q_={parse:DY1,valid:yY1,clean:RY1,inc:bY1,diff:NY1,major:wY1,minor:TY1,patch:EY1,prerelease:PY1,compare:IY1,rcompare:OY1,compareLoose:UY1,compareBuild:xY1,sort:FY1,rsort:kY1,gt:BY1,lt:zY1,eq:ZY1,neq:GY1,gte:WY1,lte:XY1,cmp:YY1,coerce:$Y1,Comparator:qY1,Range:KY1,satisfies:jY1,toComparators:QY1,maxSatisfying:JY1,minSatisfying:e$1,minVersion:t$1,validRange:i$1,outside:a$1,gtr:r$1,ltr:n$1,intersects:o$1,simplifyRange:s$1,subset:l$1,SemVer:SY1,re:qu.re,src:qu.src,tokens:qu.t,SEMVER_SPEC_VERSION:K_.SEMVER_SPEC_VERSION,RELEASE_TYPES:K_.RELEASE_TYPES,compareIdentifiers:j_.compareIdentifiers,rcompareIdentifiers:j_.rcompareIdentifiers};const c$1={},d$1={class:"px-4 py-1 text-lg font-medium text-white uppercase transition-all rounded-md shadow-md action-button bg-slate-500 hover:bg-slate-400"};function C$1(e,t){return C1(),N1("button",d$1,[Se(e.$slots,"default")])}const V4=w5(c$1,[["render",C$1]]),m$1=["data"],J_="#747474",u$1=n2({__name:"JoystickPS",props:{model:{},b0:{},b1:{},b2:{},b3:{},b4:{},b5:{},b6:{},b7:{},b8:{},b9:{},b10:{},b11:{},b12:{},b13:{},b14:{},b15:{},b16:{},b17:{},leftAxisHoriz:{},leftAxisVert:{},rightAxisHoriz:{},rightAxisVert:{},buttonsActionsCorrespondency:{}},emits:["click"],setup(e,{emit:t}){const i=q(()=>{switch(p.value){case ut.LogitechExtreme3DPro:return"LogitechExtreme3DPro";case ut.IpegaPG9023:return"Ipega9023";default:return"PS4"}}),a={[B1.B0]:"path_b0",[B1.B1]:"path_b1",[B1.B2]:"path_b2",[B1.B3]:"path_b3",[B1.B4]:"path_b4",[B1.B5]:"path_b5",[B1.B6]:"path_b6",[B1.B7]:"path_b7",[B1.B8]:"path_b8",[B1.B9]:"path_b9",[B1.B10]:"path_b10",[B1.B11]:"path_b11",[B1.B12]:"path_b12",[B1.B13]:"path_b13",[B1.B14]:"path_b14",[B1.B15]:"path_b15",[B1.B16]:"path_b16",[B1.B17]:"path_b17"},r=q(()=>{switch(i.value){case"LogitechExtreme3DPro":return{[t5.A0]:"path_b14",[t5.A1]:"path_b14",[t5.A2]:"path_b13",[t5.A3]:"path_b12"};default:return{[t5.A0]:"path_b10",[t5.A1]:"path_b10",[t5.A2]:"path_b11",[t5.A3]:"path_b11"}}}),n=e,o=t,s=_=>{const v=[];return Object.entries(a).filter(([,S])=>S===_).forEach(S=>{v.push({type:$s.Button,id:S[0]})}),Object.entries(r.value).filter(([,S])=>S===_).forEach(S=>{v.push({type:$s.Axis,id:S[0]})}),v};let l,d;const C=i1(`joystick-${pt()}`),m=_=>_.id.includes("path_b");l=setInterval(()=>{var _;d||(d=(_=document==null?void 0:document.querySelector(`.${C.value}`))==null?void 0:_.getSVGDocument(),M(),f(),d==null||d.addEventListener("mouseover",v=>{const S=v.target;!m(S)||S.setAttribute("fill","#2699D0")}),d==null||d.addEventListener("mouseout",v=>{const S=v.target;!m(S)||(S.setAttribute("fill","transparent"),document.body.style.cursor="auto")}),d==null||d.addEventListener("mousedown",v=>{const S=v.target;!m(S)||o("click",s(S.id))}),d==null||d.addEventListener("mouseup",v=>{const S=v.target;!m(S)||S.setAttribute("fill","transparent")}))},100),xe(async()=>{clearInterval(l)}),T1(()=>[n.leftAxisHoriz,n.leftAxisVert,n.rightAxisHoriz,n.rightAxisVert],()=>{var _,v,S,y;g([t5.A0,t5.A1],[(_=n.leftAxisHoriz)!=null?_:0,(v=n.leftAxisVert)!=null?v:0]),g([t5.A2,t5.A3],[(S=n.rightAxisHoriz)!=null?S:0,(y=n.rightAxisVert)!=null?y:0])});const u=q(()=>`/images/${i.value}.svg`);T1(()=>[n.b0,n.b1,n.b2,n.b3,n.b4,n.b5,n.b6,n.b7,n.b8,n.b9,n.b10,n.b11,n.b12,n.b13,n.b14,n.b15,n.b16,n.b17],()=>M());const p=j2(n).model,V=j2(n).buttonsActionsCorrespondency;T1(V,()=>f());const f=()=>{Object.values(B1).forEach(_=>{var D;if(isNaN(Number(_)))return;const v=V.value[_]||void 0,S=v===void 0?"unassigned":v.action.name;if(!d)return;const y=a[_].replace("path","text");(d==null?void 0:d.getElementById(y))!==null&&(d.getElementById(y).textContent=S,(D=d.getElementById(y))==null||D.setAttribute("font-style",S==="unassigned"?"italic":"normal"))})},M=()=>{H(B1.B0,n.b0===void 0?!1:n.b0>.5),H(B1.B1,n.b1===void 0?!1:n.b1>.5),H(B1.B2,n.b2===void 0?!1:n.b2>.5),H(B1.B3,n.b3===void 0?!1:n.b3>.5),H(B1.B4,n.b4===void 0?!1:n.b4>.5),H(B1.B5,n.b5===void 0?!1:n.b5>.5),H(B1.B6,n.b6===void 0?!1:n.b6>.5),H(B1.B7,n.b7===void 0?!1:n.b7>.5),H(B1.B8,n.b8===void 0?!1:n.b8>.5),H(B1.B9,n.b9===void 0?!1:n.b9>.5),H(B1.B10,n.b10===void 0?!1:n.b10>.5),H(B1.B11,n.b11===void 0?!1:n.b11>.5),H(B1.B12,n.b12===void 0?!1:n.b12>.5),H(B1.B13,n.b13===void 0?!1:n.b13>.5),H(B1.B14,n.b14===void 0?!1:n.b14>.5),H(B1.B15,n.b15===void 0?!1:n.b15>.5),H(B1.B16,n.b16===void 0?!1:n.b16>.5),H(B1.B17,n.b17===void 0?!1:n.b17>.5)};function H(_,v){var S,y,D;(S=d==null?void 0:d.getElementById(a[_]))==null||S.setAttribute("fill",v?"red":"transparent"),(y=d==null?void 0:d.getElementById(a[_].replace("path","path_line")))==null||y.setAttribute("stroke",v?"red":J_),(D=d==null?void 0:d.getElementById(a[_].replace("path","text")))==null||D.setAttribute("fill",v?"red":J_)}function g(_,v){var D;let S,y;switch(p.value){case"PS5":{S=_[0]==t5.A0?_0(v[0],-1,1,-3920.9,-3882.1):_0(v[0],-1,1,-4144.8,-4106.1),y=_0(v[1],-1,1,-2192.7,-2153.9);break}case"LogitechExtreme3DPro":{S=_0(v[0],-1,1,-15,15),y=_0(v[1],-1,1,-15,15);break}default:{S=_0(v[0],-1,1,-15,15),y=_0(v[1],-1,1,-15,15);break}}(D=d==null?void 0:d.getElementById(r.value[_[0]]))==null||D.setAttribute("transform",`translate(${S} ${y})`)}return(_,v)=>(C1(),N1("object",{class:c2(C.value),type:"image/svg+xml",data:u.value},null,10,m$1))}});const h$1=k1({fullscreen:Boolean,retainFocus:{type:Boolean,default:!0},scrollable:Boolean,...PH({origin:"center center",scrollStrategy:"block",transition:{component:gH},zIndex:2400})},"VDialog"),m0=h2()({name:"VDialog",props:h$1(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:i}=t;const a=ue(e,"modelValue"),{scopeId:r}=om(),n=i1();function o(l){var m,u;const d=l.relatedTarget,C=l.target;if(d!==C&&((m=n.value)==null?void 0:m.contentEl)&&((u=n.value)==null?void 0:u.globalTop)&&![document,n.value.contentEl].includes(C)&&!n.value.contentEl.contains(C)){const p=ed(n.value.contentEl);if(!p.length)return;const V=p[0],f=p[p.length-1];d===V?f.focus():V.focus()}}ze&&T1(()=>a.value&&e.retainFocus,l=>{l?document.addEventListener("focusin",o):document.removeEventListener("focusin",o)},{immediate:!0}),T1(a,async l=>{var d,C;await k2(),l?(d=n.value.contentEl)==null||d.focus({preventScroll:!0}):(C=n.value.activatorEl)==null||C.focus({preventScroll:!0})});const s=q(()=>V2({"aria-haspopup":"dialog","aria-expanded":String(a.value)},e.activatorProps));return M2(()=>{const l=Md.filterProps(e);return P(Md,V2({ref:n,class:["v-dialog",{"v-dialog--fullscreen":e.fullscreen,"v-dialog--scrollable":e.scrollable},e.class],style:e.style},l,{modelValue:a.value,"onUpdate:modelValue":d=>a.value=d,"aria-modal":"true",activatorProps:s.value,role:"dialog"},r),{activator:i.activator,default:function(){for(var d=arguments.length,C=new Array(d),m=0;m{var u;return[(u=i.default)==null?void 0:u.call(i,...C)]}})}})}),Oo({},n)}}),p$1={key:0,class:"p-12 m-8 shadow-md rounded-2xl flex-centered flex-column position-relative"},f$1=K("p",{class:"text-2xl font-semibold"},"No joystick detected.",-1),V$1=K("br",null,null,-1),L$1=K("p",{class:"text-base text-center"},"Make sure that a joystick is connected.",-1),H$1=K("p",{class:"text-base text-center"},"You can hit any key to test the joystick connection.",-1),M$1=[f$1,V$1,L$1,H$1],g$1={key:1,class:"flex flex-col items-center"},A$1=K("div",{class:"flex flex-col items-center px-5 py-3 m-5 font-medium text-center border rounded-md text-grey-darken-1 bg-grey-lighten-5 w-fit"},[K("p",{class:"font-bold"}," This is the joystick configuration page. Here you can calibrate your joystick and map its buttons to functions in your drone. "),K("br"),K("p",null," Click the buttons in your physical controller and see them being activated here. If any button does not light up in this virtual joystick or is switched with another, click in it here and follow the instructions to remap it. "),K("br"),K("p",null," By clicking the virtual buttons and axis you are also able to choose the function in your drone that this button controls, as whel as set axis limits. ")],-1),v$1={key:0,class:"px-5 py-3 m-1 text-center border-yellow-300 bg-yellow-200/10 border-2 rounded-md max-w-[80%] text-slate-600"},_$1=K("p",{class:"font-semibold"},"System update is recommended",-1),S$1=K("br",null,null,-1),D$1=K("p",{class:"font-medium"}," It seems like you're running versions of Mavlink2Rest (BlueOS) and/or ArduPilot that do not support the extended MAVLink MANUAL_CONTROL message. We strongly suggest upgrading both so you can have support for additional buttons and axes on the joystick. This is especially important if you sometimes use other control station software, like QGroundControl, as Cockpit can preferentially use the extended buttons to reduce configuration clashes. We recommend using BlueOS \u2265 1.2.0, and \u2265 version 4.1.2 for ArduPilot-based autopilot firmware. ",-1),y$1=K("p",null,null,-1),R$1=[_$1,S$1,D$1,y$1],b$1={key:1,class:"flex flex-col items-center px-5 py-3 m-5 font-bold border rounded-md text-blue-grey-darken-1 bg-blue-lighten-5 w-fit"},N$1=K("p",null,"Could not stablish communication with the vehicle.",-1),w$1=K("p",null,"Button functions will appear as numbers. If connection is restablished, function names will appear.",-1),T$1=[N$1,w$1],E$1={key:2,class:"flex items-center px-5 py-3 m-5 font-bold border rounded-md"},P$1={class:"flex items-center px-5 py-3 m-5 font-bold border rounded-md"},I$1={class:"text-xl font-semibold text-grey-darken-3"},O$1={key:0,class:"flex flex-col items-center justify-center w-full"},U$1={class:"flex items-center justify-evenly"},x$1={class:"flex flex-col items-center max-w-[30%] mb-4"},F$1=K("span",{class:"mb-2 text-xl font-medium text-slate-500"},"Joystick mapping",-1),k$1={class:"flex flex-wrap items-center justify-evenly"},B$1=["onClick"],z$1={class:"p-2 m-1 font-medium border rounded-md cursor-pointer text-uppercase"},Z$1=["onChange"],G$1={class:"flex flex-col items-center max-w-[30%] mb-4"},W$1=K("span",{class:"mb-2 text-xl font-medium text-slate-500"},"Functions mapping",-1),X$1={class:"flex flex-wrap items-center justify-evenly"},Y$1={class:"p-2 m-1 font-medium border rounded-md cursor-pointer text-uppercase"},$$1=K("p",{class:"flex items-center justify-center w-full p-2 text-2xl font-bold text-slate-600"},"Input mapping",-1),q$1={class:"flex flex-col items-center justify-between"},K$1=K("div",{class:"w-[90%] h-[2px] my-5 bg-slate-900/20"},null,-1),j$1=K("p",{class:"flex items-center justify-center w-full text-xl font-bold text-slate-600"},"Button mapping",-1),Q$1={class:"flex flex-col items-center justify-between my-2"},J$1={key:0,class:"font-medium text-slate-400"},eq1={class:"flex flex-col items-center justify-between w-full my-2"},tq1={class:"flex w-[90%] justify-evenly"},iq1={class:"mx-auto text-xl font-bold"},aq1={class:"flex flex-col items-center px-2 py-1 overflow-y-auto"},rq1={key:0,class:"text-lg font-medium"},nq1=K("div",{class:"w-[90%] h-[2px] my-5 bg-slate-900/20"},null,-1),oq1=K("p",{class:"flex items-center justify-center w-full text-xl font-bold text-slate-600"},"Axis mapping",-1),sq1=n2({__name:"ConfigurationJoystickView",setup(e){const t=k21(),{globalAddress:i}=r5(),a=i1(),r=i1();ee(async()=>{t.enableForwarding=!1;const x=await zB1(i);a.value=Q_.gte(x,"0.11.19");const U=await ZB1(i);r.value=Q_.gte(U,"4.1.2")}),Zi(()=>{t.enableForwarding=!0}),T1(()=>t.enableForwarding,()=>t.enableForwarding=!1);const n=i1(),o=i1([]),s=i1([]),l=i1(!1),d=i1(),C=i1(!1),m=i1(""),u=i1(!1),p=i1(),V=i1(!1),f=i1(ft.regular),M=Object.values(ft),H=i1(!0);T1(V,()=>p.value=void 0);const g=(x,U)=>{n.value=x,o.value=U.filter(E=>E.type===$s.Button).map(E=>new Ik1(E.id)),s.value=U.filter(E=>E.type===$s.Axis).map(E=>new Ok1(E.id)),V.value=!0},_=async()=>{try{await t.importFunctionsMappingFromVehicle(i),O2.fire({icon:"success",text:"Joystick functions mappings imported from the vehicle."})}catch(x){O2.fire({icon:"error",text:`${x}`})}},v=async(x,U)=>{p.value=void 0;let E,O=0;const z=5e3;for(l.value=!0,d.value=0,C.value=!0;[void 0,-1].includes(E)&&OF.value===1),await new Promise(F=>setTimeout(F,100)),O+=100,d.value=100*(O/z);if(l.value=!1,setTimeout(()=>C.value=!1,5e3),![void 0,-1].includes(E)){p.value=!0,t.cockpitStdMappings[x.model].buttons[U.id]=E;return}p.value=!1},S=q(()=>t.protocolMapping.buttonsCorrespondencies[f.value.id]),y=(x,U)=>{t.protocolMapping.buttonsCorrespondencies[f.value.id][x.id].action=U,setTimeout(()=>{H.value=!1,k2(()=>H.value=!0)},1e3),m.value=`Button ${x.id} remapped to function '${U.name}'.`,u.value=!0,setTimeout(()=>u.value=!1,5e3)};T1(t.joysticks,()=>{if(n.value===void 0){if(t.joysticks.size<=0)return;n.value=t.joysticks.entries().next().value[1]}const x=Object.values(ft).map(O=>O.id),U=t.protocolMapping.buttonsCorrespondencies[p3.regular],E=Object.entries(U).filter(O=>{var z;return(z=n.value)==null?void 0:z.state.buttons[Number(O[0])]}).map(O=>O[1].action).filter(O=>O.protocol===M5.CockpitModifierKey).filter(O=>x.includes(O.id)).filter(O=>O!==ft.regular);if(!E.isEmpty()){if(f.value.id===E[0].id){R(ft.regular.id);return}R(E[0].id)}});let D=new Date().getTime();const R=x=>{!Object.keys(ft).includes(x)||new Date().getTime()-D<200||(D=new Date().getTime(),f.value=ft[x])},N=q(()=>l.value?"Click the button you want to use for this input.":p.value===void 0?"":p.value?"Input remapped.":"No input detected."),w=q(()=>t.availableButtonActions.filter(x=>JSON.stringify(x)!==JSON.stringify(ft.regular)));return(x,U)=>(C1(),N1(Y1,null,[P(kn,null,{title:v1(()=>[L2("Joystick configuration")]),content:v1(()=>[B(t).joysticks&&!B(t).joysticks.size?(C1(),N1("div",p$1,M$1)):(C1(),N1("div",g$1,[A$1,!a.value||!r.value?(C1(),N1("div",v$1,R$1)):a2("",!0),B(t).availableButtonActions.every(E=>E.protocol===B(M5).CockpitAction)?(C1(),N1("div",b$1,T$1)):a2("",!0),B(M)?(C1(),N1("div",E$1,[(C1(!0),N1(Y1,null,fe(B(t).protocolMappings,E=>(C1(),Q1(V4,{key:E.name,class:c2(["m-2",{"bg-slate-700":B(t).protocolMapping.name===E.name}]),onClick:O=>B(t).loadProtocolMapping(E)},{default:v1(()=>[L2(q1(E.name),1)]),_:2},1032,["class","onClick"]))),128))])):a2("",!0),K("div",P$1,[(C1(!0),N1(Y1,null,fe(B(M),E=>(C1(),Q1(V4,{key:E.id,class:c2(["m-2",{"bg-slate-700":f.value.id===E.id}]),onClick:O=>R(E.id)},{default:v1(()=>[L2(q1(E.name),1)]),_:2},1032,["class","onClick"]))),128))])])),(C1(!0),N1(Y1,null,fe(B(t).joysticks,([E,O])=>(C1(),N1("div",{key:E,class:"w-[95%] p-4 shadow-md rounded-2xl flex-centered flex-column position-relative"},[K("p",I$1,q1(O.model)+" controller",1),H.value?(C1(),N1("div",O$1,[P(u$1,{class:"w-[70%]",model:O.model,"left-axis-horiz":O.state.axes[0],"left-axis-vert":O.state.axes[1],"right-axis-horiz":O.state.axes[2],"right-axis-vert":O.state.axes[3],b0:O.state.buttons[0],b1:O.state.buttons[1],b2:O.state.buttons[2],b3:O.state.buttons[3],b4:O.state.buttons[4],b5:O.state.buttons[5],b6:O.state.buttons[6],b7:O.state.buttons[7],b8:O.state.buttons[8],b9:O.state.buttons[9],b10:O.state.buttons[10],b11:O.state.buttons[11],b12:O.state.buttons[12],b13:O.state.buttons[13],b14:O.state.buttons[14],b15:O.state.buttons[15],b16:O.state.buttons[16],b17:O.state.buttons[17],"buttons-actions-correspondency":S.value,onClick:z=>g(O,z)},null,8,["model","left-axis-horiz","left-axis-vert","right-axis-horiz","right-axis-vert","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","b16","b17","buttons-actions-correspondency","onClick"])])):a2("",!0),K("div",U$1,[K("div",x$1,[F$1,K("div",k$1,[K("button",{class:"p-2 m-1 font-medium border rounded-md text-uppercase",onClick:z=>B(t).exportJoystickMapping(O)}," Export to computer ",8,B$1),K("label",z$1,[K("input",{type:"file",accept:"application/json",hidden:"",onChange:z=>B(t).importJoystickMapping(O,z)},null,40,Z$1),L2(" Import from computer ")]),K("button",{class:"p-2 m-1 font-medium border rounded-md text-uppercase",onClick:U[0]||(U[0]=z=>B(t).exportJoysticksMappingsToVehicle(B(i),B(t).cockpitStdMappings))}," Export to vehicle "),K("button",{class:"p-2 m-1 font-medium border rounded-md text-uppercase",onClick:U[1]||(U[1]=z=>B(t).importJoysticksMappingsFromVehicle(B(i)))}," Import from vehicle ")])]),K("div",G$1,[W$1,K("div",X$1,[K("button",{class:"p-2 m-1 font-medium border rounded-md text-uppercase",onClick:U[2]||(U[2]=z=>B(t).exportFunctionsMapping(B(t).protocolMapping))}," Export to computer "),K("label",Y$1,[K("input",{type:"file",accept:"application/json",hidden:"",onChange:U[3]||(U[3]=z=>B(t).importFunctionsMapping(z))},null,32),L2(" Import from computer ")]),K("button",{class:"p-2 m-1 font-medium border rounded-md text-uppercase",onClick:U[4]||(U[4]=z=>B(t).exportFunctionsMappingToVehicle(B(i),B(t).protocolMappings))}," Export to vehicle "),K("button",{class:"p-2 m-1 font-medium border rounded-md text-uppercase",onClick:_}," Import from vehicle ")])])]),P(At,{modelValue:B(t).holdLastInputWhenWindowHidden,"onUpdate:modelValue":U[5]||(U[5]=z=>B(t).holdLastInputWhenWindowHidden=z),label:"Hold last joystick input when window is hidden (tab changed or window minimized)",class:"m-2 text-slate-800"},null,8,["modelValue"])]))),128))]),_:1}),(C1(),Q1(La,{to:"body"},[n.value?(C1(),Q1(m0,{key:0,modelValue:V.value,"onUpdate:modelValue":U[7]||(U[7]=E=>V.value=E),class:"w-[80%] max-h-[90%]"},{default:v1(()=>[P(st,{class:"p-6"},{default:v1(()=>[$$1,K("div",q$1,[K$1,j$1,(C1(!0),N1(Y1,null,fe(o.value,E=>(C1(),N1("div",{key:E.id,class:"flex flex-col justify-between w-full p-3 align-center"},[K("div",Q$1,[P(re,{class:"mx-auto my-1 w-fit",disabled:l.value,onClick:O=>v(n.value,E)},{default:v1(()=>[L2(q1(l.value?"Remapping":"Click to remap"),1)]),_:2},1032,["disabled","onClick"]),P(q5,null,{default:v1(()=>[C.value?(C1(),N1("p",J$1,q1(N.value),1)):a2("",!0)]),_:1}),P(q5,null,{default:v1(()=>[l.value?(C1(),Q1(tm,{key:0,modelValue:d.value,"onUpdate:modelValue":U[6]||(U[6]=O=>d.value=O)},null,8,["modelValue"])):a2("",!0)]),_:1})]),K("div",eq1,[K("div",tq1,[(C1(!0),N1(Y1,null,fe(B(M5),O=>(C1(),N1("div",{key:O,class:"flex flex-col items-center h-40 mx-4"},[K("span",iq1,q1(O),1),K("div",aq1,[(C1(!0),N1(Y1,null,fe(w.value.filter(z=>z.protocol===O),z=>(C1(),Q1(V4,{key:z.name,class:c2(["w-full my-1 text-sm hover:bg-slate-700",{"bg-slate-700":S.value[E.id].action.protocol==z.protocol&&S.value[E.id].action.id==z.id}]),onClick:F=>y(E,z)},{default:v1(()=>[L2(q1(z.name),1)]),_:2},1032,["class","onClick"]))),128))])]))),128))])])]))),128)),P(q5,null,{default:v1(()=>[u.value?(C1(),N1("p",rq1,q1(m.value),1)):a2("",!0)]),_:1}),s.value.length>0?(C1(),N1(Y1,{key:0},[nq1,oq1],64)):a2("",!0),(C1(!0),N1(Y1,null,fe(s.value,E=>(C1(),N1("div",{key:E.id,class:"flex items-center justify-between p-2"},[P(Ze,{class:"mr-3"},{default:v1(()=>[L2(q1([B(t5).A0,B(t5).A2].includes(Number(E.id))?"mdi-pan-horizontal":"mdi-pan-vertical"),1)]),_:2},1024),P(kt,{modelValue:B(t).protocolMapping.axesCorrespondencies[E.id].min,"onUpdate:modelValue":O=>B(t).protocolMapping.axesCorrespondencies[E.id].min=O,modelModifiers:{number:!0},class:"w-24",label:"Min",type:"number",density:"compact",variant:"solo","hide-details":""},null,8,["modelValue","onUpdate:modelValue"]),P(e8,{modelValue:B(t).protocolMapping.axesCorrespondencies[E.id].action,"onUpdate:modelValue":O=>B(t).protocolMapping.axesCorrespondencies[E.id].action=O,items:B(t).availableAxesActions,"item-title":"name","hide-details":"",density:"compact",variant:"solo",class:"w-40 mx-2","return-object":""},null,8,["modelValue","onUpdate:modelValue","items"]),P(kt,{modelValue:B(t).protocolMapping.axesCorrespondencies[E.id].max,"onUpdate:modelValue":O=>B(t).protocolMapping.axesCorrespondencies[E.id].max=O,modelModifiers:{number:!0},class:"w-24",label:"Max",type:"number",density:"compact",variant:"solo","hide-details":""},null,8,["modelValue","onUpdate:modelValue"])]))),128))])]),_:1})]),_:1},8,["modelValue"])):a2("",!0)]))],64))}});var St=(e=>(e.roll="Roll",e.pitch="Pitch",e.heading="Heading",e.depth="Depth",e.mode="Mode",e.batteryVoltage="Battery voltage",e.batteryCurrent="Battery current",e.gpsVisibleSatellites="GPS satellites",e.gpsFixType="GPS status",e.latitude="Latitude",e.longitude="Longitude",e))(St||{});class lq1{constructor(){S1(this,"currentLoggerInterval");S1(this,"currentCockpitLog",[]);S1(this,"variablesBeingUsed",[]);S1(this,"selectedVariablesToShow",R5("cockpit-datalogger-overlay-variables",[]))}startLogging(t=1e3){if(this.logging()){O2.fire({title:"Error",text:"A log is already being generated.",icon:"error",timer:3e3});return}const i=r5(),a=H4.createInstance({driver:H4.INDEXEDDB,name:"Cockpit - Sensor Logs",storeName:"cockpit-sensor-logs-db",version:1,description:"Local backups of Cockpit sensor logs, to be retrieved in case of failure."}),r=new Date,n=`Cockpit (${hn(r,"LLL dd, yyyy - HH\uA789mm\uA789ss O")}).clog`;this.currentCockpitLog=[],this.currentLoggerInterval=setInterval(async()=>{var C,m,u,p,V,f,M,H,g;const o=new Date,s=Ds(o,r),l={lastChanged:o.getTime()},d={Roll:{value:`${(C=nt(i.attitude.roll))==null?void 0:C.toFixed(1)} \xB0`,...l},Pitch:{value:`${(m=nt(i.attitude.pitch))==null?void 0:m.toFixed(1)} \xB0`,...l},Heading:{value:`${(u=nt(i.attitude.yaw))==null?void 0:u.toFixed(1)} \xB0`,...l},Depth:{value:`${(p=i.altitude.msl)==null?void 0:p.toPrecision(4)} m`,...l},Mode:{value:i.mode||"Unknown",...l},["Battery voltage"]:{value:`${(V=i.powerSupply.voltage)==null?void 0:V.toFixed(2)} V`||"Unknown",...l},["Battery current"]:{value:`${(f=i.powerSupply.current)==null?void 0:f.toFixed(2)} A`||"Unknown",...l},["GPS satellites"]:{value:((M=i.statusGPS.visibleSatellites)==null?void 0:M.toFixed(0))||"Unknown",...l},["GPS status"]:{value:i.statusGPS.fixType,...l},Latitude:{value:`${(H=i.coordinates.latitude)==null?void 0:H.toFixed(6)} \xB0`||"Unknown",...l},Longitude:{value:`${(g=i.coordinates.longitude)==null?void 0:g.toFixed(6)} \xB0`||"Unknown",...l}};this.currentCockpitLog.push({epoch:o.getTime(),seconds:s,data:structuredClone(d)}),await a.setItem(n,this.currentCockpitLog)},t)}stopLogging(){if(!this.logging()){O2.fire({title:"Error",text:"No log is being generated.",icon:"error",timer:3e3});return}clearInterval(this.currentLoggerInterval)}logging(){return this.currentLoggerInterval!==void 0}registerUsage(t){this.variablesBeingUsed.includes(t)||this.variablesBeingUsed.push(t)}getSlice(t,i,a){return t.filter(r=>r.epoch>i.getTime()&&r.epoch({...r,seconds:Ds(new Date(r.epoch),i)}))}toAssOverlay(t,i,a,r){let n=`[Script Info] Title: Cockpit Subtitle Telemetry file ScriptType: v4.00+ WrapStyle: 0 @@ -874,12 +874,12 @@ Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text` Dialogue: 0,0:0:${u}.00,0:0:${p}.00,Default,,${.1*i},0,${.05*a},,${V}`),n=n.concat(` Dialogue: 0,0:0:${u}.00,0:0:${p}.00,Default,,${.4*i},0,${.05*a},,${f}`),n=n.concat(` Dialogue: 0,0:0:${u}.00,0:0:${p}.00,Default,,${.7*i},0,${.05*a},,${M}`)}),n=n.concat(` -`),n}}const A5=new sq1,lq1=K("h1",{class:"text-lg font-bold text-slate-600"},"Variables to be show in the overlay subtitles log:",-1),cq1={class:"flex w-[60%] flex-wrap"},dq1=n2({__name:"ConfigurationLogsView",setup(e){return(t,i)=>(C1(),Q1(kn,null,{title:v1(()=>[L2("Logs configuration")]),content:v1(()=>[lq1,K("div",cq1,[(C1(!0),N1(Y1,null,fe(B(St),a=>(C1(),Q1(A4,{key:a,modelValue:B(A5).selectedVariablesToShow.value,"onUpdate:modelValue":i[0]||(i[0]=r=>B(A5).selectedVariablesToShow.value=r),label:a,value:a},null,8,["modelValue","label","value"]))),128))])]),_:1}))}}),Cq1={class:"flex w-[60%] flex-wrap"},mq1=n2({__name:"ConfigurationMissionView",setup(e){const t=To();return(i,a)=>(C1(),Q1(kn,null,{title:v1(()=>[L2("Mission configuration")]),content:v1(()=>[P(At,{modelValue:B(t).slideEventsEnabled,"onUpdate:modelValue":a[0]||(a[0]=r=>B(t).slideEventsEnabled=r),label:"Enable slide to confirm",class:"m-2 text-slate-800",color:"rgb(0, 20, 80)"},null,8,["modelValue"]),K("div",Cq1,[(C1(!0),N1(Y1,null,fe(B(sa),r=>(C1(),Q1(A4,{key:r,modelValue:B(t).slideEventsCategoriesRequired[r],"onUpdate:modelValue":n=>B(t).slideEventsCategoriesRequired[r]=n,disabled:!B(t).slideEventsEnabled,label:r},null,8,["modelValue","onUpdate:modelValue","disabled","label"]))),128))])]),_:1}))}});$2({});function uq1(){for(var e=0,t,i,a="";ee&&(t=0,a=i,i=new Map)}return{get:function(n){var o=i.get(n);if(o!==void 0)return o;if((o=a.get(n))!==void 0)return r(n,o),o},set:function(n,o){i.has(n)?i.set(n,o):r(n,o)}}}var V51="!";function Mq1(e){var t=e.separator||":",i=t.length===1,a=t[0],r=t.length;return function(n){for(var o=[],s=0,l=0,d,C=0;Cl?d-l:void 0;return{modifiers:o,hasImportantModifier:p,baseClassName:V,maybePostfixModifierPosition:f}}}function gq1(e){if(e.length<=1)return e;var t=[],i=[];return e.forEach(function(a){var r=a[0]==="[";r?(t.push.apply(t,i.sort().concat([a])),i=[]):i.push(a)}),t.push.apply(t,i.sort()),t}function Aq1(e){return{cache:Hq1(e.cacheSize),splitModifiers:Mq1(e),...hq1(e)}}var vq1=/\s+/;function _q1(e,t){var i=t.splitModifiers,a=t.getClassGroupId,r=t.getConflictingClassGroupIds,n=new Set;return e.trim().split(vq1).map(function(o){var s=i(o),l=s.modifiers,d=s.hasImportantModifier,C=s.baseClassName,m=s.maybePostfixModifierPosition,u=a(m?C.substring(0,m):C),p=!!m;if(!u){if(!m)return{isTailwindClass:!1,originalClassName:o};if(u=a(C),!u)return{isTailwindClass:!1,originalClassName:o};p=!1}var V=gq1(l).join(":"),f=d?V+V51:V;return{isTailwindClass:!0,modifierId:f,classGroupId:u,originalClassName:o,hasPostfixModifier:p}}).reverse().filter(function(o){if(!o.isTailwindClass)return!0;var s=o.modifierId,l=o.classGroupId,d=o.hasPostfixModifier,C=s+l;return n.has(C)?!1:(n.add(C),r(l,d).forEach(function(m){return n.add(s+m)}),!0)}).reverse().map(function(o){return o.originalClassName}).join(" ")}function Sq1(){for(var e=arguments.length,t=new Array(e),i=0;i{const i=e.__vccOpts||e;for(const[a,r]of t)i[a]=r;return i};function kq1(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var g51={exports:{}};/*! +`),n}}const A5=new lq1,cq1=K("h1",{class:"text-lg font-bold text-slate-600"},"Variables to be show in the overlay subtitles log:",-1),dq1={class:"flex w-[60%] flex-wrap"},Cq1=n2({__name:"ConfigurationLogsView",setup(e){return(t,i)=>(C1(),Q1(kn,null,{title:v1(()=>[L2("Logs configuration")]),content:v1(()=>[cq1,K("div",dq1,[(C1(!0),N1(Y1,null,fe(B(St),a=>(C1(),Q1(A4,{key:a,modelValue:B(A5).selectedVariablesToShow.value,"onUpdate:modelValue":i[0]||(i[0]=r=>B(A5).selectedVariablesToShow.value=r),label:a,value:a},null,8,["modelValue","label","value"]))),128))])]),_:1}))}}),mq1={class:"flex w-[60%] flex-wrap"},uq1=n2({__name:"ConfigurationMissionView",setup(e){const t=To();return(i,a)=>(C1(),Q1(kn,null,{title:v1(()=>[L2("Mission configuration")]),content:v1(()=>[P(At,{modelValue:B(t).slideEventsEnabled,"onUpdate:modelValue":a[0]||(a[0]=r=>B(t).slideEventsEnabled=r),label:"Enable slide to confirm",class:"m-2 text-slate-800",color:"rgb(0, 20, 80)"},null,8,["modelValue"]),K("div",mq1,[(C1(!0),N1(Y1,null,fe(B(sa),r=>(C1(),Q1(A4,{key:r,modelValue:B(t).slideEventsCategoriesRequired[r],"onUpdate:modelValue":n=>B(t).slideEventsCategoriesRequired[r]=n,disabled:!B(t).slideEventsEnabled,label:r},null,8,["modelValue","onUpdate:modelValue","disabled","label"]))),128))])]),_:1}))}});$2({});function hq1(){for(var e=0,t,i,a="";ee&&(t=0,a=i,i=new Map)}return{get:function(n){var o=i.get(n);if(o!==void 0)return o;if((o=a.get(n))!==void 0)return r(n,o),o},set:function(n,o){i.has(n)?i.set(n,o):r(n,o)}}}var V51="!";function gq1(e){var t=e.separator||":",i=t.length===1,a=t[0],r=t.length;return function(n){for(var o=[],s=0,l=0,d,C=0;Cl?d-l:void 0;return{modifiers:o,hasImportantModifier:p,baseClassName:V,maybePostfixModifierPosition:f}}}function Aq1(e){if(e.length<=1)return e;var t=[],i=[];return e.forEach(function(a){var r=a[0]==="[";r?(t.push.apply(t,i.sort().concat([a])),i=[]):i.push(a)}),t.push.apply(t,i.sort()),t}function vq1(e){return{cache:Mq1(e.cacheSize),splitModifiers:gq1(e),...pq1(e)}}var _q1=/\s+/;function Sq1(e,t){var i=t.splitModifiers,a=t.getClassGroupId,r=t.getConflictingClassGroupIds,n=new Set;return e.trim().split(_q1).map(function(o){var s=i(o),l=s.modifiers,d=s.hasImportantModifier,C=s.baseClassName,m=s.maybePostfixModifierPosition,u=a(m?C.substring(0,m):C),p=!!m;if(!u){if(!m)return{isTailwindClass:!1,originalClassName:o};if(u=a(C),!u)return{isTailwindClass:!1,originalClassName:o};p=!1}var V=Aq1(l).join(":"),f=d?V+V51:V;return{isTailwindClass:!0,modifierId:f,classGroupId:u,originalClassName:o,hasPostfixModifier:p}}).reverse().filter(function(o){if(!o.isTailwindClass)return!0;var s=o.modifierId,l=o.classGroupId,d=o.hasPostfixModifier,C=s+l;return n.has(C)?!1:(n.add(C),r(l,d).forEach(function(m){return n.add(s+m)}),!0)}).reverse().map(function(o){return o.originalClassName}).join(" ")}function Dq1(){for(var e=arguments.length,t=new Array(e),i=0;i{const i=e.__vccOpts||e;for(const[a,r]of t)i[a]=r;return i};function Bq1(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var g51={exports:{}};/*! Copyright (c) 2018 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames -*/(function(e){(function(){var t={}.hasOwnProperty;function i(){for(var a=[],r=0;r{r.value=!1,n=null,e(...d)},zq1(t))}return a&&(r.value=!0,A51&&l()),Gq1(s),{isPending:r,start:l,stop:s}}const nS=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},oS="__vueuse_ssr_handlers__";nS[oS]=nS[oS]||{};var sS;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(sS||(sS={}));var Xq1=Object.defineProperty,lS=Object.getOwnPropertySymbols,Yq1=Object.prototype.hasOwnProperty,$q1=Object.prototype.propertyIsEnumerable,cS=(e,t,i)=>t in e?Xq1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,qq1=(e,t)=>{for(var i in t||(t={}))Yq1.call(t,i)&&cS(e,i,t[i]);if(lS)for(var i of lS(t))$q1.call(t,i)&&cS(e,i,t[i]);return e};const Kq1={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};qq1({linear:Zq1},Kq1);var jq1=typeof global=="object"&&global&&global.Object===Object&&global;const Qq1=jq1;var Jq1=typeof self=="object"&&self&&self.Object===Object&&self,eK1=Qq1||Jq1||Function("return this")();const qH=eK1;var tK1=qH.Symbol;const q4=tK1;var v51=Object.prototype,iK1=v51.hasOwnProperty,aK1=v51.toString,_7=q4?q4.toStringTag:void 0;function rK1(e){var t=iK1.call(e,_7),i=e[_7];try{e[_7]=void 0;var a=!0}catch{}var r=aK1.call(e);return a&&(t?e[_7]=i:delete e[_7]),r}var nK1=Object.prototype,oK1=nK1.toString;function sK1(e){return oK1.call(e)}var lK1="[object Null]",cK1="[object Undefined]",dS=q4?q4.toStringTag:void 0;function KH(e){return e==null?e===void 0?cK1:lK1:dS&&dS in Object(e)?rK1(e):sK1(e)}function jH(e){return e!=null&&typeof e=="object"}var dK1="[object Symbol]";function QH(e){return typeof e=="symbol"||jH(e)&&KH(e)==dK1}function CK1(e,t){for(var i=-1,a=e==null?0:e.length,r=Array(a);++i0){if(++t>=IK1)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function FK1(e){return function(){return e}}var kK1=function(){try{var e=JH(Object,"defineProperty");return e({},"",{}),e}catch{}}();const vd=kK1;var BK1=vd?function(e,t){return vd(e,"toString",{configurable:!0,enumerable:!1,value:FK1(t),writable:!0})}:hK1;const zK1=BK1;var ZK1=xK1(zK1);const GK1=ZK1;var WK1=9007199254740991,XK1=/^(?:0|[1-9]\d*)$/;function S51(e,t){var i=typeof e;return t=t!=null?t:WK1,!!t&&(i=="number"||i!="symbol"&&XK1.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=QK1}var ej1="[object Arguments]";function pS(e){return jH(e)&&KH(e)==ej1}var y51=Object.prototype,tj1=y51.hasOwnProperty,ij1=y51.propertyIsEnumerable,aj1=pS(function(){return arguments}())?pS:function(e){return jH(e)&&tj1.call(e,"callee")&&!ij1.call(e,"callee")};const R51=aj1;var rj1=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nj1=/^\w*$/;function oj1(e,t){if(G8(e))return!1;var i=typeof e;return i=="number"||i=="symbol"||i=="boolean"||e==null||QH(e)?!0:nj1.test(e)||!rj1.test(e)||t!=null&&e in Object(t)}var sj1=JH(Object,"create");const t8=sj1;function lj1(){this.__data__=t8?t8(null):{},this.size=0}function cj1(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var dj1="__lodash_hash_undefined__",Cj1=Object.prototype,mj1=Cj1.hasOwnProperty;function uj1(e){var t=this.__data__;if(t8){var i=t[e];return i===dj1?void 0:i}return mj1.call(t,e)?t[e]:void 0}var hj1=Object.prototype,pj1=hj1.hasOwnProperty;function fj1(e){var t=this.__data__;return t8?t[e]!==void 0:pj1.call(t,e)}var Vj1="__lodash_hash_undefined__";function Lj1(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=t8&&t===void 0?Vj1:t,this}function bn(e){var t=-1,i=e==null?0:e.length;for(this.clear();++t-1}function Sj1(e,t){var i=this.__data__,a=hm(i,e);return a<0?(++this.size,i.push([e,t])):i[a][1]=t,this}function Fo(e){var t=-1,i=e==null?0:e.length;for(this.clear();++t0&&i(s)?t>1?b51(s,t-1,i,a,r):Gj1(r,s):a||(r[r.length]=s)}return r}function Xj1(e){var t=e==null?0:e.length;return t?b51(e,1):[]}function Yj1(e){return GK1(jK1(e,void 0,Xj1),e+"")}function $j1(e,t){return e!=null&&t in Object(e)}function qj1(e,t,i){t=fm(t,e);for(var a=-1,r=t.length,n=!1;++a{if(a!==null){if(typeof a!="object"){(typeof a=="string"||typeof a=="number")&&i.push(L2(String(a)));return}if(Array.isArray(a)){sf(a,t,i);return}if(a.type===Y1){if(a.children===null)return;Array.isArray(a.children)&&sf(a.children,t,i)}else a.type!==$5&&i.push(a)}}),i}function iQ1(e,t="default",i=void 0){const a=e[t];if(!a)return console.warn("getFirstSlotVNode",`slot[${t}] is empty`),null;const r=sf(a(i));return r.length===1?r[0]:(console.warn("getFirstSlotVNode",`slot[${t}] should have exactly one child`),null)}const aQ1={focus:["onFocus","onBlur"],click:["onClick"],hover:["onMouseenter","onMouseleave"]};function rQ1(e,t){Object.entries(aQ1).forEach(([,i])=>{i.forEach(a=>{e.props?e.props=Object.assign({},e.props):e.props={};const r=e.props[a],n=t[a];r?e.props[a]=(...o)=>{r(...o),n(...o)}:e.props[a]=n})})}n2({name:"SlotListener",props:{trigger:{type:String,default:"click"}},emits:["click","focus","blur","mouseenter","mouseleave"],setup(e,{emit:t}){return{handleClick:i=>{t("click",i)},handleBlur:i=>{t("blur",i)},handleFocus:i=>{t("focus",i)},handleMouseLeave:i=>{t("mouseleave",i)},handleMouseEnter:i=>{t("mouseenter",i)}}},render(){const{$slots:e}=this,t={onClick:this.handleClick,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onFocus:this.handleFocus,onBlur:this.handleBlur},i=iQ1(e,"default"),a=[t];return i!=null&&i.props&&a.push(tQ1(i.props,"onClick","onMouseenter","onMouseleave","onFocus","onBlur")),i&&rQ1(i,{onBlur:r=>{a.forEach(n=>{var o;(o=n==null?void 0:n.onBlur)==null||o.call(n,r)})},onFocus:r=>{a.forEach(n=>{var o;(o=n==null?void 0:n.onFocus)==null||o.call(n,r)})},onClick:r=>{a.forEach(n=>{var o;(o=n==null?void 0:n.onClick)==null||o.call(n,r)})},onMouseenter:r=>{a.forEach(n=>{var o;(o=n==null?void 0:n.onMouseenter)==null||o.call(n,r)})},onMouseleave:r=>{a.forEach(n=>{var o;(o=n==null?void 0:n.onMouseleave)==null||o.call(n,r)})}}),i}});new Date().getFullYear();const nQ1={border:e=>e.substring(0,e.lastIndexOf("-"))},oQ1=(e,t=nQ1)=>{const i=Object.keys(t).find(a=>e.includes(a));return i?t[i](e):e.substring(0,e.indexOf("-"))};function ac(...e){return e.filter(t=>t).reduce((t,i)=>{const a=Array.isArray(i)?Array.from(i).map(d=>d.split(" ")).flat():i.split(" "),r=a.map(d=>oQ1(d)),n=r.filter(d=>!t.types.includes(d)),o=[...r.filter(d=>t.types.includes(d)),...n],s=[...new Set([...t.types,...o])],l=s.map(d=>{if(o.includes(d)){const m=r.indexOf(d);if(m>=0)return a[m]||""}const C=t.types.indexOf(d);return C>=0&&t.classes[C]||""}).filter(d=>!!d);return{types:s,classes:l}},{types:[],classes:[]}).classes.join(" ")}const sQ1={class:"relative overflow-x-auto shadow-md sm:rounded-lg"},lQ1={class:"w-full text-sm text-left text-gray-500 dark:text-gray-400"},cQ1=n2({__name:"FwbTable",props:{striped:{type:Boolean,default:!1},stripedColumns:{type:Boolean,default:!1},hoverable:{type:Boolean,default:!1}},setup(e){const t=e;return X2("hoverable",t.hoverable),X2("striped",t.striped),X2("stripedColumns",t.stripedColumns),(i,a)=>(C1(),N1("div",sQ1,[K("table",lQ1,[Se(i.$slots,"default")])]))}}),dQ1={};function CQ1(e,t){return C1(),N1("tbody",null,[Se(e.$slots,"default")])}const mQ1=M51(dQ1,[["render",CQ1]]),uQ1="px-6 py-4 first:font-medium first:text-gray-900 first:dark:text-white first:whitespace-nowrap last:text-right",hQ1="even:bg-gray-white even:dark:bg-gray-900 odd:dark:bg-gray-800 odd:bg-gray-50";function pQ1(){const e=H2("stripedColumns");return{tableCellClasses:q(()=>$H(uQ1,{[hQ1]:e}))}}const S7=n2({__name:"FwbTableCell",setup(e){const{tableCellClasses:t}=pQ1();return(i,a)=>(C1(),N1("td",{class:c2(B(t))},[Se(i.$slots,"default")],2))}}),fQ1={},VQ1={class:"text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"};function LQ1(e,t){return C1(),N1("thead",VQ1,[K("tr",null,[Se(e.$slots,"default")])])}const HQ1=M51(fQ1,[["render",LQ1]]),MQ1="px-6 py-3 text-xs uppercase",gQ1="even:bg-white even:dark:bg-gray-900 odd:dark:bg-gray-800 odd:bg-gray-50";function AQ1(){const e=H2("stripedColumns");return{tableHeadCellClasses:q(()=>$H(MQ1,{[gQ1]:e}))}}const D7=n2({__name:"FwbTableHeadCell",setup(e){const{tableHeadCellClasses:t}=AQ1();return(i,a)=>(C1(),N1("th",{scope:"col",class:c2(B(t))},[Se(i.$slots,"default")],2))}}),vQ1="bg-white dark:bg-gray-800 [&:not(:last-child)]:border-b [&:not(:last-child)]:dark:border-gray-700",_Q1="odd:bg-white even:bg-gray-50 odd:dark:bg-gray-800 even:dark:bg-gray-700",SQ1="hover:bg-gray-50 dark:hover:bg-gray-600";function DQ1(){const e=H2("striped"),t=H2("hoverable");return{tableRowClasses:q(()=>$H(vQ1,{[SQ1]:t,[_Q1]:e}))}}const yQ1=n2({__name:"FwbTableRow",setup(e){const{tableRowClasses:t}=DQ1();return(i,a)=>(C1(),N1("tr",{class:c2(B(t))},[Se(i.$slots,"default")],2))}}),RQ1="flowbite-themable-injection-key",g6={blue:{background:"bg-blue-700 dark:bg-blue-600",disabled:"",hover:"hover:bg-blue-800 dark:hover:bg-blue-700",text:"text-blue-600 dark:text-blue-500",border:"border-blue-600 dark:border-blue-500",focus:"focus:ring-blue-300 dark:focus:ring-blue-800"},green:{background:"bg-green-700 dark:bg-green-600",disabled:"",hover:"hover:bg-green-800 dark:hover:bg-green-700",text:"text-green-600 dark:text-green-500",border:"border-green-600 dark:border-green-500",focus:"focus:ring-green-300 dark:focus:ring-green-800"},pink:{background:"bg-pink-700 dark:bg-pink-600",disabled:"",hover:"hover:bg-pink-800 dark:hover:bg-pink-700",text:"text-pink-600 dark:text-pink-500",border:"border-pink-600 dark:border-pink-500",focus:"focus:ring-pink-300 dark:focus:ring-pink-900"},purple:{background:"bg-purple-700 dark:bg-purple-600",disabled:"",hover:"hover:bg-purple-800 dark:hover:bg-purple-700",text:"text-purple-600 dark:text-purple-500",border:"border-purple-600 dark:border-purple-500",focus:"focus:ring-purple-300 dark:focus:ring-purple-900"},red:{background:"bg-red-700 dark:bg-red-600",disabled:"",hover:"hover:bg-red-800 dark:hover:bg-red-700",text:"text-red-600 dark:text-red-500",border:"border-red-600 dark:border-red-500",focus:"focus:ring-red-300 dark:focus:ring-red-900"}};function bQ1(e){const t=H2(RQ1,i1(null)),i=q(()=>e||t.value),a=q(()=>!!(t!=null&&t.value)),r=q(()=>i.value?g6[i.value].background:""),n=q(()=>i.value?g6[i.value].border:""),o=q(()=>(t==null?void 0:t.value)||void 0),s=q(()=>i.value?g6[i.value].disabled:""),l=q(()=>i.value?g6[i.value].focus:""),d=q(()=>i.value?g6[i.value].hover:""),C=q(()=>i.value?g6[i.value].text:"");return{backgroundClasses:r,borderClasses:n,color:o,disabledClasses:s,focusClasses:l,hoverClasses:d,isActive:a,textClasses:C}}const NQ1={danger:"text-red-500 bg-red-100 dark:bg-red-800 dark:text-red-200",empty:"",success:"text-green-500 bg-green-100 dark:bg-green-800 dark:text-green-200",warning:"text-orange-500 bg-orange-100 dark:bg-orange-700 dark:text-orange-200"},wQ1={center:"items-center",end:"items-end",start:"items-start"},VS="flex w-full max-w-xs p-4 text-gray-500 bg-white rounded-lg shadow dark:text-gray-400 dark:bg-gray-800",LS="text-sm font-normal";function TQ1(e){const t=q(()=>NQ1[e.type.value]),i=q(()=>{const r=wQ1[e.alignment.value];return e.divide.value?ac(VS,"dark:divide-gray-700 divide-x divide-gray-200",r):ac(VS,r)}),a=q(()=>e.type.value!=="empty"&&e.divide.value?ac(LS,"pl-3"):LS);return{typeClasses:t,wrapperClasses:i,contentClasses:a}}function EQ1(e){var l;const{backgroundClasses:t,borderClasses:i,disabledClasses:a,focusClasses:r,hoverClasses:n,isActive:o,textClasses:s}=bQ1((l=e.theme)==null?void 0:l.value);return{classes:q(()=>{if(!o.value)return"";const d=[];return e.apply.value.includes("text")&&d.push(s.value),e.apply.value.includes("border")&&d.push(i.value),e.apply.value.includes("background")&&d.push(t.value),e.apply.value.includes("hover")&&d.push(n.value),e.apply.value.includes("disabled")&&d.push(a.value),e.apply.value.includes("focus")&&d.push(r.value),d.join(" ")})}}const PQ1=n2({__name:"FlowbiteThemableChild",props:{apply:{type:Array,required:!0},tag:{type:String,default:"div"},theme:{type:String,default:void 0}},setup(e){const t=e,i=dC(),{classes:a}=EQ1(j2(t)),r=q(()=>i.class||"");return(n,o)=>(C1(),Q1(fn(e.tag),{class:c2(B(ac)(r.value,B(a)))},{default:v1(()=>[Se(n.$slots,"default")]),_:3},8,["class"]))}}),IQ1={key:1,"aria-hidden":"true",class:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},OQ1=K("path",{"clip-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","fill-rule":"evenodd"},null,-1),UQ1=[OQ1],xQ1={key:2,"aria-hidden":"true",class:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},FQ1=K("path",{"clip-rule":"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z","fill-rule":"evenodd"},null,-1),kQ1=[FQ1],BQ1={key:3,"aria-hidden":"true",class:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},zQ1=K("path",{"clip-rule":"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z","fill-rule":"evenodd"},null,-1),ZQ1=[zQ1],GQ1=K("span",{class:"sr-only"},"Close",-1),WQ1=K("svg",{class:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},[K("path",{"clip-rule":"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z","fill-rule":"evenodd"})],-1),XQ1=[GQ1,WQ1],HS=n2({__name:"FwbToast",props:{type:{type:String,default:"empty"},alignment:{type:String,default:"center"},closable:{type:Boolean,default:!1},divide:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){const i=e,a=i1(!0),{typeClasses:r,wrapperClasses:n,contentClasses:o}=TQ1(j2(i)),s=()=>{t("close"),a.value=!1};return(l,d)=>a.value?(C1(),N1("div",{key:0,id:"toast-default",class:c2(B(n)),role:"alert"},[e.type!=="empty"||l.$slots.icon?(C1(),Q1(PQ1,{key:0,apply:["background","text"],class:c2(["inline-flex flex-shrink-0 justify-center items-center w-8 h-8 rounded-lg",B(r)])},{default:v1(()=>[l.$slots.icon?Se(l.$slots,"icon",{key:0,class:c2({"ml-3":e.type!=="empty"})}):e.type==="success"?(C1(),N1("svg",IQ1,UQ1)):e.type==="danger"?(C1(),N1("svg",xQ1,kQ1)):e.type==="warning"?(C1(),N1("svg",BQ1,ZQ1)):a2("",!0)]),_:3},8,["class"])):a2("",!0),K("div",{class:c2([B(o),{"ml-3":l.$slots.icon||e.type!=="empty"}])},[Se(l.$slots,"default")],2),e.closable?(C1(),N1("button",{key:1,"aria-label":"Close",class:"border-none ml-auto -mx-1.5 -my-1.5 bg-white text-gray-400 hover:text-gray-900 rounded-lg focus:ring-2 focus:ring-gray-300 p-1.5 hover:bg-gray-100 inline-flex h-8 w-8 dark:text-gray-500 dark:hover:text-white dark:bg-gray-800 dark:hover:bg-gray-700",type:"button",onClick:s},XQ1)):a2("",!0)],2)):a2("",!0)}}),YQ1="flowbite-toast-injection-key";n2({components:{FwbToast:HS},props:{transition:{type:String,default:"slide-left"}},setup(){const e=i1([]),t=(n,o)=>{Wq1(()=>r(n),o)},i=n=>{const o=parseInt((new Date().getTime()*Math.random()).toString()).toString();return e.value.push({id:o,...n}),n.time>0&&t(o,n.time),o},a=()=>{if(e.value.length===0)return"";const n=e.value[e.value.length-1].id;return e.value.pop(),n},r=n=>{const o=e.value.findIndex(s=>s.id===n);return o>=0&&e.value.splice(o,1),o>=0};return X2(YQ1,{add:i,pop:a,remove:r}),{toasts:e,removeToast:r}},render(){const{$props:e,$slots:t,toasts:i,removeToast:a}=this;return u5("div",{},[t.default?t.default():null,u5(Gr,{name:e.transition,tag:"div",class:"xl:w-1/6 md:w-1/4 sm:w-1/4 fixed top-3 right-3 flex flex-col gap-2 z-50"},{default:()=>i.map(r=>r.component?u5(r.component,{key:r.id,onClose:()=>a(r.id),...r.componentProps?r.componentProps:{}},()=>r.text):u5(HS,{closable:!0,type:r.type,key:r.id,onClose:()=>a(r.id)},()=>r.text))})])}});function Ei(e){return e.split("-")[1]}function iM(e){return e==="y"?"height":"width"}function g3(e){return e.split("-")[0]}function ko(e){return["top","bottom"].includes(g3(e))?"x":"y"}function MS(e,t,i){let{reference:a,floating:r}=e;const n=a.x+a.width/2-r.width/2,o=a.y+a.height/2-r.height/2,s=ko(t),l=iM(s),d=a[l]/2-r[l]/2,C=s==="x";let m;switch(g3(t)){case"top":m={x:n,y:a.y-r.height};break;case"bottom":m={x:n,y:a.y+a.height};break;case"right":m={x:a.x+a.width,y:o};break;case"left":m={x:a.x-r.width,y:o};break;default:m={x:a.x,y:a.y}}switch(Ei(t)){case"start":m[s]-=d*(i&&C?-1:1);break;case"end":m[s]+=d*(i&&C?-1:1)}return m}const $Q1=async(e,t,i)=>{const{placement:a="bottom",strategy:r="absolute",middleware:n=[],platform:o}=i,s=n.filter(Boolean),l=await(o.isRTL==null?void 0:o.isRTL(t));let d=await o.getElementRects({reference:e,floating:t,strategy:r}),{x:C,y:m}=MS(d,a,l),u=a,p={},V=0;for(let f=0;f({name:"arrow",options:e,async fn(t){const{x:i,y:a,placement:r,rects:n,platform:o,elements:s}=t,{element:l,padding:d=0}=Zn(e,t)||{};if(l==null)return{};const C=N51(d),m={x:i,y:a},u=ko(r),p=iM(u),V=await o.getDimensions(l),f=u==="y",M=f?"top":"left",H=f?"bottom":"right",g=f?"clientHeight":"clientWidth",_=n.reference[p]+n.reference[u]-m[u]-n.floating[p],v=m[u]-n.reference[u],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l));let y=S?S[g]:0;y&&await(o.isElement==null?void 0:o.isElement(S))||(y=s.floating[g]||n.floating[p]);const D=_/2-v/2,R=y/2-V[p]/2-1,N=i8(C[M],R),w=i8(C[H],R),x=N,U=y-V[p]-w,E=y/2-V[p]/2+D,O=lf(x,E,U),z=Ei(r)!=null&&E!=O&&n.reference[p]/2-(Ee.concat(t,t+"-start",t+"-end"),[]),jQ1={left:"right",right:"left",bottom:"top",top:"bottom"};function _d(e){return e.replace(/left|right|bottom|top/g,t=>jQ1[t])}function w51(e,t,i){i===void 0&&(i=!1);const a=Ei(e),r=ko(e),n=iM(r);let o=r==="x"?a===(i?"end":"start")?"right":"left":a==="start"?"bottom":"top";return t.reference[n]>t.floating[n]&&(o=_d(o)),{main:o,cross:_d(o)}}const QQ1={start:"end",end:"start"};function rc(e){return e.replace(/start|end/g,t=>QQ1[t])}const JQ1=function(e){return e===void 0&&(e={}),{name:"autoPlacement",options:e,async fn(t){var i,a,r;const{rects:n,middlewareData:o,placement:s,platform:l,elements:d}=t,{crossAxis:C=!1,alignment:m,allowedPlacements:u=gS,autoAlignment:p=!0,...V}=Zn(e,t),f=m!==void 0||u===gS?function(w,x,U){return(w?[...U.filter(E=>Ei(E)===w),...U.filter(E=>Ei(E)!==w)]:U.filter(E=>g3(E)===E)).filter(E=>!w||Ei(E)===w||!!x&&rc(E)!==E)}(m||null,p,u):u,M=await Vm(t,V),H=((i=o.autoPlacement)==null?void 0:i.index)||0,g=f[H];if(g==null)return{};const{main:_,cross:v}=w51(g,n,await(l.isRTL==null?void 0:l.isRTL(d.floating)));if(s!==g)return{reset:{placement:f[0]}};const S=[M[g3(g)],M[_],M[v]],y=[...((a=o.autoPlacement)==null?void 0:a.overflows)||[],{placement:g,overflows:S}],D=f[H+1];if(D)return{data:{index:H+1,overflows:y},reset:{placement:D}};const R=y.map(w=>{const x=Ei(w.placement);return[w.placement,x&&C?w.overflows.slice(0,2).reduce((U,E)=>U+E,0):w.overflows[0],w.overflows]}).sort((w,x)=>w[1]-x[1]),N=((r=R.filter(w=>w[2].slice(0,Ei(w[0])?2:3).every(x=>x<=0))[0])==null?void 0:r[0])||R[0][0];return N!==s?{data:{index:H+1,overflows:y},reset:{placement:N}}:{}}}},eJ1=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var i;const{placement:a,middlewareData:r,rects:n,initialPlacement:o,platform:s,elements:l}=t,{mainAxis:d=!0,crossAxis:C=!0,fallbackPlacements:m,fallbackStrategy:u="bestFit",fallbackAxisSideDirection:p="none",flipAlignment:V=!0,...f}=Zn(e,t),M=g3(a),H=g3(o)===o,g=await(s.isRTL==null?void 0:s.isRTL(l.floating)),_=m||(H||!V?[_d(o)]:function(x){const U=_d(x);return[rc(x),U,rc(U)]}(o));m||p==="none"||_.push(...function(x,U,E,O){const z=Ei(x);let F=function(J,W,r1){const $=["left","right"],t1=["right","left"],l1=["top","bottom"],V1=["bottom","top"];switch(J){case"top":case"bottom":return r1?W?t1:$:W?$:t1;case"left":case"right":return W?l1:V1;default:return[]}}(g3(x),E==="start",O);return z&&(F=F.map(J=>J+"-"+z),U&&(F=F.concat(F.map(rc)))),F}(o,V,p,g));const v=[o,..._],S=await Vm(t,f),y=[];let D=((i=r.flip)==null?void 0:i.overflows)||[];if(d&&y.push(S[M]),C){const{main:x,cross:U}=w51(a,n,g);y.push(S[x],S[U])}if(D=[...D,{placement:a,overflows:y}],!y.every(x=>x<=0)){var R,N;const x=(((R=r.flip)==null?void 0:R.index)||0)+1,U=v[x];if(U)return{data:{index:x,overflows:D},reset:{placement:U}};let E=(N=D.filter(O=>O.overflows[0]<=0).sort((O,z)=>O.overflows[1]-z.overflows[1])[0])==null?void 0:N.placement;if(!E)switch(u){case"bestFit":{var w;const O=(w=D.map(z=>[z.placement,z.overflows.filter(F=>F>0).reduce((F,J)=>F+J,0)]).sort((z,F)=>z[1]-F[1])[0])==null?void 0:w[0];O&&(E=O);break}case"initialPlacement":E=o}if(a!==E)return{reset:{placement:E}}}return{}}}},tJ1=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){const{x:i,y:a}=t,r=await async function(n,o){const{placement:s,platform:l,elements:d}=n,C=await(l.isRTL==null?void 0:l.isRTL(d.floating)),m=g3(s),u=Ei(s),p=ko(s)==="x",V=["left","top"].includes(m)?-1:1,f=C&&p?-1:1,M=Zn(o,n);let{mainAxis:H,crossAxis:g,alignmentAxis:_}=typeof M=="number"?{mainAxis:M,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...M};return u&&typeof _=="number"&&(g=u==="end"?-1*_:_),p?{x:g*f,y:H*V}:{x:H*V,y:g*f}}(t,e);return{x:i+r.x,y:a+r.y,data:r}}}};function iJ1(e){return e==="x"?"y":"x"}const aJ1=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:i,y:a,placement:r}=t,{mainAxis:n=!0,crossAxis:o=!1,limiter:s={fn:M=>{let{x:H,y:g}=M;return{x:H,y:g}}},...l}=Zn(e,t),d={x:i,y:a},C=await Vm(t,l),m=ko(g3(r)),u=iJ1(m);let p=d[m],V=d[u];if(n){const M=m==="y"?"bottom":"right";p=lf(p+C[m==="y"?"top":"left"],p,p-C[M])}if(o){const M=u==="y"?"bottom":"right";V=lf(V+C[u==="y"?"top":"left"],V,V-C[M])}const f=s.fn({...t,[m]:p,[u]:V});return{...f,data:{x:f.x-i,y:f.y-a}}}}},rJ1=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){const{placement:i,rects:a,platform:r,elements:n}=t,{apply:o=()=>{},...s}=Zn(e,t),l=await Vm(t,s),d=g3(i),C=Ei(i),m=ko(i)==="x",{width:u,height:p}=a.floating;let V,f;d==="top"||d==="bottom"?(V=d,f=C===(await(r.isRTL==null?void 0:r.isRTL(n.floating))?"start":"end")?"left":"right"):(f=d,V=C==="end"?"top":"bottom");const M=p-l[V],H=u-l[f],g=!t.middlewareData.shift;let _=M,v=H;if(m){const y=u-l.left-l.right;v=C||g?i8(H,y):y}else{const y=p-l.top-l.bottom;_=C||g?i8(M,y):y}if(g&&!C){const y=Er(l.left,0),D=Er(l.right,0),R=Er(l.top,0),N=Er(l.bottom,0);m?v=u-2*(y!==0||D!==0?y+D:Er(l.left,l.right)):_=p-2*(R!==0||N!==0?R+N:Er(l.top,l.bottom))}await o({...t,availableWidth:v,availableHeight:_});const S=await r.getDimensions(n.floating);return u!==S.width||p!==S.height?{reset:{rects:!0}}:{}}}};function ci(e){var t;return((t=e.ownerDocument)==null?void 0:t.defaultView)||window}function A3(e){return ci(e).getComputedStyle(e)}const AS=Math.min,ms=Math.max,Sd=Math.round;function T51(e){const t=A3(e);let i=parseFloat(t.width),a=parseFloat(t.height);const r=e.offsetWidth,n=e.offsetHeight,o=Sd(i)!==r||Sd(a)!==n;return o&&(i=r,a=n),{width:i,height:a,fallback:o}}function K4(e){return P51(e)?(e.nodeName||"").toLowerCase():""}let Ml;function E51(){if(Ml)return Ml;const e=navigator.userAgentData;return e&&Array.isArray(e.brands)?(Ml=e.brands.map(t=>t.brand+"/"+t.version).join(" "),Ml):navigator.userAgent}function v3(e){return e instanceof ci(e).HTMLElement}function b4(e){return e instanceof ci(e).Element}function P51(e){return e instanceof ci(e).Node}function vS(e){return typeof ShadowRoot>"u"?!1:e instanceof ci(e).ShadowRoot||e instanceof ShadowRoot}function Lm(e){const{overflow:t,overflowX:i,overflowY:a,display:r}=A3(e);return/auto|scroll|overlay|hidden|clip/.test(t+a+i)&&!["inline","contents"].includes(r)}function nJ1(e){return["table","td","th"].includes(K4(e))}function cf(e){const t=/firefox/i.test(E51()),i=A3(e),a=i.backdropFilter||i.WebkitBackdropFilter;return i.transform!=="none"||i.perspective!=="none"||!!a&&a!=="none"||t&&i.willChange==="filter"||t&&!!i.filter&&i.filter!=="none"||["transform","perspective"].some(r=>i.willChange.includes(r))||["paint","layout","strict","content"].some(r=>{const n=i.contain;return n!=null&&n.includes(r)})}function I51(){return!/^((?!chrome|android).)*safari/i.test(E51())}function aM(e){return["html","body","#document"].includes(K4(e))}function O51(e){return b4(e)?e:e.contextElement}const U51={x:1,y:1};function q6(e){const t=O51(e);if(!v3(t))return U51;const i=t.getBoundingClientRect(),{width:a,height:r,fallback:n}=T51(t);let o=(n?Sd(i.width):i.width)/a,s=(n?Sd(i.height):i.height)/r;return o&&Number.isFinite(o)||(o=1),s&&Number.isFinite(s)||(s=1),{x:o,y:s}}function a8(e,t,i,a){var r,n;t===void 0&&(t=!1),i===void 0&&(i=!1);const o=e.getBoundingClientRect(),s=O51(e);let l=U51;t&&(a?b4(a)&&(l=q6(a)):l=q6(e));const d=s?ci(s):window,C=!I51()&&i;let m=(o.left+(C&&((r=d.visualViewport)==null?void 0:r.offsetLeft)||0))/l.x,u=(o.top+(C&&((n=d.visualViewport)==null?void 0:n.offsetTop)||0))/l.y,p=o.width/l.x,V=o.height/l.y;if(s){const f=ci(s),M=a&&b4(a)?ci(a):a;let H=f.frameElement;for(;H&&a&&M!==f;){const g=q6(H),_=H.getBoundingClientRect(),v=getComputedStyle(H);_.x+=(H.clientLeft+parseFloat(v.paddingLeft))*g.x,_.y+=(H.clientTop+parseFloat(v.paddingTop))*g.y,m*=g.x,u*=g.y,p*=g.x,V*=g.y,m+=_.x,u+=_.y,H=ci(H).frameElement}}return{width:p,height:V,top:u,right:m+p,bottom:u+V,left:m,x:m,y:u}}function N4(e){return((P51(e)?e.ownerDocument:e.document)||window.document).documentElement}function Hm(e){return b4(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function x51(e){return a8(N4(e)).left+Hm(e).scrollLeft}function r8(e){if(K4(e)==="html")return e;const t=e.assignedSlot||e.parentNode||vS(e)&&e.host||N4(e);return vS(t)?t.host:t}function F51(e){const t=r8(e);return aM(t)?t.ownerDocument.body:v3(t)&&Lm(t)?t:F51(t)}function Dd(e,t){var i;t===void 0&&(t=[]);const a=F51(e),r=a===((i=e.ownerDocument)==null?void 0:i.body),n=ci(a);return r?t.concat(n,n.visualViewport||[],Lm(a)?a:[]):t.concat(a,Dd(a))}function _S(e,t,i){return t==="viewport"?Cs(function(a,r){const n=ci(a),o=N4(a),s=n.visualViewport;let l=o.clientWidth,d=o.clientHeight,C=0,m=0;if(s){l=s.width,d=s.height;const u=I51();(u||!u&&r==="fixed")&&(C=s.offsetLeft,m=s.offsetTop)}return{width:l,height:d,x:C,y:m}}(e,i)):b4(t)?Cs(function(a,r){const n=a8(a,!0,r==="fixed"),o=n.top+a.clientTop,s=n.left+a.clientLeft,l=v3(a)?q6(a):{x:1,y:1};return{width:a.clientWidth*l.x,height:a.clientHeight*l.y,x:s*l.x,y:o*l.y}}(t,i)):Cs(function(a){const r=N4(a),n=Hm(a),o=a.ownerDocument.body,s=ms(r.scrollWidth,r.clientWidth,o.scrollWidth,o.clientWidth),l=ms(r.scrollHeight,r.clientHeight,o.scrollHeight,o.clientHeight);let d=-n.scrollLeft+x51(a);const C=-n.scrollTop;return A3(o).direction==="rtl"&&(d+=ms(r.clientWidth,o.clientWidth)-s),{width:s,height:l,x:d,y:C}}(N4(e)))}function SS(e){return v3(e)&&A3(e).position!=="fixed"?e.offsetParent:null}function DS(e){const t=ci(e);let i=SS(e);for(;i&&nJ1(i)&&A3(i).position==="static";)i=SS(i);return i&&(K4(i)==="html"||K4(i)==="body"&&A3(i).position==="static"&&!cf(i))?t:i||function(a){let r=r8(a);for(;v3(r)&&!aM(r);){if(cf(r))return r;r=r8(r)}return null}(e)||t}function oJ1(e,t,i){const a=v3(t),r=N4(t),n=a8(e,!0,i==="fixed",t);let o={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if(a||!a&&i!=="fixed")if((K4(t)!=="body"||Lm(r))&&(o=Hm(t)),v3(t)){const l=a8(t,!0);s.x=l.x+t.clientLeft,s.y=l.y+t.clientTop}else r&&(s.x=x51(r));return{x:n.left+o.scrollLeft-s.x,y:n.top+o.scrollTop-s.y,width:n.width,height:n.height}}const sJ1={getClippingRect:function(e){let{element:t,boundary:i,rootBoundary:a,strategy:r}=e;const n=i==="clippingAncestors"?function(d,C){const m=C.get(d);if(m)return m;let u=Dd(d).filter(M=>b4(M)&&K4(M)!=="body"),p=null;const V=A3(d).position==="fixed";let f=V?r8(d):d;for(;b4(f)&&!aM(f);){const M=A3(f),H=cf(f);(V?H||p:H||M.position!=="static"||!p||!["absolute","fixed"].includes(p.position))?p=M:u=u.filter(g=>g!==f),f=r8(f)}return C.set(d,u),u}(t,this._c):[].concat(i),o=[...n,a],s=o[0],l=o.reduce((d,C)=>{const m=_S(t,C,r);return d.top=ms(m.top,d.top),d.right=AS(m.right,d.right),d.bottom=AS(m.bottom,d.bottom),d.left=ms(m.left,d.left),d},_S(t,s,r));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{rect:t,offsetParent:i,strategy:a}=e;const r=v3(i),n=N4(i);if(i===n)return t;let o={scrollLeft:0,scrollTop:0},s={x:1,y:1};const l={x:0,y:0};if((r||!r&&a!=="fixed")&&((K4(i)!=="body"||Lm(n))&&(o=Hm(i)),v3(i))){const d=a8(i);s=q6(i),l.x=d.x+i.clientLeft,l.y=d.y+i.clientTop}return{width:t.width*s.x,height:t.height*s.y,x:t.x*s.x-o.scrollLeft*s.x+l.x,y:t.y*s.y-o.scrollTop*s.y+l.y}},isElement:b4,getDimensions:function(e){return v3(e)?T51(e):e.getBoundingClientRect()},getOffsetParent:DS,getDocumentElement:N4,getScale:q6,async getElementRects(e){let{reference:t,floating:i,strategy:a}=e;const r=this.getOffsetParent||DS,n=this.getDimensions;return{reference:oJ1(t,await r(i),a),floating:{x:0,y:0,...await n(i)}}},getClientRects:e=>Array.from(e.getClientRects()),isRTL:e=>A3(e).direction==="rtl"},lJ1=(e,t,i)=>{const a=new Map,r={platform:sJ1,...i},n={...r.platform,_c:a};return $Q1(e,t,{...r,platform:n})},ln={disabled:!1,distance:5,skidding:0,container:"body",boundary:void 0,instantMove:!1,disposeTimeout:5e3,popperTriggers:[],strategy:"absolute",preventOverflow:!0,flip:!0,shift:!0,overflowPadding:0,arrowPadding:0,arrowOverflow:!0,themes:{tooltip:{placement:"top",triggers:["hover","focus","touch"],hideTriggers:e=>[...e,"click"],delay:{show:200,hide:0},handleResize:!1,html:!1,loadingContent:"..."},dropdown:{placement:"bottom",triggers:["click"],delay:0,handleResize:!0,autoHide:!0},menu:{$extend:"dropdown",triggers:["hover","focus"],popperTriggers:["hover","focus"],delay:{show:0,hide:400}}}};function df(e,t){let i=ln.themes[e]||{},a;do a=i[t],typeof a>"u"?i.$extend?i=ln.themes[i.$extend]||{}:(i=null,a=ln[t]):i=null;while(i);return a}function cJ1(e){const t=[e];let i=ln.themes[e]||{};do i.$extend&&!i.$resetCss?(t.push(i.$extend),i=ln.themes[i.$extend]||{}):i=null;while(i);return t.map(a=>`v-popper--theme-${a}`)}function yS(e){const t=[e];let i=ln.themes[e]||{};do i.$extend?(t.push(i.$extend),i=ln.themes[i.$extend]||{}):i=null;while(i);return t}let fo=!1;if(typeof window<"u"){fo=!1;try{const e=Object.defineProperty({},"passive",{get(){fo=!0}});window.addEventListener("test",null,e)}catch{}}let k51=!1;typeof window<"u"&&typeof navigator<"u"&&(k51=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream);const dJ1=["auto","top","bottom","left","right"].reduce((e,t)=>e.concat([t,`${t}-start`,`${t}-end`]),[]),RS={hover:"mouseenter",focus:"focus",click:"click",touch:"touchstart",pointer:"pointerdown"},bS={hover:"mouseleave",focus:"blur",click:"click",touch:"touchend",pointer:"pointerup"};function NS(e,t){const i=e.indexOf(t);i!==-1&&e.splice(i,1)}function ju(){return new Promise(e=>requestAnimationFrame(()=>{requestAnimationFrame(e)}))}const Pi=[];let Sr=null;const wS={};function TS(e){let t=wS[e];return t||(t=wS[e]=[]),t}let Cf=function(){};typeof window<"u"&&(Cf=window.Element);function pe(e){return function(t){return df(t.theme,e)}}const Qu="__floating-vue__popper",B51=()=>n2({name:"VPopper",provide(){return{[Qu]:{parentPopper:this}}},inject:{[Qu]:{default:null}},props:{theme:{type:String,required:!0},targetNodes:{type:Function,required:!0},referenceNode:{type:Function,default:null},popperNode:{type:Function,required:!0},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:pe("disabled")},positioningDisabled:{type:Boolean,default:pe("positioningDisabled")},placement:{type:String,default:pe("placement"),validator:e=>dJ1.includes(e)},delay:{type:[String,Number,Object],default:pe("delay")},distance:{type:[Number,String],default:pe("distance")},skidding:{type:[Number,String],default:pe("skidding")},triggers:{type:Array,default:pe("triggers")},showTriggers:{type:[Array,Function],default:pe("showTriggers")},hideTriggers:{type:[Array,Function],default:pe("hideTriggers")},popperTriggers:{type:Array,default:pe("popperTriggers")},popperShowTriggers:{type:[Array,Function],default:pe("popperShowTriggers")},popperHideTriggers:{type:[Array,Function],default:pe("popperHideTriggers")},container:{type:[String,Object,Cf,Boolean],default:pe("container")},boundary:{type:[String,Cf],default:pe("boundary")},strategy:{type:String,validator:e=>["absolute","fixed"].includes(e),default:pe("strategy")},autoHide:{type:[Boolean,Function],default:pe("autoHide")},handleResize:{type:Boolean,default:pe("handleResize")},instantMove:{type:Boolean,default:pe("instantMove")},eagerMount:{type:Boolean,default:pe("eagerMount")},popperClass:{type:[String,Array,Object],default:pe("popperClass")},computeTransformOrigin:{type:Boolean,default:pe("computeTransformOrigin")},autoMinSize:{type:Boolean,default:pe("autoMinSize")},autoSize:{type:[Boolean,String],default:pe("autoSize")},autoMaxSize:{type:Boolean,default:pe("autoMaxSize")},autoBoundaryMaxSize:{type:Boolean,default:pe("autoBoundaryMaxSize")},preventOverflow:{type:Boolean,default:pe("preventOverflow")},overflowPadding:{type:[Number,String],default:pe("overflowPadding")},arrowPadding:{type:[Number,String],default:pe("arrowPadding")},arrowOverflow:{type:Boolean,default:pe("arrowOverflow")},flip:{type:Boolean,default:pe("flip")},shift:{type:Boolean,default:pe("shift")},shiftCrossAxis:{type:Boolean,default:pe("shiftCrossAxis")},noAutoFocus:{type:Boolean,default:pe("noAutoFocus")},disposeTimeout:{type:Number,default:pe("disposeTimeout")}},emits:["show","hide","update:shown","apply-show","apply-hide","close-group","close-directive","auto-hide","resize","dispose"],data(){return{isShown:!1,isMounted:!1,skipTransition:!1,classes:{showFrom:!1,showTo:!1,hideFrom:!1,hideTo:!0},result:{x:0,y:0,placement:"",strategy:this.strategy,arrow:{x:0,y:0,centerOffset:0},transformOrigin:null},shownChildren:new Set,lastAutoHide:!0}},computed:{popperId(){return this.ariaId!=null?this.ariaId:this.randomId},shouldMountContent(){return this.eagerMount||this.isMounted},slotData(){return{popperId:this.popperId,isShown:this.isShown,shouldMountContent:this.shouldMountContent,skipTransition:this.skipTransition,autoHide:typeof this.autoHide=="function"?this.lastAutoHide:this.autoHide,show:this.show,hide:this.hide,handleResize:this.handleResize,onResize:this.onResize,classes:{...this.classes,popperClass:this.popperClass},result:this.positioningDisabled?null:this.result,attrs:this.$attrs}},parentPopper(){var e;return(e=this[Qu])==null?void 0:e.parentPopper},hasPopperShowTriggerHover(){var e,t;return((e=this.popperTriggers)==null?void 0:e.includes("hover"))||((t=this.popperShowTriggers)==null?void 0:t.includes("hover"))}},watch:{shown:"$_autoShowHide",disabled(e){e?this.dispose():this.init()},async container(){this.isShown&&(this.$_ensureTeleport(),await this.$_computePosition())},...["triggers","positioningDisabled"].reduce((e,t)=>(e[t]="$_refreshListeners",e),{}),...["placement","distance","skidding","boundary","strategy","overflowPadding","arrowPadding","preventOverflow","shift","shiftCrossAxis","flip"].reduce((e,t)=>(e[t]="$_computePosition",e),{})},created(){this.$_isDisposed=!0,this.randomId=`popper_${[Math.random(),Date.now()].map(e=>e.toString(36).substring(2,10)).join("_")}`,this.autoMinSize&&console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize="min"` instead.'),this.autoMaxSize&&console.warn("[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.")},mounted(){this.init(),this.$_detachPopperNode()},activated(){this.$_autoShowHide()},deactivated(){this.hide()},beforeUnmount(){this.dispose()},methods:{show({event:e=null,skipDelay:t=!1,force:i=!1}={}){var a,r;(a=this.parentPopper)!=null&&a.lockedChild&&this.parentPopper.lockedChild!==this||(this.$_pendingHide=!1,(i||!this.disabled)&&(((r=this.parentPopper)==null?void 0:r.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.$_scheduleShow(e,t),this.$emit("show"),this.$_showFrameLocked=!0,requestAnimationFrame(()=>{this.$_showFrameLocked=!1})),this.$emit("update:shown",!0))},hide({event:e=null,skipDelay:t=!1}={}){var i;if(!this.$_hideInProgress){if(this.shownChildren.size>0){this.$_pendingHide=!0;return}if(this.hasPopperShowTriggerHover&&this.$_isAimingPopper()){this.parentPopper&&(this.parentPopper.lockedChild=this,clearTimeout(this.parentPopper.lockedChildTimer),this.parentPopper.lockedChildTimer=setTimeout(()=>{this.parentPopper.lockedChild===this&&(this.parentPopper.lockedChild.hide({skipDelay:t}),this.parentPopper.lockedChild=null)},1e3));return}((i=this.parentPopper)==null?void 0:i.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.$_pendingHide=!1,this.$_scheduleHide(e,t),this.$emit("hide"),this.$emit("update:shown",!1)}},init(){var t;var e;this.$_isDisposed&&(this.$_isDisposed=!1,this.isMounted=!1,this.$_events=[],this.$_preventShow=!1,this.$_referenceNode=(t=(e=this.referenceNode)==null?void 0:e.call(this))!=null?t:this.$el,this.$_targetNodes=this.targetNodes().filter(i=>i.nodeType===i.ELEMENT_NODE),this.$_popperNode=this.popperNode(),this.$_innerNode=this.$_popperNode.querySelector(".v-popper__inner"),this.$_arrowNode=this.$_popperNode.querySelector(".v-popper__arrow-container"),this.$_swapTargetAttrs("title","data-original-title"),this.$_detachPopperNode(),this.triggers.length&&this.$_addEventListeners(),this.shown&&this.show())},dispose(){this.$_isDisposed||(this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.$_detachPopperNode(),this.isMounted=!1,this.isShown=!1,this.$_updateParentShownChildren(!1),this.$_swapTargetAttrs("data-original-title","title"),this.$emit("dispose"))},async onResize(){this.isShown&&(await this.$_computePosition(),this.$emit("resize"))},async $_computePosition(){var a;if(this.$_isDisposed||this.positioningDisabled)return;const e={strategy:this.strategy,middleware:[]};(this.distance||this.skidding)&&e.middleware.push(tJ1({mainAxis:this.distance,crossAxis:this.skidding}));const t=this.placement.startsWith("auto");if(t?e.middleware.push(JQ1({alignment:(a=this.placement.split("-")[1])!=null?a:""})):e.placement=this.placement,this.preventOverflow&&(this.shift&&e.middleware.push(aJ1({padding:this.overflowPadding,boundary:this.boundary,crossAxis:this.shiftCrossAxis})),!t&&this.flip&&e.middleware.push(eJ1({padding:this.overflowPadding,boundary:this.boundary}))),e.middleware.push(qQ1({element:this.$_arrowNode,padding:this.arrowPadding})),this.arrowOverflow&&e.middleware.push({name:"arrowOverflow",fn:({placement:r,rects:n,middlewareData:o})=>{let s;const{centerOffset:l}=o.arrow;return r.startsWith("top")||r.startsWith("bottom")?s=Math.abs(l)>n.reference.width/2:s=Math.abs(l)>n.reference.height/2,{data:{overflow:s}}}}),this.autoMinSize||this.autoSize){const r=this.autoSize?this.autoSize:this.autoMinSize?"min":null;e.middleware.push({name:"autoSize",fn:({rects:n,placement:o,middlewareData:s})=>{var l;if((l=s.autoSize)!=null&&l.skip)return{};let d,C;return o.startsWith("top")||o.startsWith("bottom")?d=n.reference.width:C=n.reference.height,this.$_innerNode.style[r==="min"?"minWidth":r==="max"?"maxWidth":"width"]=d!=null?`${d}px`:null,this.$_innerNode.style[r==="min"?"minHeight":r==="max"?"maxHeight":"height"]=C!=null?`${C}px`:null,{data:{skip:!0},reset:{rects:!0}}}})}(this.autoMaxSize||this.autoBoundaryMaxSize)&&(this.$_innerNode.style.maxWidth=null,this.$_innerNode.style.maxHeight=null,e.middleware.push(rJ1({boundary:this.boundary,padding:this.overflowPadding,apply:({availableWidth:r,availableHeight:n})=>{this.$_innerNode.style.maxWidth=r!=null?`${r}px`:null,this.$_innerNode.style.maxHeight=n!=null?`${n}px`:null}})));const i=await lJ1(this.$_referenceNode,this.$_popperNode,e);Object.assign(this.result,{x:i.x,y:i.y,placement:i.placement,strategy:i.strategy,arrow:{...i.middlewareData.arrow,...i.middlewareData.arrowOverflow}})},$_scheduleShow(e=null,t=!1){if(this.$_updateParentShownChildren(!0),this.$_hideInProgress=!1,clearTimeout(this.$_scheduleTimer),Sr&&this.instantMove&&Sr.instantMove&&Sr!==this.parentPopper){Sr.$_applyHide(!0),this.$_applyShow(!0);return}t?this.$_applyShow():this.$_scheduleTimer=setTimeout(this.$_applyShow.bind(this),this.$_computeDelay("show"))},$_scheduleHide(e=null,t=!1){if(this.shownChildren.size>0){this.$_pendingHide=!0;return}this.$_updateParentShownChildren(!1),this.$_hideInProgress=!0,clearTimeout(this.$_scheduleTimer),this.isShown&&(Sr=this),t?this.$_applyHide():this.$_scheduleTimer=setTimeout(this.$_applyHide.bind(this),this.$_computeDelay("hide"))},$_computeDelay(e){const t=this.delay;return parseInt(t&&t[e]||t||0)},async $_applyShow(e=!1){clearTimeout(this.$_disposeTimer),clearTimeout(this.$_scheduleTimer),this.skipTransition=e,!this.isShown&&(this.$_ensureTeleport(),await ju(),await this.$_computePosition(),await this.$_applyShowEffect(),this.positioningDisabled||this.$_registerEventListeners([...Dd(this.$_referenceNode),...Dd(this.$_popperNode)],"scroll",()=>{this.$_computePosition()}))},async $_applyShowEffect(){if(this.$_hideInProgress)return;if(this.computeTransformOrigin){const t=this.$_referenceNode.getBoundingClientRect(),i=this.$_popperNode.querySelector(".v-popper__wrapper"),a=i.parentNode.getBoundingClientRect(),r=t.x+t.width/2-(a.left+i.offsetLeft),n=t.y+t.height/2-(a.top+i.offsetTop);this.result.transformOrigin=`${r}px ${n}px`}this.isShown=!0,this.$_applyAttrsToTarget({"aria-describedby":this.popperId,"data-popper-shown":""});const e=this.showGroup;if(e){let t;for(let i=0;i0){this.$_pendingHide=!0,this.$_hideInProgress=!1;return}if(clearTimeout(this.$_scheduleTimer),!this.isShown)return;this.skipTransition=e,NS(Pi,this),Pi.length===0&&document.body.classList.remove("v-popper--some-open");for(const i of yS(this.theme)){const a=TS(i);NS(a,this),a.length===0&&document.body.classList.remove(`v-popper--some-open--${i}`)}Sr===this&&(Sr=null),this.isShown=!1,this.$_applyAttrsToTarget({"aria-describedby":void 0,"data-popper-shown":void 0}),clearTimeout(this.$_disposeTimer);const t=this.disposeTimeout;t!==null&&(this.$_disposeTimer=setTimeout(()=>{this.$_popperNode&&(this.$_detachPopperNode(),this.isMounted=!1)},t)),this.$_removeEventListeners("scroll"),this.$emit("apply-hide"),this.classes.showFrom=!1,this.classes.showTo=!1,this.classes.hideFrom=!0,this.classes.hideTo=!1,await ju(),this.classes.hideFrom=!1,this.classes.hideTo=!0},$_autoShowHide(){this.shown?this.show():this.hide()},$_ensureTeleport(){if(this.$_isDisposed)return;let e=this.container;if(typeof e=="string"?e=window.document.querySelector(e):e===!1&&(e=this.$_targetNodes[0].parentNode),!e)throw new Error("No container for popover: "+this.container);e.appendChild(this.$_popperNode),this.isMounted=!0},$_addEventListeners(){const e=i=>{this.isShown&&!this.$_hideInProgress||(i.usedByTooltip=!0,!this.$_preventShow&&this.show({event:i}))};this.$_registerTriggerListeners(this.$_targetNodes,RS,this.triggers,this.showTriggers,e),this.$_registerTriggerListeners([this.$_popperNode],RS,this.popperTriggers,this.popperShowTriggers,e);const t=i=>{i.usedByTooltip||this.hide({event:i})};this.$_registerTriggerListeners(this.$_targetNodes,bS,this.triggers,this.hideTriggers,t),this.$_registerTriggerListeners([this.$_popperNode],bS,this.popperTriggers,this.popperHideTriggers,t)},$_registerEventListeners(e,t,i){this.$_events.push({targetNodes:e,eventType:t,handler:i}),e.forEach(a=>a.addEventListener(t,i,fo?{passive:!0}:void 0))},$_registerTriggerListeners(e,t,i,a,r){let n=i;a!=null&&(n=typeof a=="function"?a(n):a),n.forEach(o=>{const s=t[o];s&&this.$_registerEventListeners(e,s,r)})},$_removeEventListeners(e){const t=[];this.$_events.forEach(i=>{const{targetNodes:a,eventType:r,handler:n}=i;!e||e===r?a.forEach(o=>o.removeEventListener(r,n)):t.push(i)}),this.$_events=t},$_refreshListeners(){this.$_isDisposed||(this.$_removeEventListeners(),this.$_addEventListeners())},$_handleGlobalClose(e,t=!1){this.$_showFrameLocked||(this.hide({event:e}),e.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),t&&(this.$_preventShow=!0,setTimeout(()=>{this.$_preventShow=!1},300)))},$_detachPopperNode(){this.$_popperNode.parentNode&&this.$_popperNode.parentNode.removeChild(this.$_popperNode)},$_swapTargetAttrs(e,t){for(const i of this.$_targetNodes){const a=i.getAttribute(e);a&&(i.removeAttribute(e),i.setAttribute(t,a))}},$_applyAttrsToTarget(e){for(const t of this.$_targetNodes)for(const i in e){const a=e[i];a==null?t.removeAttribute(i):t.setAttribute(i,a)}},$_updateParentShownChildren(e){let t=this.parentPopper;for(;t;)e?t.shownChildren.add(this.randomId):(t.shownChildren.delete(this.randomId),t.$_pendingHide&&t.hide()),t=t.parentPopper},$_isAimingPopper(){const e=this.$_referenceNode.getBoundingClientRect();if(us>=e.left&&us<=e.right&&hs>=e.top&&hs<=e.bottom){const t=this.$_popperNode.getBoundingClientRect(),i=us-c4,a=hs-d4,r=t.left+t.width/2-c4+(t.top+t.height/2)-d4+t.width+t.height,n=c4+i*r,o=d4+a*r;return gl(c4,d4,n,o,t.left,t.top,t.left,t.bottom)||gl(c4,d4,n,o,t.left,t.top,t.right,t.top)||gl(c4,d4,n,o,t.right,t.top,t.right,t.bottom)||gl(c4,d4,n,o,t.left,t.bottom,t.right,t.bottom)}return!1}},render(){return this.$slots.default(this.slotData)}});typeof document<"u"&&typeof window<"u"&&(k51?(document.addEventListener("touchstart",ES,fo?{passive:!0,capture:!0}:!0),document.addEventListener("touchend",mJ1,fo?{passive:!0,capture:!0}:!0)):(window.addEventListener("mousedown",ES,!0),window.addEventListener("click",CJ1,!0)),window.addEventListener("resize",pJ1));function ES(e){for(let t=0;t=0;a--){const r=Pi[a];try{const n=r.$_containsGlobalTarget=uJ1(r,e);r.$_pendingHide=!1,requestAnimationFrame(()=>{if(r.$_pendingHide=!1,!i[r.randomId]&&PS(r,n,e)){if(r.$_handleGlobalClose(e,t),!e.closeAllPopover&&e.closePopover&&n){let s=r.parentPopper;for(;s;)i[s.randomId]=!0,s=s.parentPopper;return}let o=r.parentPopper;for(;o&&PS(o,o.$_containsGlobalTarget,e);)o.$_handleGlobalClose(e,t),o=o.parentPopper}})}catch{}}}function uJ1(e,t){const i=e.popperNode();return e.$_mouseDownContains||i.contains(t.target)}function PS(e,t,i){return i.closeAllPopover||i.closePopover&&t||hJ1(e,i)&&!t}function hJ1(e,t){if(typeof e.autoHide=="function"){const i=e.autoHide(t);return e.lastAutoHide=i,i}return e.autoHide}function pJ1(e){for(let t=0;t{c4=us,d4=hs,us=e.clientX,hs=e.clientY},fo?{passive:!0}:void 0);function gl(e,t,i,a,r,n,o,s){const l=((o-r)*(t-n)-(s-n)*(e-r))/((s-n)*(i-e)-(o-r)*(a-t)),d=((i-e)*(t-n)-(a-t)*(e-r))/((s-n)*(i-e)-(o-r)*(a-t));return l>=0&&l<=1&&d>=0&&d<=1}const fJ1={extends:B51()},rM=(e,t)=>{const i=e.__vccOpts||e;for(const[a,r]of t)i[a]=r;return i};function VJ1(e,t,i,a,r,n){return C1(),N1("div",{ref:"reference",class:c2(["v-popper",{"v-popper--shown":e.slotData.isShown}])},[Se(e.$slots,"default",Kd(v8(e.slotData)))],2)}const LJ1=rM(fJ1,[["render",VJ1]]);function HJ1(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);var i=e.indexOf("Trident/");if(i>0){var a=e.indexOf("rv:");return parseInt(e.substring(a+3,e.indexOf(".",a)),10)}var r=e.indexOf("Edge/");return r>0?parseInt(e.substring(r+5,e.indexOf(".",r)),10):-1}let nc;function mf(){mf.init||(mf.init=!0,nc=HJ1()!==-1)}var Mm={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:["notify"],mounted(){mf(),k2(()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()});const e=document.createElement("object");this._resizeObject=e,e.setAttribute("aria-hidden","true"),e.setAttribute("tabindex",-1),e.onload=this.addResizeHandlers,e.type="text/html",nc&&this.$el.appendChild(e),e.data="about:blank",nc||this.$el.appendChild(e)},beforeUnmount(){this.removeResizeHandlers()},methods:{compareAndNotify(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers(){this._resizeObject&&this._resizeObject.onload&&(!nc&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}};const MJ1=oC();Dt("data-v-b329ee4c");const gJ1={class:"resize-observer",tabindex:"-1"};yt();const AJ1=MJ1((e,t,i,a,r,n)=>(C1(),Q1("div",gJ1)));Mm.render=AJ1;Mm.__scopeId="data-v-b329ee4c";Mm.__file="src/components/ResizeObserver.vue";const Z51=(e="theme")=>({computed:{themeClass(){return cJ1(this[e])}}}),vJ1=n2({name:"VPopperContent",components:{ResizeObserver:Mm},mixins:[Z51()],props:{popperId:String,theme:String,shown:Boolean,mounted:Boolean,skipTransition:Boolean,autoHide:Boolean,handleResize:Boolean,classes:Object,result:Object},emits:["hide","resize"],methods:{toPx(e){return e!=null&&!isNaN(e)?`${e}px`:null}}}),_J1=["id","aria-hidden","tabindex","data-popper-placement"],SJ1={ref:"inner",class:"v-popper__inner"},DJ1=K("div",{class:"v-popper__arrow-outer"},null,-1),yJ1=K("div",{class:"v-popper__arrow-inner"},null,-1),RJ1=[DJ1,yJ1];function bJ1(e,t,i,a,r,n){const o=x5("ResizeObserver");return C1(),N1("div",{id:e.popperId,ref:"popover",class:c2(["v-popper__popper",[e.themeClass,e.classes.popperClass,{"v-popper__popper--shown":e.shown,"v-popper__popper--hidden":!e.shown,"v-popper__popper--show-from":e.classes.showFrom,"v-popper__popper--show-to":e.classes.showTo,"v-popper__popper--hide-from":e.classes.hideFrom,"v-popper__popper--hide-to":e.classes.hideTo,"v-popper__popper--skip-transition":e.skipTransition,"v-popper__popper--arrow-overflow":e.result&&e.result.arrow.overflow,"v-popper__popper--no-positioning":!e.result}]]),style:X5(e.result?{position:e.result.strategy,transform:`translate3d(${Math.round(e.result.x)}px,${Math.round(e.result.y)}px,0)`}:void 0),"aria-hidden":e.shown?"false":"true",tabindex:e.autoHide?0:void 0,"data-popper-placement":e.result?e.result.placement:void 0,onKeyup:t[2]||(t[2]=_8(s=>e.autoHide&&e.$emit("hide"),["esc"]))},[K("div",{class:"v-popper__backdrop",onClick:t[0]||(t[0]=s=>e.autoHide&&e.$emit("hide"))}),K("div",{class:"v-popper__wrapper",style:X5(e.result?{transformOrigin:e.result.transformOrigin}:void 0)},[K("div",SJ1,[e.mounted?(C1(),N1(Y1,{key:0},[K("div",null,[Se(e.$slots,"default")]),e.handleResize?(C1(),Q1(o,{key:0,onNotify:t[1]||(t[1]=s=>e.$emit("resize",s))})):a2("",!0)],64)):a2("",!0)],512),K("div",{ref:"arrow",class:"v-popper__arrow-container",style:X5(e.result?{left:e.toPx(e.result.arrow.x),top:e.toPx(e.result.arrow.y)}:void 0)},RJ1,4)],4)],46,_J1)}const G51=rM(vJ1,[["render",bJ1]]),W51={methods:{show(...e){return this.$refs.popper.show(...e)},hide(...e){return this.$refs.popper.hide(...e)},dispose(...e){return this.$refs.popper.dispose(...e)},onResize(...e){return this.$refs.popper.onResize(...e)}}},NJ1=n2({name:"VPopperWrapper",components:{Popper:LJ1,PopperContent:G51},mixins:[W51,Z51("finalTheme")],props:{theme:{type:String,default:null}},computed:{finalTheme(){var e;return(e=this.theme)!=null?e:this.$options.vPopperTheme}},methods:{getTargetNodes(){return Array.from(this.$el.children).filter(e=>e!==this.$refs.popperContent.$el)}}});function wJ1(e,t,i,a,r,n){const o=x5("PopperContent"),s=x5("Popper");return C1(),Q1(s,{ref:"popper",theme:e.finalTheme,"target-nodes":e.getTargetNodes,"popper-node":()=>e.$refs.popperContent.$el,class:c2([e.themeClass])},{default:v1(({popperId:l,isShown:d,shouldMountContent:C,skipTransition:m,autoHide:u,show:p,hide:V,handleResize:f,onResize:M,classes:H,result:g})=>[Se(e.$slots,"default",{shown:d,show:p,hide:V}),P(o,{ref:"popperContent","popper-id":l,theme:e.finalTheme,shown:d,mounted:C,"skip-transition":m,"auto-hide":u,"handle-resize":f,classes:H,result:g,onHide:V,onResize:M},{default:v1(()=>[Se(e.$slots,"popper",{shown:d,hide:V})]),_:2},1032,["popper-id","theme","shown","mounted","skip-transition","auto-hide","handle-resize","classes","result","onHide","onResize"])]),_:3},8,["theme","target-nodes","popper-node","class"])}const nM=rM(NJ1,[["render",wJ1]]);({...nM});({...nM});({...nM});n2({name:"VTooltipDirective",components:{Popper:B51(),PopperContent:G51},mixins:[W51],inheritAttrs:!1,props:{theme:{type:String,default:"tooltip"},html:{type:Boolean,default:e=>df(e.theme,"html")},content:{type:[String,Number,Function],default:null},loadingContent:{type:String,default:e=>df(e.theme,"loadingContent")},targetNodes:{type:Function,required:!0}},data(){return{asyncContent:null}},computed:{isContentAsync(){return typeof this.content=="function"},loading(){return this.isContentAsync&&this.asyncContent==null},finalContent(){return this.isContentAsync?this.loading?this.loadingContent:this.asyncContent:this.content}},watch:{content:{handler(){this.fetchContent(!0)},immediate:!0},async finalContent(){await this.$nextTick(),this.$refs.popper.onResize()}},created(){this.$_fetchId=0},methods:{fetchContent(e){if(typeof this.content=="function"&&this.$_isShown&&(e||!this.$_loading&&this.asyncContent==null)){this.asyncContent=null,this.$_loading=!0;const t=++this.$_fetchId,i=this.content(this);i.then?i.then(a=>this.onResult(t,a)):this.onResult(t,i)}},onResult(e,t){e===this.$_fetchId&&(this.$_loading=!1,this.asyncContent=t)},onShow(){this.$_isShown=!0,this.fetchContent()},onHide(){this.$_isShown=!1}}});const n8=15,uf=30,hf=19,TJ1=29,yd=256,oM=yd+1+TJ1,IS=2*oM+1,y7=256,EJ1=7,OS=16,US=17,xS=18,Ju=8*2,Rd=-1,PJ1=1,Al=2,IJ1=0,N6=0,FS=1,OJ1=3,Xt=4,Di=0,X51=1,vl=2,yi=-2,UJ1=-3,A6=-5;function gm(e){return Am(e.map(([t,i])=>new Array(t).fill(i,0,t)))}function Am(e){return e.reduce((t,i)=>t.concat(Array.isArray(i)?Am(i):i),[])}const kS=[0,1,2,3].concat(...gm([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function Xe(){const e=this;function t(r){const n=e.dyn_tree,o=e.stat_desc.static_tree,s=e.stat_desc.extra_bits,l=e.stat_desc.extra_base,d=e.stat_desc.max_length;let C,m,u,p,V,f,M=0;for(p=0;p<=n8;p++)r.bl_count[p]=0;for(n[r.heap[r.heap_max]*2+1]=0,C=r.heap_max+1;Cd&&(p=d,M++),n[m*2+1]=p,!(m>e.max_code)&&(r.bl_count[p]++,V=0,m>=l&&(V=s[m-l]),f=n[m*2],r.opt_len+=f*(p+V),o&&(r.static_len+=f*(o[m*2+1]+V)));if(M!==0){do{for(p=d-1;r.bl_count[p]===0;)p--;r.bl_count[p]--,r.bl_count[p+1]+=2,r.bl_count[d]--,M-=2}while(M>0);for(p=d;p!==0;p--)for(m=r.bl_count[p];m!==0;)u=r.heap[--C],!(u>e.max_code)&&(n[u*2+1]!=p&&(r.opt_len+=(p-n[u*2+1])*n[u*2],n[u*2+1]=p),m--)}}function i(r,n){let o=0;do o|=r&1,r>>>=1,o<<=1;while(--n>0);return o>>>1}function a(r,n,o){const s=[];let l=0,d,C,m;for(d=1;d<=n8;d++)s[d]=l=l+o[d-1]<<1;for(C=0;C<=n;C++)m=r[C*2+1],m!==0&&(r[C*2]=i(s[m]++,m))}e.build_tree=function(r){const n=e.dyn_tree,o=e.stat_desc.static_tree,s=e.stat_desc.elems;let l,d,C=-1,m;for(r.heap_len=0,r.heap_max=IS,l=0;l=1;l--)r.pqdownheap(n,l);m=s;do l=r.heap[1],r.heap[1]=r.heap[r.heap_len--],r.pqdownheap(n,1),d=r.heap[1],r.heap[--r.heap_max]=l,r.heap[--r.heap_max]=d,n[m*2]=n[l*2]+n[d*2],r.depth[m]=Math.max(r.depth[l],r.depth[d])+1,n[l*2+1]=n[d*2+1]=m,r.heap[1]=m++,r.pqdownheap(n,1);while(r.heap_len>=2);r.heap[--r.heap_max]=r.heap[1],t(r),a(n,e.max_code,r.bl_count)}}Xe._length_code=[0,1,2,3,4,5,6,7].concat(...gm([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]]));Xe.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0];Xe.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576];Xe.d_code=function(e){return e<256?kS[e]:kS[256+(e>>>7)]};Xe.extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];Xe.extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];Xe.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];Xe.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function at(e,t,i,a,r){const n=this;n.static_tree=e,n.extra_bits=t,n.extra_base=i,n.elems=a,n.max_length=r}const xJ1=[12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227],FJ1=gm([[144,8],[112,9],[24,7],[8,8]]);at.static_ltree=Am(xJ1.map((e,t)=>[e,FJ1[t]]));const kJ1=[0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23],BJ1=gm([[30,5]]);at.static_dtree=Am(kJ1.map((e,t)=>[e,BJ1[t]]));at.static_l_desc=new at(at.static_ltree,Xe.extra_lbits,yd+1,oM,n8);at.static_d_desc=new at(at.static_dtree,Xe.extra_dbits,0,uf,n8);at.static_bl_desc=new at(null,Xe.extra_blbits,0,hf,EJ1);const zJ1=9,ZJ1=8;function n3(e,t,i,a,r){const n=this;n.good_length=e,n.max_lazy=t,n.nice_length=i,n.max_chain=a,n.func=r}const Y51=0,oc=1,Pr=2,Ai=[new n3(0,0,0,0,Y51),new n3(4,4,8,4,oc),new n3(4,5,16,8,oc),new n3(4,6,32,32,oc),new n3(4,4,16,16,Pr),new n3(8,16,32,32,Pr),new n3(8,16,128,128,Pr),new n3(8,32,128,256,Pr),new n3(32,128,258,1024,Pr),new n3(32,258,258,4096,Pr)],_l=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],Q0=0,Sl=1,R7=2,Dl=3,GJ1=32,eh=42,yl=113,b7=666,th=8,WJ1=0,ih=1,XJ1=2,Je=3,sc=258,H0=sc+Je+1;function BS(e,t,i,a){const r=e[t*2],n=e[i*2];return r=3&&J[Xe.bl_order[E1]*2+1]===0;E1--);return e.opt_len+=3*(E1+1)+5+5+4,E1}function e1(E1){e.pending_buf[e.pending++]=E1}function Y(E1){e1(E1&255),e1(E1>>>8&255)}function a1(E1){e1(E1>>8&255),e1(E1&255&255)}function c1(E1,F1){let U1;const Z1=F1;M1>Ju-Z1?(U1=E1,n1|=U1<>>Ju-M1,M1+=Z1-Ju):(n1|=E1<=8&&(e1(n1&255),n1>>>=8,M1-=8)}function x1(){c1(ih<<1,3),H1(y7,at.static_ltree),O1(),1+A1+10-M1<9&&(c1(ih<<1,3),H1(y7,at.static_ltree),O1()),A1=7}function y1(E1,F1){let U1,Z1,r2;if(e.dist_buf[l1]=E1,e.lc_buf[l1]=F1&255,l1++,E1===0?z[F1*2]++:(V1++,E1--,z[(Xe._length_code[F1]+yd+1)*2]++,F[Xe.d_code(E1)*2]++),(l1&8191)===0&&x>2){for(U1=l1*8,Z1=S-H,r2=0;r2>>=3,V18?Y(n1):M1>0&&e1(n1&255),n1=0,M1=0}function o2(E1,F1,U1){j1(),A1=8,U1&&(Y(F1),Y(~F1)),e.pending_buf.set(l.subarray(E1,E1+F1),e.pending),e.pending+=F1}function u2(E1,F1,U1){c1((WJ1<<1)+(U1?1:0),3),o2(E1,F1,!0)}function v2(E1,F1,U1){let Z1,r2,S2=0;x>0?(W.build_tree(e),r1.build_tree(e),S2=L1(),Z1=e.opt_len+3+7>>>3,r2=e.static_len+3+7>>>3,r2<=Z1&&(Z1=r2)):Z1=r2=F1+5,F1+4<=Z1&&E1!=-1?u2(E1,F1,U1):r2==Z1?(c1((ih<<1)+(U1?1:0),3),X1(at.static_ltree,at.static_dtree)):(c1((XJ1<<1)+(U1?1:0),3),P1(W.max_code+1,r1.max_code+1,S2+1),X1(z,F)),s1(),U1&&j1()}function d2(E1){v2(H>=0?H:-1,S-H,E1),H=S,t.flush_pending()}function D2(){let E1,F1,U1,Z1;do{if(Z1=d-D-S,Z1===0&&S===0&&D===0)Z1=n;else if(Z1==-1)Z1--;else if(S>=n+n-H0){l.set(l.subarray(n,n+n),0),y-=n,S-=n,H-=n,E1=p,U1=E1;do F1=m[--U1]&65535,m[U1]=F1>=n?F1-n:0;while(--E1!==0);E1=n,U1=E1;do F1=C[--U1]&65535,C[U1]=F1>=n?F1-n:0;while(--E1!==0);Z1+=n}if(t.avail_in===0)return;E1=t.read_buf(l,S+D,Z1),D+=E1,D>=Je&&(u=l[S]&255,u=(u<a-5&&(F1=a-5);;){if(D<=1){if(D2(),D===0&&E1==N6)return Q0;if(D===0)break}if(S+=D,D=0,U1=H+F1,(S===0||S>=U1)&&(D=S-U1,S=U1,d2(!1),t.avail_out===0)||S-H>=n-H0&&(d2(!1),t.avail_out===0))return Q0}return d2(E1==Xt),t.avail_out===0?E1==Xt?R7:Q0:E1==Xt?Dl:Sl}function oe(E1){let F1=N,U1=S,Z1,r2,S2=R;const R2=S>n-H0?S-(n-H0):0;let je=O;const V5=s,Ki=S+sc;let v5=l[U1+S2-1],lt=l[U1+S2];R>=E&&(F1>>=2),je>D&&(je=D);do if(Z1=E1,!(l[Z1+S2]!=lt||l[Z1+S2-1]!=v5||l[Z1]!=l[U1]||l[++Z1]!=l[U1+1])){U1+=2,Z1++;do;while(l[++U1]==l[++Z1]&&l[++U1]==l[++Z1]&&l[++U1]==l[++Z1]&&l[++U1]==l[++Z1]&&l[++U1]==l[++Z1]&&l[++U1]==l[++Z1]&&l[++U1]==l[++Z1]&&l[++U1]==l[++Z1]&&U1S2){if(y=E1,S2=r2,r2>=je)break;v5=l[U1+S2-1],lt=l[U1+S2]}}while((E1=C[E1&V5]&65535)>R2&&--F1!==0);return S2<=D?S2:D}function f5(E1){let F1=0,U1;for(;;){if(D=Je&&(u=(u<=Je)if(U1=y1(S-y,g-Je),D-=g,g<=w&&D>=Je){g--;do S++,u=(u<=Je&&(u=(u<4096)&&(g=Je-1)),R>=Je&&g<=R){Z1=S+D-Je,U1=y1(S-1-_,R-Je),D-=R-1,R-=2;do++S<=Z1&&(u=(u<zJ1||Z1!=th||U1<9||U1>15||F1<0||F1>9||S2<0||S2>Al?yi:(E1.dstate=e,o=U1,n=1<9||U1<0||U1>Al?yi:(Ai[x].func!=Ai[F1].func&&E1.total_in!==0&&(Z1=E1.deflate(FS)),x!=F1&&(x=F1,w=Ai[x].max_lazy,E=Ai[x].good_length,O=Ai[x].nice_length,N=Ai[x].max_chain),U=U1,Z1)},e.deflateSetDictionary=function(E1,F1,U1){let Z1=U1,r2,S2=0;if(!F1||i!=eh)return yi;if(Z1n-H0&&(Z1=n-H0,S2=U1-Z1),l.set(F1.subarray(S2,S2+Z1),0),S=Z1,H=Z1,u=l[0]&255,u=(u<Xt||F1<0)return yi;if(!E1.next_out||!E1.next_in&&E1.avail_in!==0||i==b7&&F1!=Xt)return E1.msg=_l[vl-yi],yi;if(E1.avail_out===0)return E1.msg=_l[vl-A6],A6;if(t=E1,S2=r,r=F1,i==eh&&(Z1=th+(o-8<<4)<<8,r2=(x-1&255)>>1,r2>3&&(r2=3),Z1|=r2<<6,S!==0&&(Z1|=GJ1),Z1+=31-Z1%31,i=yl,a1(Z1)),e.pending!==0){if(t.flush_pending(),t.avail_out===0)return r=-1,Di}else if(t.avail_in===0&&F1<=S2&&F1!=Xt)return t.msg=_l[vl-A6],A6;if(i==b7&&t.avail_in!==0)return E1.msg=_l[vl-A6],A6;if(t.avail_in!==0||D!==0||F1!=N6&&i!=b7){switch(R2=-1,Ai[x].func){case Y51:R2=y2(F1);break;case oc:R2=f5(F1);break;case Pr:R2=Q5(F1);break}if((R2==R7||R2==Dl)&&(i=b7),R2==Q0||R2==R7)return t.avail_out===0&&(r=-1),Di;if(R2==Sl){if(F1==FS)x1();else if(u2(0,0,!1),F1==OJ1)for(U1=0;U1i&&(r=i),r===0?0:(a.avail_in-=r,e.set(a.next_in.subarray(a.next_in_index,a.next_in_index+r),t),a.next_in_index+=r,a.total_in+=r,r)},flush_pending(){const e=this;let t=e.dstate.pending;t>e.avail_out&&(t=e.avail_out),t!==0&&(e.next_out.set(e.dstate.pending_buf.subarray(e.dstate.pending_out,e.dstate.pending_out+t),e.next_out_index),e.next_out_index+=t,e.dstate.pending_out+=t,e.total_out+=t,e.avail_out-=t,e.dstate.pending-=t,e.dstate.pending===0&&(e.dstate.pending_out=0))}};function $J1(e){const t=this,i=new $51,a=qJ1(e&&e.chunkSize?e.chunkSize:64*1024),r=N6,n=new Uint8Array(a);let o=e?e.level:Rd;typeof o>"u"&&(o=Rd),i.deflateInit(o),i.next_out=n,t.append=function(s,l){let d,C,m=0,u=0,p=0;const V=[];if(!!s.length){i.next_in_index=0,i.next_in=s,i.avail_in=s.length;do{if(i.next_out_index=0,i.avail_out=a,d=i.deflate(r),d!=Di)throw new Error("deflating: "+i.msg);i.next_out_index&&(i.next_out_index==a?V.push(new Uint8Array(n)):V.push(n.subarray(0,i.next_out_index))),p+=i.next_out_index,l&&i.next_in_index>0&&i.next_in_index!=m&&(l(i.next_in_index),m=i.next_in_index)}while(i.avail_in>0||i.avail_out===0);return V.length>1?(C=new Uint8Array(p),V.forEach(function(f){C.set(f,u),u+=f.length})):C=V[0]?new Uint8Array(V[0]):new Uint8Array,C}},t.flush=function(){let s,l,d=0,C=0;const m=[];do{if(i.next_out_index=0,i.avail_out=a,s=i.deflate(Xt),s!=X51&&s!=Di)throw new Error("deflating: "+i.msg);a-i.avail_out>0&&m.push(n.slice(0,i.next_out_index)),C+=i.next_out_index}while(i.avail_in>0||i.avail_out===0);return i.deflateEnd(),l=new Uint8Array(C),m.forEach(function(u){l.set(u,d),d+=u.length}),l}}function qJ1(e){return e+5*(Math.floor(e/16383)+1)}const KJ1=15,Me=0,pa=1,jJ1=2,Kt=-2,Ye=-3,zS=-4,fa=-5,A0=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],q51=1440,QJ1=0,JJ1=4,e12=9,t12=5,i12=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],a12=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],r12=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],n12=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],o12=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],s12=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],i4=15;function pf(){const e=this;let t,i,a,r,n,o;function s(d,C,m,u,p,V,f,M,H,g,_){let v,S,y,D,R,N,w,x,U,E,O,z,F,J,W;E=0,R=m;do a[d[C+E]]++,E++,R--;while(R!==0);if(a[0]==m)return f[0]=-1,M[0]=0,Me;for(x=M[0],N=1;N<=i4&&a[N]===0;N++);for(w=N,xR&&(x=R),M[0]=x,J=1<z+x;){if(D++,z+=x,W=y-z,W=W>x?x:W,(S=1<<(N=w-z))>v+1&&(S-=v+1,F=w,Nq51)return Ye;n[D]=O=g[0],g[0]+=W,D!==0?(o[D]=R,r[0]=N,r[1]=x,N=R>>>z-x,r[2]=O-n[D-1]-N,H.set(r,(n[D-1]+N)*3)):f[0]=O}for(r[1]=w-z,E>=m?r[0]=128+64:_[E]>>z;N>>=1)R^=N;for(R^=N,U=(1<257?(g==Ye?H.msg="oversubscribed distance tree":g==fa?(H.msg="incomplete distance tree",g=Ye):g!=zS&&(H.msg="empty distance tree with lengths",g=Ye),g):Me)}}pf.inflate_trees_fixed=function(e,t,i,a){return e[0]=e12,t[0]=t12,i[0]=i12,a[0]=a12,Me};const Rl=0,ZS=1,GS=2,WS=3,XS=4,YS=5,$S=6,ah=7,qS=8,bl=9;function l12(){const e=this;let t,i=0,a,r=0,n=0,o=0,s=0,l=0,d=0,C=0,m,u=0,p,V=0;function f(M,H,g,_,v,S,y,D){let R,N,w,x,U,E,O,z,F,J,W,r1,$,t1,l1,V1;O=D.next_in_index,z=D.avail_in,U=y.bitb,E=y.bitk,F=y.write,J=F>=N[V1+1],E-=N[V1+1],y.win[F++]=N[V1+2],J--;continue}do{if(U>>=N[V1+1],E-=N[V1+1],(x&16)!==0){for(x&=15,$=N[V1+2]+(U&A0[x]),U>>=x,E-=x;E<15;)z--,U|=(D.read_byte(O++)&255)<>=N[V1+1],E-=N[V1+1],(x&16)!==0){for(x&=15;E>=x,E-=x,J-=$,F>=t1)l1=F-t1,F-l1>0&&2>F-l1?(y.win[F++]=y.win[l1++],y.win[F++]=y.win[l1++],$-=2):(y.win.set(y.win.subarray(l1,l1+2),F),F+=2,l1+=2,$-=2);else{l1=F-t1;do l1+=y.end;while(l1<0);if(x=y.end-l1,$>x){if($-=x,F-l1>0&&x>F-l1)do y.win[F++]=y.win[l1++];while(--x!==0);else y.win.set(y.win.subarray(l1,l1+x),F),F+=x,l1+=x,x=0;l1=0}}if(F-l1>0&&$>F-l1)do y.win[F++]=y.win[l1++];while(--$!==0);else y.win.set(y.win.subarray(l1,l1+$),F),F+=$,l1+=$,$=0;break}else if((x&64)===0)R+=N[V1+2],R+=U&A0[x],V1=(w+R)*3,x=N[V1];else return D.msg="invalid distance code",$=D.avail_in-z,$=E>>3<$?E>>3:$,z+=$,O-=$,E-=$<<3,y.bitb=U,y.bitk=E,D.avail_in=z,D.total_in+=O-D.next_in_index,D.next_in_index=O,y.write=F,Ye;while(!0);break}if((x&64)===0){if(R+=N[V1+2],R+=U&A0[x],V1=(w+R)*3,(x=N[V1])===0){U>>=N[V1+1],E-=N[V1+1],y.win[F++]=N[V1+2],J--;break}}else return(x&32)!==0?($=D.avail_in-z,$=E>>3<$?E>>3:$,z+=$,O-=$,E-=$<<3,y.bitb=U,y.bitk=E,D.avail_in=z,D.total_in+=O-D.next_in_index,D.next_in_index=O,y.write=F,pa):(D.msg="invalid literal/length code",$=D.avail_in-z,$=E>>3<$?E>>3:$,z+=$,O-=$,E-=$<<3,y.bitb=U,y.bitk=E,D.avail_in=z,D.total_in+=O-D.next_in_index,D.next_in_index=O,y.write=F,Ye)}while(!0)}while(J>=258&&z>=10);return $=D.avail_in-z,$=E>>3<$?E>>3:$,z+=$,O-=$,E-=$<<3,y.bitb=U,y.bitk=E,D.avail_in=z,D.total_in+=O-D.next_in_index,D.next_in_index=O,y.write=F,Me}e.init=function(M,H,g,_,v,S){t=Rl,d=M,C=H,m=g,u=_,p=v,V=S,a=null},e.proc=function(M,H,g){let _,v,S,y=0,D=0,R=0,N,w,x,U;for(R=H.next_in_index,N=H.avail_in,y=M.bitb,D=M.bitk,w=M.write,x=w=258&&N>=10&&(M.bitb=y,M.bitk=D,H.avail_in=N,H.total_in+=R-H.next_in_index,H.next_in_index=R,M.write=w,g=f(d,C,m,u,p,V,M,H),R=H.next_in_index,N=H.avail_in,y=M.bitb,D=M.bitk,w=M.write,x=w>>=a[v+1],D-=a[v+1],S=a[v],S===0){o=a[v+2],t=$S;break}if((S&16)!==0){s=S&15,i=a[v+2],t=GS;break}if((S&64)===0){n=S,r=v/3+a[v+2];break}if((S&32)!==0){t=ah;break}return t=bl,H.msg="invalid literal/length code",g=Ye,M.bitb=y,M.bitk=D,H.avail_in=N,H.total_in+=R-H.next_in_index,H.next_in_index=R,M.write=w,M.inflate_flush(H,g);case GS:for(_=s;D<_;){if(N!==0)g=Me;else return M.bitb=y,M.bitk=D,H.avail_in=N,H.total_in+=R-H.next_in_index,H.next_in_index=R,M.write=w,M.inflate_flush(H,g);N--,y|=(H.read_byte(R++)&255)<>=_,D-=_,n=C,a=p,r=V,t=WS;case WS:for(_=n;D<_;){if(N!==0)g=Me;else return M.bitb=y,M.bitk=D,H.avail_in=N,H.total_in+=R-H.next_in_index,H.next_in_index=R,M.write=w,M.inflate_flush(H,g);N--,y|=(H.read_byte(R++)&255)<>=a[v+1],D-=a[v+1],S=a[v],(S&16)!==0){s=S&15,l=a[v+2],t=XS;break}if((S&64)===0){n=S,r=v/3+a[v+2];break}return t=bl,H.msg="invalid distance code",g=Ye,M.bitb=y,M.bitk=D,H.avail_in=N,H.total_in+=R-H.next_in_index,H.next_in_index=R,M.write=w,M.inflate_flush(H,g);case XS:for(_=s;D<_;){if(N!==0)g=Me;else return M.bitb=y,M.bitk=D,H.avail_in=N,H.total_in+=R-H.next_in_index,H.next_in_index=R,M.write=w,M.inflate_flush(H,g);N--,y|=(H.read_byte(R++)&255)<>=_,D-=_,t=YS;case YS:for(U=w-l;U<0;)U+=M.end;for(;i!==0;){if(x===0&&(w==M.end&&M.read!==0&&(w=0,x=w7&&(D-=8,N++,R--),M.write=w,g=M.inflate_flush(H,g),w=M.write,x=wf.avail_out&&(H=f.avail_out),H!==0&&M==fa&&(M=Me),f.avail_out-=H,f.total_out+=H,f.next_out.set(i.win.subarray(_,_+H),g),g+=H,_+=H,_==i.end&&(_=0,i.write==i.end&&(i.write=0),H=i.write-_,H>f.avail_out&&(H=f.avail_out),H!==0&&M==fa&&(M=Me),f.avail_out-=H,f.total_out+=H,f.next_out.set(i.win.subarray(_,_+H),g),g+=H,_+=H),f.next_out_index=g,i.read=_,M},i.proc=function(f,M){let H,g,_,v,S,y,D,R;for(v=f.next_in_index,S=f.avail_in,g=i.bitb,_=i.bitk,y=i.write,D=y>>1){case 0:g>>>=3,_-=3,H=_&7,g>>>=H,_-=H,a=rh;break;case 1:N=[],w=[],x=[[]],U=[[]],pf.inflate_trees_fixed(N,w,x,U),C.init(N[0],w[0],x[0],0,U[0],0),g>>>=3,_-=3,a=Nl;break;case 2:g>>>=3,_-=3,a=QS;break;case 3:return g>>>=3,_-=3,a=Dr,f.msg="invalid block type",M=Ye,i.bitb=g,i.bitk=_,f.avail_in=S,f.total_in+=v-f.next_in_index,f.next_in_index=v,i.write=y,i.inflate_flush(f,M)}break;case rh:for(;_<32;){if(S!==0)M=Me;else return i.bitb=g,i.bitk=_,f.avail_in=S,f.total_in+=v-f.next_in_index,f.next_in_index=v,i.write=y,i.inflate_flush(f,M);S--,g|=(f.read_byte(v++)&255)<<_,_+=8}if((~g>>>16&65535)!=(g&65535))return a=Dr,f.msg="invalid stored block lengths",M=Ye,i.bitb=g,i.bitk=_,f.avail_in=S,f.total_in+=v-f.next_in_index,f.next_in_index=v,i.write=y,i.inflate_flush(f,M);r=g&65535,g=_=0,a=r!==0?jS:m!==0?wl:v6;break;case jS:if(S===0||D===0&&(y==i.end&&i.read!==0&&(y=0,D=yS&&(H=S),H>D&&(H=D),i.win.set(f.read_buf(v,H),y),v+=H,S-=H,y+=H,D-=H,(r-=H)!==0)break;a=m!==0?wl:v6;break;case QS:for(;_<14;){if(S!==0)M=Me;else return i.bitb=g,i.bitk=_,f.avail_in=S,f.total_in+=v-f.next_in_index,f.next_in_index=v,i.write=y,i.inflate_flush(f,M);S--,g|=(f.read_byte(v++)&255)<<_,_+=8}if(n=H=g&16383,(H&31)>29||(H>>5&31)>29)return a=Dr,f.msg="too many length or distance symbols",M=Ye,i.bitb=g,i.bitk=_,f.avail_in=S,f.total_in+=v-f.next_in_index,f.next_in_index=v,i.write=y,i.inflate_flush(f,M);if(H=258+(H&31)+(H>>5&31),!s||s.length>>=14,_-=14,o=0,a=JS;case JS:for(;o<4+(n>>>10);){for(;_<3;){if(S!==0)M=Me;else return i.bitb=g,i.bitk=_,f.avail_in=S,f.total_in+=v-f.next_in_index,f.next_in_index=v,i.write=y,i.inflate_flush(f,M);S--,g|=(f.read_byte(v++)&255)<<_,_+=8}s[KS[o++]]=g&7,g>>>=3,_-=3}for(;o<19;)s[KS[o++]]=0;if(l[0]=7,H=V.inflate_trees_bits(s,l,d,u,f),H!=Me)return M=H,M==Ye&&(s=null,a=Dr),i.bitb=g,i.bitk=_,f.avail_in=S,f.total_in+=v-f.next_in_index,f.next_in_index=v,i.write=y,i.inflate_flush(f,M);o=0,a=eD;case eD:for(;H=n,!(o>=258+(H&31)+(H>>5&31));){let J,W;for(H=l[0];_>>=H,_-=H,s[o++]=W;else{for(R=W==18?7:W-14,J=W==18?11:3;_>>=H,_-=H,J+=g&A0[R],g>>>=R,_-=R,R=o,H=n,R+J>258+(H&31)+(H>>5&31)||W==16&&R<1)return s=null,a=Dr,f.msg="invalid bit length repeat",M=Ye,i.bitb=g,i.bitk=_,f.avail_in=S,f.total_in+=v-f.next_in_index,f.next_in_index=v,i.write=y,i.inflate_flush(f,M);W=W==16?s[R-1]:0;do s[R++]=W;while(--J!==0);o=R}}if(d[0]=-1,E=[],O=[],z=[],F=[],E[0]=9,O[0]=6,H=n,H=V.inflate_trees_dynamic(257+(H&31),1+(H>>5&31),s,E,O,z,F,u,f),H!=Me)return H==Ye&&(s=null,a=Dr),M=H,i.bitb=g,i.bitk=_,f.avail_in=S,f.total_in+=v-f.next_in_index,f.next_in_index=v,i.write=y,i.inflate_flush(f,M);C.init(E[0],O[0],u,z[0],u,F[0]),a=Nl;case Nl:if(i.bitb=g,i.bitk=_,f.avail_in=S,f.total_in+=v-f.next_in_index,f.next_in_index=v,i.write=y,(M=C.proc(i,f,M))!=pa)return i.inflate_flush(f,M);if(M=Me,C.free(f),v=f.next_in_index,S=f.avail_in,g=i.bitb,_=i.bitk,y=i.write,D=y15?(e.inflateEnd(i),Kt):(e.wbits=a,i.istate.blocks=new c12(i,1<>4)+8>o.wbits){o.mode=a4,i.msg="invalid win size",o.marker=5;break}o.mode=iD;case iD:if(i.avail_in===0)return r;if(r=a,i.avail_in--,i.total_in++,n=i.read_byte(i.next_in_index++)&255,((o.method<<8)+n)%31!==0){o.mode=a4,i.msg="incorrect header check",o.marker=5;break}if((n&d12)===0){o.mode=N7;break}o.mode=aD;case aD:if(i.avail_in===0)return r;r=a,i.avail_in--,i.total_in++,o.need=(i.read_byte(i.next_in_index++)&255)<<24&4278190080,o.mode=rD;case rD:if(i.avail_in===0)return r;r=a,i.avail_in--,i.total_in++,o.need+=(i.read_byte(i.next_in_index++)&255)<<16&16711680,o.mode=nD;case nD:if(i.avail_in===0)return r;r=a,i.avail_in--,i.total_in++,o.need+=(i.read_byte(i.next_in_index++)&255)<<8&65280,o.mode=oD;case oD:return i.avail_in===0?r:(r=a,i.avail_in--,i.total_in++,o.need+=i.read_byte(i.next_in_index++)&255,o.mode=nh,jJ1);case nh:return o.mode=a4,i.msg="need dictionary",o.marker=0,Kt;case N7:if(r=o.blocks.proc(i,r),r==Ye){o.mode=a4,o.marker=0;break}if(r==Me&&(r=a),r!=pa)return r;r=a,o.blocks.reset(i,o.was),o.mode=sD;case sD:return i.avail_in=0,pa;case a4:return Ye;default:return Kt}},e.inflateSetDictionary=function(i,a,r){let n=0,o=r;if(!i||!i.istate||i.istate.mode!=nh)return Kt;const s=i.istate;return o>=1<0&&i.next_in_index!=u&&(l(i.next_in_index),u=i.next_in_index)}while(i.avail_in>0||i.avail_out===0);return d.length>1?(m=new Uint8Array(V),d.forEach(function(f){m.set(f,p),p+=f.length})):m=d[0]?new Uint8Array(d[0]):new Uint8Array,m}},t.flush=function(){i.inflateEnd()}}const e0=4294967295,jt=65535,lD=8,f12=0,V12=99,L12=67324752,j51=134695760,H12=j51,M12=33639248,g12=101010256,A12=101075792,v12=117853008,ff=22,Q51=20,J51=56,_12=ff+Q51+J51,S12=1,D12=39169,y12=10,R12=1,et1=21589,b12=6534,N12=1,w12=8,T12=2048,E12=16,P12=20,cD=45,dD=51,oh="/",CD=new Date(2107,11,31),mD=new Date(1980,0,1),Mt=void 0,j4="undefined",W8="function";class uD{constructor(t){return class extends TransformStream{constructor(i,a){const r=new t(a);super({transform(n,o){o.enqueue(r.append(n))},flush(n){const o=r.flush();o&&n.enqueue(o)}})}}}}const I12=64;let tt1=2;try{typeof navigator!=j4&&navigator.hardwareConcurrency&&(tt1=navigator.hardwareConcurrency)}catch{}const O12={chunkSize:512*1024,maxWorkers:tt1,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:Mt,CompressionStreamNative:typeof CompressionStream!=j4&&CompressionStream,DecompressionStreamNative:typeof DecompressionStream!=j4&&DecompressionStream},p4=Object.assign({},O12);function U12(){return p4}function x12(e){return Math.max(e.chunkSize,I12)}function sM(e){const{baseURL:t,chunkSize:i,maxWorkers:a,terminateWorkerTimeout:r,useCompressionStream:n,useWebWorkers:o,Deflate:s,Inflate:l,CompressionStream:d,DecompressionStream:C,workerScripts:m}=e;if(r4("baseURL",t),r4("chunkSize",i),r4("maxWorkers",a),r4("terminateWorkerTimeout",r),r4("useCompressionStream",n),r4("useWebWorkers",o),s&&(p4.CompressionStream=new uD(s)),l&&(p4.DecompressionStream=new uD(l)),r4("CompressionStream",d),r4("DecompressionStream",C),m!==Mt){const{deflate:u,inflate:p}=m;if((u||p)&&(p4.workerScripts||(p4.workerScripts={})),u){if(!Array.isArray(u))throw new Error("workerScripts.deflate must be an array");p4.workerScripts.deflate=u}if(p){if(!Array.isArray(p))throw new Error("workerScripts.inflate must be an array");p4.workerScripts.inflate=p}}}function r4(e,t){t!==Mt&&(p4[e]=t)}const sh={application:{"andrew-inset":"ez",annodex:"anx","atom+xml":"atom","atomcat+xml":"atomcat","atomserv+xml":"atomsrv",bbolin:"lin","cu-seeme":"cu","davmount+xml":"davmount",dsptype:"tsp",ecmascript:["es","ecma"],futuresplash:"spl",hta:"hta","java-archive":"jar","java-serialized-object":"ser","java-vm":"class",m3g:"m3g","mac-binhex40":"hqx",mathematica:["nb","ma","mb"],msaccess:"mdb",msword:["doc","dot","wiz"],mxf:"mxf",oda:"oda",ogg:"ogx",pdf:"pdf","pgp-keys":"key","pgp-signature":["asc","sig"],"pics-rules":"prf",postscript:["ps","ai","eps","epsi","epsf","eps2","eps3"],rar:"rar","rdf+xml":"rdf","rss+xml":"rss",rtf:"rtf","xhtml+xml":["xhtml","xht"],xml:["xml","xsl","xsd","xpdl"],"xspf+xml":"xspf",zip:"zip","vnd.android.package-archive":"apk","vnd.cinderella":"cdy","vnd.google-earth.kml+xml":"kml","vnd.google-earth.kmz":"kmz","vnd.mozilla.xul+xml":"xul","vnd.ms-excel":["xls","xlb","xlt","xlm","xla","xlc","xlw"],"vnd.ms-pki.seccat":"cat","vnd.ms-pki.stl":"stl","vnd.ms-powerpoint":["ppt","pps","pot","ppa","pwz"],"vnd.oasis.opendocument.chart":"odc","vnd.oasis.opendocument.database":"odb","vnd.oasis.opendocument.formula":"odf","vnd.oasis.opendocument.graphics":"odg","vnd.oasis.opendocument.graphics-template":"otg","vnd.oasis.opendocument.image":"odi","vnd.oasis.opendocument.presentation":"odp","vnd.oasis.opendocument.presentation-template":"otp","vnd.oasis.opendocument.spreadsheet":"ods","vnd.oasis.opendocument.spreadsheet-template":"ots","vnd.oasis.opendocument.text":"odt","vnd.oasis.opendocument.text-master":["odm","otm"],"vnd.oasis.opendocument.text-template":"ott","vnd.oasis.opendocument.text-web":"oth","vnd.openxmlformats-officedocument.spreadsheetml.sheet":"xlsx","vnd.openxmlformats-officedocument.spreadsheetml.template":"xltx","vnd.openxmlformats-officedocument.presentationml.presentation":"pptx","vnd.openxmlformats-officedocument.presentationml.slideshow":"ppsx","vnd.openxmlformats-officedocument.presentationml.template":"potx","vnd.openxmlformats-officedocument.wordprocessingml.document":"docx","vnd.openxmlformats-officedocument.wordprocessingml.template":"dotx","vnd.smaf":"mmf","vnd.stardivision.calc":"sdc","vnd.stardivision.chart":"sds","vnd.stardivision.draw":"sda","vnd.stardivision.impress":"sdd","vnd.stardivision.math":["sdf","smf"],"vnd.stardivision.writer":["sdw","vor"],"vnd.stardivision.writer-global":"sgl","vnd.sun.xml.calc":"sxc","vnd.sun.xml.calc.template":"stc","vnd.sun.xml.draw":"sxd","vnd.sun.xml.draw.template":"std","vnd.sun.xml.impress":"sxi","vnd.sun.xml.impress.template":"sti","vnd.sun.xml.math":"sxm","vnd.sun.xml.writer":"sxw","vnd.sun.xml.writer.global":"sxg","vnd.sun.xml.writer.template":"stw","vnd.symbian.install":["sis","sisx"],"vnd.visio":["vsd","vst","vss","vsw","vsdx","vssx","vstx","vssm","vstm"],"vnd.wap.wbxml":"wbxml","vnd.wap.wmlc":"wmlc","vnd.wap.wmlscriptc":"wmlsc","vnd.wordperfect":"wpd","vnd.wordperfect5.1":"wp5","x-123":"wk","x-7z-compressed":"7z","x-abiword":"abw","x-apple-diskimage":"dmg","x-bcpio":"bcpio","x-bittorrent":"torrent","x-cbr":["cbr","cba","cbt","cb7"],"x-cbz":"cbz","x-cdf":["cdf","cda"],"x-cdlink":"vcd","x-chess-pgn":"pgn","x-cpio":"cpio","x-csh":"csh","x-director":["dir","dxr","cst","cct","cxt","w3d","fgd","swa"],"x-dms":"dms","x-doom":"wad","x-dvi":"dvi","x-httpd-eruby":"rhtml","x-font":"pcf.Z","x-freemind":"mm","x-gnumeric":"gnumeric","x-go-sgf":"sgf","x-graphing-calculator":"gcf","x-gtar":["gtar","taz"],"x-hdf":"hdf","x-httpd-php":["phtml","pht","php"],"x-httpd-php-source":"phps","x-httpd-php3":"php3","x-httpd-php3-preprocessed":"php3p","x-httpd-php4":"php4","x-httpd-php5":"php5","x-ica":"ica","x-info":"info","x-internet-signup":["ins","isp"],"x-iphone":"iii","x-iso9660-image":"iso","x-java-jnlp-file":"jnlp","x-jmol":"jmz","x-killustrator":"kil","x-latex":"latex","x-lyx":"lyx","x-lzx":"lzx","x-maker":["frm","fb","fbdoc"],"x-ms-wmd":"wmd","x-msdos-program":["com","exe","bat","dll"],"x-netcdf":["nc"],"x-ns-proxy-autoconfig":["pac","dat"],"x-nwc":"nwc","x-object":"o","x-oz-application":"oza","x-pkcs7-certreqresp":"p7r","x-python-code":["pyc","pyo"],"x-qgis":["qgs","shp","shx"],"x-quicktimeplayer":"qtl","x-redhat-package-manager":["rpm","rpa"],"x-ruby":"rb","x-sh":"sh","x-shar":"shar","x-shockwave-flash":["swf","swfl"],"x-silverlight":"scr","x-stuffit":"sit","x-sv4cpio":"sv4cpio","x-sv4crc":"sv4crc","x-tar":"tar","x-tex-gf":"gf","x-tex-pk":"pk","x-texinfo":["texinfo","texi"],"x-trash":["~","%","bak","old","sik"],"x-ustar":"ustar","x-wais-source":"src","x-wingz":"wz","x-x509-ca-cert":["crt","der","cer"],"x-xcf":"xcf","x-xfig":"fig","x-xpinstall":"xpi",applixware:"aw","atomsvc+xml":"atomsvc","ccxml+xml":"ccxml","cdmi-capability":"cdmia","cdmi-container":"cdmic","cdmi-domain":"cdmid","cdmi-object":"cdmio","cdmi-queue":"cdmiq","docbook+xml":"dbk","dssc+der":"dssc","dssc+xml":"xdssc","emma+xml":"emma","epub+zip":"epub",exi:"exi","font-tdpfr":"pfr","gml+xml":"gml","gpx+xml":"gpx",gxf:"gxf",hyperstudio:"stk","inkml+xml":["ink","inkml"],ipfix:"ipfix","jsonml+json":"jsonml","lost+xml":"lostxml","mads+xml":"mads",marc:"mrc","marcxml+xml":"mrcx","mathml+xml":["mathml","mml"],mbox:"mbox","mediaservercontrol+xml":"mscml","metalink+xml":"metalink","metalink4+xml":"meta4","mets+xml":"mets","mods+xml":"mods",mp21:["m21","mp21"],mp4:"mp4s","oebps-package+xml":"opf","omdoc+xml":"omdoc",onenote:["onetoc","onetoc2","onetmp","onepkg"],oxps:"oxps","patch-ops-error+xml":"xer","pgp-encrypted":"pgp",pkcs10:"p10","pkcs7-mime":["p7m","p7c"],"pkcs7-signature":"p7s",pkcs8:"p8","pkix-attr-cert":"ac","pkix-crl":"crl","pkix-pkipath":"pkipath",pkixcmp:"pki","pls+xml":"pls","prs.cww":"cww","pskc+xml":"pskcxml","reginfo+xml":"rif","relax-ng-compact-syntax":"rnc","resource-lists+xml":"rl","resource-lists-diff+xml":"rld","rls-services+xml":"rs","rpki-ghostbusters":"gbr","rpki-manifest":"mft","rpki-roa":"roa","rsd+xml":"rsd","sbml+xml":"sbml","scvp-cv-request":"scq","scvp-cv-response":"scs","scvp-vp-request":"spq","scvp-vp-response":"spp",sdp:"sdp","set-payment-initiation":"setpay","set-registration-initiation":"setreg","shf+xml":"shf","sparql-query":"rq","sparql-results+xml":"srx",srgs:"gram","srgs+xml":"grxml","sru+xml":"sru","ssdl+xml":"ssdl","ssml+xml":"ssml","tei+xml":["tei","teicorpus"],"thraud+xml":"tfi","timestamped-data":"tsd","vnd.3gpp.pic-bw-large":"plb","vnd.3gpp.pic-bw-small":"psb","vnd.3gpp.pic-bw-var":"pvb","vnd.3gpp2.tcap":"tcap","vnd.3m.post-it-notes":"pwn","vnd.accpac.simply.aso":"aso","vnd.accpac.simply.imp":"imp","vnd.acucobol":"acu","vnd.acucorp":["atc","acutc"],"vnd.adobe.air-application-installer-package+zip":"air","vnd.adobe.formscentral.fcdt":"fcdt","vnd.adobe.fxp":["fxp","fxpl"],"vnd.adobe.xdp+xml":"xdp","vnd.adobe.xfdf":"xfdf","vnd.ahead.space":"ahead","vnd.airzip.filesecure.azf":"azf","vnd.airzip.filesecure.azs":"azs","vnd.amazon.ebook":"azw","vnd.americandynamics.acc":"acc","vnd.amiga.ami":"ami","vnd.anser-web-certificate-issue-initiation":"cii","vnd.anser-web-funds-transfer-initiation":"fti","vnd.antix.game-component":"atx","vnd.apple.installer+xml":"mpkg","vnd.apple.mpegurl":"m3u8","vnd.aristanetworks.swi":"swi","vnd.astraea-software.iota":"iota","vnd.audiograph":"aep","vnd.blueice.multipass":"mpm","vnd.bmi":"bmi","vnd.businessobjects":"rep","vnd.chemdraw+xml":"cdxml","vnd.chipnuts.karaoke-mmd":"mmd","vnd.claymore":"cla","vnd.cloanto.rp9":"rp9","vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"vnd.cluetrust.cartomobile-config":"c11amc","vnd.cluetrust.cartomobile-config-pkg":"c11amz","vnd.commonspace":"csp","vnd.contact.cmsg":"cdbcmsg","vnd.cosmocaller":"cmc","vnd.crick.clicker":"clkx","vnd.crick.clicker.keyboard":"clkk","vnd.crick.clicker.palette":"clkp","vnd.crick.clicker.template":"clkt","vnd.crick.clicker.wordbank":"clkw","vnd.criticaltools.wbs+xml":"wbs","vnd.ctc-posml":"pml","vnd.cups-ppd":"ppd","vnd.curl.car":"car","vnd.curl.pcurl":"pcurl","vnd.dart":"dart","vnd.data-vision.rdz":"rdz","vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"vnd.dece.ttml+xml":["uvt","uvvt"],"vnd.dece.unspecified":["uvx","uvvx"],"vnd.dece.zip":["uvz","uvvz"],"vnd.denovo.fcselayout-link":"fe_launch","vnd.dna":"dna","vnd.dolby.mlp":"mlp","vnd.dpgraph":"dpg","vnd.dreamfactory":"dfac","vnd.ds-keypoint":"kpxx","vnd.dvb.ait":"ait","vnd.dvb.service":"svc","vnd.dynageo":"geo","vnd.ecowin.chart":"mag","vnd.enliven":"nml","vnd.epson.esf":"esf","vnd.epson.msf":"msf","vnd.epson.quickanime":"qam","vnd.epson.salt":"slt","vnd.epson.ssf":"ssf","vnd.eszigno3+xml":["es3","et3"],"vnd.ezpix-album":"ez2","vnd.ezpix-package":"ez3","vnd.fdf":"fdf","vnd.fdsn.mseed":"mseed","vnd.fdsn.seed":["seed","dataless"],"vnd.flographit":"gph","vnd.fluxtime.clip":"ftc","vnd.framemaker":["fm","frame","maker","book"],"vnd.frogans.fnc":"fnc","vnd.frogans.ltf":"ltf","vnd.fsc.weblaunch":"fsc","vnd.fujitsu.oasys":"oas","vnd.fujitsu.oasys2":"oa2","vnd.fujitsu.oasys3":"oa3","vnd.fujitsu.oasysgp":"fg5","vnd.fujitsu.oasysprs":"bh2","vnd.fujixerox.ddd":"ddd","vnd.fujixerox.docuworks":"xdw","vnd.fujixerox.docuworks.binder":"xbd","vnd.fuzzysheet":"fzs","vnd.genomatix.tuxedo":"txd","vnd.geogebra.file":"ggb","vnd.geogebra.tool":"ggt","vnd.geometry-explorer":["gex","gre"],"vnd.geonext":"gxt","vnd.geoplan":"g2w","vnd.geospace":"g3w","vnd.gmx":"gmx","vnd.grafeq":["gqf","gqs"],"vnd.groove-account":"gac","vnd.groove-help":"ghf","vnd.groove-identity-message":"gim","vnd.groove-injector":"grv","vnd.groove-tool-message":"gtm","vnd.groove-tool-template":"tpl","vnd.groove-vcard":"vcg","vnd.hal+xml":"hal","vnd.handheld-entertainment+xml":"zmm","vnd.hbci":"hbci","vnd.hhe.lesson-player":"les","vnd.hp-hpgl":"hpgl","vnd.hp-hpid":"hpid","vnd.hp-hps":"hps","vnd.hp-jlyt":"jlt","vnd.hp-pcl":"pcl","vnd.hp-pclxl":"pclxl","vnd.hydrostatix.sof-data":"sfd-hdstx","vnd.ibm.minipay":"mpy","vnd.ibm.modcap":["afp","listafp","list3820"],"vnd.ibm.rights-management":"irm","vnd.ibm.secure-container":"sc","vnd.iccprofile":["icc","icm"],"vnd.igloader":"igl","vnd.immervision-ivp":"ivp","vnd.immervision-ivu":"ivu","vnd.insors.igm":"igm","vnd.intercon.formnet":["xpw","xpx"],"vnd.intergeo":"i2g","vnd.intu.qbo":"qbo","vnd.intu.qfx":"qfx","vnd.ipunplugged.rcprofile":"rcprofile","vnd.irepository.package+xml":"irp","vnd.is-xpr":"xpr","vnd.isac.fcs":"fcs","vnd.jam":"jam","vnd.jcp.javame.midlet-rms":"rms","vnd.jisp":"jisp","vnd.joost.joda-archive":"joda","vnd.kahootz":["ktz","ktr"],"vnd.kde.karbon":"karbon","vnd.kde.kchart":"chrt","vnd.kde.kformula":"kfo","vnd.kde.kivio":"flw","vnd.kde.kontour":"kon","vnd.kde.kpresenter":["kpr","kpt"],"vnd.kde.kspread":"ksp","vnd.kde.kword":["kwd","kwt"],"vnd.kenameaapp":"htke","vnd.kidspiration":"kia","vnd.kinar":["kne","knp"],"vnd.koan":["skp","skd","skt","skm"],"vnd.kodak-descriptor":"sse","vnd.las.las+xml":"lasxml","vnd.llamagraphics.life-balance.desktop":"lbd","vnd.llamagraphics.life-balance.exchange+xml":"lbe","vnd.lotus-1-2-3":"123","vnd.lotus-approach":"apr","vnd.lotus-freelance":"pre","vnd.lotus-notes":"nsf","vnd.lotus-organizer":"org","vnd.lotus-screencam":"scm","vnd.lotus-wordpro":"lwp","vnd.macports.portpkg":"portpkg","vnd.mcd":"mcd","vnd.medcalcdata":"mc1","vnd.mediastation.cdkey":"cdkey","vnd.mfer":"mwf","vnd.mfmp":"mfm","vnd.micrografx.flo":"flo","vnd.micrografx.igx":"igx","vnd.mif":"mif","vnd.mobius.daf":"daf","vnd.mobius.dis":"dis","vnd.mobius.mbk":"mbk","vnd.mobius.mqy":"mqy","vnd.mobius.msl":"msl","vnd.mobius.plc":"plc","vnd.mobius.txf":"txf","vnd.mophun.application":"mpn","vnd.mophun.certificate":"mpc","vnd.ms-artgalry":"cil","vnd.ms-cab-compressed":"cab","vnd.ms-excel.addin.macroenabled.12":"xlam","vnd.ms-excel.sheet.binary.macroenabled.12":"xlsb","vnd.ms-excel.sheet.macroenabled.12":"xlsm","vnd.ms-excel.template.macroenabled.12":"xltm","vnd.ms-fontobject":"eot","vnd.ms-htmlhelp":"chm","vnd.ms-ims":"ims","vnd.ms-lrm":"lrm","vnd.ms-officetheme":"thmx","vnd.ms-powerpoint.addin.macroenabled.12":"ppam","vnd.ms-powerpoint.presentation.macroenabled.12":"pptm","vnd.ms-powerpoint.slide.macroenabled.12":"sldm","vnd.ms-powerpoint.slideshow.macroenabled.12":"ppsm","vnd.ms-powerpoint.template.macroenabled.12":"potm","vnd.ms-project":["mpp","mpt"],"vnd.ms-word.document.macroenabled.12":"docm","vnd.ms-word.template.macroenabled.12":"dotm","vnd.ms-works":["wps","wks","wcm","wdb"],"vnd.ms-wpl":"wpl","vnd.ms-xpsdocument":"xps","vnd.mseq":"mseq","vnd.musician":"mus","vnd.muvee.style":"msty","vnd.mynfc":"taglet","vnd.neurolanguage.nlu":"nlu","vnd.nitf":["ntf","nitf"],"vnd.noblenet-directory":"nnd","vnd.noblenet-sealer":"nns","vnd.noblenet-web":"nnw","vnd.nokia.n-gage.data":"ngdat","vnd.nokia.n-gage.symbian.install":"n-gage","vnd.nokia.radio-preset":"rpst","vnd.nokia.radio-presets":"rpss","vnd.novadigm.edm":"edm","vnd.novadigm.edx":"edx","vnd.novadigm.ext":"ext","vnd.oasis.opendocument.chart-template":"otc","vnd.oasis.opendocument.formula-template":"odft","vnd.oasis.opendocument.image-template":"oti","vnd.olpc-sugar":"xo","vnd.oma.dd2+xml":"dd2","vnd.openofficeorg.extension":"oxt","vnd.openxmlformats-officedocument.presentationml.slide":"sldx","vnd.osgeo.mapguide.package":"mgp","vnd.osgi.dp":"dp","vnd.osgi.subsystem":"esa","vnd.palm":["pdb","pqa","oprc"],"vnd.pawaafile":"paw","vnd.pg.format":"str","vnd.pg.osasli":"ei6","vnd.picsel":"efif","vnd.pmi.widget":"wg","vnd.pocketlearn":"plf","vnd.powerbuilder6":"pbd","vnd.previewsystems.box":"box","vnd.proteus.magazine":"mgz","vnd.publishare-delta-tree":"qps","vnd.pvi.ptid1":"ptid","vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"vnd.realvnc.bed":"bed","vnd.recordare.musicxml":"mxl","vnd.recordare.musicxml+xml":"musicxml","vnd.rig.cryptonote":"cryptonote","vnd.rn-realmedia":"rm","vnd.rn-realmedia-vbr":"rmvb","vnd.route66.link66+xml":"link66","vnd.sailingtracker.track":"st","vnd.seemail":"see","vnd.sema":"sema","vnd.semd":"semd","vnd.semf":"semf","vnd.shana.informed.formdata":"ifm","vnd.shana.informed.formtemplate":"itp","vnd.shana.informed.interchange":"iif","vnd.shana.informed.package":"ipk","vnd.simtech-mindmapper":["twd","twds"],"vnd.smart.teacher":"teacher","vnd.solent.sdkm+xml":["sdkm","sdkd"],"vnd.spotfire.dxp":"dxp","vnd.spotfire.sfs":"sfs","vnd.stepmania.package":"smzip","vnd.stepmania.stepchart":"sm","vnd.sus-calendar":["sus","susp"],"vnd.svd":"svd","vnd.syncml+xml":"xsm","vnd.syncml.dm+wbxml":"bdm","vnd.syncml.dm+xml":"xdm","vnd.tao.intent-module-archive":"tao","vnd.tcpdump.pcap":["pcap","cap","dmp"],"vnd.tmobile-livetv":"tmo","vnd.trid.tpt":"tpt","vnd.triscape.mxs":"mxs","vnd.trueapp":"tra","vnd.ufdl":["ufd","ufdl"],"vnd.uiq.theme":"utz","vnd.umajin":"umj","vnd.unity":"unityweb","vnd.uoml+xml":"uoml","vnd.vcx":"vcx","vnd.visionary":"vis","vnd.vsf":"vsf","vnd.webturbo":"wtb","vnd.wolfram.player":"nbp","vnd.wqd":"wqd","vnd.wt.stf":"stf","vnd.xara":"xar","vnd.xfdl":"xfdl","vnd.yamaha.hv-dic":"hvd","vnd.yamaha.hv-script":"hvs","vnd.yamaha.hv-voice":"hvp","vnd.yamaha.openscoreformat":"osf","vnd.yamaha.openscoreformat.osfpvg+xml":"osfpvg","vnd.yamaha.smaf-audio":"saf","vnd.yamaha.smaf-phrase":"spf","vnd.yellowriver-custom-menu":"cmp","vnd.zul":["zir","zirz"],"vnd.zzazz.deck+xml":"zaz","voicexml+xml":"vxml",widget:"wgt",winhlp:"hlp","wsdl+xml":"wsdl","wspolicy+xml":"wspolicy","x-ace-compressed":"ace","x-authorware-bin":["aab","x32","u32","vox"],"x-authorware-map":"aam","x-authorware-seg":"aas","x-blorb":["blb","blorb"],"x-bzip":"bz","x-bzip2":["bz2","boz"],"x-cfs-compressed":"cfs","x-chat":"chat","x-conference":"nsc","x-dgc-compressed":"dgc","x-dtbncx+xml":"ncx","x-dtbook+xml":"dtb","x-dtbresource+xml":"res","x-eva":"eva","x-font-bdf":"bdf","x-font-ghostscript":"gsf","x-font-linux-psf":"psf","x-font-pcf":"pcf","x-font-snf":"snf","x-font-ttf":["ttf","ttc"],"x-font-type1":["pfa","pfb","pfm","afm"],"x-freearc":"arc","x-gca-compressed":"gca","x-glulx":"ulx","x-gramps-xml":"gramps","x-install-instructions":"install","x-lzh-compressed":["lzh","lha"],"x-mie":"mie","x-mobipocket-ebook":["prc","mobi"],"x-ms-application":"application","x-ms-shortcut":"lnk","x-ms-xbap":"xbap","x-msbinder":"obd","x-mscardfile":"crd","x-msclip":"clp","application/x-ms-installer":"msi","x-msmediaview":["mvb","m13","m14"],"x-msmetafile":["wmf","wmz","emf","emz"],"x-msmoney":"mny","x-mspublisher":"pub","x-msschedule":"scd","x-msterminal":"trm","x-mswrite":"wri","x-nzb":"nzb","x-pkcs12":["p12","pfx"],"x-pkcs7-certificates":["p7b","spc"],"x-research-info-systems":"ris","x-silverlight-app":"xap","x-sql":"sql","x-stuffitx":"sitx","x-subrip":"srt","x-t3vm-image":"t3","x-tex-tfm":"tfm","x-tgif":"obj","x-xliff+xml":"xlf","x-xz":"xz","x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"xaml+xml":"xaml","xcap-diff+xml":"xdf","xenc+xml":"xenc","xml-dtd":"dtd","xop+xml":"xop","xproc+xml":"xpl","xslt+xml":"xslt","xv+xml":["mxml","xhvml","xvml","xvm"],yang:"yang","yin+xml":"yin",envoy:"evy",fractals:"fif","internet-property-stream":"acx",olescript:"axs","vnd.ms-outlook":"msg","vnd.ms-pkicertstore":"sst","x-compress":"z","x-perfmon":["pma","pmc","pmr","pmw"],"ynd.ms-pkipko":"pko",gzip:["gz","tgz"],"smil+xml":["smi","smil"],"vnd.debian.binary-package":["deb","udeb"],"vnd.hzn-3d-crossword":"x3d","vnd.sqlite3":["db","sqlite","sqlite3","db-wal","sqlite-wal","db-shm","sqlite-shm"],"vnd.wap.sic":"sic","vnd.wap.slc":"slc","x-krita":["kra","krz"],"x-perl":["pm","pl"],yaml:["yaml","yml"]},audio:{amr:"amr","amr-wb":"awb",annodex:"axa",basic:["au","snd"],flac:"flac",midi:["mid","midi","kar","rmi"],mpeg:["mpga","mpega","mp3","m4a","mp2a","m2a","m3a"],mpegurl:"m3u",ogg:["oga","ogg","spx"],"prs.sid":"sid","x-aiff":"aifc","x-gsm":"gsm","x-ms-wma":"wma","x-ms-wax":"wax","x-pn-realaudio":"ram","x-realaudio":"ra","x-sd2":"sd2",adpcm:"adp",mp4:"mp4a",s3m:"s3m",silk:"sil","vnd.dece.audio":["uva","uvva"],"vnd.digital-winds":"eol","vnd.dra":"dra","vnd.dts":"dts","vnd.dts.hd":"dtshd","vnd.lucent.voice":"lvp","vnd.ms-playready.media.pya":"pya","vnd.nuera.ecelp4800":"ecelp4800","vnd.nuera.ecelp7470":"ecelp7470","vnd.nuera.ecelp9600":"ecelp9600","vnd.rip":"rip",webm:"weba","x-caf":"caf","x-matroska":"mka","x-pn-realaudio-plugin":"rmp",xm:"xm",aac:"aac",aiff:["aiff","aif","aff"],opus:"opus",wav:"wav"},chemical:{"x-alchemy":"alc","x-cache":["cac","cache"],"x-cache-csf":"csf","x-cactvs-binary":["cbin","cascii","ctab"],"x-cdx":"cdx","x-chem3d":"c3d","x-cif":"cif","x-cmdf":"cmdf","x-cml":"cml","x-compass":"cpa","x-crossfire":"bsd","x-csml":["csml","csm"],"x-ctx":"ctx","x-cxf":["cxf","cef"],"x-embl-dl-nucleotide":["emb","embl"],"x-gamess-input":["inp","gam","gamin"],"x-gaussian-checkpoint":["fch","fchk"],"x-gaussian-cube":"cub","x-gaussian-input":["gau","gjc","gjf"],"x-gaussian-log":"gal","x-gcg8-sequence":"gcg","x-genbank":"gen","x-hin":"hin","x-isostar":["istr","ist"],"x-jcamp-dx":["jdx","dx"],"x-kinemage":"kin","x-macmolecule":"mcm","x-macromodel-input":"mmod","x-mdl-molfile":"mol","x-mdl-rdfile":"rd","x-mdl-rxnfile":"rxn","x-mdl-sdfile":"sd","x-mdl-tgf":"tgf","x-mmcif":"mcif","x-mol2":"mol2","x-molconn-Z":"b","x-mopac-graph":"gpt","x-mopac-input":["mop","mopcrt","zmt"],"x-mopac-out":"moo","x-ncbi-asn1":"asn","x-ncbi-asn1-ascii":["prt","ent"],"x-ncbi-asn1-binary":"val","x-rosdal":"ros","x-swissprot":"sw","x-vamas-iso14976":"vms","x-vmd":"vmd","x-xtel":"xtel","x-xyz":"xyz"},font:{otf:"otf",woff:"woff",woff2:"woff2"},image:{gif:"gif",ief:"ief",jpeg:["jpeg","jpg","jpe","jfif","jfif-tbnl","jif"],pcx:"pcx",png:"png","svg+xml":["svg","svgz"],tiff:["tiff","tif"],"vnd.djvu":["djvu","djv"],"vnd.wap.wbmp":"wbmp","x-canon-cr2":"cr2","x-canon-crw":"crw","x-cmu-raster":"ras","x-coreldraw":"cdr","x-coreldrawpattern":"pat","x-coreldrawtemplate":"cdt","x-corelphotopaint":"cpt","x-epson-erf":"erf","x-icon":"ico","x-jg":"art","x-jng":"jng","x-nikon-nef":"nef","x-olympus-orf":"orf","x-portable-anymap":"pnm","x-portable-bitmap":"pbm","x-portable-graymap":"pgm","x-portable-pixmap":"ppm","x-rgb":"rgb","x-xbitmap":"xbm","x-xpixmap":"xpm","x-xwindowdump":"xwd",bmp:"bmp",cgm:"cgm",g3fax:"g3",ktx:"ktx","prs.btif":"btif",sgi:"sgi","vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"vnd.dwg":"dwg","vnd.dxf":"dxf","vnd.fastbidsheet":"fbs","vnd.fpx":"fpx","vnd.fst":"fst","vnd.fujixerox.edmics-mmr":"mmr","vnd.fujixerox.edmics-rlc":"rlc","vnd.ms-modi":"mdi","vnd.ms-photo":"wdp","vnd.net-fpx":"npx","vnd.xiff":"xif",webp:"webp","x-3ds":"3ds","x-cmx":"cmx","x-freehand":["fh","fhc","fh4","fh5","fh7"],"x-pict":["pic","pct"],"x-tga":"tga","cis-cod":"cod",avif:"avifs",heic:["heif","heic"],pjpeg:["pjpg"],"vnd.adobe.photoshop":"psd","x-adobe-dng":"dng","x-fuji-raf":"raf","x-icns":"icns","x-kodak-dcr":"dcr","x-kodak-k25":"k25","x-kodak-kdc":"kdc","x-minolta-mrw":"mrw","x-panasonic-raw":["raw","rw2","rwl"],"x-pentax-pef":["pef","ptx"],"x-sigma-x3f":"x3f","x-sony-arw":"arw","x-sony-sr2":"sr2","x-sony-srf":"srf"},message:{rfc822:["eml","mime","mht","mhtml","nws"]},model:{iges:["igs","iges"],mesh:["msh","mesh","silo"],vrml:["wrl","vrml"],"x3d+vrml":["x3dv","x3dvz"],"x3d+xml":"x3dz","x3d+binary":["x3db","x3dbz"],"vnd.collada+xml":"dae","vnd.dwf":"dwf","vnd.gdl":"gdl","vnd.gtw":"gtw","vnd.mts":"mts","vnd.usdz+zip":"usdz","vnd.vtu":"vtu"},text:{"cache-manifest":["manifest","appcache"],calendar:["ics","icz","ifb"],css:"css",csv:"csv",h323:"323",html:["html","htm","shtml","stm"],iuls:"uls",plain:["txt","text","brf","conf","def","list","log","in","bas","diff","ksh"],richtext:"rtx",scriptlet:["sct","wsc"],texmacs:"tm","tab-separated-values":"tsv","vnd.sun.j2me.app-descriptor":"jad","vnd.wap.wml":"wml","vnd.wap.wmlscript":"wmls","x-bibtex":"bib","x-boo":"boo","x-c++hdr":["h++","hpp","hxx","hh"],"x-c++src":["c++","cpp","cxx","cc"],"x-component":"htc","x-dsrc":"d","x-diff":"patch","x-haskell":"hs","x-java":"java","x-literate-haskell":"lhs","x-moc":"moc","x-pascal":["p","pas","pp","inc"],"x-pcs-gcd":"gcd","x-python":"py","x-scala":"scala","x-setext":"etx","x-tcl":["tcl","tk"],"x-tex":["tex","ltx","sty","cls"],"x-vcalendar":"vcs","x-vcard":"vcf",n3:"n3","prs.lines.tag":"dsc",sgml:["sgml","sgm"],troff:["t","tr","roff","man","me","ms"],turtle:"ttl","uri-list":["uri","uris","urls"],vcard:"vcard","vnd.curl":"curl","vnd.curl.dcurl":"dcurl","vnd.curl.scurl":"scurl","vnd.curl.mcurl":"mcurl","vnd.dvb.subtitle":"sub","vnd.fly":"fly","vnd.fmi.flexstor":"flx","vnd.graphviz":"gv","vnd.in3d.3dml":"3dml","vnd.in3d.spot":"spot","x-asm":["s","asm"],"x-c":["c","h","dic"],"x-fortran":["f","for","f77","f90"],"x-opml":"opml","x-nfo":"nfo","x-sfv":"sfv","x-uuencode":"uu",webviewhtml:"htt",javascript:"js",json:"json",markdown:["md","markdown","mdown","markdn"],"vnd.wap.si":"si","vnd.wap.sl":"sl"},video:{avif:"avif","3gpp":"3gp",annodex:"axv",dl:"dl",dv:["dif","dv"],fli:"fli",gl:"gl",mpeg:["mpeg","mpg","mpe","m1v","m2v","mp2","mpa","mpv2"],mp4:["mp4","mp4v","mpg4"],quicktime:["qt","mov"],ogg:"ogv","vnd.mpegurl":["mxu","m4u"],"x-flv":"flv","x-la-asf":["lsf","lsx"],"x-mng":"mng","x-ms-asf":["asf","asx","asr"],"x-ms-wm":"wm","x-ms-wmv":"wmv","x-ms-wmx":"wmx","x-ms-wvx":"wvx","x-msvideo":"avi","x-sgi-movie":"movie","x-matroska":["mpv","mkv","mk3d","mks"],"3gpp2":"3g2",h261:"h261",h263:"h263",h264:"h264",jpeg:"jpgv",jpm:["jpm","jpgm"],mj2:["mj2","mjp2"],"vnd.dece.hd":["uvh","uvvh"],"vnd.dece.mobile":["uvm","uvvm"],"vnd.dece.pd":["uvp","uvvp"],"vnd.dece.sd":["uvs","uvvs"],"vnd.dece.video":["uvv","uvvv"],"vnd.dvb.file":"dvb","vnd.fvt":"fvt","vnd.ms-playready.media.pyv":"pyv","vnd.uvvu.mp4":["uvu","uvvu"],"vnd.vivo":"viv",webm:"webm","x-f4v":"f4v","x-m4v":"m4v","x-ms-vob":"vob","x-smv":"smv",mp2t:"ts"},"x-conference":{"x-cooltalk":"ice"},"x-world":{"x-vrml":["vrm","flr","wrz","xaf","xof"]}};(()=>{const e={};for(const t of Object.keys(sh))for(const i of Object.keys(sh[t])){const a=sh[t][i];if(typeof a=="string")e[a]=t+"/"+i;else for(let r=0;r>>1^3988292384:t=t>>>1;it1[e]=t}class Vf{constructor(t){this.crc=t||-1}append(t){let i=this.crc|0;for(let a=0,r=t.length|0;a>>8^it1[(i^t[a])&255];this.crc=i}get(){return~this.crc}}class at1 extends TransformStream{constructor(){let t;const i=new Vf;super({transform(a,r){i.append(a),r.enqueue(a)},flush(){const a=new Uint8Array(4);new DataView(a.buffer).setUint32(0,i.get()),t.value=a}}),t=this}}function Lf(e){if(typeof TextEncoder==j4){e=unescape(encodeURIComponent(e));const t=new Uint8Array(e.length);for(let i=0;i0&&t&&(e[i-1]=It.partial(t,e[i-1]&2147483648>>t-1,1)),e},partial(e,t,i){return e===32?t:(i?t|0:t<<32-e)+e*1099511627776},getPartial(e){return Math.round(e/1099511627776)||32},_shiftRight(e,t,i,a){for(a===void 0&&(a=[]);t>=32;t-=32)a.push(i),i=0;if(t===0)return a.concat(e);for(let o=0;o>>t),i=e[o]<<32-t;const r=e.length?e[e.length-1]:0,n=It.getPartial(r);return a.push(It.partial(t+n&31,t+n>32?i:a.pop(),1)),a}},bd={bytes:{fromBits(e){const i=It.bitLength(e)/8,a=new Uint8Array(i);let r;for(let n=0;n>>24,r<<=8;return a},toBits(e){const t=[];let i,a=0;for(i=0;i9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const n=new Uint32Array(i);let o=0;for(let s=t.blockSize+a-(t.blockSize+a&t.blockSize-1);s<=r;s+=t.blockSize)t._block(n.subarray(16*o,16*(o+1))),o+=1;return i.splice(0,16*o),t}finalize(){const e=this;let t=e._buffer;const i=e._h;t=It.concat(t,[It.partial(1,1)]);for(let a=t.length+2;a&15;a++)t.push(0);for(t.push(Math.floor(e._length/4294967296)),t.push(e._length|0);t.length;)e._block(t.splice(0,16));return e.reset(),i}_f(e,t,i,a){if(e<=19)return t&i|~t&a;if(e<=39)return t^i^a;if(e<=59)return t&i|t&a|i&a;if(e<=79)return t^i^a}_S(e,t){return t<>>32-e}_block(e){const t=this,i=t._h,a=Array(80);for(let d=0;d<16;d++)a[d]=e[d];let r=i[0],n=i[1],o=i[2],s=i[3],l=i[4];for(let d=0;d<=79;d++){d>=16&&(a[d]=t._S(1,a[d-3]^a[d-8]^a[d-14]^a[d-16]));const C=t._S(5,r)+t._f(d,n,o,s)+l+a[d]+t._key[Math.floor(d/20)]|0;l=s,s=o,o=t._S(30,n),n=r,r=C}i[0]=i[0]+r|0,i[1]=i[1]+n|0,i[2]=i[2]+o|0,i[3]=i[3]+s|0,i[4]=i[4]+l|0}};const nt1={};nt1.aes=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const i=t._tables[0][4],a=t._tables[1],r=e.length;let n,o,s,l=1;if(r!==4&&r!==6&&r!==8)throw new Error("invalid aes key size");for(t._key=[o=e.slice(0),s=[]],n=r;n<4*r+28;n++){let d=o[n-1];(n%r===0||r===8&&n%r===4)&&(d=i[d>>>24]<<24^i[d>>16&255]<<16^i[d>>8&255]<<8^i[d&255],n%r===0&&(d=d<<8^d>>>24^l<<24,l=l<<1^(l>>7)*283)),o[n]=o[n-r]^d}for(let d=0;n;d++,n--){const C=o[d&3?n:n-4];n<=4||d<4?s[d]=C:s[d]=a[0][i[C>>>24]]^a[1][i[C>>16&255]]^a[2][i[C>>8&255]]^a[3][i[C&255]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],i=e[4],a=t[4],r=[],n=[];let o,s,l,d;for(let C=0;C<256;C++)n[(r[C]=C<<1^(C>>7)*283)^C]=C;for(let C=o=0;!i[C];C^=s||1,o=n[o]||1){let m=o^o<<1^o<<2^o<<3^o<<4;m=m>>8^m&255^99,i[C]=m,a[m]=C,d=r[l=r[s=r[C]]];let u=d*16843009^l*65537^s*257^C*16843008,p=r[m]*257^m*16843008;for(let V=0;V<4;V++)e[V][C]=p=p<<24^p>>>8,t[V][m]=u=u<<24^u>>>8}for(let C=0;C<5;C++)e[C]=e[C].slice(0),t[C]=t[C].slice(0)}_crypt(e,t){if(e.length!==4)throw new Error("invalid aes block size");const i=this._key[t],a=i.length/4-2,r=[0,0,0,0],n=this._tables[t],o=n[0],s=n[1],l=n[2],d=n[3],C=n[4];let m=e[0]^i[0],u=e[t?3:1]^i[1],p=e[2]^i[2],V=e[t?1:3]^i[3],f=4,M,H,g;for(let _=0;_>>24]^s[u>>16&255]^l[p>>8&255]^d[V&255]^i[f],H=o[u>>>24]^s[p>>16&255]^l[V>>8&255]^d[m&255]^i[f+1],g=o[p>>>24]^s[V>>16&255]^l[m>>8&255]^d[u&255]^i[f+2],V=o[V>>>24]^s[m>>16&255]^l[u>>8&255]^d[p&255]^i[f+3],f+=4,m=M,u=H,p=g;for(let _=0;_<4;_++)r[t?3&-_:_]=C[m>>>24]<<24^C[u>>16&255]<<16^C[p>>8&255]<<8^C[V&255]^i[f++],M=m,m=u,u=p,p=V,V=M;return r}};const F12={getRandomValues(e){const t=new Uint32Array(e.buffer),i=a=>{let r=987654321;const n=4294967295;return function(){return r=36969*(r&65535)+(r>>16)&n,a=18e3*(a&65535)+(a>>16)&n,(((r<<16)+a&n)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let a=0,r;a>24&255)===255){let t=e>>16&255,i=e>>8&255,a=e&255;t===255?(t=0,i===255?(i=0,a===255?a=0:++a):++i):++t,e=0,e+=t<<16,e+=i<<8,e+=a}else e+=1<<24;return e}incCounter(e){(e[0]=this.incWord(e[0]))===0&&(e[1]=this.incWord(e[1]))}calculate(e,t,i){let a;if(!(a=t.length))return[];const r=It.bitLength(t);for(let n=0;n>5)+1<<2;let n,o,s,l,d;const C=new ArrayBuffer(r),m=new DataView(C);let u=0;const p=It;for(t=bd.bytes.toBits(t),d=1;u<(r||1);d++){for(n=o=e.encrypt(p.concat(t,[d])),s=1;sr&&(e=new i().update(e).finalize());for(let n=0;nthis.resolveReady=o),password:pt1(t,i),signed:a,strength:r-1,pending:new Uint8Array})},async transform(o,s){const l=this,{password:d,strength:C,resolveReady:m,ready:u}=l;d?(await Q12(l,C,d,ri(o,0,o8[C]+2)),o=ri(o,o8[C]+2),n?s.error(new Error(ct1)):m()):await u;const p=new Uint8Array(o.length-C4-(o.length-C4)%I6);s.enqueue(ut1(l,o,p,0,C4,!0))},async flush(o){const{signed:s,ctr:l,hmac:d,pending:C,ready:m}=this;if(d&&l){await m;const u=ri(C,0,C.length-C4),p=ri(C,C.length-C4);let V=new Uint8Array;if(u.length){const f=l8(_3,u);d.update(f);const M=l.update(f);V=s8(_3,M)}if(s){const f=ri(s8(_3,d.digest()),0,C4);for(let M=0;Mthis.resolveReady=n),password:pt1(t,i),strength:a-1,pending:new Uint8Array})},async transform(n,o){const s=this,{password:l,strength:d,resolveReady:C,ready:m}=s;let u=new Uint8Array;l?(u=await J12(s,d,l),C()):await m;const p=new Uint8Array(u.length+n.length-n.length%I6);p.set(u,0),o.enqueue(ut1(s,n,p,u.length,0))},async flush(n){const{ctr:o,hmac:s,pending:l,ready:d}=this;if(s&&o){await d;let C=new Uint8Array;if(l.length){const m=o.update(l8(_3,l));s.update(m),C=s8(_3,m)}r.signature=s8(_3,s.digest()).slice(0,C4),n.enqueue(lM(C,r.signature))}}}),r=this}}function ut1(e,t,i,a,r,n){const{ctr:o,hmac:s,pending:l}=e,d=t.length-r;l.length&&(t=lM(l,t),i=i22(i,d-d%I6));let C;for(C=0;C<=d-I6;C+=I6){const m=l8(_3,ri(t,C,C+I6));n&&s.update(m);const u=o.update(m);n||s.update(u),i.set(s8(_3,u),C+a)}return e.pending=ri(t,C),i}async function Q12(e,t,i,a){const r=await ht1(e,t,i,ri(a,0,o8[t])),n=ri(a,o8[t]);if(r[0]!=n[0]||r[1]!=n[1])throw new Error(st1)}async function J12(e,t,i){const a=dt1(new Uint8Array(o8[t])),r=await ht1(e,t,i,a);return lM(a,r)}async function ht1(e,t,i,a){e.password=null;const r=await e22(B12,i,G12,!1,W12),n=await t22(Object.assign({salt:a},Hf),r,8*(w7[t]*2+2)),o=new Uint8Array(n),s=l8(_3,ri(o,0,w7[t])),l=l8(_3,ri(o,w7[t],w7[t]*2)),d=ri(o,w7[t]*2);return Object.assign(e,{keys:{key:s,authentication:l,passwordVerification:d},ctr:new $12(new Y12(s),Array.from(X12)),hmac:new q12(l)}),d}async function e22(e,t,i,a,r){if(hD)try{return await X8.importKey(e,t,i,a,r)}catch{return hD=!1,Nn.importKey(t)}else return Nn.importKey(t)}async function t22(e,t,i){if(pD)try{return await X8.deriveBits(e,t,i)}catch{return pD=!1,Nn.pbkdf2(t,e.salt,Hf.iterations,i)}else return Nn.pbkdf2(t,e.salt,Hf.iterations,i)}function pt1(e,t){return t===Mt?Lf(e):t}function lM(e,t){let i=e;return e.length+t.length&&(i=new Uint8Array(e.length+t.length),i.set(e,0),i.set(t,e.length)),i}function i22(e,t){if(t&&t>e.length){const i=e;e=new Uint8Array(t),e.set(i,0)}return e}function ri(e,t,i){return e.subarray(t,i)}function s8(e,t){return e.fromBits(t)}function l8(e,t){return e.toBits(t)}const K6=12;class a22 extends TransformStream{constructor({password:t,passwordVerification:i,checkPasswordOnly:a}){super({start(){Object.assign(this,{password:t,passwordVerification:i}),ft1(this,t)},transform(r,n){const o=this;if(o.password){const s=fD(o,r.subarray(0,K6));if(o.password=null,s[K6-1]!=o.passwordVerification)throw new Error(st1);r=r.subarray(K6)}a?n.error(new Error(ct1)):n.enqueue(fD(o,r))}})}}class r22 extends TransformStream{constructor({password:t,passwordVerification:i}){super({start(){Object.assign(this,{password:t,passwordVerification:i}),ft1(this,t)},transform(a,r){const n=this;let o,s;if(n.password){n.password=null;const l=dt1(new Uint8Array(K6));l[K6-1]=n.passwordVerification,o=new Uint8Array(a.length+l.length),o.set(VD(n,l),0),s=K6}else o=new Uint8Array(a.length),s=0;o.set(VD(n,a),s),r.enqueue(o)}})}}function fD(e,t){const i=new Uint8Array(t.length);for(let a=0;a>>24]),r=~e.crcKey2.get(),e.keys=[i,a,r]}function Vt1(e){const t=e.keys[2]|2;return Lt1(Math.imul(t,t^1)>>>8)}function Lt1(e){return e&255}function LD(e){return e&4294967295}const HD="deflate-raw";class n22 extends TransformStream{constructor(t,{chunkSize:i,CompressionStream:a,CompressionStreamNative:r}){super({});const{compressed:n,encrypted:o,useCompressionStream:s,zipCrypto:l,signed:d,level:C}=t,m=this;let u,p,V=Ht1(super.readable);(!o||l)&&d&&(u=new at1,V=S3(V,u)),n&&(V=gt1(V,s,{level:C,chunkSize:i},r,a)),o&&(l?V=S3(V,new r22(t)):(p=new j12(t),V=S3(V,p))),Mt1(m,V,()=>{let f;o&&!l&&(f=p.signature),(!o||l)&&d&&(f=new DataView(u.value.buffer).getUint32(0)),m.signature=f})}}class o22 extends TransformStream{constructor(t,{chunkSize:i,DecompressionStream:a,DecompressionStreamNative:r}){super({});const{zipCrypto:n,encrypted:o,signed:s,signature:l,compressed:d,useCompressionStream:C}=t;let m,u,p=Ht1(super.readable);o&&(n?p=S3(p,new a22(t)):(u=new K12(t),p=S3(p,u))),d&&(p=gt1(p,C,{chunkSize:i},r,a)),(!o||n)&&s&&(m=new at1,p=S3(p,m)),Mt1(this,p,()=>{if((!o||n)&&s){const V=new DataView(m.value.buffer);if(l!=V.getUint32(0,!1))throw new Error(lt1)}})}}function Ht1(e){return S3(e,new TransformStream({transform(t,i){t&&t.length&&i.enqueue(t)}}))}function Mt1(e,t,i){t=S3(t,new TransformStream({flush:i})),Object.defineProperty(e,"readable",{get(){return t}})}function gt1(e,t,i,a,r){try{const n=t&&a?a:r;e=S3(e,new n(HD,i))}catch{if(t)try{e=S3(e,new r(HD,i))}catch{return e}else return e}return e}function S3(e,t){return e.pipeThrough(t)}const s22="message",l22="start",c22="pull",MD="data",d22="ack",gD="close",At1="deflate",C22="inflate";class m22 extends TransformStream{constructor(t,i){super({});const a=this,{codecType:r}=t;let n;r.startsWith(At1)?n=n22:r.startsWith(C22)&&(n=o22);let o=0,s=0;const l=new n(t,i),d=super.readable,C=new TransformStream({transform(u,p){u&&u.length&&(s+=u.length,p.enqueue(u))},flush(){Object.assign(a,{inputSize:s})}}),m=new TransformStream({transform(u,p){u&&u.length&&(o+=u.length,p.enqueue(u))},flush(){const{signature:u}=l;Object.assign(a,{signature:u,outputSize:o,inputSize:s})}});Object.defineProperty(a,"readable",{get(){return d.pipeThrough(C).pipeThrough(l).pipeThrough(m)}})}}class u22 extends TransformStream{constructor(t){let i;super({transform:a,flush(r){i&&i.length&&r.enqueue(i)}});function a(r,n){if(i){const o=new Uint8Array(i.length+r.length);o.set(i),o.set(r,i.length),r=o,i=null}r.length>t?(n.enqueue(r.slice(0,t)),a(r.slice(t),n)):i=r}}}let vt1=typeof Worker!=j4;class lh{constructor(t,{readable:i,writable:a},{options:r,config:n,streamOptions:o,useWebWorkers:s,transferStreams:l,scripts:d},C){const{signal:m}=o;return Object.assign(t,{busy:!0,readable:i.pipeThrough(new u22(n.chunkSize)).pipeThrough(new h22(i,o),{signal:m}),writable:a,options:Object.assign({},r),scripts:d,transferStreams:l,terminate(){return new Promise(u=>{const{worker:p,busy:V}=t;p?(V?t.resolveTerminated=u:(p.terminate(),u()),t.interface=null):u()})},onTaskFinished(){const{resolveTerminated:u}=t;u&&(t.resolveTerminated=null,t.terminated=!0,t.worker.terminate(),u()),t.busy=!1,C(t)}}),(s&&vt1?p22:_t1)(t,n)}}class h22 extends TransformStream{constructor(t,{onstart:i,onprogress:a,size:r,onend:n}){let o=0;super({async start(){i&&await ch(i,r)},async transform(s,l){o+=s.length,a&&await ch(a,o,r),l.enqueue(s)},async flush(){t.size=o,n&&await ch(n,o)}})}}async function ch(e,...t){try{await e(...t)}catch{}}function _t1(e,t){return{run:()=>f22(e,t)}}function p22(e,t){const{baseURL:i,chunkSize:a}=t;if(!e.interface){let r;try{r=H22(e.scripts[0],i,e)}catch{return vt1=!1,_t1(e,t)}Object.assign(e,{worker:r,interface:{run:()=>V22(e,{chunkSize:a})}})}return e.interface}async function f22({options:e,readable:t,writable:i,onTaskFinished:a},r){try{const n=new m22(e,r);await t.pipeThrough(n).pipeTo(i,{preventClose:!0,preventAbort:!0});const{signature:o,inputSize:s,outputSize:l}=n;return{signature:o,inputSize:s,outputSize:l}}finally{a()}}async function V22(e,t){let i,a;const r=new Promise((u,p)=>{i=u,a=p});Object.assign(e,{reader:null,writer:null,resolveResult:i,rejectResult:a,result:r});const{readable:n,options:o,scripts:s}=e,{writable:l,closed:d}=L22(e.writable);lc({type:l22,scripts:s.slice(1),options:o,config:t,readable:n,writable:l},e)||Object.assign(e,{reader:n.getReader(),writer:l.getWriter()});const m=await r;try{await l.getWriter().close()}catch{}return await d,m}function L22(e){let t;const i=new Promise(r=>t=r);return{writable:new WritableStream({async write(r){const n=e.getWriter();await n.ready,await n.write(r),n.releaseLock()},close(){t()},abort(r){return e.getWriter().abort(r)}}),closed:i}}let AD=!0,vD=!0;function H22(e,t,i){const a={type:"module"};let r,n;typeof e==W8&&(e=e());try{r=new URL(e,t)}catch{r=e}if(AD)try{n=new Worker(r)}catch{AD=!1,n=new Worker(r,a)}else n=new Worker(r,a);return n.addEventListener(s22,o=>M22(o,i)),n}function lc(e,{worker:t,writer:i,onTaskFinished:a,transferStreams:r}){try{let{value:n,readable:o,writable:s}=e;const l=[];if(n&&(n.byteLength!H.busy);if(M)return SD(M),new lh(M,e,t,f);if(Br.lengthdh.push({resolve:H,stream:e,workerOptions:t}))}function f(M){if(dh.length){const[{resolve:H,stream:g,workerOptions:_}]=dh.splice(0,1);H(new lh(M,g,_,f))}else M.worker?(SD(M),A22(M,t)):Br=Br.filter(H=>H!=M)}}function A22(e,t){const{config:i}=t,{terminateWorkerTimeout:a}=i;Number.isFinite(a)&&a>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{Br=Br.filter(r=>r!=e);try{await e.terminate()}catch{}},a))}function SD(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}function v22(e){const t=()=>URL.createObjectURL(new Blob([`const{Array:e,Object:t,Number:n,Math:r,Error:s,Uint8Array:i,Uint16Array:o,Uint32Array:c,Int32Array:f,Map:a,DataView:l,Promise:u,TextEncoder:w,crypto:h,postMessage:d,TransformStream:p,ReadableStream:y,WritableStream:m,CompressionStream:b,DecompressionStream:g}=self,k=void 0,v="undefined",S="function";class z{constructor(e){return class extends p{constructor(t,n){const r=new e(n);super({transform(e,t){t.enqueue(r.append(e))},flush(e){const t=r.flush();t&&e.enqueue(t)}})}}}}const C=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;C[e]=t}class x{constructor(e){this.t=e||-1}append(e){let t=0|this.t;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^C[255&(t^e[n])];this.t=t}get(){return~this.t}}class A extends p{constructor(){let e;const t=new x;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new i(4);new l(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}const _={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=_.i(n);return 32===r?e.concat(t):_.o(t,r,0|n,e.slice(0,e.length-1))},l(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+_.i(n)},u(e,t){if(32*e.length0&&t&&(e[n-1]=_.h(t,e[n-1]&2147483648>>t-1,1)),e},h:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,i:e=>r.round(e/1099511627776)||32,o(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=_.i(s);return r.push(_.h(t+i&31,t+i>32?n:r.pop(),1)),r}},I={p:{m(e){const t=_.l(e)/8,n=new i(t);let r;for(let s=0;t>s;s++)0==(3&s)&&(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},g(e){const t=[];let n,r=0;for(n=0;n9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const o=new c(n);let f=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);i>=e;e+=t.blockSize)t.I(o.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),t}P(){const e=this;let t=e.C;const n=e.S;t=_.concat(t,[_.h(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(r.floor(e.A/4294967296)),t.push(0|e.A);t.length;)e.I(t.splice(0,16));return e.reset(),n}D(e,t,n,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}V(e,t){return t<>>32-e}I(t){const n=this,s=n.S,i=e(80);for(let e=0;16>e;e++)i[e]=t[e];let o=s[0],c=s[1],f=s[2],a=s[3],l=s[4];for(let e=0;79>=e;e++){16>e||(i[e]=n.V(1,i[e-3]^i[e-8]^i[e-14]^i[e-16]));const t=n.V(5,o)+n.D(e,c,f,a)+l+i[e]+n.v[r.floor(e/20)]|0;l=a,a=f,f=n.V(30,c),c=o,o=t}s[0]=s[0]+o|0,s[1]=s[1]+c|0,s[2]=s[2]+f|0,s[3]=s[3]+a|0,s[4]=s[4]+l|0}},D={getRandomValues(e){const t=new c(e.buffer),n=e=>{let t=987654321;const n=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&n,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(r.random()>.5?1:-1))};for(let s,i=0;inew V.R(I.p.g(e)),B(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const i=1+(r>>5)<<2;let o,c,f,a,u;const w=new ArrayBuffer(i),h=new l(w);let d=0;const p=_;for(t=I.p.g(t),u=1;(i||1)>d;u++){for(o=c=e.encrypt(p.concat(t,[u])),f=1;n>f;f++)for(c=e.encrypt(c),a=0;ad&&fs&&(e=(new n).update(e).P());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.U[0].update(r[0]),t.U[1].update(r[1]),t.K=new n(t.U[0])}reset(){const e=this;e.K=new e.M(e.U[0]),e.N=!1}update(e){this.N=!0,this.K.update(e)}digest(){const e=this,t=e.K.P(),n=new e.M(e.U[1]).update(t).P();return e.reset(),n}encrypt(e){if(this.N)throw new s("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},R=typeof h!=v&&typeof h.getRandomValues==S,B="Invalid password",E="Invalid signature",M="zipjs-abort-check-password";function U(e){return R?h.getRandomValues(e):D.getRandomValues(e)}const K=16,N={name:"PBKDF2"},O=t.assign({hash:{name:"HMAC"}},N),T=t.assign({iterations:1e3,hash:{name:"SHA-1"}},N),W=["deriveBits"],j=[8,12,16],H=[16,24,32],L=10,F=[0,0,0,0],q=typeof h!=v,G=q&&h.subtle,J=q&&typeof G!=v,Q=I.p,X=class{constructor(e){const t=this;t.O=[[[],[],[],[],[]],[[],[],[],[],[]]],t.O[0][0][0]||t.T();const n=t.O[0][4],r=t.O[1],i=e.length;let o,c,f,a=1;if(4!==i&&6!==i&&8!==i)throw new s("invalid aes key size");for(t.v=[c=e.slice(0),f=[]],o=i;4*i+28>o;o++){let e=c[o-1];(o%i==0||8===i&&o%i==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],o%i==0&&(e=e<<8^e>>>24^a<<24,a=a<<1^283*(a>>7))),c[o]=c[o-i]^e}for(let e=0;o;e++,o--){const t=c[3&e?o:o-4];f[e]=4>=o||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this.W(e,0)}decrypt(e){return this.W(e,1)}T(){const e=this.O[0],t=this.O[1],n=e[4],r=t[4],s=[],i=[];let o,c,f,a;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=o=0;!n[l];l^=c||1,o=i[o]||1){let i=o^o<<1^o<<2^o<<3^o<<4;i=i>>8^255&i^99,n[l]=i,r[i]=l,a=s[f=s[c=s[l]]];let u=16843009*a^65537*f^257*c^16843008*l,w=257*s[i]^16843008*i;for(let n=0;4>n;n++)e[n][l]=w=w<<24^w>>>8,t[n][i]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}W(e,t){if(4!==e.length)throw new s("invalid aes block size");const n=this.v[t],r=n.length/4-2,i=[0,0,0,0],o=this.O[t],c=o[0],f=o[1],a=o[2],l=o[3],u=o[4];let w,h,d,p=e[0]^n[0],y=e[t?3:1]^n[1],m=e[2]^n[2],b=e[t?1:3]^n[3],g=4;for(let e=0;r>e;e++)w=c[p>>>24]^f[y>>16&255]^a[m>>8&255]^l[255&b]^n[g],h=c[y>>>24]^f[m>>16&255]^a[b>>8&255]^l[255&p]^n[g+1],d=c[m>>>24]^f[b>>16&255]^a[p>>8&255]^l[255&y]^n[g+2],b=c[b>>>24]^f[p>>16&255]^a[y>>8&255]^l[255&m]^n[g+3],g+=4,p=w,y=h,m=d;for(let e=0;4>e;e++)i[t?3&-e:e]=u[p>>>24]<<24^u[y>>16&255]<<16^u[m>>8&255]<<8^u[255&b]^n[g++],w=p,p=y,y=m,m=b,b=w;return i}},Y=class{constructor(e,t){this.j=e,this.H=t,this.L=t}reset(){this.L=this.H}update(e){return this.F(this.j,e,this.L)}q(e){if(255==(e>>24&255)){let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}else e+=1<<24;return e}G(e){0===(e[0]=this.q(e[0]))&&(e[1]=this.q(e[1]))}F(e,t,n){let r;if(!(r=t.length))return[];const s=_.l(t);for(let s=0;r>s;s+=4){this.G(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return _.u(t,s)}},Z=V.R;let $=q&&J&&typeof G.importKey==S,ee=q&&J&&typeof G.deriveBits==S;class te extends p{constructor({password:e,rawPassword:n,signed:r,encryptionStrength:o,checkPasswordOnly:c}){super({start(){t.assign(this,{ready:new u((e=>this.J=e)),password:ie(e,n),signed:r,X:o-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:o,J:f,ready:a}=n;r?(await(async(e,t,n,r)=>{const i=await se(e,t,n,ce(r,0,j[t])),o=ce(r,j[t]);if(i[0]!=o[0]||i[1]!=o[1])throw new s(B)})(n,o,r,ce(e,0,j[o]+2)),e=ce(e,j[o]+2),c?t.error(new s(M)):f()):await a;const l=new i(e.length-L-(e.length-L)%K);t.enqueue(re(n,e,l,0,L,!0))},async flush(e){const{signed:t,Y:n,Z:r,pending:o,ready:c}=this;if(r&&n){await c;const f=ce(o,0,o.length-L),a=ce(o,o.length-L);let l=new i;if(f.length){const e=ae(Q,f);r.update(e);const t=n.update(e);l=fe(Q,t)}if(t){const e=ce(fe(Q,r.digest()),0,L);for(let t=0;L>t;t++)if(e[t]!=a[t])throw new s(E)}e.enqueue(l)}}})}}class ne extends p{constructor({password:e,rawPassword:n,encryptionStrength:r}){let s;super({start(){t.assign(this,{ready:new u((e=>this.J=e)),password:ie(e,n),X:r-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:s,J:o,ready:c}=n;let f=new i;r?(f=await(async(e,t,n)=>{const r=U(new i(j[t]));return oe(r,await se(e,t,n,r))})(n,s,r),o()):await c;const a=new i(f.length+e.length-e.length%K);a.set(f,0),t.enqueue(re(n,e,a,f.length,0))},async flush(e){const{Y:t,Z:n,pending:r,ready:o}=this;if(n&&t){await o;let c=new i;if(r.length){const e=t.update(ae(Q,r));n.update(e),c=fe(Q,e)}s.signature=fe(Q,n.digest()).slice(0,L),e.enqueue(oe(c,s.signature))}}}),s=this}}function re(e,t,n,r,s,o){const{Y:c,Z:f,pending:a}=e,l=t.length-s;let u;for(a.length&&(t=oe(a,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new i(t)).set(n,0)}return e})(n,l-l%K)),u=0;l-K>=u;u+=K){const e=ae(Q,ce(t,u,u+K));o&&f.update(e);const s=c.update(e);o||f.update(s),n.set(fe(Q,s),u+r)}return e.pending=ce(t,u),n}async function se(n,r,s,o){n.password=null;const c=await(async(e,t,n,r,s)=>{if(!$)return V.importKey(t);try{return await G.importKey("raw",t,n,!1,s)}catch(e){return $=!1,V.importKey(t)}})(0,s,O,0,W),f=await(async(e,t,n)=>{if(!ee)return V.B(t,e.salt,T.iterations,n);try{return await G.deriveBits(e,t,n)}catch(r){return ee=!1,V.B(t,e.salt,T.iterations,n)}})(t.assign({salt:o},T),c,8*(2*H[r]+2)),a=new i(f),l=ae(Q,ce(a,0,H[r])),u=ae(Q,ce(a,H[r],2*H[r])),w=ce(a,2*H[r]);return t.assign(n,{keys:{key:l,$:u,passwordVerification:w},Y:new Y(new X(l),e.from(F)),Z:new Z(u)}),w}function ie(e,t){return t===k?(e=>{if(typeof w==v){const t=new i((e=unescape(encodeURIComponent(e))).length);for(let n=0;n>>24]),i=~e.te.get(),e.keys=[n,s,i]}function ye(e){const t=2|e.keys[2];return me(r.imul(t,1^t)>>>8)}function me(e){return 255&e}function be(e){return 4294967295&e}const ge="deflate-raw";class ke extends p{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:s,encrypted:i,useCompressionStream:o,zipCrypto:c,signed:f,level:a}=e,u=this;let w,h,d=Se(super.readable);i&&!c||!f||(w=new A,d=xe(d,w)),s&&(d=Ce(d,o,{level:a,chunkSize:t},r,n)),i&&(c?d=xe(d,new ue(e)):(h=new ne(e),d=xe(d,h))),ze(u,d,(()=>{let e;i&&!c&&(e=h.signature),i&&!c||!f||(e=new l(w.value.buffer).getUint32(0)),u.signature=e}))}}class ve extends p{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:i,encrypted:o,signed:c,signature:f,compressed:a,useCompressionStream:u}=e;let w,h,d=Se(super.readable);o&&(i?d=xe(d,new le(e)):(h=new te(e),d=xe(d,h))),a&&(d=Ce(d,u,{chunkSize:t},r,n)),o&&!i||!c||(w=new A,d=xe(d,w)),ze(this,d,(()=>{if((!o||i)&&c){const e=new l(w.value.buffer);if(f!=e.getUint32(0,!1))throw new s(E)}}))}}function Se(e){return xe(e,new p({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ze(e,n,r){n=xe(n,new p({flush:r})),t.defineProperty(e,"readable",{get:()=>n})}function Ce(e,t,n,r,s){try{e=xe(e,new(t&&r?r:s)(ge,n))}catch(r){if(!t)return e;try{e=xe(e,new s(ge,n))}catch(t){return e}}return e}function xe(e,t){return e.pipeThrough(t)}const Ae="data",_e="close";class Ie extends p{constructor(e,n){super({});const r=this,{codecType:s}=e;let i;s.startsWith("deflate")?i=ke:s.startsWith("inflate")&&(i=ve);let o=0,c=0;const f=new i(e,n),a=super.readable,l=new p({transform(e,t){e&&e.length&&(c+=e.length,t.enqueue(e))},flush(){t.assign(r,{inputSize:c})}}),u=new p({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))},flush(){const{signature:e}=f;t.assign(r,{signature:e,outputSize:o,inputSize:c})}});t.defineProperty(r,"readable",{get:()=>a.pipeThrough(l).pipeThrough(f).pipeThrough(u)})}}class Pe extends p{constructor(e){let t;super({transform:function n(r,s){if(t){const e=new i(t.length+r.length);e.set(t),e.set(r,t.length),r=e,t=null}r.length>e?(s.enqueue(r.slice(0,e)),n(r.slice(e),s)):t=r},flush(e){t&&t.length&&e.enqueue(t)}})}}const De=new a,Ve=new a;let Re,Be=0,Ee=!0;async function Me(e){try{const{options:t,scripts:r,config:s}=e;if(r&&r.length)try{Ee?importScripts.apply(k,r):await Ue(r)}catch(e){Ee=!1,await Ue(r)}self.initCodec&&self.initCodec(),s.CompressionStreamNative=self.CompressionStream,s.DecompressionStreamNative=self.DecompressionStream,self.Deflate&&(s.CompressionStream=new z(self.Deflate)),self.Inflate&&(s.DecompressionStream=new z(self.Inflate));const i={highWaterMark:1},o=e.readable||new y({async pull(e){const t=new u((e=>De.set(Be,e)));Ke({type:"pull",messageId:Be}),Be=(Be+1)%n.MAX_SAFE_INTEGER;const{value:r,done:s}=await t;e.enqueue(r),s&&e.close()}},i),c=e.writable||new m({async write(e){let t;const r=new u((e=>t=e));Ve.set(Be,t),Ke({type:Ae,value:e,messageId:Be}),Be=(Be+1)%n.MAX_SAFE_INTEGER,await r}},i),f=new Ie(t,s);Re=new AbortController;const{signal:a}=Re;await o.pipeThrough(f).pipeThrough(new Pe(s.chunkSize)).pipeTo(c,{signal:a,preventClose:!0,preventAbort:!0});try{await c.getWriter().close()}catch(e){}const{signature:l,inputSize:w,outputSize:h}=f;Ke({type:_e,result:{signature:l,inputSize:w,outputSize:h}})}catch(e){Ne(e)}}async function Ue(e){for(const t of e)await import(t)}function Ke(e){let{value:t}=e;if(t)if(t.length)try{t=new i(t),e.value=t.buffer,d(e,[e.value])}catch(t){d(e)}else d(e);else d(e)}function Ne(e=new s("Unknown error")){const{message:t,stack:n,code:r,name:i}=e;d({error:{message:t,stack:n,code:r,name:i}})}addEventListener("message",(({data:e})=>{const{type:t,messageId:n,value:r,done:s}=e;try{if("start"==t&&Me(e),t==Ae){const e=De.get(n);De.delete(n),e({value:new i(r),done:s})}if("ack"==t){const e=Ve.get(n);Ve.delete(n),e()}t==_e&&Re.abort()}catch(e){Ne(e)}}));const Oe=-2;function Te(t){return We(t.map((([t,n])=>new e(t).fill(n,0,t))))}function We(t){return t.reduce(((t,n)=>t.concat(e.isArray(n)?We(n):n)),[])}const je=[0,1,2,3].concat(...Te([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function He(){const e=this;function t(e,t){let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}e.ne=n=>{const s=e.re,i=e.ie.se,o=e.ie.oe;let c,f,a,l=-1;for(n.ce=0,n.fe=573,c=0;o>c;c++)0!==s[2*c]?(n.ae[++n.ce]=l=c,n.le[c]=0):s[2*c+1]=0;for(;2>n.ce;)a=n.ae[++n.ce]=2>l?++l:0,s[2*a]=1,n.le[a]=0,n.ue--,i&&(n.we-=i[2*a+1]);for(e.he=l,c=r.floor(n.ce/2);c>=1;c--)n.de(s,c);a=o;do{c=n.ae[1],n.ae[1]=n.ae[n.ce--],n.de(s,1),f=n.ae[1],n.ae[--n.fe]=c,n.ae[--n.fe]=f,s[2*a]=s[2*c]+s[2*f],n.le[a]=r.max(n.le[c],n.le[f])+1,s[2*c+1]=s[2*f+1]=a,n.ae[1]=a++,n.de(s,1)}while(n.ce>=2);n.ae[--n.fe]=n.ae[1],(t=>{const n=e.re,r=e.ie.se,s=e.ie.pe,i=e.ie.ye,o=e.ie.me;let c,f,a,l,u,w,h=0;for(l=0;15>=l;l++)t.be[l]=0;for(n[2*t.ae[t.fe]+1]=0,c=t.fe+1;573>c;c++)f=t.ae[c],l=n[2*n[2*f+1]+1]+1,l>o&&(l=o,h++),n[2*f+1]=l,f>e.he||(t.be[l]++,u=0,i>f||(u=s[f-i]),w=n[2*f],t.ue+=w*(l+u),r&&(t.we+=w*(r[2*f+1]+u)));if(0!==h){do{for(l=o-1;0===t.be[l];)l--;t.be[l]--,t.be[l+1]+=2,t.be[o]--,h-=2}while(h>0);for(l=o;0!==l;l--)for(f=t.be[l];0!==f;)a=t.ae[--c],a>e.he||(n[2*a+1]!=l&&(t.ue+=(l-n[2*a+1])*n[2*a],n[2*a+1]=l),f--)}})(n),((e,n,r)=>{const s=[];let i,o,c,f=0;for(i=1;15>=i;i++)s[i]=f=f+r[i-1]<<1;for(o=0;n>=o;o++)c=e[2*o+1],0!==c&&(e[2*o]=t(s[c]++,c))})(s,e.he,n.be)}}function Le(e,t,n,r,s){const i=this;i.se=e,i.pe=t,i.ye=n,i.oe=r,i.me=s}He.ge=[0,1,2,3,4,5,6,7].concat(...Te([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),He.ke=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],He.ve=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],He.Se=e=>256>e?je[e]:je[256+(e>>>7)],He.ze=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],He.Ce=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],He.xe=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],He.Ae=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const Fe=Te([[144,8],[112,9],[24,7],[8,8]]);Le._e=We([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((e,t)=>[e,Fe[t]])));const qe=Te([[30,5]]);function Ge(e,t,n,r,s){const i=this;i.Ie=e,i.Pe=t,i.De=n,i.Ve=r,i.Re=s}Le.Be=We([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((e,t)=>[e,qe[t]]))),Le.Ee=new Le(Le._e,He.ze,257,286,15),Le.Me=new Le(Le.Be,He.Ce,0,30,15),Le.Ue=new Le(null,He.xe,0,19,7);const Je=[new Ge(0,0,0,0,0),new Ge(4,4,8,4,1),new Ge(4,5,16,8,1),new Ge(4,6,32,32,1),new Ge(4,4,16,16,2),new Ge(8,16,32,32,2),new Ge(8,16,128,128,2),new Ge(8,32,128,256,2),new Ge(32,128,258,1024,2),new Ge(32,258,258,4096,2)],Qe=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],Xe=113,Ye=666,Ze=262;function $e(e,t,n,r){const s=e[2*t],i=e[2*n];return i>s||s==i&&r[t]<=r[n]}function et(){const e=this;let t,n,s,c,f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z,C,x,A,_,I,P,D,V,R,B,E,M,U;const K=new He,N=new He,O=new He;let T,W,j,H,L,F;function q(){let t;for(t=0;286>t;t++)E[2*t]=0;for(t=0;30>t;t++)M[2*t]=0;for(t=0;19>t;t++)U[2*t]=0;E[512]=1,e.ue=e.we=0,W=j=0}function G(e,t){let n,r=-1,s=e[1],i=0,o=7,c=4;0===s&&(o=138,c=3),e[2*(t+1)+1]=65535;for(let f=0;t>=f;f++)n=s,s=e[2*(f+1)+1],++ii?U[2*n]+=i:0!==n?(n!=r&&U[2*n]++,U[32]++):i>10?U[36]++:U[34]++,i=0,r=n,0===s?(o=138,c=3):n==s?(o=6,c=3):(o=7,c=4))}function J(t){e.Ke[e.pending++]=t}function Q(e){J(255&e),J(e>>>8&255)}function X(e,t){let n;const r=t;F>16-r?(n=e,L|=n<>>16-F,F+=r-16):(L|=e<=n;n++)if(r=i,i=e[2*(n+1)+1],++o>=c||r!=i){if(f>o)do{Y(r,U)}while(0!=--o);else 0!==r?(r!=s&&(Y(r,U),o--),Y(16,U),X(o-3,2)):o>10?(Y(18,U),X(o-11,7)):(Y(17,U),X(o-3,3));o=0,s=r,0===i?(c=138,f=3):r==i?(c=6,f=3):(c=7,f=4)}}function $(){16==F?(Q(L),L=0,F=0):8>F||(J(255&L),L>>>=8,F-=8)}function ee(t,n){let s,i,o;if(e.Ne[W]=t,e.Oe[W]=255&n,W++,0===t?E[2*n]++:(j++,t--,E[2*(He.ge[n]+256+1)]++,M[2*He.Se(t)]++),0==(8191&W)&&D>2){for(s=8*W,i=C-k,o=0;30>o;o++)s+=M[2*o]*(5+He.Ce[o]);if(s>>>=3,jc);Y(256,t),H=t[513]}function ne(){F>8?Q(L):F>0&&J(255&L),L=0,F=0}function re(t,n,r){X(0+(r?1:0),3),((t,n)=>{ne(),H=8,Q(n),Q(~n),e.Ke.set(u.subarray(t,t+n),e.pending),e.pending+=n})(t,n)}function se(n){((t,n,r)=>{let s,i,o=0;D>0?(K.ne(e),N.ne(e),o=(()=>{let t;for(G(E,K.he),G(M,N.he),O.ne(e),t=18;t>=3&&0===U[2*He.Ae[t]+1];t--);return e.ue+=14+3*(t+1),t})(),s=e.ue+3+7>>>3,i=e.we+3+7>>>3,i>s||(s=i)):s=i=n+5,n+4>s||-1==t?i==s?(X(2+(r?1:0),3),te(Le._e,Le.Be)):(X(4+(r?1:0),3),((e,t,n)=>{let r;for(X(e-257,5),X(t-1,5),X(n-4,4),r=0;n>r;r++)X(U[2*He.Ae[r]+1],3);Z(E,e-1),Z(M,t-1)})(K.he+1,N.he+1,o+1),te(E,M)):re(t,n,r),q(),r&&ne()})(0>k?-1:k,C-k,n),k=C,t.Te()}function ie(){let e,n,r,s;do{if(s=w-A-C,0===s&&0===C&&0===A)s=f;else if(-1==s)s--;else if(C>=f+f-Ze){u.set(u.subarray(f,f+f),0),x-=f,C-=f,k-=f,e=y,r=e;do{n=65535&d[--r],d[r]=f>n?0:n-f}while(0!=--e);e=f,r=e;do{n=65535&h[--r],h[r]=f>n?0:n-f}while(0!=--e);s+=f}if(0===t.We)return;e=t.je(u,C+A,s),A+=e,3>A||(p=255&u[C],p=(p<A&&0!==t.We)}function oe(e){let t,n,r=I,s=C,i=_;const o=C>f-Ze?C-(f-Ze):0;let c=B;const a=l,w=C+258;let d=u[s+i-1],p=u[s+i];R>_||(r>>=2),c>A&&(c=A);do{if(t=e,u[t+i]==p&&u[t+i-1]==d&&u[t]==u[s]&&u[++t]==u[s+1]){s+=2,t++;do{}while(u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&w>s);if(n=258-(w-s),s=w-258,n>i){if(x=e,i=n,n>=c)break;d=u[s+i-1],p=u[s+i]}}}while((e=65535&h[e&a])>o&&0!=--r);return i>A?A:i}e.le=[],e.be=[],e.ae=[],E=[],M=[],U=[],e.de=(t,n)=>{const r=e.ae,s=r[n];let i=n<<1;for(;i<=e.ce&&(i(W||(W=8),j||(j=8),G||(G=0),t.Le=null,-1==S&&(S=6),1>j||j>9||8!=W||9>x||x>15||0>S||S>9||0>G||G>2?Oe:(t.Fe=e,a=x,f=1<(t.qe=t.Ge=0,t.Le=null,e.pending=0,e.Je=0,n=Xe,c=0,K.re=E,K.ie=Le.Ee,N.re=M,N.ie=Le.Me,O.re=U,O.ie=Le.Ue,L=0,F=0,H=8,q(),(()=>{w=2*f,d[y-1]=0;for(let e=0;y-1>e;e++)d[e]=0;P=Je[D].Pe,R=Je[D].Ie,B=Je[D].De,I=Je[D].Ve,C=0,k=0,A=0,v=_=2,z=0,p=0})(),0))(t))),e.Qe=()=>42!=n&&n!=Xe&&n!=Ye?Oe:(e.Oe=null,e.Ne=null,e.Ke=null,d=null,h=null,u=null,e.Fe=null,n==Xe?-3:0),e.Xe=(e,t,n)=>{let r=0;return-1==t&&(t=6),0>t||t>9||0>n||n>2?Oe:(Je[D].Re!=Je[t].Re&&0!==e.qe&&(r=e.Ye(1)),D!=t&&(D=t,P=Je[D].Pe,R=Je[D].Ie,B=Je[D].De,I=Je[D].Ve),V=n,r)},e.Ze=(e,t,r)=>{let s,i=r,o=0;if(!t||42!=n)return Oe;if(3>i)return 0;for(i>f-Ze&&(i=f-Ze,o=r-i),u.set(t.subarray(o,o+i),0),C=i,k=i,p=255&u[0],p=(p<=s;s++)p=(p<{let o,w,m,I,R;if(i>4||0>i)return Oe;if(!r.$e||!r.et&&0!==r.We||n==Ye&&4!=i)return r.Le=Qe[4],Oe;if(0===r.tt)return r.Le=Qe[7],-5;var B;if(t=r,I=c,c=i,42==n&&(w=8+(a-8<<4)<<8,m=(D-1&255)>>1,m>3&&(m=3),w|=m<<6,0!==C&&(w|=32),w+=31-w%31,n=Xe,J((B=w)>>8&255),J(255&B)),0!==e.pending){if(t.Te(),0===t.tt)return c=-1,0}else if(0===t.We&&I>=i&&4!=i)return t.Le=Qe[7],-5;if(n==Ye&&0!==t.We)return r.Le=Qe[7],-5;if(0!==t.We||0!==A||0!=i&&n!=Ye){switch(R=-1,Je[D].Re){case 0:R=(e=>{let n,r=65535;for(r>s-5&&(r=s-5);;){if(1>=A){if(ie(),0===A&&0==e)return 0;if(0===A)break}if(C+=A,A=0,n=k+r,(0===C||C>=n)&&(A=C-n,C=n,se(!1),0===t.tt))return 0;if(C-k>=f-Ze&&(se(!1),0===t.tt))return 0}return se(4==e),0===t.tt?4==e?2:0:4==e?3:1})(i);break;case 1:R=(e=>{let n,r=0;for(;;){if(Ze>A){if(ie(),Ze>A&&0==e)return 0;if(0===A)break}if(3>A||(p=(p<f-Ze||2!=V&&(v=oe(r)),3>v)n=ee(0,255&u[C]),A--,C++;else if(n=ee(C-x,v-3),A-=v,v>P||3>A)C+=v,v=0,p=255&u[C],p=(p<{let n,r,s=0;for(;;){if(Ze>A){if(ie(),Ze>A&&0==e)return 0;if(0===A)break}if(3>A||(p=(p<_&&f-Ze>=(C-s&65535)&&(2!=V&&(v=oe(s)),5>=v&&(1==V||3==v&&C-x>4096)&&(v=2)),3>_||v>_)if(0!==z){if(n=ee(0,255&u[C-1]),n&&se(!1),C++,A--,0===t.tt)return 0}else z=1,C++,A--;else{r=C+A-3,n=ee(C-1-S,_-3),A-=_-1,_-=2;do{++C>r||(p=(p<1+H+10-F&&(X(2,3),Y(256,Le._e),$()),H=7;else if(re(0,0,!1),3==i)for(o=0;y>o;o++)d[o]=0;if(t.Te(),0===t.tt)return c=-1,0}}return 4!=i?0:1}}function tt(){const e=this;e.nt=0,e.rt=0,e.We=0,e.qe=0,e.tt=0,e.Ge=0}function nt(e){const t=new tt,n=(o=e&&e.chunkSize?e.chunkSize:65536)+5*(r.floor(o/16383)+1);var o;const c=new i(n);let f=e?e.level:-1;void 0===f&&(f=-1),t.He(f),t.$e=c,this.append=(e,r)=>{let o,f,a=0,l=0,u=0;const w=[];if(e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,o=t.Ye(0),0!=o)throw new s("deflating: "+t.Le);t.rt&&(t.rt==n?w.push(new i(c)):w.push(c.subarray(0,t.rt))),u+=t.rt,r&&t.nt>0&&t.nt!=a&&(r(t.nt),a=t.nt)}while(t.We>0||0===t.tt);return w.length>1?(f=new i(u),w.forEach((e=>{f.set(e,l),l+=e.length}))):f=w[0]?new i(w[0]):new i,f}},this.flush=()=>{let e,r,o=0,f=0;const a=[];do{if(t.rt=0,t.tt=n,e=t.Ye(4),1!=e&&0!=e)throw new s("deflating: "+t.Le);n-t.tt>0&&a.push(c.slice(0,t.rt)),f+=t.rt}while(t.We>0||0===t.tt);return t.Qe(),r=new i(f),a.forEach((e=>{r.set(e,o),o+=e.length})),r}}tt.prototype={He(e,t){const n=this;return n.Fe=new et,t||(t=15),n.Fe.He(n,e,t)},Ye(e){const t=this;return t.Fe?t.Fe.Ye(t,e):Oe},Qe(){const e=this;if(!e.Fe)return Oe;const t=e.Fe.Qe();return e.Fe=null,t},Xe(e,t){const n=this;return n.Fe?n.Fe.Xe(n,e,t):Oe},Ze(e,t){const n=this;return n.Fe?n.Fe.Ze(n,e,t):Oe},je(e,t,n){const r=this;let s=r.We;return s>n&&(s=n),0===s?0:(r.We-=s,e.set(r.et.subarray(r.nt,r.nt+s),t),r.nt+=s,r.qe+=s,s)},Te(){const e=this;let t=e.Fe.pending;t>e.tt&&(t=e.tt),0!==t&&(e.$e.set(e.Fe.Ke.subarray(e.Fe.Je,e.Fe.Je+t),e.rt),e.rt+=t,e.Fe.Je+=t,e.Ge+=t,e.tt-=t,e.Fe.pending-=t,0===e.Fe.pending&&(e.Fe.Je=0))}};const rt=-2,st=-3,it=-5,ot=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],ct=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],ft=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],at=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],lt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],ut=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],wt=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];function ht(){let e,t,n,r,s,i;function o(e,t,o,c,f,a,l,u,w,h,d){let p,y,m,b,g,k,v,S,z,C,x,A,_,I,P;C=0,g=o;do{n[e[t+C]]++,C++,g--}while(0!==g);if(n[0]==o)return l[0]=-1,u[0]=0,0;for(S=u[0],k=1;15>=k&&0===n[k];k++);for(v=k,k>S&&(S=k),g=15;0!==g&&0===n[g];g--);for(m=g,S>g&&(S=g),u[0]=S,I=1<k;k++,I<<=1)if(0>(I-=n[k]))return st;if(0>(I-=n[g]))return st;for(n[g]+=I,i[1]=k=0,C=1,_=2;0!=--g;)i[_]=k+=n[C],_++,C++;g=0,C=0;do{0!==(k=e[t+C])&&(d[i[k]++]=g),C++}while(++g=v;v++)for(p=n[v];0!=p--;){for(;v>A+S;){if(b++,A+=S,P=m-A,P=P>S?S:P,(y=1<<(k=v-A))>p+1&&(y-=p+1,_=v,P>k))for(;++kn[++_];)y-=n[_];if(P=1<1440)return st;s[b]=x=h[0],h[0]+=P,0!==b?(i[b]=g,r[0]=k,r[1]=S,k=g>>>A-S,r[2]=x-s[b-1]-k,w.set(r,3*(s[b-1]+k))):l[0]=x}for(r[1]=v-A,o>C?d[C]d[C]?0:96,r[2]=d[C++]):(r[0]=a[d[C]-c]+16+64,r[2]=f[d[C++]-c]):r[0]=192,y=1<>>A;P>k;k+=y)w.set(r,3*(x+k));for(k=1<>>=1)g^=k;for(g^=k,z=(1<c;c++)t[c]=0;for(c=0;16>c;c++)n[c]=0;for(c=0;3>c;c++)r[c]=0;s.set(n.subarray(0,15),0),i.set(n.subarray(0,16),0)}this.st=(n,r,s,i,f)=>{let a;return c(19),e[0]=0,a=o(n,0,19,19,null,null,s,r,i,e,t),a==st?f.Le="oversubscribed dynamic bit lengths tree":a!=it&&0!==r[0]||(f.Le="incomplete dynamic bit lengths tree",a=st),a},this.it=(n,r,s,i,f,a,l,u,w)=>{let h;return c(288),e[0]=0,h=o(s,0,n,257,at,lt,a,i,u,e,t),0!=h||0===i[0]?(h==st?w.Le="oversubscribed literal/length tree":-4!=h&&(w.Le="incomplete literal/length tree",h=st),h):(c(288),h=o(s,n,r,0,ut,wt,l,f,u,e,t),0!=h||0===f[0]&&n>257?(h==st?w.Le="oversubscribed distance tree":h==it?(w.Le="incomplete distance tree",h=st):-4!=h&&(w.Le="empty distance tree with lengths",h=st),h):0)}}function dt(){const e=this;let t,n,r,s,i=0,o=0,c=0,f=0,a=0,l=0,u=0,w=0,h=0,d=0;function p(e,t,n,r,s,i,o,c){let f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z;d=c.nt,p=c.We,w=o.ot,h=o.ct,y=o.write,m=yh;)p--,w|=(255&c.ft(d++))<>=a[z+1],h-=a[z+1],0!=(16&u)){for(u&=15,k=a[z+2]+(w&ot[u]),w>>=u,h-=u;15>h;)p--,w|=(255&c.ft(d++))<>=a[z+1],h-=a[z+1],0!=(16&u)){for(u&=15;u>h;)p--,w|=(255&c.ft(d++))<>=u,h-=u,m-=k,v>y){S=y-v;do{S+=o.end}while(0>S);if(u=o.end-S,k>u){if(k-=u,y-S>0&&u>y-S)do{o.lt[y++]=o.lt[S++]}while(0!=--u);else o.lt.set(o.lt.subarray(S,S+u),y),y+=u,S+=u,u=0;S=0}}else S=y-v,y-S>0&&2>y-S?(o.lt[y++]=o.lt[S++],o.lt[y++]=o.lt[S++],k-=2):(o.lt.set(o.lt.subarray(S,S+2),y),y+=2,S+=2,k-=2);if(y-S>0&&k>y-S)do{o.lt[y++]=o.lt[S++]}while(0!=--k);else o.lt.set(o.lt.subarray(S,S+k),y),y+=k,S+=k,k=0;break}if(0!=(64&u))return c.Le="invalid distance code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,st;f+=a[z+2],f+=w&ot[u],z=3*(l+f),u=a[z]}break}if(0!=(64&u))return 0!=(32&u)?(k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,1):(c.Le="invalid literal/length code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,st);if(f+=a[z+2],f+=w&ot[u],z=3*(l+f),0===(u=a[z])){w>>=a[z+1],h-=a[z+1],o.lt[y++]=a[z+2],m--;break}}else w>>=a[z+1],h-=a[z+1],o.lt[y++]=a[z+2],m--}while(m>=258&&p>=10);return k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,0}e.init=(e,i,o,c,f,a)=>{t=0,u=e,w=i,r=o,h=c,s=f,d=a,n=null},e.ut=(e,y,m)=>{let b,g,k,v,S,z,C,x=0,A=0,_=0;for(_=y.nt,v=y.We,x=e.ot,A=e.ct,S=e.write,z=S=258&&v>=10&&(e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,m=p(u,w,r,h,s,d,e,y),_=y.nt,v=y.We,x=e.ot,A=e.ct,S=e.write,z=SA;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<>>=n[g+1],A-=n[g+1],k=n[g],0===k){f=n[g+2],t=6;break}if(0!=(16&k)){a=15&k,i=n[g+2],t=2;break}if(0==(64&k)){c=k,o=g/3+n[g+2];break}if(0!=(32&k)){t=7;break}return t=9,y.Le="invalid literal/length code",m=st,e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);case 2:for(b=a;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<>=b,A-=b,c=w,n=s,o=d,t=3;case 3:for(b=c;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<>=n[g+1],A-=n[g+1],k=n[g],0!=(16&k)){a=15&k,l=n[g+2],t=4;break}if(0==(64&k)){c=k,o=g/3+n[g+2];break}return t=9,y.Le="invalid distance code",m=st,e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);case 4:for(b=a;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<>=b,A-=b,t=5;case 5:for(C=S-l;0>C;)C+=e.end;for(;0!==i;){if(0===z&&(S==e.end&&0!==e.read&&(S=0,z=S7&&(A-=8,v++,_--),e.write=S,m=e.wt(y,m),S=e.write,z=S{}}ht.dt=(e,t,n,r)=>(e[0]=9,t[0]=5,n[0]=ct,r[0]=ft,0);const pt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function yt(e,t){const n=this;let r,s=0,o=0,c=0,a=0;const l=[0],u=[0],w=new dt;let h=0,d=new f(4320);const p=new ht;n.ct=0,n.ot=0,n.lt=new i(t),n.end=t,n.read=0,n.write=0,n.reset=(e,t)=>{t&&(t[0]=0),6==s&&w.ht(e),s=0,n.ct=0,n.ot=0,n.read=n.write=0},n.reset(e,null),n.wt=(e,t)=>{let r,s,i;return s=e.rt,i=n.read,r=(i>n.write?n.end:n.write)-i,r>e.tt&&(r=e.tt),0!==r&&t==it&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.lt.subarray(i,i+r),s),s+=r,i+=r,i==n.end&&(i=0,n.write==n.end&&(n.write=0),r=n.write-i,r>e.tt&&(r=e.tt),0!==r&&t==it&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.lt.subarray(i,i+r),s),s+=r,i+=r),e.rt=s,n.read=i,t},n.ut=(e,t)=>{let i,f,y,m,b,g,k,v;for(m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=gy;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>1){case 0:f>>>=3,y-=3,i=7&y,f>>>=i,y-=i,s=1;break;case 1:S=[],z=[],C=[[]],x=[[]],ht.dt(S,z,C,x),w.init(S[0],z[0],C[0],0,x[0],0),f>>>=3,y-=3,s=6;break;case 2:f>>>=3,y-=3,s=3;break;case 3:return f>>>=3,y-=3,s=9,e.Le="invalid block type",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t)}break;case 1:for(;32>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>16&65535)!=(65535&f))return s=9,e.Le="invalid stored block lengths",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);o=65535&f,f=y=0,s=0!==o?2:0!==h?7:0;break;case 2:if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(0===k&&(g==n.end&&0!==n.read&&(g=0,k=gb&&(i=b),i>k&&(i=k),n.lt.set(e.je(m,i),g),m+=i,b-=i,g+=i,k-=i,0!=(o-=i))break;s=0!==h?7:0;break;case 3:for(;14>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<29||(i>>5&31)>29)return s=9,e.Le="too many length or distance symbols",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(i=258+(31&i)+(i>>5&31),!r||r.lengthv;v++)r[v]=0;f>>>=14,y-=14,a=0,s=4;case 4:for(;4+(c>>>10)>a;){for(;3>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>=3,y-=3}for(;19>a;)r[pt[a++]]=0;if(l[0]=7,i=p.st(r,l,u,d,e),0!=i)return(t=i)==st&&(r=null,s=9),n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);a=0,s=5;case 5:for(;i=c,258+(31&i)+(i>>5&31)>a;){let o,w;for(i=l[0];i>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<w)f>>>=i,y-=i,r[a++]=w;else{for(v=18==w?7:w-14,o=18==w?11:3;i+v>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>=i,y-=i,o+=f&ot[v],f>>>=v,y-=v,v=a,i=c,v+o>258+(31&i)+(i>>5&31)||16==w&&1>v)return r=null,s=9,e.Le="invalid bit length repeat",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w=16==w?r[v-1]:0;do{r[v++]=w}while(0!=--o);a=v}}if(u[0]=-1,A=[],_=[],I=[],P=[],A[0]=9,_[0]=6,i=c,i=p.it(257+(31&i),1+(i>>5&31),r,A,_,I,P,d,e),0!=i)return i==st&&(r=null,s=9),t=i,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w.init(A[0],_[0],d,I[0],d,P[0]),s=6;case 6:if(n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,1!=(t=w.ut(n,e,t)))return n.wt(e,t);if(t=0,w.ht(e),m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=g{n.reset(e,null),n.lt=null,d=null},n.yt=(e,t,r)=>{n.lt.set(e.subarray(t,t+r),0),n.read=n.write=r},n.bt=()=>1==s?1:0}const mt=13,bt=[0,0,255,255];function gt(){const e=this;function t(e){return e&&e.gt?(e.qe=e.Ge=0,e.Le=null,e.gt.mode=7,e.gt.kt.reset(e,null),0):rt}e.mode=0,e.method=0,e.vt=[0],e.St=0,e.marker=0,e.zt=0,e.Ct=t=>(e.kt&&e.kt.ht(t),e.kt=null,0),e.xt=(n,r)=>(n.Le=null,e.kt=null,8>r||r>15?(e.Ct(n),rt):(e.zt=r,n.gt.kt=new yt(n,1<{let n,r;if(!e||!e.gt||!e.et)return rt;const s=e.gt;for(t=4==t?it:0,n=it;;)switch(s.mode){case 0:if(0===e.We)return n;if(n=t,e.We--,e.qe++,8!=(15&(s.method=e.ft(e.nt++)))){s.mode=mt,e.Le="unknown compression method",s.marker=5;break}if(8+(s.method>>4)>s.zt){s.mode=mt,e.Le="invalid win size",s.marker=5;break}s.mode=1;case 1:if(0===e.We)return n;if(n=t,e.We--,e.qe++,r=255&e.ft(e.nt++),((s.method<<8)+r)%31!=0){s.mode=mt,e.Le="incorrect header check",s.marker=5;break}if(0==(32&r)){s.mode=7;break}s.mode=2;case 2:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St=(255&e.ft(e.nt++))<<24&4278190080,s.mode=3;case 3:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<16&16711680,s.mode=4;case 4:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<8&65280,s.mode=5;case 5:return 0===e.We?n:(n=t,e.We--,e.qe++,s.St+=255&e.ft(e.nt++),s.mode=6,2);case 6:return s.mode=mt,e.Le="need dictionary",s.marker=0,rt;case 7:if(n=s.kt.ut(e,n),n==st){s.mode=mt,s.marker=0;break}if(0==n&&(n=t),1!=n)return n;n=t,s.kt.reset(e,s.vt),s.mode=12;case 12:return e.We=0,1;case mt:return st;default:return rt}},e._t=(e,t,n)=>{let r=0,s=n;if(!e||!e.gt||6!=e.gt.mode)return rt;const i=e.gt;return s<1<{let n,r,s,i,o;if(!e||!e.gt)return rt;const c=e.gt;if(c.mode!=mt&&(c.mode=mt,c.marker=0),0===(n=e.We))return it;for(r=e.nt,s=c.marker;0!==n&&4>s;)e.ft(r)==bt[s]?s++:s=0!==e.ft(r)?0:4-s,r++,n--;return e.qe+=r-e.nt,e.nt=r,e.We=n,c.marker=s,4!=s?st:(i=e.qe,o=e.Ge,t(e),e.qe=i,e.Ge=o,c.mode=7,0)},e.Pt=e=>e&&e.gt&&e.gt.kt?e.gt.kt.bt():rt}function kt(){}function vt(e){const t=new kt,n=e&&e.chunkSize?r.floor(2*e.chunkSize):131072,o=new i(n);let c=!1;t.xt(),t.$e=o,this.append=(e,r)=>{const f=[];let a,l,u=0,w=0,h=0;if(0!==e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,0!==t.We||c||(t.nt=0,c=!0),a=t.At(0),c&&a===it){if(0!==t.We)throw new s("inflating: bad input")}else if(0!==a&&1!==a)throw new s("inflating: "+t.Le);if((c||1===a)&&t.We===e.length)throw new s("inflating: bad input");t.rt&&(t.rt===n?f.push(new i(o)):f.push(o.subarray(0,t.rt))),h+=t.rt,r&&t.nt>0&&t.nt!=u&&(r(t.nt),u=t.nt)}while(t.We>0||0===t.tt);return f.length>1?(l=new i(h),f.forEach((e=>{l.set(e,w),w+=e.length}))):l=f[0]?new i(f[0]):new i,l}},this.flush=()=>{t.Ct()}}kt.prototype={xt(e){const t=this;return t.gt=new gt,e||(e=15),t.gt.xt(t,e)},At(e){const t=this;return t.gt?t.gt.At(t,e):rt},Ct(){const e=this;if(!e.gt)return rt;const t=e.gt.Ct(e);return e.gt=null,t},It(){const e=this;return e.gt?e.gt.It(e):rt},_t(e,t){const n=this;return n.gt?n.gt._t(n,e,t):rt},ft(e){return this.et[e]},je(e,t){return this.et.subarray(e,e+t)}},self.initCodec=()=>{self.Deflate=nt,self.Inflate=vt}; -`],{type:"text/javascript"}));e({workerScripts:{inflate:[t],deflate:[t]}})}const _22="Writer iterator completed too soon",S22="Content-Type",D22=64*1024,St1="writable";class dM{constructor(){this.size=0}init(){this.initialized=!0}}class Dt1 extends dM{get readable(){const t=this,{chunkSize:i=D22}=t,a=new ReadableStream({start(){this.chunkOffset=0},async pull(r){const{offset:n=0,size:o,diskNumberStart:s}=a,{chunkOffset:l}=this;r.enqueue(await gf(t,n+l,Math.min(i,o-l),s)),l+i>o?r.close():this.chunkOffset+=i}});return a}}class y22 extends Dt1{constructor(t){super(),Object.assign(this,{blob:t,size:t.size})}async readUint8Array(t,i){const a=this,r=t+i;let o=await(t||ri&&(o=o.slice(t,r)),new Uint8Array(o)}}class yt1 extends dM{constructor(t){super();const i=this,a=new TransformStream,r=[];t&&r.push([S22,t]),Object.defineProperty(i,St1,{get(){return a.writable}}),i.blob=new Response(a.readable,{headers:r}).blob()}getData(){return this.blob}}class R22 extends Dt1{constructor(t){super(),this.readers=t}async init(){const t=this,{readers:i}=t;t.lastDiskNumber=0,t.lastDiskOffset=0,await Promise.all(i.map(async(a,r)=>{await a.init(),r!=i.length-1&&(t.lastDiskOffset+=a.size),t.size+=a.size})),super.init()}async readUint8Array(t,i,a=0){const r=this,{readers:n}=this;let o,s=a;s==-1&&(s=n.length-1);let l=t;for(;l>=n[s].size;)l-=n[s].size,s++;const d=n[s],C=d.size;if(l+i<=C)o=await gf(d,l,i);else{const m=C-l;o=new Uint8Array(i),o.set(await gf(d,l,m)),o.set(await r.readUint8Array(t+m,i-m,a),m)}return r.lastDiskNumber=Math.max(s,r.lastDiskNumber),o}}class Mf extends dM{constructor(t,i=4294967295){super();const a=this;Object.assign(a,{diskNumber:0,diskOffset:0,size:0,maxSize:i,availableSize:i});let r,n,o;const s=new WritableStream({async write(C){const{availableSize:m}=a;if(o)C.length>=m?(await l(C.slice(0,m)),await d(),a.diskOffset+=r.size,a.diskNumber++,o=null,await this.write(C.slice(m))):await l(C);else{const{value:u,done:p}=await t.next();if(p&&!u)throw new Error(_22);r=u,r.size=0,r.maxSize&&(a.maxSize=r.maxSize),a.availableSize=a.maxSize,await c8(r),n=u.writable,o=n.getWriter(),await this.write(C)}},async close(){await o.ready,await d()}});Object.defineProperty(a,St1,{get(){return s}});async function l(C){const m=C.length;m&&(await o.ready,await o.write(C),r.size+=m,a.size+=m,a.availableSize-=m)}async function d(){n.size=r.size,await o.close()}}}async function c8(e,t){e.init&&!e.initialized&&await e.init(t)}function b22(e){return Array.isArray(e)&&(e=new R22(e)),e instanceof ReadableStream&&(e={readable:e}),e}function N22(e){e.writable===Mt&&typeof e.next==W8&&(e=new Mf(e)),e instanceof WritableStream&&(e={writable:e});const{writable:t}=e;return t.size===Mt&&(t.size=0),e instanceof Mf||Object.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}function gf(e,t,i,a){return e.readUint8Array(t,i,a)}const w22="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0 ".split("");w22.length==256;const T22="filename",E22="rawFilename",P22="comment",I22="rawComment",O22="uncompressedSize",U22="compressedSize",x22="offset",DD="diskNumberStart",Rt1="lastModDate",F22="rawLastModDate",bt1="lastAccessDate",Nt1="creationDate",wt1="internalFileAttribute",Tt1="externalFileAttribute",Et1="msDosCompatible",Pt1="zip64",k22=[T22,E22,U22,O22,Rt1,F22,P22,I22,bt1,Nt1,x22,DD,DD,wt1,Tt1,Et1,Pt1,"directory","bitFlag","encrypted","signature","filenameUTF8","commentUTF8","compressionMethod","version","versionMadeBy","extraField","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class It1{constructor(t){k22.forEach(i=>this[i]=t[i])}}const B22="File already exists",z22="Zip file comment exceeds 64KB",Z22="File entry comment exceeds 64KB",G22="File entry name exceeds 64KB",yD="Version exceeds 65535",W22="The strength must equal 1, 2, or 3",X22="Extra field type exceeds 65535",Y22="Extra field data exceeds 64KB",CM="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",RD=new Uint8Array([7,0,2,0,65,69,3,0,0]);let Ch=0;const bD=[];class $22{constructor(t,i={}){t=N22(t),Object.assign(this,{writer:t,addSplitZipSignature:t instanceof Mf,options:i,config:U12(),files:new Map,filenames:new Set,offset:t.writable.size,pendingEntriesSize:0,pendingAddFileCalls:new Set,bufferedWrites:0})}async add(t="",i,a={}){const r=this,{pendingAddFileCalls:n,config:o}=r;ChbD.push(l));let s;try{if(t=t.trim(),r.filenames.has(t))throw new Error(B22);return r.filenames.add(t),s=q22(r,t,i,a),n.add(s),await s}catch(l){throw r.filenames.delete(t),l}finally{n.delete(s);const l=bD.shift();l?l():Ch--}}async close(t=new Uint8Array,i={}){const a=this,{pendingAddFileCalls:r,writer:n}=this,{writable:o}=n;for(;r.size;)await Promise.allSettled(Array.from(r));return await re2(this,t,i),ke(a,i,"preventClose")||await o.getWriter().close(),n.getData?n.getData():o}}async function q22(e,t,i,a){t=t.trim(),a.directory&&!t.endsWith(oh)?t+=oh:a.directory=t.endsWith(oh);const r=Lf(t);if(ce(r)>jt)throw new Error(G22);const n=a.comment||"",o=Lf(n);if(ce(o)>jt)throw new Error(Z22);const s=ke(e,a,"version",P12);if(s>jt)throw new Error(yD);const l=ke(e,a,"versionMadeBy",20);if(l>jt)throw new Error(yD);const d=ke(e,a,Rt1,new Date),C=ke(e,a,bt1),m=ke(e,a,Nt1),u=ke(e,a,Et1,!0),p=ke(e,a,wt1,0),V=ke(e,a,Tt1,0),f=ke(e,a,"password"),M=ke(e,a,"rawPassword"),H=ke(e,a,"encryptionStrength",3),g=ke(e,a,"zipCrypto"),_=ke(e,a,"extendedTimestamp",!0),v=ke(e,a,"keepOrder",!0),S=ke(e,a,"level"),y=ke(e,a,"useWebWorkers"),D=ke(e,a,"bufferedWrite"),R=ke(e,a,"dataDescriptorSignature",!1),N=ke(e,a,"signal"),w=ke(e,a,"useCompressionStream");let x=ke(e,a,"dataDescriptor",!0),U=ke(e,a,Pt1);if(f!==Mt&&H!==Mt&&(H<1||H>3))throw new Error(W22);let E=new Uint8Array;const{extraField:O}=a;if(O){let L1=0,e1=0;O.forEach(Y=>L1+=4+ce(Y)),E=new Uint8Array(L1),O.forEach((Y,a1)=>{if(a1>jt)throw new Error(X22);if(ce(Y)>jt)throw new Error(Y22);S5(E,new Uint16Array([a1]),e1),S5(E,new Uint16Array([ce(Y)]),e1+2),S5(E,Y,e1+4),e1+=4+ce(Y)})}let z=0,F=0,J=0;const W=U===!0;i&&(i=b22(i),await c8(i),i.size===Mt?(x=!0,(U||U===Mt)&&(U=!0,J=z=e0)):(J=i.size,z=ne2(J)));const{diskOffset:r1,diskNumber:$,maxSize:t1}=e.writer,l1=W||J>=e0,V1=W||z>=e0,A1=W||e.offset+e.pendingEntriesSize-r1>=e0,M1=ke(e,a,"supportZip64SplitFile",!0)&&W||$+Math.ceil(e.pendingEntriesSize/t1)>=jt;if(A1||l1||V1||M1){if(U===!1||!v)throw new Error(CM);U=!0}U=U||!1,a=Object.assign({},a,{rawFilename:r,rawComment:o,version:s,versionMadeBy:l,lastModDate:d,lastAccessDate:C,creationDate:m,rawExtraField:E,zip64:U,zip64UncompressedSize:l1,zip64CompressedSize:V1,zip64Offset:A1,zip64DiskNumberStart:M1,password:f,rawPassword:M,level:S,useWebWorkers:y,encryptionStrength:H,extendedTimestamp:_,zipCrypto:g,bufferedWrite:D,keepOrder:v,dataDescriptor:x,dataDescriptorSignature:R,signal:N,msDosCompatible:u,internalFileAttribute:p,externalFileAttribute:V,useCompressionStream:w});const X=Q22(a),s1=ee2(a),m1=ce(X.localHeaderArray,s1.dataDescriptorArray);F=m1+z,e.options.usdz&&(F+=F+64),e.pendingEntriesSize+=F;let f1;try{f1=await K22(e,t,i,{headerInfo:X,dataDescriptorInfo:s1,metadataSize:m1},a)}finally{e.pendingEntriesSize-=F}return Object.assign(f1,{name:t,comment:n,extraField:O}),new It1(f1)}async function K22(e,t,i,a,r){const{files:n,writer:o}=e,{keepOrder:s,dataDescriptor:l,signal:d}=r,{headerInfo:C}=a,{usdz:m}=e.options,u=Array.from(n.values()).pop();let p={},V,f,M,H,g,_;n.set(t,p);try{let D;s&&(D=u&&u.lock,v()),(r.bufferedWrite||e.writerLocked||e.bufferedWrites&&s||!l)&&!m?(_=new yt1,_.writable.size=0,V=!0,e.bufferedWrites++,await c8(o)):(_=o,await S()),await c8(_);const{writable:R}=o;let{diskOffset:N}=o;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const x=new Uint8Array(4),U=rt(x);le(U,0,j51),await f3(R,x),e.offset+=4}m&&J22(a,e.offset-N),V||(await D,await y(R));const{diskNumber:w}=o;if(g=!0,p.diskNumberStart=w,p=await j22(i,_,p,a,e.config,r),g=!1,n.set(t,p),p.filename=t,V){await _.writable.getWriter().close();let x=await _.getData();await D,await S(),H=!0,l||(x=await ie2(p,x,R,r)),await y(R),p.diskNumberStart=o.diskNumber,N=o.diskOffset,await x.stream().pipeTo(R,{preventClose:!0,preventAbort:!0,signal:d}),R.size+=x.size,H=!1}if(p.offset=e.offset-N,p.zip64)ae2(p,r);else if(p.offset>=e0)throw new Error(CM);return e.offset+=p.size,p}catch(D){if(V&&H||!V&&g){if(e.hasCorruptedEntries=!0,D)try{D.corruptedEntry=!0}catch{}V?e.offset+=_.writable.size:e.offset=_.writable.size}throw n.delete(t),D}finally{V&&e.bufferedWrites--,M&&M(),f&&f()}function v(){p.lock=new Promise(D=>M=D)}async function S(){e.writerLocked=!0;const{lockWriter:D}=e;e.lockWriter=new Promise(R=>f=()=>{e.writerLocked=!1,R()}),await D}async function y(D){ce(C.localHeaderArray)>o.availableSize&&(o.availableSize=0,await f3(D,new Uint8Array))}}async function j22(e,t,{diskNumberStart:i,lock:a},r,n,o){const{headerInfo:s,dataDescriptorInfo:l,metadataSize:d}=r,{localHeaderArray:C,headerArray:m,lastModDate:u,rawLastModDate:p,encrypted:V,compressed:f,version:M,compressionMethod:H,rawExtraFieldExtendedTimestamp:g,extraFieldExtendedTimestampFlag:_,rawExtraFieldNTFS:v,rawExtraFieldAES:S}=s,{dataDescriptorArray:y}=l,{rawFilename:D,lastAccessDate:R,creationDate:N,password:w,rawPassword:x,level:U,zip64:E,zip64UncompressedSize:O,zip64CompressedSize:z,zip64Offset:F,zip64DiskNumberStart:J,zipCrypto:W,dataDescriptor:r1,directory:$,versionMadeBy:t1,rawComment:l1,rawExtraField:V1,useWebWorkers:A1,onstart:n1,onprogress:M1,onend:X,signal:s1,encryptionStrength:m1,extendedTimestamp:f1,msDosCompatible:L1,internalFileAttribute:e1,externalFileAttribute:Y,useCompressionStream:a1}=o,c1={lock:a,versionMadeBy:t1,zip64:E,directory:Boolean($),filenameUTF8:!0,rawFilename:D,commentUTF8:!0,rawComment:l1,rawExtraFieldExtendedTimestamp:g,rawExtraFieldNTFS:v,rawExtraFieldAES:S,rawExtraField:V1,extendedTimestamp:f1,msDosCompatible:L1,internalFileAttribute:e1,externalFileAttribute:Y,diskNumberStart:i};let H1=0,_1=0,P1;const{writable:O1}=t;if(e){e.chunkSize=x12(n),await f3(O1,C);const y1=e.readable,X1=y1.size=e.size,j1={options:{codecType:At1,level:U,rawPassword:x,password:w,encryptionStrength:m1,zipCrypto:V&&W,passwordVerification:V&&W&&p>>8&255,signed:!0,compressed:f,encrypted:V,useWebWorkers:A1,useCompressionStream:a1,transferStreams:!1},config:n,streamOptions:{signal:s1,size:X1,onstart:n1,onprogress:M1,onend:X}},o2=await g22({readable:y1,writable:O1},j1);_1=o2.inputSize,H1=o2.outputSize,P1=o2.signature,O1.size+=_1}else await f3(O1,C);let x1;if(E){let y1=4;O&&(y1+=8),z&&(y1+=8),F&&(y1+=8),J&&(y1+=4),x1=new Uint8Array(y1)}else x1=new Uint8Array;return te2({signature:P1,rawExtraFieldZip64:x1,compressedSize:H1,uncompressedSize:_1,headerInfo:s,dataDescriptorInfo:l},o),r1&&await f3(O1,y),Object.assign(c1,{uncompressedSize:_1,compressedSize:H1,lastModDate:u,rawLastModDate:p,creationDate:N,lastAccessDate:R,encrypted:V,size:d+H1,compressionMethod:H,version:M,headerArray:m,signature:P1,rawExtraFieldZip64:x1,extraFieldExtendedTimestampFlag:_,zip64UncompressedSize:O,zip64CompressedSize:z,zip64Offset:F,zip64DiskNumberStart:J}),c1}function Q22(e){const{rawFilename:t,lastModDate:i,lastAccessDate:a,creationDate:r,rawPassword:n,password:o,level:s,zip64:l,zipCrypto:d,dataDescriptor:C,directory:m,rawExtraField:u,encryptionStrength:p,extendedTimestamp:V}=e,f=s!==0&&!m,M=Boolean(o&&ce(o)||n&&ce(n));let H=e.version,g;if(M&&!d){g=new Uint8Array(ce(RD)+2);const J=rt(g);Le(J,0,D12),S5(g,RD,2),Nd(J,8,p)}else g=new Uint8Array;let _,v,S;if(V){v=new Uint8Array(9+(a?4:0)+(r?4:0));const J=rt(v);Le(J,0,et1),Le(J,2,ce(v)-4),S=1+(a?2:0)+(r?4:0),Nd(J,4,S);let W=5;le(J,W,Math.floor(i.getTime()/1e3)),W+=4,a&&(le(J,W,Math.floor(a.getTime()/1e3)),W+=4),r&&le(J,W,Math.floor(r.getTime()/1e3));try{_=new Uint8Array(36);const r1=rt(_),$=mh(i);Le(r1,0,y12),Le(r1,2,32),Le(r1,8,R12),Le(r1,10,24),Qt(r1,12,$),Qt(r1,20,mh(a)||$),Qt(r1,28,mh(r)||$)}catch{_=new Uint8Array}}else _=v=new Uint8Array;let y=T12;C&&(y=y|w12);let D=f12;f&&(D=lD),l&&(H=H>cD?H:cD),M&&(y=y|N12,d||(H=H>dD?H:dD,D=V12,f&&(g[9]=lD)));const R=new Uint8Array(26),N=rt(R);Le(N,0,H),Le(N,2,y),Le(N,4,D);const w=new Uint32Array(1),x=rt(w);let U;iCD?U=CD:U=i,Le(x,0,(U.getHours()<<6|U.getMinutes())<<5|U.getSeconds()/2),Le(x,2,(U.getFullYear()-1980<<4|U.getMonth()+1)<<5|U.getDate());const E=w[0];le(N,6,E),Le(N,22,ce(t));const O=ce(g,v,_,u);Le(N,24,O);const z=new Uint8Array(30+ce(t)+O),F=rt(z);return le(F,0,L12),S5(z,R,4),S5(z,t,30),S5(z,g,30+ce(t)),S5(z,v,30+ce(t,g)),S5(z,_,30+ce(t,g,v)),S5(z,u,30+ce(t,g,v,_)),{localHeaderArray:z,headerArray:R,headerView:N,lastModDate:i,rawLastModDate:E,encrypted:M,compressed:f,version:H,compressionMethod:D,extraFieldExtendedTimestampFlag:S,rawExtraFieldExtendedTimestamp:v,rawExtraFieldNTFS:_,rawExtraFieldAES:g,extraFieldLength:O}}function J22(e,t){const{headerInfo:i}=e;let{localHeaderArray:a,extraFieldLength:r}=i,n=rt(a),o=64-(t+ce(a))%64;o<4&&(o+=64);const s=new Uint8Array(o),l=rt(s);Le(l,0,b12),Le(l,2,o-2);const d=a;i.localHeaderArray=a=new Uint8Array(ce(d)+o),S5(a,d),S5(a,s,ce(d)),n=rt(a),Le(n,28,r+o),e.metadataSize+=o}function ee2(e){const{zip64:t,dataDescriptor:i,dataDescriptorSignature:a}=e;let r=new Uint8Array,n,o=0;return i&&(r=new Uint8Array(t?a?24:20:a?16:12),n=rt(r),a&&(o=4,le(n,0,H12))),{dataDescriptorArray:r,dataDescriptorView:n,dataDescriptorOffset:o}}function te2(e,t){const{signature:i,rawExtraFieldZip64:a,compressedSize:r,uncompressedSize:n,headerInfo:o,dataDescriptorInfo:s}=e,{headerView:l,encrypted:d}=o,{dataDescriptorView:C,dataDescriptorOffset:m}=s,{zip64:u,zip64UncompressedSize:p,zip64CompressedSize:V,zipCrypto:f,dataDescriptor:M}=t;if((!d||f)&&i!==Mt&&(le(l,10,i),M&&le(C,m,i)),u){const H=rt(a);Le(H,0,S12),Le(H,2,ce(a)-4);let g=4;p&&(le(l,18,e0),Qt(H,g,BigInt(n)),g+=8),V&&(le(l,14,e0),Qt(H,g,BigInt(r))),M&&(Qt(C,m+4,BigInt(r)),Qt(C,m+12,BigInt(n)))}else le(l,14,r),le(l,18,n),M&&(le(C,m+4,r),le(C,m+8,n))}async function ie2(e,t,i,{zipCrypto:a}){let r;r=await t.slice(0,26).arrayBuffer(),r.byteLength!=26&&(r=r.slice(0,26));const n=new DataView(r);return(!e.encrypted||a)&&le(n,14,e.signature),e.zip64?(le(n,18,e0),le(n,22,e0)):(le(n,18,e.compressedSize),le(n,22,e.uncompressedSize)),await f3(i,new Uint8Array(r)),t.slice(r.byteLength)}function ae2(e,t){const{rawExtraFieldZip64:i,offset:a,diskNumberStart:r}=e,{zip64UncompressedSize:n,zip64CompressedSize:o,zip64Offset:s,zip64DiskNumberStart:l}=t,d=rt(i);let C=4;n&&(C+=8),o&&(C+=8),s&&(Qt(d,C,BigInt(a)),C+=8),l&&le(d,C,r)}async function re2(e,t,i){const{files:a,writer:r}=e,{diskOffset:n,writable:o}=r;let{diskNumber:s}=r,l=0,d=0,C=e.offset-n,m=a.size;for(const[,S]of a){const{rawFilename:y,rawExtraFieldZip64:D,rawExtraFieldAES:R,rawComment:N,rawExtraFieldNTFS:w,rawExtraField:x,extendedTimestamp:U,extraFieldExtendedTimestampFlag:E,lastModDate:O}=S;let z;if(U){z=new Uint8Array(9);const F=rt(z);Le(F,0,et1),Le(F,2,5),Nd(F,4,E),le(F,5,Math.floor(O.getTime()/1e3))}else z=new Uint8Array;S.rawExtraFieldCDExtendedTimestamp=z,d+=46+ce(y,N,D,R,w,z,x)}const u=new Uint8Array(d),p=rt(u);await c8(r);let V=0;for(const[S,y]of Array.from(a.values()).entries()){const{offset:D,rawFilename:R,rawExtraFieldZip64:N,rawExtraFieldAES:w,rawExtraFieldCDExtendedTimestamp:x,rawExtraFieldNTFS:U,rawExtraField:E,rawComment:O,versionMadeBy:z,headerArray:F,directory:J,zip64:W,zip64UncompressedSize:r1,zip64CompressedSize:$,zip64DiskNumberStart:t1,zip64Offset:l1,msDosCompatible:V1,internalFileAttribute:A1,externalFileAttribute:n1,diskNumberStart:M1,uncompressedSize:X,compressedSize:s1}=y,m1=ce(N,w,x,U,E);le(p,l,M12),Le(p,l+4,z);const f1=rt(F);r1||le(f1,18,X),$||le(f1,14,s1),S5(u,F,l+6),Le(p,l+30,m1),Le(p,l+32,ce(O)),Le(p,l+34,W&&t1?jt:M1),Le(p,l+36,A1),n1?le(p,l+38,n1):J&&V1&&Nd(p,l+38,E12),le(p,l+42,W&&l1?e0:D),S5(u,R,l+46),S5(u,N,l+46+ce(R)),S5(u,w,l+46+ce(R,N)),S5(u,x,l+46+ce(R,N,w)),S5(u,U,l+46+ce(R,N,w,x)),S5(u,E,l+46+ce(R,N,w,x,U)),S5(u,O,l+46+ce(R)+m1);const L1=46+ce(R,O)+m1;if(l-V>r.availableSize&&(r.availableSize=0,await f3(o,u.slice(V,l)),V=l),l+=L1,i.onprogress)try{await i.onprogress(S+1,a.size,new It1(y))}catch{}}await f3(o,V?u.slice(V):u);let f=r.diskNumber;const{availableSize:M}=r;M=e0||d>=e0||m>=jt||f>=jt){if(H===!1)throw new Error(CM);H=!0}const g=new Uint8Array(H?_12:ff),_=rt(g);l=0,H&&(le(_,0,A12),Qt(_,4,BigInt(44)),Le(_,12,45),Le(_,14,45),le(_,16,f),le(_,20,s),Qt(_,24,BigInt(m)),Qt(_,32,BigInt(m)),Qt(_,40,BigInt(d)),Qt(_,48,BigInt(C)),le(_,56,v12),Qt(_,64,BigInt(C)+BigInt(d)),le(_,72,f+1),ke(e,i,"supportZip64SplitFile",!0)&&(f=jt,s=jt),m=jt,C=e0,d=e0,l+=J51+Q51),le(_,l,g12),Le(_,l+4,f),Le(_,l+6,s),Le(_,l+8,m),Le(_,l+10,m),le(_,l+12,d),le(_,l+16,C);const v=ce(t);if(v)if(v<=jt)Le(_,l+20,v);else throw new Error(z22);await f3(o,g),v&&await f3(o,t)}async function f3(e,t){const i=e.getWriter();try{await i.ready,e.size+=ce(t),await i.write(t)}finally{i.releaseLock()}}function mh(e){if(e)return(BigInt(e.getTime())+BigInt(116444736e5))*BigInt(1e4)}function ke(e,t,i,a){const r=t[i]===Mt?e.options[i]:t[i];return r===Mt?a:r}function ne2(e){return e+5*(Math.floor(e/16383)+1)}function Nd(e,t,i){e.setUint8(t,i)}function Le(e,t,i){e.setUint16(t,i,!0)}function le(e,t,i){e.setUint32(t,i,!0)}function Qt(e,t,i){e.setBigUint64(t,i,!0)}function S5(e,t,i){e.set(t,i)}function rt(e){return new DataView(e.buffer)}function ce(...e){let t=0;return e.forEach(i=>i&&(t+=i.length)),t}let Ot1;try{Ot1=import.meta.url}catch{}sM({baseURL:Ot1});v22(sM);sM({Deflate:$J1,Inflate:p12});var Ut1={exports:{}};(function(e){(function(t,i){e.exports?e.exports=i():window.ysFixWebmDuration=i()})("fix-webm-duration",function(){var t={172351395:{name:"EBML",type:"Container"},646:{name:"EBMLVersion",type:"Uint"},759:{name:"EBMLReadVersion",type:"Uint"},754:{name:"EBMLMaxIDLength",type:"Uint"},755:{name:"EBMLMaxSizeLength",type:"Uint"},642:{name:"DocType",type:"String"},647:{name:"DocTypeVersion",type:"Uint"},645:{name:"DocTypeReadVersion",type:"Uint"},108:{name:"Void",type:"Binary"},63:{name:"CRC-32",type:"Binary"},190023271:{name:"SignatureSlot",type:"Container"},16010:{name:"SignatureAlgo",type:"Uint"},16026:{name:"SignatureHash",type:"Uint"},16037:{name:"SignaturePublicKey",type:"Binary"},16053:{name:"Signature",type:"Binary"},15963:{name:"SignatureElements",type:"Container"},15995:{name:"SignatureElementList",type:"Container"},9522:{name:"SignedElement",type:"Binary"},139690087:{name:"Segment",type:"Container"},21863284:{name:"SeekHead",type:"Container"},3515:{name:"Seek",type:"Container"},5035:{name:"SeekID",type:"Binary"},5036:{name:"SeekPosition",type:"Uint"},88713574:{name:"Info",type:"Container"},13220:{name:"SegmentUID",type:"Binary"},13188:{name:"SegmentFilename",type:"String"},1882403:{name:"PrevUID",type:"Binary"},1868715:{name:"PrevFilename",type:"String"},2013475:{name:"NextUID",type:"Binary"},1999803:{name:"NextFilename",type:"String"},1092:{name:"SegmentFamily",type:"Binary"},10532:{name:"ChapterTranslate",type:"Container"},10748:{name:"ChapterTranslateEditionUID",type:"Uint"},10687:{name:"ChapterTranslateCodec",type:"Uint"},10661:{name:"ChapterTranslateID",type:"Binary"},710577:{name:"TimecodeScale",type:"Uint"},1161:{name:"Duration",type:"Float"},1121:{name:"DateUTC",type:"Date"},15273:{name:"Title",type:"String"},3456:{name:"MuxingApp",type:"String"},5953:{name:"WritingApp",type:"String"},103:{name:"Timecode",type:"Uint"},6228:{name:"SilentTracks",type:"Container"},6359:{name:"SilentTrackNumber",type:"Uint"},39:{name:"Position",type:"Uint"},43:{name:"PrevSize",type:"Uint"},35:{name:"SimpleBlock",type:"Binary"},32:{name:"BlockGroup",type:"Container"},33:{name:"Block",type:"Binary"},34:{name:"BlockVirtual",type:"Binary"},13729:{name:"BlockAdditions",type:"Container"},38:{name:"BlockMore",type:"Container"},110:{name:"BlockAddID",type:"Uint"},37:{name:"BlockAdditional",type:"Binary"},27:{name:"BlockDuration",type:"Uint"},122:{name:"ReferencePriority",type:"Uint"},123:{name:"ReferenceBlock",type:"Int"},125:{name:"ReferenceVirtual",type:"Int"},36:{name:"CodecState",type:"Binary"},13730:{name:"DiscardPadding",type:"Int"},14:{name:"Slices",type:"Container"},104:{name:"TimeSlice",type:"Container"},76:{name:"LaceNumber",type:"Uint"},77:{name:"FrameNumber",type:"Uint"},75:{name:"BlockAdditionID",type:"Uint"},78:{name:"Delay",type:"Uint"},79:{name:"SliceDuration",type:"Uint"},72:{name:"ReferenceFrame",type:"Container"},73:{name:"ReferenceOffset",type:"Uint"},74:{name:"ReferenceTimeCode",type:"Uint"},47:{name:"EncryptedBlock",type:"Binary"},106212971:{name:"Tracks",type:"Container"},46:{name:"TrackEntry",type:"Container"},87:{name:"TrackNumber",type:"Uint"},13253:{name:"TrackUID",type:"Uint"},3:{name:"TrackType",type:"Uint"},57:{name:"FlagEnabled",type:"Uint"},8:{name:"FlagDefault",type:"Uint"},5546:{name:"FlagForced",type:"Uint"},28:{name:"FlagLacing",type:"Uint"},11751:{name:"MinCache",type:"Uint"},11768:{name:"MaxCache",type:"Uint"},254851:{name:"DefaultDuration",type:"Uint"},216698:{name:"DefaultDecodedFieldDuration",type:"Uint"},209231:{name:"TrackTimecodeScale",type:"Float"},4991:{name:"TrackOffset",type:"Int"},5614:{name:"MaxBlockAdditionID",type:"Uint"},4974:{name:"Name",type:"String"},177564:{name:"Language",type:"String"},6:{name:"CodecID",type:"String"},9122:{name:"CodecPrivate",type:"Binary"},362120:{name:"CodecName",type:"String"},13382:{name:"AttachmentLink",type:"Uint"},1742487:{name:"CodecSettings",type:"String"},1785920:{name:"CodecInfoURL",type:"String"},438848:{name:"CodecDownloadURL",type:"String"},42:{name:"CodecDecodeAll",type:"Uint"},12203:{name:"TrackOverlay",type:"Uint"},5802:{name:"CodecDelay",type:"Uint"},5819:{name:"SeekPreRoll",type:"Uint"},9764:{name:"TrackTranslate",type:"Container"},9980:{name:"TrackTranslateEditionUID",type:"Uint"},9919:{name:"TrackTranslateCodec",type:"Uint"},9893:{name:"TrackTranslateTrackID",type:"Binary"},96:{name:"Video",type:"Container"},26:{name:"FlagInterlaced",type:"Uint"},5048:{name:"StereoMode",type:"Uint"},5056:{name:"AlphaMode",type:"Uint"},5049:{name:"OldStereoMode",type:"Uint"},48:{name:"PixelWidth",type:"Uint"},58:{name:"PixelHeight",type:"Uint"},5290:{name:"PixelCropBottom",type:"Uint"},5307:{name:"PixelCropTop",type:"Uint"},5324:{name:"PixelCropLeft",type:"Uint"},5341:{name:"PixelCropRight",type:"Uint"},5296:{name:"DisplayWidth",type:"Uint"},5306:{name:"DisplayHeight",type:"Uint"},5298:{name:"DisplayUnit",type:"Uint"},5299:{name:"AspectRatioType",type:"Uint"},963876:{name:"ColourSpace",type:"Binary"},1029411:{name:"GammaValue",type:"Float"},230371:{name:"FrameRate",type:"Float"},97:{name:"Audio",type:"Container"},53:{name:"SamplingFrequency",type:"Float"},14517:{name:"OutputSamplingFrequency",type:"Float"},31:{name:"Channels",type:"Uint"},15739:{name:"ChannelPositions",type:"Binary"},8804:{name:"BitDepth",type:"Uint"},98:{name:"TrackOperation",type:"Container"},99:{name:"TrackCombinePlanes",type:"Container"},100:{name:"TrackPlane",type:"Container"},101:{name:"TrackPlaneUID",type:"Uint"},102:{name:"TrackPlaneType",type:"Uint"},105:{name:"TrackJoinBlocks",type:"Container"},109:{name:"TrackJoinUID",type:"Uint"},64:{name:"TrickTrackUID",type:"Uint"},65:{name:"TrickTrackSegmentUID",type:"Binary"},70:{name:"TrickTrackFlag",type:"Uint"},71:{name:"TrickMasterTrackUID",type:"Uint"},68:{name:"TrickMasterTrackSegmentUID",type:"Binary"},11648:{name:"ContentEncodings",type:"Container"},8768:{name:"ContentEncoding",type:"Container"},4145:{name:"ContentEncodingOrder",type:"Uint"},4146:{name:"ContentEncodingScope",type:"Uint"},4147:{name:"ContentEncodingType",type:"Uint"},4148:{name:"ContentCompression",type:"Container"},596:{name:"ContentCompAlgo",type:"Uint"},597:{name:"ContentCompSettings",type:"Binary"},4149:{name:"ContentEncryption",type:"Container"},2017:{name:"ContentEncAlgo",type:"Uint"},2018:{name:"ContentEncKeyID",type:"Binary"},2019:{name:"ContentSignature",type:"Binary"},2020:{name:"ContentSigKeyID",type:"Binary"},2021:{name:"ContentSigAlgo",type:"Uint"},2022:{name:"ContentSigHashAlgo",type:"Uint"},206814059:{name:"Cues",type:"Container"},59:{name:"CuePoint",type:"Container"},51:{name:"CueTime",type:"Uint"},55:{name:"CueTrackPositions",type:"Container"},119:{name:"CueTrack",type:"Uint"},113:{name:"CueClusterPosition",type:"Uint"},112:{name:"CueRelativePosition",type:"Uint"},50:{name:"CueDuration",type:"Uint"},4984:{name:"CueBlockNumber",type:"Uint"},106:{name:"CueCodecState",type:"Uint"},91:{name:"CueReference",type:"Container"},22:{name:"CueRefTime",type:"Uint"},23:{name:"CueRefCluster",type:"Uint"},4959:{name:"CueRefNumber",type:"Uint"},107:{name:"CueRefCodecState",type:"Uint"},155296873:{name:"Attachments",type:"Container"},8615:{name:"AttachedFile",type:"Container"},1662:{name:"FileDescription",type:"String"},1646:{name:"FileName",type:"String"},1632:{name:"FileMimeType",type:"String"},1628:{name:"FileData",type:"Binary"},1710:{name:"FileUID",type:"Uint"},1653:{name:"FileReferral",type:"Binary"},1633:{name:"FileUsedStartTime",type:"Uint"},1634:{name:"FileUsedEndTime",type:"Uint"},4433776:{name:"Chapters",type:"Container"},1465:{name:"EditionEntry",type:"Container"},1468:{name:"EditionUID",type:"Uint"},1469:{name:"EditionFlagHidden",type:"Uint"},1499:{name:"EditionFlagDefault",type:"Uint"},1501:{name:"EditionFlagOrdered",type:"Uint"},54:{name:"ChapterAtom",type:"Container"},13252:{name:"ChapterUID",type:"Uint"},5716:{name:"ChapterStringUID",type:"String"},17:{name:"ChapterTimeStart",type:"Uint"},18:{name:"ChapterTimeEnd",type:"Uint"},24:{name:"ChapterFlagHidden",type:"Uint"},1432:{name:"ChapterFlagEnabled",type:"Uint"},11879:{name:"ChapterSegmentUID",type:"Binary"},11964:{name:"ChapterSegmentEditionUID",type:"Uint"},9155:{name:"ChapterPhysicalEquiv",type:"Uint"},15:{name:"ChapterTrack",type:"Container"},9:{name:"ChapterTrackNumber",type:"Uint"},0:{name:"ChapterDisplay",type:"Container"},5:{name:"ChapString",type:"String"},892:{name:"ChapLanguage",type:"String"},894:{name:"ChapCountry",type:"String"},10564:{name:"ChapProcess",type:"Container"},10581:{name:"ChapProcessCodecID",type:"Uint"},1293:{name:"ChapProcessPrivate",type:"Binary"},10513:{name:"ChapProcessCommand",type:"Container"},10530:{name:"ChapProcessTime",type:"Uint"},10547:{name:"ChapProcessData",type:"Binary"},39109479:{name:"Tags",type:"Container"},13171:{name:"Tag",type:"Container"},9152:{name:"Targets",type:"Container"},10442:{name:"TargetTypeValue",type:"Uint"},9162:{name:"TargetType",type:"String"},9157:{name:"TagTrackUID",type:"Uint"},9161:{name:"TagEditionUID",type:"Uint"},9156:{name:"TagChapterUID",type:"Uint"},9158:{name:"TagAttachmentUID",type:"Uint"},10184:{name:"SimpleTag",type:"Container"},1443:{name:"TagName",type:"String"},1146:{name:"TagLanguage",type:"String"},1156:{name:"TagDefault",type:"Uint"},1159:{name:"TagString",type:"String"},1157:{name:"TagBinary",type:"Binary"}};function i(C,m){C.prototype=Object.create(m.prototype),C.prototype.constructor=C}function a(C,m){this.name=C||"Unknown",this.type=m||"Unknown"}a.prototype.updateBySource=function(){},a.prototype.setSource=function(C){this.source=C,this.updateBySource()},a.prototype.updateByData=function(){},a.prototype.setData=function(C){this.data=C,this.updateByData()};function r(C,m){a.call(this,C,m||"Uint")}i(r,a);function n(C){return C.length%2===1?"0"+C:C}r.prototype.updateBySource=function(){this.data="";for(var C=0;C=p&&u<8;u++,p*=128);if(!m)for(var V=p+C,f=u-1;f>=0;f--){var M=V%256;this.source[this.offset+f]=M,V=(V-M)/256}this.offset+=u},s.prototype.writeSections=function(C){this.offset=0;for(var m=0;m=i&&parseInt(a[i],10)}function Gn(e,t,i){if(!e.RTCPeerConnection)return;const a=e.RTCPeerConnection.prototype,r=a.addEventListener;a.addEventListener=function(o,s){if(o!==t)return r.apply(this,arguments);const l=d=>{const C=i(d);C&&(s.handleEvent?s.handleEvent(C):s(C))};return this._eventMap=this._eventMap||{},this._eventMap[t]||(this._eventMap[t]=new Map),this._eventMap[t].set(s,l),r.apply(this,[o,l])};const n=a.removeEventListener;a.removeEventListener=function(o,s){if(o!==t||!this._eventMap||!this._eventMap[t])return n.apply(this,arguments);if(!this._eventMap[t].has(s))return n.apply(this,arguments);const l=this._eventMap[t].get(s);return this._eventMap[t].delete(s),this._eventMap[t].size===0&&delete this._eventMap[t],Object.keys(this._eventMap).length===0&&delete this._eventMap,n.apply(this,[o,l])},Object.defineProperty(a,"on"+t,{get(){return this["_on"+t]},set(o){this["_on"+t]&&(this.removeEventListener(t,this["_on"+t]),delete this["_on"+t]),o&&this.addEventListener(t,this["_on"+t]=o)},enumerable:!0,configurable:!0})}function se2(e){return typeof e!="boolean"?new Error("Argument type: "+typeof e+". Please use a boolean."):(xt1=e,e?"adapter.js logging disabled":"adapter.js logging enabled")}function le2(e){return typeof e!="boolean"?new Error("Argument type: "+typeof e+". Please use a boolean."):(Ft1=!e,"adapter.js deprecation warnings "+(e?"disabled":"enabled"))}function kt1(){if(typeof window=="object"){if(xt1)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function mM(e,t){!Ft1||console.warn(e+" is deprecated, please use "+t+" instead.")}function ce2(e){const t={browser:null,version:null};if(typeof e>"u"||!e.navigator||!e.navigator.userAgent)return t.browser="Not a browser.",t;const{navigator:i}=e;if(i.mozGetUserMedia)t.browser="firefox",t.version=cc(i.userAgent,/Firefox\/(\d+)\./,1);else if(i.webkitGetUserMedia||e.isSecureContext===!1&&e.webkitRTCPeerConnection)t.browser="chrome",t.version=cc(i.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else if(e.RTCPeerConnection&&i.userAgent.match(/AppleWebKit\/(\d+)\./))t.browser="safari",t.version=cc(i.userAgent,/AppleWebKit\/(\d+)\./,1),t.supportsUnifiedPlan=e.RTCRtpTransceiver&&"currentDirection"in e.RTCRtpTransceiver.prototype;else return t.browser="Not a supported browser.",t;return t}function ND(e){return Object.prototype.toString.call(e)==="[object Object]"}function Bt1(e){return ND(e)?Object.keys(e).reduce(function(t,i){const a=ND(e[i]),r=a?Bt1(e[i]):e[i],n=a&&!Object.keys(r).length;return r===void 0||n?t:Object.assign(t,{[i]:r})},{}):e}function Af(e,t,i){!t||i.has(t.id)||(i.set(t.id,t),Object.keys(t).forEach(a=>{a.endsWith("Id")?Af(e,e.get(t[a]),i):a.endsWith("Ids")&&t[a].forEach(r=>{Af(e,e.get(r),i)})}))}function wD(e,t,i){const a=i?"outbound-rtp":"inbound-rtp",r=new Map;if(t===null)return r;const n=[];return e.forEach(o=>{o.type==="track"&&o.trackIdentifier===t.id&&n.push(o)}),n.forEach(o=>{e.forEach(s=>{s.type===a&&s.trackId===o.id&&Af(e,s,r)})}),r}const TD=kt1;function zt1(e,t){const i=e&&e.navigator;if(!i.mediaDevices)return;const a=function(s){if(typeof s!="object"||s.mandatory||s.optional)return s;const l={};return Object.keys(s).forEach(d=>{if(d==="require"||d==="advanced"||d==="mediaSource")return;const C=typeof s[d]=="object"?s[d]:{ideal:s[d]};C.exact!==void 0&&typeof C.exact=="number"&&(C.min=C.max=C.exact);const m=function(u,p){return u?u+p.charAt(0).toUpperCase()+p.slice(1):p==="deviceId"?"sourceId":p};if(C.ideal!==void 0){l.optional=l.optional||[];let u={};typeof C.ideal=="number"?(u[m("min",d)]=C.ideal,l.optional.push(u),u={},u[m("max",d)]=C.ideal,l.optional.push(u)):(u[m("",d)]=C.ideal,l.optional.push(u))}C.exact!==void 0&&typeof C.exact!="number"?(l.mandatory=l.mandatory||{},l.mandatory[m("",d)]=C.exact):["min","max"].forEach(u=>{C[u]!==void 0&&(l.mandatory=l.mandatory||{},l.mandatory[m(u,d)]=C[u])})}),s.advanced&&(l.optional=(l.optional||[]).concat(s.advanced)),l},r=function(s,l){if(t.version>=61)return l(s);if(s=JSON.parse(JSON.stringify(s)),s&&typeof s.audio=="object"){const d=function(C,m,u){m in C&&!(u in C)&&(C[u]=C[m],delete C[m])};s=JSON.parse(JSON.stringify(s)),d(s.audio,"autoGainControl","googAutoGainControl"),d(s.audio,"noiseSuppression","googNoiseSuppression"),s.audio=a(s.audio)}if(s&&typeof s.video=="object"){let d=s.video.facingMode;d=d&&(typeof d=="object"?d:{ideal:d});const C=t.version<66;if(d&&(d.exact==="user"||d.exact==="environment"||d.ideal==="user"||d.ideal==="environment")&&!(i.mediaDevices.getSupportedConstraints&&i.mediaDevices.getSupportedConstraints().facingMode&&!C)){delete s.video.facingMode;let m;if(d.exact==="environment"||d.ideal==="environment"?m=["back","rear"]:(d.exact==="user"||d.ideal==="user")&&(m=["front"]),m)return i.mediaDevices.enumerateDevices().then(u=>{u=u.filter(V=>V.kind==="videoinput");let p=u.find(V=>m.some(f=>V.label.toLowerCase().includes(f)));return!p&&u.length&&m.includes("back")&&(p=u[u.length-1]),p&&(s.video.deviceId=d.exact?{exact:p.deviceId}:{ideal:p.deviceId}),s.video=a(s.video),TD("chrome: "+JSON.stringify(s)),l(s)})}s.video=a(s.video)}return TD("chrome: "+JSON.stringify(s)),l(s)},n=function(s){return t.version>=64?s:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[s.name]||s.name,message:s.message,constraint:s.constraint||s.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}},o=function(s,l,d){r(s,C=>{i.webkitGetUserMedia(C,l,m=>{d&&d(n(m))})})};if(i.getUserMedia=o.bind(i),i.mediaDevices.getUserMedia){const s=i.mediaDevices.getUserMedia.bind(i.mediaDevices);i.mediaDevices.getUserMedia=function(l){return r(l,d=>s(d).then(C=>{if(d.audio&&!C.getAudioTracks().length||d.video&&!C.getVideoTracks().length)throw C.getTracks().forEach(m=>{m.stop()}),new DOMException("","NotFoundError");return C},C=>Promise.reject(n(C))))}}}function de2(e,t){if(!(e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices)&&!!e.navigator.mediaDevices){if(typeof t!="function"){console.error("shimGetDisplayMedia: getSourceId argument is not a function");return}e.navigator.mediaDevices.getDisplayMedia=function(a){return t(a).then(r=>{const n=a.video&&a.video.width,o=a.video&&a.video.height,s=a.video&&a.video.frameRate;return a.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:r,maxFrameRate:s||3}},n&&(a.video.mandatory.maxWidth=n),o&&(a.video.mandatory.maxHeight=o),e.navigator.mediaDevices.getUserMedia(a)})}}}function Zt1(e){e.MediaStream=e.MediaStream||e.webkitMediaStream}function Gt1(e){if(typeof e=="object"&&e.RTCPeerConnection&&!("ontrack"in e.RTCPeerConnection.prototype)){Object.defineProperty(e.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(i){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=i)},enumerable:!0,configurable:!0});const t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=a=>{a.stream.addEventListener("addtrack",r=>{let n;e.RTCPeerConnection.prototype.getReceivers?n=this.getReceivers().find(s=>s.track&&s.track.id===r.track.id):n={track:r.track};const o=new Event("track");o.track=r.track,o.receiver=n,o.transceiver={receiver:n},o.streams=[a.stream],this.dispatchEvent(o)}),a.stream.getTracks().forEach(r=>{let n;e.RTCPeerConnection.prototype.getReceivers?n=this.getReceivers().find(s=>s.track&&s.track.id===r.id):n={track:r};const o=new Event("track");o.track=r,o.receiver=n,o.transceiver={receiver:n},o.streams=[a.stream],this.dispatchEvent(o)})},this.addEventListener("addstream",this._ontrackpoly)),t.apply(this,arguments)}}else Gn(e,"track",t=>(t.transceiver||Object.defineProperty(t,"transceiver",{value:{receiver:t.receiver}}),t))}function Wt1(e){if(typeof e=="object"&&e.RTCPeerConnection&&!("getSenders"in e.RTCPeerConnection.prototype)&&"createDTMFSender"in e.RTCPeerConnection.prototype){const t=function(r,n){return{track:n,get dtmf(){return this._dtmf===void 0&&(n.kind==="audio"?this._dtmf=r.createDTMFSender(n):this._dtmf=null),this._dtmf},_pc:r}};if(!e.RTCPeerConnection.prototype.getSenders){e.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const r=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(s,l){let d=r.apply(this,arguments);return d||(d=t(this,s),this._senders.push(d)),d};const n=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(s){n.apply(this,arguments);const l=this._senders.indexOf(s);l!==-1&&this._senders.splice(l,1)}}const i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(n){this._senders=this._senders||[],i.apply(this,[n]),n.getTracks().forEach(o=>{this._senders.push(t(this,o))})};const a=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(n){this._senders=this._senders||[],a.apply(this,[n]),n.getTracks().forEach(o=>{const s=this._senders.find(l=>l.track===o);s&&this._senders.splice(this._senders.indexOf(s),1)})}}else if(typeof e=="object"&&e.RTCPeerConnection&&"getSenders"in e.RTCPeerConnection.prototype&&"createDTMFSender"in e.RTCPeerConnection.prototype&&e.RTCRtpSender&&!("dtmf"in e.RTCRtpSender.prototype)){const t=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){const a=t.apply(this,[]);return a.forEach(r=>r._pc=this),a},Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function Xt1(e){if(!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){const[a,r,n]=arguments;if(arguments.length>0&&typeof a=="function")return t.apply(this,arguments);if(t.length===0&&(arguments.length===0||typeof a!="function"))return t.apply(this,[]);const o=function(l){const d={};return l.result().forEach(m=>{const u={id:m.id,timestamp:m.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[m.type]||m.type};m.names().forEach(p=>{u[p]=m.stat(p)}),d[u.id]=u}),d},s=function(l){return new Map(Object.keys(l).map(d=>[d,l[d]]))};if(arguments.length>=2){const l=function(d){r(s(o(d)))};return t.apply(this,[l,a])}return new Promise((l,d)=>{t.apply(this,[function(C){l(s(o(C)))},d])}).then(r,n)}}function Yt1(e){if(!(typeof e=="object"&&e.RTCPeerConnection&&e.RTCRtpSender&&e.RTCRtpReceiver))return;if(!("getStats"in e.RTCRtpSender.prototype)){const i=e.RTCPeerConnection.prototype.getSenders;i&&(e.RTCPeerConnection.prototype.getSenders=function(){const n=i.apply(this,[]);return n.forEach(o=>o._pc=this),n});const a=e.RTCPeerConnection.prototype.addTrack;a&&(e.RTCPeerConnection.prototype.addTrack=function(){const n=a.apply(this,arguments);return n._pc=this,n}),e.RTCRtpSender.prototype.getStats=function(){const n=this;return this._pc.getStats().then(o=>wD(o,n.track,!0))}}if(!("getStats"in e.RTCRtpReceiver.prototype)){const i=e.RTCPeerConnection.prototype.getReceivers;i&&(e.RTCPeerConnection.prototype.getReceivers=function(){const r=i.apply(this,[]);return r.forEach(n=>n._pc=this),r}),Gn(e,"track",a=>(a.receiver._pc=a.srcElement,a)),e.RTCRtpReceiver.prototype.getStats=function(){const r=this;return this._pc.getStats().then(n=>wD(n,r.track,!1))}}if(!("getStats"in e.RTCRtpSender.prototype&&"getStats"in e.RTCRtpReceiver.prototype))return;const t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof e.MediaStreamTrack){const a=arguments[0];let r,n,o;return this.getSenders().forEach(s=>{s.track===a&&(r?o=!0:r=s)}),this.getReceivers().forEach(s=>(s.track===a&&(n?o=!0:n=s),s.track===a)),o||r&&n?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):r?r.getStats():n?n.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return t.apply(this,arguments)}}function $t1(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(o=>this._shimmedLocalStreams[o][0])};const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(o,s){if(!s)return t.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const l=t.apply(this,arguments);return this._shimmedLocalStreams[s.id]?this._shimmedLocalStreams[s.id].indexOf(l)===-1&&this._shimmedLocalStreams[s.id].push(l):this._shimmedLocalStreams[s.id]=[s,l],l};const i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(o){this._shimmedLocalStreams=this._shimmedLocalStreams||{},o.getTracks().forEach(d=>{if(this.getSenders().find(m=>m.track===d))throw new DOMException("Track already exists.","InvalidAccessError")});const s=this.getSenders();i.apply(this,arguments);const l=this.getSenders().filter(d=>s.indexOf(d)===-1);this._shimmedLocalStreams[o.id]=[o].concat(l)};const a=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(o){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[o.id],a.apply(this,arguments)};const r=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(o){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},o&&Object.keys(this._shimmedLocalStreams).forEach(s=>{const l=this._shimmedLocalStreams[s].indexOf(o);l!==-1&&this._shimmedLocalStreams[s].splice(l,1),this._shimmedLocalStreams[s].length===1&&delete this._shimmedLocalStreams[s]}),r.apply(this,arguments)}}function qt1(e,t){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&t.version>=65)return $t1(e);const i=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){const C=i.apply(this);return this._reverseStreams=this._reverseStreams||{},C.map(m=>this._reverseStreams[m.id])};const a=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(C){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},C.getTracks().forEach(m=>{if(this.getSenders().find(p=>p.track===m))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[C.id]){const m=new e.MediaStream(C.getTracks());this._streams[C.id]=m,this._reverseStreams[m.id]=C,C=m}a.apply(this,[C])};const r=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(C){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},r.apply(this,[this._streams[C.id]||C]),delete this._reverseStreams[this._streams[C.id]?this._streams[C.id].id:C.id],delete this._streams[C.id]},e.RTCPeerConnection.prototype.addTrack=function(C,m){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const u=[].slice.call(arguments,1);if(u.length!==1||!u[0].getTracks().find(f=>f===C))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find(f=>f.track===C))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const V=this._streams[m.id];if(V)V.addTrack(C),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{const f=new e.MediaStream([C]);this._streams[m.id]=f,this._reverseStreams[f.id]=m,this.addStream(f)}return this.getSenders().find(f=>f.track===C)};function n(d,C){let m=C.sdp;return Object.keys(d._reverseStreams||[]).forEach(u=>{const p=d._reverseStreams[u],V=d._streams[p.id];m=m.replace(new RegExp(V.id,"g"),p.id)}),new RTCSessionDescription({type:C.type,sdp:m})}function o(d,C){let m=C.sdp;return Object.keys(d._reverseStreams||[]).forEach(u=>{const p=d._reverseStreams[u],V=d._streams[p.id];m=m.replace(new RegExp(p.id,"g"),V.id)}),new RTCSessionDescription({type:C.type,sdp:m})}["createOffer","createAnswer"].forEach(function(d){const C=e.RTCPeerConnection.prototype[d],m={[d](){const u=arguments;return arguments.length&&typeof arguments[0]=="function"?C.apply(this,[V=>{const f=n(this,V);u[0].apply(null,[f])},V=>{u[1]&&u[1].apply(null,V)},arguments[2]]):C.apply(this,arguments).then(V=>n(this,V))}};e.RTCPeerConnection.prototype[d]=m[d]});const s=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){return!arguments.length||!arguments[0].type?s.apply(this,arguments):(arguments[0]=o(this,arguments[0]),s.apply(this,arguments))};const l=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get(){const d=l.get.apply(this);return d.type===""?d:n(this,d)}}),e.RTCPeerConnection.prototype.removeTrack=function(C){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!C._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(!(C._pc===this))throw new DOMException("Sender was not created by this connection.","InvalidAccessError");this._streams=this._streams||{};let u;Object.keys(this._streams).forEach(p=>{this._streams[p].getTracks().find(f=>C.track===f)&&(u=this._streams[p])}),u&&(u.getTracks().length===1?this.removeStream(this._reverseStreams[u.id]):u.removeTrack(C.track),this.dispatchEvent(new Event("negotiationneeded")))}}function vf(e,t){!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),!!e.RTCPeerConnection&&t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(i){const a=e.RTCPeerConnection.prototype[i],r={[i](){return arguments[0]=new(i==="addIceCandidate"?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),a.apply(this,arguments)}};e.RTCPeerConnection.prototype[i]=r[i]})}function Kt1(e,t){Gn(e,"negotiationneeded",i=>{const a=i.target;if(!((t.version<72||a.getConfiguration&&a.getConfiguration().sdpSemantics==="plan-b")&&a.signalingState!=="stable"))return i})}const ED=Object.freeze(Object.defineProperty({__proto__:null,shimMediaStream:Zt1,shimOnTrack:Gt1,shimGetSendersWithDtmf:Wt1,shimGetStats:Xt1,shimSenderReceiverGetStats:Yt1,shimAddTrackRemoveTrackWithNative:$t1,shimAddTrackRemoveTrack:qt1,shimPeerConnection:vf,fixNegotiationNeeded:Kt1,shimGetUserMedia:zt1,shimGetDisplayMedia:de2},Symbol.toStringTag,{value:"Module"}));function jt1(e,t){const i=e&&e.navigator,a=e&&e.MediaStreamTrack;if(i.getUserMedia=function(r,n,o){mM("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),i.mediaDevices.getUserMedia(r).then(n,o)},!(t.version>55&&"autoGainControl"in i.mediaDevices.getSupportedConstraints())){const r=function(o,s,l){s in o&&!(l in o)&&(o[l]=o[s],delete o[s])},n=i.mediaDevices.getUserMedia.bind(i.mediaDevices);if(i.mediaDevices.getUserMedia=function(o){return typeof o=="object"&&typeof o.audio=="object"&&(o=JSON.parse(JSON.stringify(o)),r(o.audio,"autoGainControl","mozAutoGainControl"),r(o.audio,"noiseSuppression","mozNoiseSuppression")),n(o)},a&&a.prototype.getSettings){const o=a.prototype.getSettings;a.prototype.getSettings=function(){const s=o.apply(this,arguments);return r(s,"mozAutoGainControl","autoGainControl"),r(s,"mozNoiseSuppression","noiseSuppression"),s}}if(a&&a.prototype.applyConstraints){const o=a.prototype.applyConstraints;a.prototype.applyConstraints=function(s){return this.kind==="audio"&&typeof s=="object"&&(s=JSON.parse(JSON.stringify(s)),r(s,"autoGainControl","mozAutoGainControl"),r(s,"noiseSuppression","mozNoiseSuppression")),o.apply(this,[s])}}}}function Ce2(e,t){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||!e.navigator.mediaDevices||(e.navigator.mediaDevices.getDisplayMedia=function(a){if(!(a&&a.video)){const r=new DOMException("getDisplayMedia without video constraints is undefined");return r.name="NotFoundError",r.code=8,Promise.reject(r)}return a.video===!0?a.video={mediaSource:t}:a.video.mediaSource=t,e.navigator.mediaDevices.getUserMedia(a)})}function Qt1(e){typeof e=="object"&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function _f(e,t){if(typeof e!="object"||!(e.RTCPeerConnection||e.mozRTCPeerConnection))return;!e.RTCPeerConnection&&e.mozRTCPeerConnection&&(e.RTCPeerConnection=e.mozRTCPeerConnection),t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(r){const n=e.RTCPeerConnection.prototype[r],o={[r](){return arguments[0]=new(r==="addIceCandidate"?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),n.apply(this,arguments)}};e.RTCPeerConnection.prototype[r]=o[r]});const i={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},a=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){const[n,o,s]=arguments;return a.apply(this,[n||null]).then(l=>{if(t.version<53&&!o)try{l.forEach(d=>{d.type=i[d.type]||d.type})}catch(d){if(d.name!=="TypeError")throw d;l.forEach((C,m)=>{l.set(m,Object.assign({},C,{type:i[C.type]||C.type}))})}return l}).then(o,s)}}function Jt1(e){if(!(typeof e=="object"&&e.RTCPeerConnection&&e.RTCRtpSender)||e.RTCRtpSender&&"getStats"in e.RTCRtpSender.prototype)return;const t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){const r=t.apply(this,[]);return r.forEach(n=>n._pc=this),r});const i=e.RTCPeerConnection.prototype.addTrack;i&&(e.RTCPeerConnection.prototype.addTrack=function(){const r=i.apply(this,arguments);return r._pc=this,r}),e.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function e01(e){if(!(typeof e=="object"&&e.RTCPeerConnection&&e.RTCRtpSender)||e.RTCRtpSender&&"getStats"in e.RTCRtpReceiver.prototype)return;const t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){const a=t.apply(this,[]);return a.forEach(r=>r._pc=this),a}),Gn(e,"track",i=>(i.receiver._pc=i.srcElement,i)),e.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function t01(e){!e.RTCPeerConnection||"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(i){mM("removeStream","removeTrack"),this.getSenders().forEach(a=>{a.track&&i.getTracks().includes(a.track)&&this.removeTrack(a)})})}function i01(e){e.DataChannel&&!e.RTCDataChannel&&(e.RTCDataChannel=e.DataChannel)}function a01(e){if(!(typeof e=="object"&&e.RTCPeerConnection))return;const t=e.RTCPeerConnection.prototype.addTransceiver;t&&(e.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let a=arguments[1]&&arguments[1].sendEncodings;a===void 0&&(a=[]),a=[...a];const r=a.length>0;r&&a.forEach(o=>{if("rid"in o&&!/^[a-z0-9]{0,16}$/i.test(o.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in o&&!(parseFloat(o.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in o&&!(parseFloat(o.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});const n=t.apply(this,arguments);if(r){const{sender:o}=n,s=o.getParameters();(!("encodings"in s)||s.encodings.length===1&&Object.keys(s.encodings[0]).length===0)&&(s.encodings=a,o.sendEncodings=a,this.setParametersPromises.push(o.setParameters(s).then(()=>{delete o.sendEncodings}).catch(()=>{delete o.sendEncodings})))}return n})}function r01(e){if(!(typeof e=="object"&&e.RTCRtpSender))return;const t=e.RTCRtpSender.prototype.getParameters;t&&(e.RTCRtpSender.prototype.getParameters=function(){const a=t.apply(this,arguments);return"encodings"in a||(a.encodings=[].concat(this.sendEncodings||[{}])),a})}function n01(e){if(!(typeof e=="object"&&e.RTCPeerConnection))return;const t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>t.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):t.apply(this,arguments)}}function o01(e){if(!(typeof e=="object"&&e.RTCPeerConnection))return;const t=e.RTCPeerConnection.prototype.createAnswer;e.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>t.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):t.apply(this,arguments)}}const PD=Object.freeze(Object.defineProperty({__proto__:null,shimOnTrack:Qt1,shimPeerConnection:_f,shimSenderGetStats:Jt1,shimReceiverGetStats:e01,shimRemoveStream:t01,shimRTCDataChannel:i01,shimAddTransceiver:a01,shimGetParameters:r01,shimCreateOffer:n01,shimCreateAnswer:o01,shimGetUserMedia:jt1,shimGetDisplayMedia:Ce2},Symbol.toStringTag,{value:"Module"}));function s01(e){if(!(typeof e!="object"||!e.RTCPeerConnection)){if("getLocalStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in e.RTCPeerConnection.prototype)){const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addStream=function(a){this._localStreams||(this._localStreams=[]),this._localStreams.includes(a)||this._localStreams.push(a),a.getAudioTracks().forEach(r=>t.call(this,r,a)),a.getVideoTracks().forEach(r=>t.call(this,r,a))},e.RTCPeerConnection.prototype.addTrack=function(a,...r){return r&&r.forEach(n=>{this._localStreams?this._localStreams.includes(n)||this._localStreams.push(n):this._localStreams=[n]}),t.apply(this,arguments)}}"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(i){this._localStreams||(this._localStreams=[]);const a=this._localStreams.indexOf(i);if(a===-1)return;this._localStreams.splice(a,1);const r=i.getTracks();this.getSenders().forEach(n=>{r.includes(n.track)&&this.removeTrack(n)})})}}function l01(e){if(!(typeof e!="object"||!e.RTCPeerConnection)&&("getRemoteStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in e.RTCPeerConnection.prototype))){Object.defineProperty(e.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(i){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=i),this.addEventListener("track",this._onaddstreampoly=a=>{a.streams.forEach(r=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(r))return;this._remoteStreams.push(r);const n=new Event("addstream");n.stream=r,this.dispatchEvent(n)})})}});const t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){const a=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(r){r.streams.forEach(n=>{if(a._remoteStreams||(a._remoteStreams=[]),a._remoteStreams.indexOf(n)>=0)return;a._remoteStreams.push(n);const o=new Event("addstream");o.stream=n,a.dispatchEvent(o)})}),t.apply(a,arguments)}}}function c01(e){if(typeof e!="object"||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype,i=t.createOffer,a=t.createAnswer,r=t.setLocalDescription,n=t.setRemoteDescription,o=t.addIceCandidate;t.createOffer=function(d,C){const m=arguments.length>=2?arguments[2]:arguments[0],u=i.apply(this,[m]);return C?(u.then(d,C),Promise.resolve()):u},t.createAnswer=function(d,C){const m=arguments.length>=2?arguments[2]:arguments[0],u=a.apply(this,[m]);return C?(u.then(d,C),Promise.resolve()):u};let s=function(l,d,C){const m=r.apply(this,[l]);return C?(m.then(d,C),Promise.resolve()):m};t.setLocalDescription=s,s=function(l,d,C){const m=n.apply(this,[l]);return C?(m.then(d,C),Promise.resolve()):m},t.setRemoteDescription=s,s=function(l,d,C){const m=o.apply(this,[l]);return C?(m.then(d,C),Promise.resolve()):m},t.addIceCandidate=s}function d01(e){const t=e&&e.navigator;if(t.mediaDevices&&t.mediaDevices.getUserMedia){const i=t.mediaDevices,a=i.getUserMedia.bind(i);t.mediaDevices.getUserMedia=r=>a(C01(r))}!t.getUserMedia&&t.mediaDevices&&t.mediaDevices.getUserMedia&&(t.getUserMedia=function(a,r,n){t.mediaDevices.getUserMedia(a).then(r,n)}.bind(t))}function C01(e){return e&&e.video!==void 0?Object.assign({},e,{video:Bt1(e.video)}):e}function m01(e){if(!e.RTCPeerConnection)return;const t=e.RTCPeerConnection;e.RTCPeerConnection=function(a,r){if(a&&a.iceServers){const n=[];for(let o=0;oo.receiver.track.kind==="audio");a.offerToReceiveAudio===!1&&r?r.direction==="sendrecv"?r.setDirection?r.setDirection("sendonly"):r.direction="sendonly":r.direction==="recvonly"&&(r.setDirection?r.setDirection("inactive"):r.direction="inactive"):a.offerToReceiveAudio===!0&&!r&&this.addTransceiver("audio",{direction:"recvonly"}),typeof a.offerToReceiveVideo<"u"&&(a.offerToReceiveVideo=!!a.offerToReceiveVideo);const n=this.getTransceivers().find(o=>o.receiver.track.kind==="video");a.offerToReceiveVideo===!1&&n?n.direction==="sendrecv"?n.setDirection?n.setDirection("sendonly"):n.direction="sendonly":n.direction==="recvonly"&&(n.setDirection?n.setDirection("inactive"):n.direction="inactive"):a.offerToReceiveVideo===!0&&!n&&this.addTransceiver("video",{direction:"recvonly"})}return t.apply(this,arguments)}}function p01(e){typeof e!="object"||e.AudioContext||(e.AudioContext=e.webkitAudioContext)}const ID=Object.freeze(Object.defineProperty({__proto__:null,shimLocalStreamsAPI:s01,shimRemoteStreamsAPI:l01,shimCallbacksAPI:c01,shimGetUserMedia:d01,shimConstraints:C01,shimRTCIceServerUrls:m01,shimTrackEventTransceiver:u01,shimCreateOfferLegacy:h01,shimAudioContext:p01},Symbol.toStringTag,{value:"Module"}));var uM={exports:{}};(function(e){const t={};t.generateIdentifier=function(){return Math.random().toString(36).substring(2,12)},t.localCName=t.generateIdentifier(),t.splitLines=function(i){return i.trim().split(` +*/(function(e){(function(){var t={}.hasOwnProperty;function i(){for(var a=[],r=0;r{r.value=!1,n=null,e(...d)},Zq1(t))}return a&&(r.value=!0,A51&&l()),Wq1(s),{isPending:r,start:l,stop:s}}const nS=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},oS="__vueuse_ssr_handlers__";nS[oS]=nS[oS]||{};var sS;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(sS||(sS={}));var Yq1=Object.defineProperty,lS=Object.getOwnPropertySymbols,$q1=Object.prototype.hasOwnProperty,qq1=Object.prototype.propertyIsEnumerable,cS=(e,t,i)=>t in e?Yq1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Kq1=(e,t)=>{for(var i in t||(t={}))$q1.call(t,i)&&cS(e,i,t[i]);if(lS)for(var i of lS(t))qq1.call(t,i)&&cS(e,i,t[i]);return e};const jq1={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};Kq1({linear:Gq1},jq1);var Qq1=typeof global=="object"&&global&&global.Object===Object&&global;const Jq1=Qq1;var eK1=typeof self=="object"&&self&&self.Object===Object&&self,tK1=Jq1||eK1||Function("return this")();const qH=tK1;var iK1=qH.Symbol;const q4=iK1;var v51=Object.prototype,aK1=v51.hasOwnProperty,rK1=v51.toString,_7=q4?q4.toStringTag:void 0;function nK1(e){var t=aK1.call(e,_7),i=e[_7];try{e[_7]=void 0;var a=!0}catch{}var r=rK1.call(e);return a&&(t?e[_7]=i:delete e[_7]),r}var oK1=Object.prototype,sK1=oK1.toString;function lK1(e){return sK1.call(e)}var cK1="[object Null]",dK1="[object Undefined]",dS=q4?q4.toStringTag:void 0;function KH(e){return e==null?e===void 0?dK1:cK1:dS&&dS in Object(e)?nK1(e):lK1(e)}function jH(e){return e!=null&&typeof e=="object"}var CK1="[object Symbol]";function QH(e){return typeof e=="symbol"||jH(e)&&KH(e)==CK1}function mK1(e,t){for(var i=-1,a=e==null?0:e.length,r=Array(a);++i0){if(++t>=OK1)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function kK1(e){return function(){return e}}var BK1=function(){try{var e=JH(Object,"defineProperty");return e({},"",{}),e}catch{}}();const vd=BK1;var zK1=vd?function(e,t){return vd(e,"toString",{configurable:!0,enumerable:!1,value:kK1(t),writable:!0})}:pK1;const ZK1=zK1;var GK1=FK1(ZK1);const WK1=GK1;var XK1=9007199254740991,YK1=/^(?:0|[1-9]\d*)$/;function S51(e,t){var i=typeof e;return t=t!=null?t:XK1,!!t&&(i=="number"||i!="symbol"&&YK1.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=JK1}var tj1="[object Arguments]";function pS(e){return jH(e)&&KH(e)==tj1}var y51=Object.prototype,ij1=y51.hasOwnProperty,aj1=y51.propertyIsEnumerable,rj1=pS(function(){return arguments}())?pS:function(e){return jH(e)&&ij1.call(e,"callee")&&!aj1.call(e,"callee")};const R51=rj1;var nj1=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,oj1=/^\w*$/;function sj1(e,t){if(G8(e))return!1;var i=typeof e;return i=="number"||i=="symbol"||i=="boolean"||e==null||QH(e)?!0:oj1.test(e)||!nj1.test(e)||t!=null&&e in Object(t)}var lj1=JH(Object,"create");const t8=lj1;function cj1(){this.__data__=t8?t8(null):{},this.size=0}function dj1(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Cj1="__lodash_hash_undefined__",mj1=Object.prototype,uj1=mj1.hasOwnProperty;function hj1(e){var t=this.__data__;if(t8){var i=t[e];return i===Cj1?void 0:i}return uj1.call(t,e)?t[e]:void 0}var pj1=Object.prototype,fj1=pj1.hasOwnProperty;function Vj1(e){var t=this.__data__;return t8?t[e]!==void 0:fj1.call(t,e)}var Lj1="__lodash_hash_undefined__";function Hj1(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=t8&&t===void 0?Lj1:t,this}function bn(e){var t=-1,i=e==null?0:e.length;for(this.clear();++t-1}function Dj1(e,t){var i=this.__data__,a=hm(i,e);return a<0?(++this.size,i.push([e,t])):i[a][1]=t,this}function Fo(e){var t=-1,i=e==null?0:e.length;for(this.clear();++t0&&i(s)?t>1?b51(s,t-1,i,a,r):Wj1(r,s):a||(r[r.length]=s)}return r}function Yj1(e){var t=e==null?0:e.length;return t?b51(e,1):[]}function $j1(e){return WK1(QK1(e,void 0,Yj1),e+"")}function qj1(e,t){return e!=null&&t in Object(e)}function Kj1(e,t,i){t=fm(t,e);for(var a=-1,r=t.length,n=!1;++a{if(a!==null){if(typeof a!="object"){(typeof a=="string"||typeof a=="number")&&i.push(L2(String(a)));return}if(Array.isArray(a)){sf(a,t,i);return}if(a.type===Y1){if(a.children===null)return;Array.isArray(a.children)&&sf(a.children,t,i)}else a.type!==$5&&i.push(a)}}),i}function aQ1(e,t="default",i=void 0){const a=e[t];if(!a)return console.warn("getFirstSlotVNode",`slot[${t}] is empty`),null;const r=sf(a(i));return r.length===1?r[0]:(console.warn("getFirstSlotVNode",`slot[${t}] should have exactly one child`),null)}const rQ1={focus:["onFocus","onBlur"],click:["onClick"],hover:["onMouseenter","onMouseleave"]};function nQ1(e,t){Object.entries(rQ1).forEach(([,i])=>{i.forEach(a=>{e.props?e.props=Object.assign({},e.props):e.props={};const r=e.props[a],n=t[a];r?e.props[a]=(...o)=>{r(...o),n(...o)}:e.props[a]=n})})}n2({name:"SlotListener",props:{trigger:{type:String,default:"click"}},emits:["click","focus","blur","mouseenter","mouseleave"],setup(e,{emit:t}){return{handleClick:i=>{t("click",i)},handleBlur:i=>{t("blur",i)},handleFocus:i=>{t("focus",i)},handleMouseLeave:i=>{t("mouseleave",i)},handleMouseEnter:i=>{t("mouseenter",i)}}},render(){const{$slots:e}=this,t={onClick:this.handleClick,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onFocus:this.handleFocus,onBlur:this.handleBlur},i=aQ1(e,"default"),a=[t];return i!=null&&i.props&&a.push(iQ1(i.props,"onClick","onMouseenter","onMouseleave","onFocus","onBlur")),i&&nQ1(i,{onBlur:r=>{a.forEach(n=>{var o;(o=n==null?void 0:n.onBlur)==null||o.call(n,r)})},onFocus:r=>{a.forEach(n=>{var o;(o=n==null?void 0:n.onFocus)==null||o.call(n,r)})},onClick:r=>{a.forEach(n=>{var o;(o=n==null?void 0:n.onClick)==null||o.call(n,r)})},onMouseenter:r=>{a.forEach(n=>{var o;(o=n==null?void 0:n.onMouseenter)==null||o.call(n,r)})},onMouseleave:r=>{a.forEach(n=>{var o;(o=n==null?void 0:n.onMouseleave)==null||o.call(n,r)})}}),i}});new Date().getFullYear();const oQ1={border:e=>e.substring(0,e.lastIndexOf("-"))},sQ1=(e,t=oQ1)=>{const i=Object.keys(t).find(a=>e.includes(a));return i?t[i](e):e.substring(0,e.indexOf("-"))};function ac(...e){return e.filter(t=>t).reduce((t,i)=>{const a=Array.isArray(i)?Array.from(i).map(d=>d.split(" ")).flat():i.split(" "),r=a.map(d=>sQ1(d)),n=r.filter(d=>!t.types.includes(d)),o=[...r.filter(d=>t.types.includes(d)),...n],s=[...new Set([...t.types,...o])],l=s.map(d=>{if(o.includes(d)){const m=r.indexOf(d);if(m>=0)return a[m]||""}const C=t.types.indexOf(d);return C>=0&&t.classes[C]||""}).filter(d=>!!d);return{types:s,classes:l}},{types:[],classes:[]}).classes.join(" ")}const lQ1={class:"relative overflow-x-auto shadow-md sm:rounded-lg"},cQ1={class:"w-full text-sm text-left text-gray-500 dark:text-gray-400"},dQ1=n2({__name:"FwbTable",props:{striped:{type:Boolean,default:!1},stripedColumns:{type:Boolean,default:!1},hoverable:{type:Boolean,default:!1}},setup(e){const t=e;return X2("hoverable",t.hoverable),X2("striped",t.striped),X2("stripedColumns",t.stripedColumns),(i,a)=>(C1(),N1("div",lQ1,[K("table",cQ1,[Se(i.$slots,"default")])]))}}),CQ1={};function mQ1(e,t){return C1(),N1("tbody",null,[Se(e.$slots,"default")])}const uQ1=M51(CQ1,[["render",mQ1]]),hQ1="px-6 py-4 first:font-medium first:text-gray-900 first:dark:text-white first:whitespace-nowrap last:text-right",pQ1="even:bg-gray-white even:dark:bg-gray-900 odd:dark:bg-gray-800 odd:bg-gray-50";function fQ1(){const e=H2("stripedColumns");return{tableCellClasses:q(()=>$H(hQ1,{[pQ1]:e}))}}const S7=n2({__name:"FwbTableCell",setup(e){const{tableCellClasses:t}=fQ1();return(i,a)=>(C1(),N1("td",{class:c2(B(t))},[Se(i.$slots,"default")],2))}}),VQ1={},LQ1={class:"text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"};function HQ1(e,t){return C1(),N1("thead",LQ1,[K("tr",null,[Se(e.$slots,"default")])])}const MQ1=M51(VQ1,[["render",HQ1]]),gQ1="px-6 py-3 text-xs uppercase",AQ1="even:bg-white even:dark:bg-gray-900 odd:dark:bg-gray-800 odd:bg-gray-50";function vQ1(){const e=H2("stripedColumns");return{tableHeadCellClasses:q(()=>$H(gQ1,{[AQ1]:e}))}}const D7=n2({__name:"FwbTableHeadCell",setup(e){const{tableHeadCellClasses:t}=vQ1();return(i,a)=>(C1(),N1("th",{scope:"col",class:c2(B(t))},[Se(i.$slots,"default")],2))}}),_Q1="bg-white dark:bg-gray-800 [&:not(:last-child)]:border-b [&:not(:last-child)]:dark:border-gray-700",SQ1="odd:bg-white even:bg-gray-50 odd:dark:bg-gray-800 even:dark:bg-gray-700",DQ1="hover:bg-gray-50 dark:hover:bg-gray-600";function yQ1(){const e=H2("striped"),t=H2("hoverable");return{tableRowClasses:q(()=>$H(_Q1,{[DQ1]:t,[SQ1]:e}))}}const RQ1=n2({__name:"FwbTableRow",setup(e){const{tableRowClasses:t}=yQ1();return(i,a)=>(C1(),N1("tr",{class:c2(B(t))},[Se(i.$slots,"default")],2))}}),bQ1="flowbite-themable-injection-key",g6={blue:{background:"bg-blue-700 dark:bg-blue-600",disabled:"",hover:"hover:bg-blue-800 dark:hover:bg-blue-700",text:"text-blue-600 dark:text-blue-500",border:"border-blue-600 dark:border-blue-500",focus:"focus:ring-blue-300 dark:focus:ring-blue-800"},green:{background:"bg-green-700 dark:bg-green-600",disabled:"",hover:"hover:bg-green-800 dark:hover:bg-green-700",text:"text-green-600 dark:text-green-500",border:"border-green-600 dark:border-green-500",focus:"focus:ring-green-300 dark:focus:ring-green-800"},pink:{background:"bg-pink-700 dark:bg-pink-600",disabled:"",hover:"hover:bg-pink-800 dark:hover:bg-pink-700",text:"text-pink-600 dark:text-pink-500",border:"border-pink-600 dark:border-pink-500",focus:"focus:ring-pink-300 dark:focus:ring-pink-900"},purple:{background:"bg-purple-700 dark:bg-purple-600",disabled:"",hover:"hover:bg-purple-800 dark:hover:bg-purple-700",text:"text-purple-600 dark:text-purple-500",border:"border-purple-600 dark:border-purple-500",focus:"focus:ring-purple-300 dark:focus:ring-purple-900"},red:{background:"bg-red-700 dark:bg-red-600",disabled:"",hover:"hover:bg-red-800 dark:hover:bg-red-700",text:"text-red-600 dark:text-red-500",border:"border-red-600 dark:border-red-500",focus:"focus:ring-red-300 dark:focus:ring-red-900"}};function NQ1(e){const t=H2(bQ1,i1(null)),i=q(()=>e||t.value),a=q(()=>!!(t!=null&&t.value)),r=q(()=>i.value?g6[i.value].background:""),n=q(()=>i.value?g6[i.value].border:""),o=q(()=>(t==null?void 0:t.value)||void 0),s=q(()=>i.value?g6[i.value].disabled:""),l=q(()=>i.value?g6[i.value].focus:""),d=q(()=>i.value?g6[i.value].hover:""),C=q(()=>i.value?g6[i.value].text:"");return{backgroundClasses:r,borderClasses:n,color:o,disabledClasses:s,focusClasses:l,hoverClasses:d,isActive:a,textClasses:C}}const wQ1={danger:"text-red-500 bg-red-100 dark:bg-red-800 dark:text-red-200",empty:"",success:"text-green-500 bg-green-100 dark:bg-green-800 dark:text-green-200",warning:"text-orange-500 bg-orange-100 dark:bg-orange-700 dark:text-orange-200"},TQ1={center:"items-center",end:"items-end",start:"items-start"},VS="flex w-full max-w-xs p-4 text-gray-500 bg-white rounded-lg shadow dark:text-gray-400 dark:bg-gray-800",LS="text-sm font-normal";function EQ1(e){const t=q(()=>wQ1[e.type.value]),i=q(()=>{const r=TQ1[e.alignment.value];return e.divide.value?ac(VS,"dark:divide-gray-700 divide-x divide-gray-200",r):ac(VS,r)}),a=q(()=>e.type.value!=="empty"&&e.divide.value?ac(LS,"pl-3"):LS);return{typeClasses:t,wrapperClasses:i,contentClasses:a}}function PQ1(e){var l;const{backgroundClasses:t,borderClasses:i,disabledClasses:a,focusClasses:r,hoverClasses:n,isActive:o,textClasses:s}=NQ1((l=e.theme)==null?void 0:l.value);return{classes:q(()=>{if(!o.value)return"";const d=[];return e.apply.value.includes("text")&&d.push(s.value),e.apply.value.includes("border")&&d.push(i.value),e.apply.value.includes("background")&&d.push(t.value),e.apply.value.includes("hover")&&d.push(n.value),e.apply.value.includes("disabled")&&d.push(a.value),e.apply.value.includes("focus")&&d.push(r.value),d.join(" ")})}}const IQ1=n2({__name:"FlowbiteThemableChild",props:{apply:{type:Array,required:!0},tag:{type:String,default:"div"},theme:{type:String,default:void 0}},setup(e){const t=e,i=dC(),{classes:a}=PQ1(j2(t)),r=q(()=>i.class||"");return(n,o)=>(C1(),Q1(fn(e.tag),{class:c2(B(ac)(r.value,B(a)))},{default:v1(()=>[Se(n.$slots,"default")]),_:3},8,["class"]))}}),OQ1={key:1,"aria-hidden":"true",class:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},UQ1=K("path",{"clip-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","fill-rule":"evenodd"},null,-1),xQ1=[UQ1],FQ1={key:2,"aria-hidden":"true",class:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},kQ1=K("path",{"clip-rule":"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z","fill-rule":"evenodd"},null,-1),BQ1=[kQ1],zQ1={key:3,"aria-hidden":"true",class:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},ZQ1=K("path",{"clip-rule":"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z","fill-rule":"evenodd"},null,-1),GQ1=[ZQ1],WQ1=K("span",{class:"sr-only"},"Close",-1),XQ1=K("svg",{class:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},[K("path",{"clip-rule":"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z","fill-rule":"evenodd"})],-1),YQ1=[WQ1,XQ1],HS=n2({__name:"FwbToast",props:{type:{type:String,default:"empty"},alignment:{type:String,default:"center"},closable:{type:Boolean,default:!1},divide:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){const i=e,a=i1(!0),{typeClasses:r,wrapperClasses:n,contentClasses:o}=EQ1(j2(i)),s=()=>{t("close"),a.value=!1};return(l,d)=>a.value?(C1(),N1("div",{key:0,id:"toast-default",class:c2(B(n)),role:"alert"},[e.type!=="empty"||l.$slots.icon?(C1(),Q1(IQ1,{key:0,apply:["background","text"],class:c2(["inline-flex flex-shrink-0 justify-center items-center w-8 h-8 rounded-lg",B(r)])},{default:v1(()=>[l.$slots.icon?Se(l.$slots,"icon",{key:0,class:c2({"ml-3":e.type!=="empty"})}):e.type==="success"?(C1(),N1("svg",OQ1,xQ1)):e.type==="danger"?(C1(),N1("svg",FQ1,BQ1)):e.type==="warning"?(C1(),N1("svg",zQ1,GQ1)):a2("",!0)]),_:3},8,["class"])):a2("",!0),K("div",{class:c2([B(o),{"ml-3":l.$slots.icon||e.type!=="empty"}])},[Se(l.$slots,"default")],2),e.closable?(C1(),N1("button",{key:1,"aria-label":"Close",class:"border-none ml-auto -mx-1.5 -my-1.5 bg-white text-gray-400 hover:text-gray-900 rounded-lg focus:ring-2 focus:ring-gray-300 p-1.5 hover:bg-gray-100 inline-flex h-8 w-8 dark:text-gray-500 dark:hover:text-white dark:bg-gray-800 dark:hover:bg-gray-700",type:"button",onClick:s},YQ1)):a2("",!0)],2)):a2("",!0)}}),$Q1="flowbite-toast-injection-key";n2({components:{FwbToast:HS},props:{transition:{type:String,default:"slide-left"}},setup(){const e=i1([]),t=(n,o)=>{Xq1(()=>r(n),o)},i=n=>{const o=parseInt((new Date().getTime()*Math.random()).toString()).toString();return e.value.push({id:o,...n}),n.time>0&&t(o,n.time),o},a=()=>{if(e.value.length===0)return"";const n=e.value[e.value.length-1].id;return e.value.pop(),n},r=n=>{const o=e.value.findIndex(s=>s.id===n);return o>=0&&e.value.splice(o,1),o>=0};return X2($Q1,{add:i,pop:a,remove:r}),{toasts:e,removeToast:r}},render(){const{$props:e,$slots:t,toasts:i,removeToast:a}=this;return u5("div",{},[t.default?t.default():null,u5(Gr,{name:e.transition,tag:"div",class:"xl:w-1/6 md:w-1/4 sm:w-1/4 fixed top-3 right-3 flex flex-col gap-2 z-50"},{default:()=>i.map(r=>r.component?u5(r.component,{key:r.id,onClose:()=>a(r.id),...r.componentProps?r.componentProps:{}},()=>r.text):u5(HS,{closable:!0,type:r.type,key:r.id,onClose:()=>a(r.id)},()=>r.text))})])}});function Ei(e){return e.split("-")[1]}function iM(e){return e==="y"?"height":"width"}function g3(e){return e.split("-")[0]}function ko(e){return["top","bottom"].includes(g3(e))?"x":"y"}function MS(e,t,i){let{reference:a,floating:r}=e;const n=a.x+a.width/2-r.width/2,o=a.y+a.height/2-r.height/2,s=ko(t),l=iM(s),d=a[l]/2-r[l]/2,C=s==="x";let m;switch(g3(t)){case"top":m={x:n,y:a.y-r.height};break;case"bottom":m={x:n,y:a.y+a.height};break;case"right":m={x:a.x+a.width,y:o};break;case"left":m={x:a.x-r.width,y:o};break;default:m={x:a.x,y:a.y}}switch(Ei(t)){case"start":m[s]-=d*(i&&C?-1:1);break;case"end":m[s]+=d*(i&&C?-1:1)}return m}const qQ1=async(e,t,i)=>{const{placement:a="bottom",strategy:r="absolute",middleware:n=[],platform:o}=i,s=n.filter(Boolean),l=await(o.isRTL==null?void 0:o.isRTL(t));let d=await o.getElementRects({reference:e,floating:t,strategy:r}),{x:C,y:m}=MS(d,a,l),u=a,p={},V=0;for(let f=0;f({name:"arrow",options:e,async fn(t){const{x:i,y:a,placement:r,rects:n,platform:o,elements:s}=t,{element:l,padding:d=0}=Zn(e,t)||{};if(l==null)return{};const C=N51(d),m={x:i,y:a},u=ko(r),p=iM(u),V=await o.getDimensions(l),f=u==="y",M=f?"top":"left",H=f?"bottom":"right",g=f?"clientHeight":"clientWidth",_=n.reference[p]+n.reference[u]-m[u]-n.floating[p],v=m[u]-n.reference[u],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l));let y=S?S[g]:0;y&&await(o.isElement==null?void 0:o.isElement(S))||(y=s.floating[g]||n.floating[p]);const D=_/2-v/2,R=y/2-V[p]/2-1,N=i8(C[M],R),w=i8(C[H],R),x=N,U=y-V[p]-w,E=y/2-V[p]/2+D,O=lf(x,E,U),z=Ei(r)!=null&&E!=O&&n.reference[p]/2-(Ee.concat(t,t+"-start",t+"-end"),[]),QQ1={left:"right",right:"left",bottom:"top",top:"bottom"};function _d(e){return e.replace(/left|right|bottom|top/g,t=>QQ1[t])}function w51(e,t,i){i===void 0&&(i=!1);const a=Ei(e),r=ko(e),n=iM(r);let o=r==="x"?a===(i?"end":"start")?"right":"left":a==="start"?"bottom":"top";return t.reference[n]>t.floating[n]&&(o=_d(o)),{main:o,cross:_d(o)}}const JQ1={start:"end",end:"start"};function rc(e){return e.replace(/start|end/g,t=>JQ1[t])}const eJ1=function(e){return e===void 0&&(e={}),{name:"autoPlacement",options:e,async fn(t){var i,a,r;const{rects:n,middlewareData:o,placement:s,platform:l,elements:d}=t,{crossAxis:C=!1,alignment:m,allowedPlacements:u=gS,autoAlignment:p=!0,...V}=Zn(e,t),f=m!==void 0||u===gS?function(w,x,U){return(w?[...U.filter(E=>Ei(E)===w),...U.filter(E=>Ei(E)!==w)]:U.filter(E=>g3(E)===E)).filter(E=>!w||Ei(E)===w||!!x&&rc(E)!==E)}(m||null,p,u):u,M=await Vm(t,V),H=((i=o.autoPlacement)==null?void 0:i.index)||0,g=f[H];if(g==null)return{};const{main:_,cross:v}=w51(g,n,await(l.isRTL==null?void 0:l.isRTL(d.floating)));if(s!==g)return{reset:{placement:f[0]}};const S=[M[g3(g)],M[_],M[v]],y=[...((a=o.autoPlacement)==null?void 0:a.overflows)||[],{placement:g,overflows:S}],D=f[H+1];if(D)return{data:{index:H+1,overflows:y},reset:{placement:D}};const R=y.map(w=>{const x=Ei(w.placement);return[w.placement,x&&C?w.overflows.slice(0,2).reduce((U,E)=>U+E,0):w.overflows[0],w.overflows]}).sort((w,x)=>w[1]-x[1]),N=((r=R.filter(w=>w[2].slice(0,Ei(w[0])?2:3).every(x=>x<=0))[0])==null?void 0:r[0])||R[0][0];return N!==s?{data:{index:H+1,overflows:y},reset:{placement:N}}:{}}}},tJ1=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var i;const{placement:a,middlewareData:r,rects:n,initialPlacement:o,platform:s,elements:l}=t,{mainAxis:d=!0,crossAxis:C=!0,fallbackPlacements:m,fallbackStrategy:u="bestFit",fallbackAxisSideDirection:p="none",flipAlignment:V=!0,...f}=Zn(e,t),M=g3(a),H=g3(o)===o,g=await(s.isRTL==null?void 0:s.isRTL(l.floating)),_=m||(H||!V?[_d(o)]:function(x){const U=_d(x);return[rc(x),U,rc(U)]}(o));m||p==="none"||_.push(...function(x,U,E,O){const z=Ei(x);let F=function(J,W,r1){const $=["left","right"],t1=["right","left"],l1=["top","bottom"],V1=["bottom","top"];switch(J){case"top":case"bottom":return r1?W?t1:$:W?$:t1;case"left":case"right":return W?l1:V1;default:return[]}}(g3(x),E==="start",O);return z&&(F=F.map(J=>J+"-"+z),U&&(F=F.concat(F.map(rc)))),F}(o,V,p,g));const v=[o,..._],S=await Vm(t,f),y=[];let D=((i=r.flip)==null?void 0:i.overflows)||[];if(d&&y.push(S[M]),C){const{main:x,cross:U}=w51(a,n,g);y.push(S[x],S[U])}if(D=[...D,{placement:a,overflows:y}],!y.every(x=>x<=0)){var R,N;const x=(((R=r.flip)==null?void 0:R.index)||0)+1,U=v[x];if(U)return{data:{index:x,overflows:D},reset:{placement:U}};let E=(N=D.filter(O=>O.overflows[0]<=0).sort((O,z)=>O.overflows[1]-z.overflows[1])[0])==null?void 0:N.placement;if(!E)switch(u){case"bestFit":{var w;const O=(w=D.map(z=>[z.placement,z.overflows.filter(F=>F>0).reduce((F,J)=>F+J,0)]).sort((z,F)=>z[1]-F[1])[0])==null?void 0:w[0];O&&(E=O);break}case"initialPlacement":E=o}if(a!==E)return{reset:{placement:E}}}return{}}}},iJ1=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){const{x:i,y:a}=t,r=await async function(n,o){const{placement:s,platform:l,elements:d}=n,C=await(l.isRTL==null?void 0:l.isRTL(d.floating)),m=g3(s),u=Ei(s),p=ko(s)==="x",V=["left","top"].includes(m)?-1:1,f=C&&p?-1:1,M=Zn(o,n);let{mainAxis:H,crossAxis:g,alignmentAxis:_}=typeof M=="number"?{mainAxis:M,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...M};return u&&typeof _=="number"&&(g=u==="end"?-1*_:_),p?{x:g*f,y:H*V}:{x:H*V,y:g*f}}(t,e);return{x:i+r.x,y:a+r.y,data:r}}}};function aJ1(e){return e==="x"?"y":"x"}const rJ1=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:i,y:a,placement:r}=t,{mainAxis:n=!0,crossAxis:o=!1,limiter:s={fn:M=>{let{x:H,y:g}=M;return{x:H,y:g}}},...l}=Zn(e,t),d={x:i,y:a},C=await Vm(t,l),m=ko(g3(r)),u=aJ1(m);let p=d[m],V=d[u];if(n){const M=m==="y"?"bottom":"right";p=lf(p+C[m==="y"?"top":"left"],p,p-C[M])}if(o){const M=u==="y"?"bottom":"right";V=lf(V+C[u==="y"?"top":"left"],V,V-C[M])}const f=s.fn({...t,[m]:p,[u]:V});return{...f,data:{x:f.x-i,y:f.y-a}}}}},nJ1=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){const{placement:i,rects:a,platform:r,elements:n}=t,{apply:o=()=>{},...s}=Zn(e,t),l=await Vm(t,s),d=g3(i),C=Ei(i),m=ko(i)==="x",{width:u,height:p}=a.floating;let V,f;d==="top"||d==="bottom"?(V=d,f=C===(await(r.isRTL==null?void 0:r.isRTL(n.floating))?"start":"end")?"left":"right"):(f=d,V=C==="end"?"top":"bottom");const M=p-l[V],H=u-l[f],g=!t.middlewareData.shift;let _=M,v=H;if(m){const y=u-l.left-l.right;v=C||g?i8(H,y):y}else{const y=p-l.top-l.bottom;_=C||g?i8(M,y):y}if(g&&!C){const y=Er(l.left,0),D=Er(l.right,0),R=Er(l.top,0),N=Er(l.bottom,0);m?v=u-2*(y!==0||D!==0?y+D:Er(l.left,l.right)):_=p-2*(R!==0||N!==0?R+N:Er(l.top,l.bottom))}await o({...t,availableWidth:v,availableHeight:_});const S=await r.getDimensions(n.floating);return u!==S.width||p!==S.height?{reset:{rects:!0}}:{}}}};function ci(e){var t;return((t=e.ownerDocument)==null?void 0:t.defaultView)||window}function A3(e){return ci(e).getComputedStyle(e)}const AS=Math.min,ms=Math.max,Sd=Math.round;function T51(e){const t=A3(e);let i=parseFloat(t.width),a=parseFloat(t.height);const r=e.offsetWidth,n=e.offsetHeight,o=Sd(i)!==r||Sd(a)!==n;return o&&(i=r,a=n),{width:i,height:a,fallback:o}}function K4(e){return P51(e)?(e.nodeName||"").toLowerCase():""}let Ml;function E51(){if(Ml)return Ml;const e=navigator.userAgentData;return e&&Array.isArray(e.brands)?(Ml=e.brands.map(t=>t.brand+"/"+t.version).join(" "),Ml):navigator.userAgent}function v3(e){return e instanceof ci(e).HTMLElement}function b4(e){return e instanceof ci(e).Element}function P51(e){return e instanceof ci(e).Node}function vS(e){return typeof ShadowRoot>"u"?!1:e instanceof ci(e).ShadowRoot||e instanceof ShadowRoot}function Lm(e){const{overflow:t,overflowX:i,overflowY:a,display:r}=A3(e);return/auto|scroll|overlay|hidden|clip/.test(t+a+i)&&!["inline","contents"].includes(r)}function oJ1(e){return["table","td","th"].includes(K4(e))}function cf(e){const t=/firefox/i.test(E51()),i=A3(e),a=i.backdropFilter||i.WebkitBackdropFilter;return i.transform!=="none"||i.perspective!=="none"||!!a&&a!=="none"||t&&i.willChange==="filter"||t&&!!i.filter&&i.filter!=="none"||["transform","perspective"].some(r=>i.willChange.includes(r))||["paint","layout","strict","content"].some(r=>{const n=i.contain;return n!=null&&n.includes(r)})}function I51(){return!/^((?!chrome|android).)*safari/i.test(E51())}function aM(e){return["html","body","#document"].includes(K4(e))}function O51(e){return b4(e)?e:e.contextElement}const U51={x:1,y:1};function q6(e){const t=O51(e);if(!v3(t))return U51;const i=t.getBoundingClientRect(),{width:a,height:r,fallback:n}=T51(t);let o=(n?Sd(i.width):i.width)/a,s=(n?Sd(i.height):i.height)/r;return o&&Number.isFinite(o)||(o=1),s&&Number.isFinite(s)||(s=1),{x:o,y:s}}function a8(e,t,i,a){var r,n;t===void 0&&(t=!1),i===void 0&&(i=!1);const o=e.getBoundingClientRect(),s=O51(e);let l=U51;t&&(a?b4(a)&&(l=q6(a)):l=q6(e));const d=s?ci(s):window,C=!I51()&&i;let m=(o.left+(C&&((r=d.visualViewport)==null?void 0:r.offsetLeft)||0))/l.x,u=(o.top+(C&&((n=d.visualViewport)==null?void 0:n.offsetTop)||0))/l.y,p=o.width/l.x,V=o.height/l.y;if(s){const f=ci(s),M=a&&b4(a)?ci(a):a;let H=f.frameElement;for(;H&&a&&M!==f;){const g=q6(H),_=H.getBoundingClientRect(),v=getComputedStyle(H);_.x+=(H.clientLeft+parseFloat(v.paddingLeft))*g.x,_.y+=(H.clientTop+parseFloat(v.paddingTop))*g.y,m*=g.x,u*=g.y,p*=g.x,V*=g.y,m+=_.x,u+=_.y,H=ci(H).frameElement}}return{width:p,height:V,top:u,right:m+p,bottom:u+V,left:m,x:m,y:u}}function N4(e){return((P51(e)?e.ownerDocument:e.document)||window.document).documentElement}function Hm(e){return b4(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function x51(e){return a8(N4(e)).left+Hm(e).scrollLeft}function r8(e){if(K4(e)==="html")return e;const t=e.assignedSlot||e.parentNode||vS(e)&&e.host||N4(e);return vS(t)?t.host:t}function F51(e){const t=r8(e);return aM(t)?t.ownerDocument.body:v3(t)&&Lm(t)?t:F51(t)}function Dd(e,t){var i;t===void 0&&(t=[]);const a=F51(e),r=a===((i=e.ownerDocument)==null?void 0:i.body),n=ci(a);return r?t.concat(n,n.visualViewport||[],Lm(a)?a:[]):t.concat(a,Dd(a))}function _S(e,t,i){return t==="viewport"?Cs(function(a,r){const n=ci(a),o=N4(a),s=n.visualViewport;let l=o.clientWidth,d=o.clientHeight,C=0,m=0;if(s){l=s.width,d=s.height;const u=I51();(u||!u&&r==="fixed")&&(C=s.offsetLeft,m=s.offsetTop)}return{width:l,height:d,x:C,y:m}}(e,i)):b4(t)?Cs(function(a,r){const n=a8(a,!0,r==="fixed"),o=n.top+a.clientTop,s=n.left+a.clientLeft,l=v3(a)?q6(a):{x:1,y:1};return{width:a.clientWidth*l.x,height:a.clientHeight*l.y,x:s*l.x,y:o*l.y}}(t,i)):Cs(function(a){const r=N4(a),n=Hm(a),o=a.ownerDocument.body,s=ms(r.scrollWidth,r.clientWidth,o.scrollWidth,o.clientWidth),l=ms(r.scrollHeight,r.clientHeight,o.scrollHeight,o.clientHeight);let d=-n.scrollLeft+x51(a);const C=-n.scrollTop;return A3(o).direction==="rtl"&&(d+=ms(r.clientWidth,o.clientWidth)-s),{width:s,height:l,x:d,y:C}}(N4(e)))}function SS(e){return v3(e)&&A3(e).position!=="fixed"?e.offsetParent:null}function DS(e){const t=ci(e);let i=SS(e);for(;i&&oJ1(i)&&A3(i).position==="static";)i=SS(i);return i&&(K4(i)==="html"||K4(i)==="body"&&A3(i).position==="static"&&!cf(i))?t:i||function(a){let r=r8(a);for(;v3(r)&&!aM(r);){if(cf(r))return r;r=r8(r)}return null}(e)||t}function sJ1(e,t,i){const a=v3(t),r=N4(t),n=a8(e,!0,i==="fixed",t);let o={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if(a||!a&&i!=="fixed")if((K4(t)!=="body"||Lm(r))&&(o=Hm(t)),v3(t)){const l=a8(t,!0);s.x=l.x+t.clientLeft,s.y=l.y+t.clientTop}else r&&(s.x=x51(r));return{x:n.left+o.scrollLeft-s.x,y:n.top+o.scrollTop-s.y,width:n.width,height:n.height}}const lJ1={getClippingRect:function(e){let{element:t,boundary:i,rootBoundary:a,strategy:r}=e;const n=i==="clippingAncestors"?function(d,C){const m=C.get(d);if(m)return m;let u=Dd(d).filter(M=>b4(M)&&K4(M)!=="body"),p=null;const V=A3(d).position==="fixed";let f=V?r8(d):d;for(;b4(f)&&!aM(f);){const M=A3(f),H=cf(f);(V?H||p:H||M.position!=="static"||!p||!["absolute","fixed"].includes(p.position))?p=M:u=u.filter(g=>g!==f),f=r8(f)}return C.set(d,u),u}(t,this._c):[].concat(i),o=[...n,a],s=o[0],l=o.reduce((d,C)=>{const m=_S(t,C,r);return d.top=ms(m.top,d.top),d.right=AS(m.right,d.right),d.bottom=AS(m.bottom,d.bottom),d.left=ms(m.left,d.left),d},_S(t,s,r));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{rect:t,offsetParent:i,strategy:a}=e;const r=v3(i),n=N4(i);if(i===n)return t;let o={scrollLeft:0,scrollTop:0},s={x:1,y:1};const l={x:0,y:0};if((r||!r&&a!=="fixed")&&((K4(i)!=="body"||Lm(n))&&(o=Hm(i)),v3(i))){const d=a8(i);s=q6(i),l.x=d.x+i.clientLeft,l.y=d.y+i.clientTop}return{width:t.width*s.x,height:t.height*s.y,x:t.x*s.x-o.scrollLeft*s.x+l.x,y:t.y*s.y-o.scrollTop*s.y+l.y}},isElement:b4,getDimensions:function(e){return v3(e)?T51(e):e.getBoundingClientRect()},getOffsetParent:DS,getDocumentElement:N4,getScale:q6,async getElementRects(e){let{reference:t,floating:i,strategy:a}=e;const r=this.getOffsetParent||DS,n=this.getDimensions;return{reference:sJ1(t,await r(i),a),floating:{x:0,y:0,...await n(i)}}},getClientRects:e=>Array.from(e.getClientRects()),isRTL:e=>A3(e).direction==="rtl"},cJ1=(e,t,i)=>{const a=new Map,r={platform:lJ1,...i},n={...r.platform,_c:a};return qQ1(e,t,{...r,platform:n})},ln={disabled:!1,distance:5,skidding:0,container:"body",boundary:void 0,instantMove:!1,disposeTimeout:5e3,popperTriggers:[],strategy:"absolute",preventOverflow:!0,flip:!0,shift:!0,overflowPadding:0,arrowPadding:0,arrowOverflow:!0,themes:{tooltip:{placement:"top",triggers:["hover","focus","touch"],hideTriggers:e=>[...e,"click"],delay:{show:200,hide:0},handleResize:!1,html:!1,loadingContent:"..."},dropdown:{placement:"bottom",triggers:["click"],delay:0,handleResize:!0,autoHide:!0},menu:{$extend:"dropdown",triggers:["hover","focus"],popperTriggers:["hover","focus"],delay:{show:0,hide:400}}}};function df(e,t){let i=ln.themes[e]||{},a;do a=i[t],typeof a>"u"?i.$extend?i=ln.themes[i.$extend]||{}:(i=null,a=ln[t]):i=null;while(i);return a}function dJ1(e){const t=[e];let i=ln.themes[e]||{};do i.$extend&&!i.$resetCss?(t.push(i.$extend),i=ln.themes[i.$extend]||{}):i=null;while(i);return t.map(a=>`v-popper--theme-${a}`)}function yS(e){const t=[e];let i=ln.themes[e]||{};do i.$extend?(t.push(i.$extend),i=ln.themes[i.$extend]||{}):i=null;while(i);return t}let fo=!1;if(typeof window<"u"){fo=!1;try{const e=Object.defineProperty({},"passive",{get(){fo=!0}});window.addEventListener("test",null,e)}catch{}}let k51=!1;typeof window<"u"&&typeof navigator<"u"&&(k51=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream);const CJ1=["auto","top","bottom","left","right"].reduce((e,t)=>e.concat([t,`${t}-start`,`${t}-end`]),[]),RS={hover:"mouseenter",focus:"focus",click:"click",touch:"touchstart",pointer:"pointerdown"},bS={hover:"mouseleave",focus:"blur",click:"click",touch:"touchend",pointer:"pointerup"};function NS(e,t){const i=e.indexOf(t);i!==-1&&e.splice(i,1)}function ju(){return new Promise(e=>requestAnimationFrame(()=>{requestAnimationFrame(e)}))}const Pi=[];let Sr=null;const wS={};function TS(e){let t=wS[e];return t||(t=wS[e]=[]),t}let Cf=function(){};typeof window<"u"&&(Cf=window.Element);function pe(e){return function(t){return df(t.theme,e)}}const Qu="__floating-vue__popper",B51=()=>n2({name:"VPopper",provide(){return{[Qu]:{parentPopper:this}}},inject:{[Qu]:{default:null}},props:{theme:{type:String,required:!0},targetNodes:{type:Function,required:!0},referenceNode:{type:Function,default:null},popperNode:{type:Function,required:!0},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:pe("disabled")},positioningDisabled:{type:Boolean,default:pe("positioningDisabled")},placement:{type:String,default:pe("placement"),validator:e=>CJ1.includes(e)},delay:{type:[String,Number,Object],default:pe("delay")},distance:{type:[Number,String],default:pe("distance")},skidding:{type:[Number,String],default:pe("skidding")},triggers:{type:Array,default:pe("triggers")},showTriggers:{type:[Array,Function],default:pe("showTriggers")},hideTriggers:{type:[Array,Function],default:pe("hideTriggers")},popperTriggers:{type:Array,default:pe("popperTriggers")},popperShowTriggers:{type:[Array,Function],default:pe("popperShowTriggers")},popperHideTriggers:{type:[Array,Function],default:pe("popperHideTriggers")},container:{type:[String,Object,Cf,Boolean],default:pe("container")},boundary:{type:[String,Cf],default:pe("boundary")},strategy:{type:String,validator:e=>["absolute","fixed"].includes(e),default:pe("strategy")},autoHide:{type:[Boolean,Function],default:pe("autoHide")},handleResize:{type:Boolean,default:pe("handleResize")},instantMove:{type:Boolean,default:pe("instantMove")},eagerMount:{type:Boolean,default:pe("eagerMount")},popperClass:{type:[String,Array,Object],default:pe("popperClass")},computeTransformOrigin:{type:Boolean,default:pe("computeTransformOrigin")},autoMinSize:{type:Boolean,default:pe("autoMinSize")},autoSize:{type:[Boolean,String],default:pe("autoSize")},autoMaxSize:{type:Boolean,default:pe("autoMaxSize")},autoBoundaryMaxSize:{type:Boolean,default:pe("autoBoundaryMaxSize")},preventOverflow:{type:Boolean,default:pe("preventOverflow")},overflowPadding:{type:[Number,String],default:pe("overflowPadding")},arrowPadding:{type:[Number,String],default:pe("arrowPadding")},arrowOverflow:{type:Boolean,default:pe("arrowOverflow")},flip:{type:Boolean,default:pe("flip")},shift:{type:Boolean,default:pe("shift")},shiftCrossAxis:{type:Boolean,default:pe("shiftCrossAxis")},noAutoFocus:{type:Boolean,default:pe("noAutoFocus")},disposeTimeout:{type:Number,default:pe("disposeTimeout")}},emits:["show","hide","update:shown","apply-show","apply-hide","close-group","close-directive","auto-hide","resize","dispose"],data(){return{isShown:!1,isMounted:!1,skipTransition:!1,classes:{showFrom:!1,showTo:!1,hideFrom:!1,hideTo:!0},result:{x:0,y:0,placement:"",strategy:this.strategy,arrow:{x:0,y:0,centerOffset:0},transformOrigin:null},shownChildren:new Set,lastAutoHide:!0}},computed:{popperId(){return this.ariaId!=null?this.ariaId:this.randomId},shouldMountContent(){return this.eagerMount||this.isMounted},slotData(){return{popperId:this.popperId,isShown:this.isShown,shouldMountContent:this.shouldMountContent,skipTransition:this.skipTransition,autoHide:typeof this.autoHide=="function"?this.lastAutoHide:this.autoHide,show:this.show,hide:this.hide,handleResize:this.handleResize,onResize:this.onResize,classes:{...this.classes,popperClass:this.popperClass},result:this.positioningDisabled?null:this.result,attrs:this.$attrs}},parentPopper(){var e;return(e=this[Qu])==null?void 0:e.parentPopper},hasPopperShowTriggerHover(){var e,t;return((e=this.popperTriggers)==null?void 0:e.includes("hover"))||((t=this.popperShowTriggers)==null?void 0:t.includes("hover"))}},watch:{shown:"$_autoShowHide",disabled(e){e?this.dispose():this.init()},async container(){this.isShown&&(this.$_ensureTeleport(),await this.$_computePosition())},...["triggers","positioningDisabled"].reduce((e,t)=>(e[t]="$_refreshListeners",e),{}),...["placement","distance","skidding","boundary","strategy","overflowPadding","arrowPadding","preventOverflow","shift","shiftCrossAxis","flip"].reduce((e,t)=>(e[t]="$_computePosition",e),{})},created(){this.$_isDisposed=!0,this.randomId=`popper_${[Math.random(),Date.now()].map(e=>e.toString(36).substring(2,10)).join("_")}`,this.autoMinSize&&console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize="min"` instead.'),this.autoMaxSize&&console.warn("[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.")},mounted(){this.init(),this.$_detachPopperNode()},activated(){this.$_autoShowHide()},deactivated(){this.hide()},beforeUnmount(){this.dispose()},methods:{show({event:e=null,skipDelay:t=!1,force:i=!1}={}){var a,r;(a=this.parentPopper)!=null&&a.lockedChild&&this.parentPopper.lockedChild!==this||(this.$_pendingHide=!1,(i||!this.disabled)&&(((r=this.parentPopper)==null?void 0:r.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.$_scheduleShow(e,t),this.$emit("show"),this.$_showFrameLocked=!0,requestAnimationFrame(()=>{this.$_showFrameLocked=!1})),this.$emit("update:shown",!0))},hide({event:e=null,skipDelay:t=!1}={}){var i;if(!this.$_hideInProgress){if(this.shownChildren.size>0){this.$_pendingHide=!0;return}if(this.hasPopperShowTriggerHover&&this.$_isAimingPopper()){this.parentPopper&&(this.parentPopper.lockedChild=this,clearTimeout(this.parentPopper.lockedChildTimer),this.parentPopper.lockedChildTimer=setTimeout(()=>{this.parentPopper.lockedChild===this&&(this.parentPopper.lockedChild.hide({skipDelay:t}),this.parentPopper.lockedChild=null)},1e3));return}((i=this.parentPopper)==null?void 0:i.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.$_pendingHide=!1,this.$_scheduleHide(e,t),this.$emit("hide"),this.$emit("update:shown",!1)}},init(){var t;var e;this.$_isDisposed&&(this.$_isDisposed=!1,this.isMounted=!1,this.$_events=[],this.$_preventShow=!1,this.$_referenceNode=(t=(e=this.referenceNode)==null?void 0:e.call(this))!=null?t:this.$el,this.$_targetNodes=this.targetNodes().filter(i=>i.nodeType===i.ELEMENT_NODE),this.$_popperNode=this.popperNode(),this.$_innerNode=this.$_popperNode.querySelector(".v-popper__inner"),this.$_arrowNode=this.$_popperNode.querySelector(".v-popper__arrow-container"),this.$_swapTargetAttrs("title","data-original-title"),this.$_detachPopperNode(),this.triggers.length&&this.$_addEventListeners(),this.shown&&this.show())},dispose(){this.$_isDisposed||(this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.$_detachPopperNode(),this.isMounted=!1,this.isShown=!1,this.$_updateParentShownChildren(!1),this.$_swapTargetAttrs("data-original-title","title"),this.$emit("dispose"))},async onResize(){this.isShown&&(await this.$_computePosition(),this.$emit("resize"))},async $_computePosition(){var a;if(this.$_isDisposed||this.positioningDisabled)return;const e={strategy:this.strategy,middleware:[]};(this.distance||this.skidding)&&e.middleware.push(iJ1({mainAxis:this.distance,crossAxis:this.skidding}));const t=this.placement.startsWith("auto");if(t?e.middleware.push(eJ1({alignment:(a=this.placement.split("-")[1])!=null?a:""})):e.placement=this.placement,this.preventOverflow&&(this.shift&&e.middleware.push(rJ1({padding:this.overflowPadding,boundary:this.boundary,crossAxis:this.shiftCrossAxis})),!t&&this.flip&&e.middleware.push(tJ1({padding:this.overflowPadding,boundary:this.boundary}))),e.middleware.push(KQ1({element:this.$_arrowNode,padding:this.arrowPadding})),this.arrowOverflow&&e.middleware.push({name:"arrowOverflow",fn:({placement:r,rects:n,middlewareData:o})=>{let s;const{centerOffset:l}=o.arrow;return r.startsWith("top")||r.startsWith("bottom")?s=Math.abs(l)>n.reference.width/2:s=Math.abs(l)>n.reference.height/2,{data:{overflow:s}}}}),this.autoMinSize||this.autoSize){const r=this.autoSize?this.autoSize:this.autoMinSize?"min":null;e.middleware.push({name:"autoSize",fn:({rects:n,placement:o,middlewareData:s})=>{var l;if((l=s.autoSize)!=null&&l.skip)return{};let d,C;return o.startsWith("top")||o.startsWith("bottom")?d=n.reference.width:C=n.reference.height,this.$_innerNode.style[r==="min"?"minWidth":r==="max"?"maxWidth":"width"]=d!=null?`${d}px`:null,this.$_innerNode.style[r==="min"?"minHeight":r==="max"?"maxHeight":"height"]=C!=null?`${C}px`:null,{data:{skip:!0},reset:{rects:!0}}}})}(this.autoMaxSize||this.autoBoundaryMaxSize)&&(this.$_innerNode.style.maxWidth=null,this.$_innerNode.style.maxHeight=null,e.middleware.push(nJ1({boundary:this.boundary,padding:this.overflowPadding,apply:({availableWidth:r,availableHeight:n})=>{this.$_innerNode.style.maxWidth=r!=null?`${r}px`:null,this.$_innerNode.style.maxHeight=n!=null?`${n}px`:null}})));const i=await cJ1(this.$_referenceNode,this.$_popperNode,e);Object.assign(this.result,{x:i.x,y:i.y,placement:i.placement,strategy:i.strategy,arrow:{...i.middlewareData.arrow,...i.middlewareData.arrowOverflow}})},$_scheduleShow(e=null,t=!1){if(this.$_updateParentShownChildren(!0),this.$_hideInProgress=!1,clearTimeout(this.$_scheduleTimer),Sr&&this.instantMove&&Sr.instantMove&&Sr!==this.parentPopper){Sr.$_applyHide(!0),this.$_applyShow(!0);return}t?this.$_applyShow():this.$_scheduleTimer=setTimeout(this.$_applyShow.bind(this),this.$_computeDelay("show"))},$_scheduleHide(e=null,t=!1){if(this.shownChildren.size>0){this.$_pendingHide=!0;return}this.$_updateParentShownChildren(!1),this.$_hideInProgress=!0,clearTimeout(this.$_scheduleTimer),this.isShown&&(Sr=this),t?this.$_applyHide():this.$_scheduleTimer=setTimeout(this.$_applyHide.bind(this),this.$_computeDelay("hide"))},$_computeDelay(e){const t=this.delay;return parseInt(t&&t[e]||t||0)},async $_applyShow(e=!1){clearTimeout(this.$_disposeTimer),clearTimeout(this.$_scheduleTimer),this.skipTransition=e,!this.isShown&&(this.$_ensureTeleport(),await ju(),await this.$_computePosition(),await this.$_applyShowEffect(),this.positioningDisabled||this.$_registerEventListeners([...Dd(this.$_referenceNode),...Dd(this.$_popperNode)],"scroll",()=>{this.$_computePosition()}))},async $_applyShowEffect(){if(this.$_hideInProgress)return;if(this.computeTransformOrigin){const t=this.$_referenceNode.getBoundingClientRect(),i=this.$_popperNode.querySelector(".v-popper__wrapper"),a=i.parentNode.getBoundingClientRect(),r=t.x+t.width/2-(a.left+i.offsetLeft),n=t.y+t.height/2-(a.top+i.offsetTop);this.result.transformOrigin=`${r}px ${n}px`}this.isShown=!0,this.$_applyAttrsToTarget({"aria-describedby":this.popperId,"data-popper-shown":""});const e=this.showGroup;if(e){let t;for(let i=0;i0){this.$_pendingHide=!0,this.$_hideInProgress=!1;return}if(clearTimeout(this.$_scheduleTimer),!this.isShown)return;this.skipTransition=e,NS(Pi,this),Pi.length===0&&document.body.classList.remove("v-popper--some-open");for(const i of yS(this.theme)){const a=TS(i);NS(a,this),a.length===0&&document.body.classList.remove(`v-popper--some-open--${i}`)}Sr===this&&(Sr=null),this.isShown=!1,this.$_applyAttrsToTarget({"aria-describedby":void 0,"data-popper-shown":void 0}),clearTimeout(this.$_disposeTimer);const t=this.disposeTimeout;t!==null&&(this.$_disposeTimer=setTimeout(()=>{this.$_popperNode&&(this.$_detachPopperNode(),this.isMounted=!1)},t)),this.$_removeEventListeners("scroll"),this.$emit("apply-hide"),this.classes.showFrom=!1,this.classes.showTo=!1,this.classes.hideFrom=!0,this.classes.hideTo=!1,await ju(),this.classes.hideFrom=!1,this.classes.hideTo=!0},$_autoShowHide(){this.shown?this.show():this.hide()},$_ensureTeleport(){if(this.$_isDisposed)return;let e=this.container;if(typeof e=="string"?e=window.document.querySelector(e):e===!1&&(e=this.$_targetNodes[0].parentNode),!e)throw new Error("No container for popover: "+this.container);e.appendChild(this.$_popperNode),this.isMounted=!0},$_addEventListeners(){const e=i=>{this.isShown&&!this.$_hideInProgress||(i.usedByTooltip=!0,!this.$_preventShow&&this.show({event:i}))};this.$_registerTriggerListeners(this.$_targetNodes,RS,this.triggers,this.showTriggers,e),this.$_registerTriggerListeners([this.$_popperNode],RS,this.popperTriggers,this.popperShowTriggers,e);const t=i=>{i.usedByTooltip||this.hide({event:i})};this.$_registerTriggerListeners(this.$_targetNodes,bS,this.triggers,this.hideTriggers,t),this.$_registerTriggerListeners([this.$_popperNode],bS,this.popperTriggers,this.popperHideTriggers,t)},$_registerEventListeners(e,t,i){this.$_events.push({targetNodes:e,eventType:t,handler:i}),e.forEach(a=>a.addEventListener(t,i,fo?{passive:!0}:void 0))},$_registerTriggerListeners(e,t,i,a,r){let n=i;a!=null&&(n=typeof a=="function"?a(n):a),n.forEach(o=>{const s=t[o];s&&this.$_registerEventListeners(e,s,r)})},$_removeEventListeners(e){const t=[];this.$_events.forEach(i=>{const{targetNodes:a,eventType:r,handler:n}=i;!e||e===r?a.forEach(o=>o.removeEventListener(r,n)):t.push(i)}),this.$_events=t},$_refreshListeners(){this.$_isDisposed||(this.$_removeEventListeners(),this.$_addEventListeners())},$_handleGlobalClose(e,t=!1){this.$_showFrameLocked||(this.hide({event:e}),e.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),t&&(this.$_preventShow=!0,setTimeout(()=>{this.$_preventShow=!1},300)))},$_detachPopperNode(){this.$_popperNode.parentNode&&this.$_popperNode.parentNode.removeChild(this.$_popperNode)},$_swapTargetAttrs(e,t){for(const i of this.$_targetNodes){const a=i.getAttribute(e);a&&(i.removeAttribute(e),i.setAttribute(t,a))}},$_applyAttrsToTarget(e){for(const t of this.$_targetNodes)for(const i in e){const a=e[i];a==null?t.removeAttribute(i):t.setAttribute(i,a)}},$_updateParentShownChildren(e){let t=this.parentPopper;for(;t;)e?t.shownChildren.add(this.randomId):(t.shownChildren.delete(this.randomId),t.$_pendingHide&&t.hide()),t=t.parentPopper},$_isAimingPopper(){const e=this.$_referenceNode.getBoundingClientRect();if(us>=e.left&&us<=e.right&&hs>=e.top&&hs<=e.bottom){const t=this.$_popperNode.getBoundingClientRect(),i=us-c4,a=hs-d4,r=t.left+t.width/2-c4+(t.top+t.height/2)-d4+t.width+t.height,n=c4+i*r,o=d4+a*r;return gl(c4,d4,n,o,t.left,t.top,t.left,t.bottom)||gl(c4,d4,n,o,t.left,t.top,t.right,t.top)||gl(c4,d4,n,o,t.right,t.top,t.right,t.bottom)||gl(c4,d4,n,o,t.left,t.bottom,t.right,t.bottom)}return!1}},render(){return this.$slots.default(this.slotData)}});typeof document<"u"&&typeof window<"u"&&(k51?(document.addEventListener("touchstart",ES,fo?{passive:!0,capture:!0}:!0),document.addEventListener("touchend",uJ1,fo?{passive:!0,capture:!0}:!0)):(window.addEventListener("mousedown",ES,!0),window.addEventListener("click",mJ1,!0)),window.addEventListener("resize",fJ1));function ES(e){for(let t=0;t=0;a--){const r=Pi[a];try{const n=r.$_containsGlobalTarget=hJ1(r,e);r.$_pendingHide=!1,requestAnimationFrame(()=>{if(r.$_pendingHide=!1,!i[r.randomId]&&PS(r,n,e)){if(r.$_handleGlobalClose(e,t),!e.closeAllPopover&&e.closePopover&&n){let s=r.parentPopper;for(;s;)i[s.randomId]=!0,s=s.parentPopper;return}let o=r.parentPopper;for(;o&&PS(o,o.$_containsGlobalTarget,e);)o.$_handleGlobalClose(e,t),o=o.parentPopper}})}catch{}}}function hJ1(e,t){const i=e.popperNode();return e.$_mouseDownContains||i.contains(t.target)}function PS(e,t,i){return i.closeAllPopover||i.closePopover&&t||pJ1(e,i)&&!t}function pJ1(e,t){if(typeof e.autoHide=="function"){const i=e.autoHide(t);return e.lastAutoHide=i,i}return e.autoHide}function fJ1(e){for(let t=0;t{c4=us,d4=hs,us=e.clientX,hs=e.clientY},fo?{passive:!0}:void 0);function gl(e,t,i,a,r,n,o,s){const l=((o-r)*(t-n)-(s-n)*(e-r))/((s-n)*(i-e)-(o-r)*(a-t)),d=((i-e)*(t-n)-(a-t)*(e-r))/((s-n)*(i-e)-(o-r)*(a-t));return l>=0&&l<=1&&d>=0&&d<=1}const VJ1={extends:B51()},rM=(e,t)=>{const i=e.__vccOpts||e;for(const[a,r]of t)i[a]=r;return i};function LJ1(e,t,i,a,r,n){return C1(),N1("div",{ref:"reference",class:c2(["v-popper",{"v-popper--shown":e.slotData.isShown}])},[Se(e.$slots,"default",Kd(v8(e.slotData)))],2)}const HJ1=rM(VJ1,[["render",LJ1]]);function MJ1(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);var i=e.indexOf("Trident/");if(i>0){var a=e.indexOf("rv:");return parseInt(e.substring(a+3,e.indexOf(".",a)),10)}var r=e.indexOf("Edge/");return r>0?parseInt(e.substring(r+5,e.indexOf(".",r)),10):-1}let nc;function mf(){mf.init||(mf.init=!0,nc=MJ1()!==-1)}var Mm={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:["notify"],mounted(){mf(),k2(()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()});const e=document.createElement("object");this._resizeObject=e,e.setAttribute("aria-hidden","true"),e.setAttribute("tabindex",-1),e.onload=this.addResizeHandlers,e.type="text/html",nc&&this.$el.appendChild(e),e.data="about:blank",nc||this.$el.appendChild(e)},beforeUnmount(){this.removeResizeHandlers()},methods:{compareAndNotify(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers(){this._resizeObject&&this._resizeObject.onload&&(!nc&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}};const gJ1=oC();Dt("data-v-b329ee4c");const AJ1={class:"resize-observer",tabindex:"-1"};yt();const vJ1=gJ1((e,t,i,a,r,n)=>(C1(),Q1("div",AJ1)));Mm.render=vJ1;Mm.__scopeId="data-v-b329ee4c";Mm.__file="src/components/ResizeObserver.vue";const Z51=(e="theme")=>({computed:{themeClass(){return dJ1(this[e])}}}),_J1=n2({name:"VPopperContent",components:{ResizeObserver:Mm},mixins:[Z51()],props:{popperId:String,theme:String,shown:Boolean,mounted:Boolean,skipTransition:Boolean,autoHide:Boolean,handleResize:Boolean,classes:Object,result:Object},emits:["hide","resize"],methods:{toPx(e){return e!=null&&!isNaN(e)?`${e}px`:null}}}),SJ1=["id","aria-hidden","tabindex","data-popper-placement"],DJ1={ref:"inner",class:"v-popper__inner"},yJ1=K("div",{class:"v-popper__arrow-outer"},null,-1),RJ1=K("div",{class:"v-popper__arrow-inner"},null,-1),bJ1=[yJ1,RJ1];function NJ1(e,t,i,a,r,n){const o=x5("ResizeObserver");return C1(),N1("div",{id:e.popperId,ref:"popover",class:c2(["v-popper__popper",[e.themeClass,e.classes.popperClass,{"v-popper__popper--shown":e.shown,"v-popper__popper--hidden":!e.shown,"v-popper__popper--show-from":e.classes.showFrom,"v-popper__popper--show-to":e.classes.showTo,"v-popper__popper--hide-from":e.classes.hideFrom,"v-popper__popper--hide-to":e.classes.hideTo,"v-popper__popper--skip-transition":e.skipTransition,"v-popper__popper--arrow-overflow":e.result&&e.result.arrow.overflow,"v-popper__popper--no-positioning":!e.result}]]),style:X5(e.result?{position:e.result.strategy,transform:`translate3d(${Math.round(e.result.x)}px,${Math.round(e.result.y)}px,0)`}:void 0),"aria-hidden":e.shown?"false":"true",tabindex:e.autoHide?0:void 0,"data-popper-placement":e.result?e.result.placement:void 0,onKeyup:t[2]||(t[2]=_8(s=>e.autoHide&&e.$emit("hide"),["esc"]))},[K("div",{class:"v-popper__backdrop",onClick:t[0]||(t[0]=s=>e.autoHide&&e.$emit("hide"))}),K("div",{class:"v-popper__wrapper",style:X5(e.result?{transformOrigin:e.result.transformOrigin}:void 0)},[K("div",DJ1,[e.mounted?(C1(),N1(Y1,{key:0},[K("div",null,[Se(e.$slots,"default")]),e.handleResize?(C1(),Q1(o,{key:0,onNotify:t[1]||(t[1]=s=>e.$emit("resize",s))})):a2("",!0)],64)):a2("",!0)],512),K("div",{ref:"arrow",class:"v-popper__arrow-container",style:X5(e.result?{left:e.toPx(e.result.arrow.x),top:e.toPx(e.result.arrow.y)}:void 0)},bJ1,4)],4)],46,SJ1)}const G51=rM(_J1,[["render",NJ1]]),W51={methods:{show(...e){return this.$refs.popper.show(...e)},hide(...e){return this.$refs.popper.hide(...e)},dispose(...e){return this.$refs.popper.dispose(...e)},onResize(...e){return this.$refs.popper.onResize(...e)}}},wJ1=n2({name:"VPopperWrapper",components:{Popper:HJ1,PopperContent:G51},mixins:[W51,Z51("finalTheme")],props:{theme:{type:String,default:null}},computed:{finalTheme(){var e;return(e=this.theme)!=null?e:this.$options.vPopperTheme}},methods:{getTargetNodes(){return Array.from(this.$el.children).filter(e=>e!==this.$refs.popperContent.$el)}}});function TJ1(e,t,i,a,r,n){const o=x5("PopperContent"),s=x5("Popper");return C1(),Q1(s,{ref:"popper",theme:e.finalTheme,"target-nodes":e.getTargetNodes,"popper-node":()=>e.$refs.popperContent.$el,class:c2([e.themeClass])},{default:v1(({popperId:l,isShown:d,shouldMountContent:C,skipTransition:m,autoHide:u,show:p,hide:V,handleResize:f,onResize:M,classes:H,result:g})=>[Se(e.$slots,"default",{shown:d,show:p,hide:V}),P(o,{ref:"popperContent","popper-id":l,theme:e.finalTheme,shown:d,mounted:C,"skip-transition":m,"auto-hide":u,"handle-resize":f,classes:H,result:g,onHide:V,onResize:M},{default:v1(()=>[Se(e.$slots,"popper",{shown:d,hide:V})]),_:2},1032,["popper-id","theme","shown","mounted","skip-transition","auto-hide","handle-resize","classes","result","onHide","onResize"])]),_:3},8,["theme","target-nodes","popper-node","class"])}const nM=rM(wJ1,[["render",TJ1]]);({...nM});({...nM});({...nM});n2({name:"VTooltipDirective",components:{Popper:B51(),PopperContent:G51},mixins:[W51],inheritAttrs:!1,props:{theme:{type:String,default:"tooltip"},html:{type:Boolean,default:e=>df(e.theme,"html")},content:{type:[String,Number,Function],default:null},loadingContent:{type:String,default:e=>df(e.theme,"loadingContent")},targetNodes:{type:Function,required:!0}},data(){return{asyncContent:null}},computed:{isContentAsync(){return typeof this.content=="function"},loading(){return this.isContentAsync&&this.asyncContent==null},finalContent(){return this.isContentAsync?this.loading?this.loadingContent:this.asyncContent:this.content}},watch:{content:{handler(){this.fetchContent(!0)},immediate:!0},async finalContent(){await this.$nextTick(),this.$refs.popper.onResize()}},created(){this.$_fetchId=0},methods:{fetchContent(e){if(typeof this.content=="function"&&this.$_isShown&&(e||!this.$_loading&&this.asyncContent==null)){this.asyncContent=null,this.$_loading=!0;const t=++this.$_fetchId,i=this.content(this);i.then?i.then(a=>this.onResult(t,a)):this.onResult(t,i)}},onResult(e,t){e===this.$_fetchId&&(this.$_loading=!1,this.asyncContent=t)},onShow(){this.$_isShown=!0,this.fetchContent()},onHide(){this.$_isShown=!1}}});const n8=15,uf=30,hf=19,EJ1=29,yd=256,oM=yd+1+EJ1,IS=2*oM+1,y7=256,PJ1=7,OS=16,US=17,xS=18,Ju=8*2,Rd=-1,IJ1=1,Al=2,OJ1=0,N6=0,FS=1,UJ1=3,Xt=4,Di=0,X51=1,vl=2,yi=-2,xJ1=-3,A6=-5;function gm(e){return Am(e.map(([t,i])=>new Array(t).fill(i,0,t)))}function Am(e){return e.reduce((t,i)=>t.concat(Array.isArray(i)?Am(i):i),[])}const kS=[0,1,2,3].concat(...gm([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function Xe(){const e=this;function t(r){const n=e.dyn_tree,o=e.stat_desc.static_tree,s=e.stat_desc.extra_bits,l=e.stat_desc.extra_base,d=e.stat_desc.max_length;let C,m,u,p,V,f,M=0;for(p=0;p<=n8;p++)r.bl_count[p]=0;for(n[r.heap[r.heap_max]*2+1]=0,C=r.heap_max+1;Cd&&(p=d,M++),n[m*2+1]=p,!(m>e.max_code)&&(r.bl_count[p]++,V=0,m>=l&&(V=s[m-l]),f=n[m*2],r.opt_len+=f*(p+V),o&&(r.static_len+=f*(o[m*2+1]+V)));if(M!==0){do{for(p=d-1;r.bl_count[p]===0;)p--;r.bl_count[p]--,r.bl_count[p+1]+=2,r.bl_count[d]--,M-=2}while(M>0);for(p=d;p!==0;p--)for(m=r.bl_count[p];m!==0;)u=r.heap[--C],!(u>e.max_code)&&(n[u*2+1]!=p&&(r.opt_len+=(p-n[u*2+1])*n[u*2],n[u*2+1]=p),m--)}}function i(r,n){let o=0;do o|=r&1,r>>>=1,o<<=1;while(--n>0);return o>>>1}function a(r,n,o){const s=[];let l=0,d,C,m;for(d=1;d<=n8;d++)s[d]=l=l+o[d-1]<<1;for(C=0;C<=n;C++)m=r[C*2+1],m!==0&&(r[C*2]=i(s[m]++,m))}e.build_tree=function(r){const n=e.dyn_tree,o=e.stat_desc.static_tree,s=e.stat_desc.elems;let l,d,C=-1,m;for(r.heap_len=0,r.heap_max=IS,l=0;l=1;l--)r.pqdownheap(n,l);m=s;do l=r.heap[1],r.heap[1]=r.heap[r.heap_len--],r.pqdownheap(n,1),d=r.heap[1],r.heap[--r.heap_max]=l,r.heap[--r.heap_max]=d,n[m*2]=n[l*2]+n[d*2],r.depth[m]=Math.max(r.depth[l],r.depth[d])+1,n[l*2+1]=n[d*2+1]=m,r.heap[1]=m++,r.pqdownheap(n,1);while(r.heap_len>=2);r.heap[--r.heap_max]=r.heap[1],t(r),a(n,e.max_code,r.bl_count)}}Xe._length_code=[0,1,2,3,4,5,6,7].concat(...gm([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]]));Xe.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0];Xe.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576];Xe.d_code=function(e){return e<256?kS[e]:kS[256+(e>>>7)]};Xe.extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];Xe.extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];Xe.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];Xe.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function at(e,t,i,a,r){const n=this;n.static_tree=e,n.extra_bits=t,n.extra_base=i,n.elems=a,n.max_length=r}const FJ1=[12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227],kJ1=gm([[144,8],[112,9],[24,7],[8,8]]);at.static_ltree=Am(FJ1.map((e,t)=>[e,kJ1[t]]));const BJ1=[0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23],zJ1=gm([[30,5]]);at.static_dtree=Am(BJ1.map((e,t)=>[e,zJ1[t]]));at.static_l_desc=new at(at.static_ltree,Xe.extra_lbits,yd+1,oM,n8);at.static_d_desc=new at(at.static_dtree,Xe.extra_dbits,0,uf,n8);at.static_bl_desc=new at(null,Xe.extra_blbits,0,hf,PJ1);const ZJ1=9,GJ1=8;function n3(e,t,i,a,r){const n=this;n.good_length=e,n.max_lazy=t,n.nice_length=i,n.max_chain=a,n.func=r}const Y51=0,oc=1,Pr=2,Ai=[new n3(0,0,0,0,Y51),new n3(4,4,8,4,oc),new n3(4,5,16,8,oc),new n3(4,6,32,32,oc),new n3(4,4,16,16,Pr),new n3(8,16,32,32,Pr),new n3(8,16,128,128,Pr),new n3(8,32,128,256,Pr),new n3(32,128,258,1024,Pr),new n3(32,258,258,4096,Pr)],_l=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],Q0=0,Sl=1,R7=2,Dl=3,WJ1=32,eh=42,yl=113,b7=666,th=8,XJ1=0,ih=1,YJ1=2,Je=3,sc=258,H0=sc+Je+1;function BS(e,t,i,a){const r=e[t*2],n=e[i*2];return r=3&&J[Xe.bl_order[E1]*2+1]===0;E1--);return e.opt_len+=3*(E1+1)+5+5+4,E1}function e1(E1){e.pending_buf[e.pending++]=E1}function Y(E1){e1(E1&255),e1(E1>>>8&255)}function a1(E1){e1(E1>>8&255),e1(E1&255&255)}function c1(E1,F1){let U1;const Z1=F1;M1>Ju-Z1?(U1=E1,n1|=U1<>>Ju-M1,M1+=Z1-Ju):(n1|=E1<=8&&(e1(n1&255),n1>>>=8,M1-=8)}function x1(){c1(ih<<1,3),H1(y7,at.static_ltree),O1(),1+A1+10-M1<9&&(c1(ih<<1,3),H1(y7,at.static_ltree),O1()),A1=7}function y1(E1,F1){let U1,Z1,r2;if(e.dist_buf[l1]=E1,e.lc_buf[l1]=F1&255,l1++,E1===0?z[F1*2]++:(V1++,E1--,z[(Xe._length_code[F1]+yd+1)*2]++,F[Xe.d_code(E1)*2]++),(l1&8191)===0&&x>2){for(U1=l1*8,Z1=S-H,r2=0;r2>>=3,V18?Y(n1):M1>0&&e1(n1&255),n1=0,M1=0}function o2(E1,F1,U1){j1(),A1=8,U1&&(Y(F1),Y(~F1)),e.pending_buf.set(l.subarray(E1,E1+F1),e.pending),e.pending+=F1}function u2(E1,F1,U1){c1((XJ1<<1)+(U1?1:0),3),o2(E1,F1,!0)}function v2(E1,F1,U1){let Z1,r2,S2=0;x>0?(W.build_tree(e),r1.build_tree(e),S2=L1(),Z1=e.opt_len+3+7>>>3,r2=e.static_len+3+7>>>3,r2<=Z1&&(Z1=r2)):Z1=r2=F1+5,F1+4<=Z1&&E1!=-1?u2(E1,F1,U1):r2==Z1?(c1((ih<<1)+(U1?1:0),3),X1(at.static_ltree,at.static_dtree)):(c1((YJ1<<1)+(U1?1:0),3),P1(W.max_code+1,r1.max_code+1,S2+1),X1(z,F)),s1(),U1&&j1()}function d2(E1){v2(H>=0?H:-1,S-H,E1),H=S,t.flush_pending()}function D2(){let E1,F1,U1,Z1;do{if(Z1=d-D-S,Z1===0&&S===0&&D===0)Z1=n;else if(Z1==-1)Z1--;else if(S>=n+n-H0){l.set(l.subarray(n,n+n),0),y-=n,S-=n,H-=n,E1=p,U1=E1;do F1=m[--U1]&65535,m[U1]=F1>=n?F1-n:0;while(--E1!==0);E1=n,U1=E1;do F1=C[--U1]&65535,C[U1]=F1>=n?F1-n:0;while(--E1!==0);Z1+=n}if(t.avail_in===0)return;E1=t.read_buf(l,S+D,Z1),D+=E1,D>=Je&&(u=l[S]&255,u=(u<a-5&&(F1=a-5);;){if(D<=1){if(D2(),D===0&&E1==N6)return Q0;if(D===0)break}if(S+=D,D=0,U1=H+F1,(S===0||S>=U1)&&(D=S-U1,S=U1,d2(!1),t.avail_out===0)||S-H>=n-H0&&(d2(!1),t.avail_out===0))return Q0}return d2(E1==Xt),t.avail_out===0?E1==Xt?R7:Q0:E1==Xt?Dl:Sl}function oe(E1){let F1=N,U1=S,Z1,r2,S2=R;const R2=S>n-H0?S-(n-H0):0;let je=O;const V5=s,Ki=S+sc;let v5=l[U1+S2-1],lt=l[U1+S2];R>=E&&(F1>>=2),je>D&&(je=D);do if(Z1=E1,!(l[Z1+S2]!=lt||l[Z1+S2-1]!=v5||l[Z1]!=l[U1]||l[++Z1]!=l[U1+1])){U1+=2,Z1++;do;while(l[++U1]==l[++Z1]&&l[++U1]==l[++Z1]&&l[++U1]==l[++Z1]&&l[++U1]==l[++Z1]&&l[++U1]==l[++Z1]&&l[++U1]==l[++Z1]&&l[++U1]==l[++Z1]&&l[++U1]==l[++Z1]&&U1S2){if(y=E1,S2=r2,r2>=je)break;v5=l[U1+S2-1],lt=l[U1+S2]}}while((E1=C[E1&V5]&65535)>R2&&--F1!==0);return S2<=D?S2:D}function f5(E1){let F1=0,U1;for(;;){if(D=Je&&(u=(u<=Je)if(U1=y1(S-y,g-Je),D-=g,g<=w&&D>=Je){g--;do S++,u=(u<=Je&&(u=(u<4096)&&(g=Je-1)),R>=Je&&g<=R){Z1=S+D-Je,U1=y1(S-1-_,R-Je),D-=R-1,R-=2;do++S<=Z1&&(u=(u<ZJ1||Z1!=th||U1<9||U1>15||F1<0||F1>9||S2<0||S2>Al?yi:(E1.dstate=e,o=U1,n=1<9||U1<0||U1>Al?yi:(Ai[x].func!=Ai[F1].func&&E1.total_in!==0&&(Z1=E1.deflate(FS)),x!=F1&&(x=F1,w=Ai[x].max_lazy,E=Ai[x].good_length,O=Ai[x].nice_length,N=Ai[x].max_chain),U=U1,Z1)},e.deflateSetDictionary=function(E1,F1,U1){let Z1=U1,r2,S2=0;if(!F1||i!=eh)return yi;if(Z1n-H0&&(Z1=n-H0,S2=U1-Z1),l.set(F1.subarray(S2,S2+Z1),0),S=Z1,H=Z1,u=l[0]&255,u=(u<Xt||F1<0)return yi;if(!E1.next_out||!E1.next_in&&E1.avail_in!==0||i==b7&&F1!=Xt)return E1.msg=_l[vl-yi],yi;if(E1.avail_out===0)return E1.msg=_l[vl-A6],A6;if(t=E1,S2=r,r=F1,i==eh&&(Z1=th+(o-8<<4)<<8,r2=(x-1&255)>>1,r2>3&&(r2=3),Z1|=r2<<6,S!==0&&(Z1|=WJ1),Z1+=31-Z1%31,i=yl,a1(Z1)),e.pending!==0){if(t.flush_pending(),t.avail_out===0)return r=-1,Di}else if(t.avail_in===0&&F1<=S2&&F1!=Xt)return t.msg=_l[vl-A6],A6;if(i==b7&&t.avail_in!==0)return E1.msg=_l[vl-A6],A6;if(t.avail_in!==0||D!==0||F1!=N6&&i!=b7){switch(R2=-1,Ai[x].func){case Y51:R2=y2(F1);break;case oc:R2=f5(F1);break;case Pr:R2=Q5(F1);break}if((R2==R7||R2==Dl)&&(i=b7),R2==Q0||R2==R7)return t.avail_out===0&&(r=-1),Di;if(R2==Sl){if(F1==FS)x1();else if(u2(0,0,!1),F1==UJ1)for(U1=0;U1i&&(r=i),r===0?0:(a.avail_in-=r,e.set(a.next_in.subarray(a.next_in_index,a.next_in_index+r),t),a.next_in_index+=r,a.total_in+=r,r)},flush_pending(){const e=this;let t=e.dstate.pending;t>e.avail_out&&(t=e.avail_out),t!==0&&(e.next_out.set(e.dstate.pending_buf.subarray(e.dstate.pending_out,e.dstate.pending_out+t),e.next_out_index),e.next_out_index+=t,e.dstate.pending_out+=t,e.total_out+=t,e.avail_out-=t,e.dstate.pending-=t,e.dstate.pending===0&&(e.dstate.pending_out=0))}};function qJ1(e){const t=this,i=new $51,a=KJ1(e&&e.chunkSize?e.chunkSize:64*1024),r=N6,n=new Uint8Array(a);let o=e?e.level:Rd;typeof o>"u"&&(o=Rd),i.deflateInit(o),i.next_out=n,t.append=function(s,l){let d,C,m=0,u=0,p=0;const V=[];if(!!s.length){i.next_in_index=0,i.next_in=s,i.avail_in=s.length;do{if(i.next_out_index=0,i.avail_out=a,d=i.deflate(r),d!=Di)throw new Error("deflating: "+i.msg);i.next_out_index&&(i.next_out_index==a?V.push(new Uint8Array(n)):V.push(n.subarray(0,i.next_out_index))),p+=i.next_out_index,l&&i.next_in_index>0&&i.next_in_index!=m&&(l(i.next_in_index),m=i.next_in_index)}while(i.avail_in>0||i.avail_out===0);return V.length>1?(C=new Uint8Array(p),V.forEach(function(f){C.set(f,u),u+=f.length})):C=V[0]?new Uint8Array(V[0]):new Uint8Array,C}},t.flush=function(){let s,l,d=0,C=0;const m=[];do{if(i.next_out_index=0,i.avail_out=a,s=i.deflate(Xt),s!=X51&&s!=Di)throw new Error("deflating: "+i.msg);a-i.avail_out>0&&m.push(n.slice(0,i.next_out_index)),C+=i.next_out_index}while(i.avail_in>0||i.avail_out===0);return i.deflateEnd(),l=new Uint8Array(C),m.forEach(function(u){l.set(u,d),d+=u.length}),l}}function KJ1(e){return e+5*(Math.floor(e/16383)+1)}const jJ1=15,Me=0,pa=1,QJ1=2,Kt=-2,Ye=-3,zS=-4,fa=-5,A0=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],q51=1440,JJ1=0,e12=4,t12=9,i12=5,a12=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],r12=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],n12=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],o12=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],s12=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],l12=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],i4=15;function pf(){const e=this;let t,i,a,r,n,o;function s(d,C,m,u,p,V,f,M,H,g,_){let v,S,y,D,R,N,w,x,U,E,O,z,F,J,W;E=0,R=m;do a[d[C+E]]++,E++,R--;while(R!==0);if(a[0]==m)return f[0]=-1,M[0]=0,Me;for(x=M[0],N=1;N<=i4&&a[N]===0;N++);for(w=N,xR&&(x=R),M[0]=x,J=1<z+x;){if(D++,z+=x,W=y-z,W=W>x?x:W,(S=1<<(N=w-z))>v+1&&(S-=v+1,F=w,Nq51)return Ye;n[D]=O=g[0],g[0]+=W,D!==0?(o[D]=R,r[0]=N,r[1]=x,N=R>>>z-x,r[2]=O-n[D-1]-N,H.set(r,(n[D-1]+N)*3)):f[0]=O}for(r[1]=w-z,E>=m?r[0]=128+64:_[E]>>z;N>>=1)R^=N;for(R^=N,U=(1<257?(g==Ye?H.msg="oversubscribed distance tree":g==fa?(H.msg="incomplete distance tree",g=Ye):g!=zS&&(H.msg="empty distance tree with lengths",g=Ye),g):Me)}}pf.inflate_trees_fixed=function(e,t,i,a){return e[0]=t12,t[0]=i12,i[0]=a12,a[0]=r12,Me};const Rl=0,ZS=1,GS=2,WS=3,XS=4,YS=5,$S=6,ah=7,qS=8,bl=9;function c12(){const e=this;let t,i=0,a,r=0,n=0,o=0,s=0,l=0,d=0,C=0,m,u=0,p,V=0;function f(M,H,g,_,v,S,y,D){let R,N,w,x,U,E,O,z,F,J,W,r1,$,t1,l1,V1;O=D.next_in_index,z=D.avail_in,U=y.bitb,E=y.bitk,F=y.write,J=F>=N[V1+1],E-=N[V1+1],y.win[F++]=N[V1+2],J--;continue}do{if(U>>=N[V1+1],E-=N[V1+1],(x&16)!==0){for(x&=15,$=N[V1+2]+(U&A0[x]),U>>=x,E-=x;E<15;)z--,U|=(D.read_byte(O++)&255)<>=N[V1+1],E-=N[V1+1],(x&16)!==0){for(x&=15;E>=x,E-=x,J-=$,F>=t1)l1=F-t1,F-l1>0&&2>F-l1?(y.win[F++]=y.win[l1++],y.win[F++]=y.win[l1++],$-=2):(y.win.set(y.win.subarray(l1,l1+2),F),F+=2,l1+=2,$-=2);else{l1=F-t1;do l1+=y.end;while(l1<0);if(x=y.end-l1,$>x){if($-=x,F-l1>0&&x>F-l1)do y.win[F++]=y.win[l1++];while(--x!==0);else y.win.set(y.win.subarray(l1,l1+x),F),F+=x,l1+=x,x=0;l1=0}}if(F-l1>0&&$>F-l1)do y.win[F++]=y.win[l1++];while(--$!==0);else y.win.set(y.win.subarray(l1,l1+$),F),F+=$,l1+=$,$=0;break}else if((x&64)===0)R+=N[V1+2],R+=U&A0[x],V1=(w+R)*3,x=N[V1];else return D.msg="invalid distance code",$=D.avail_in-z,$=E>>3<$?E>>3:$,z+=$,O-=$,E-=$<<3,y.bitb=U,y.bitk=E,D.avail_in=z,D.total_in+=O-D.next_in_index,D.next_in_index=O,y.write=F,Ye;while(!0);break}if((x&64)===0){if(R+=N[V1+2],R+=U&A0[x],V1=(w+R)*3,(x=N[V1])===0){U>>=N[V1+1],E-=N[V1+1],y.win[F++]=N[V1+2],J--;break}}else return(x&32)!==0?($=D.avail_in-z,$=E>>3<$?E>>3:$,z+=$,O-=$,E-=$<<3,y.bitb=U,y.bitk=E,D.avail_in=z,D.total_in+=O-D.next_in_index,D.next_in_index=O,y.write=F,pa):(D.msg="invalid literal/length code",$=D.avail_in-z,$=E>>3<$?E>>3:$,z+=$,O-=$,E-=$<<3,y.bitb=U,y.bitk=E,D.avail_in=z,D.total_in+=O-D.next_in_index,D.next_in_index=O,y.write=F,Ye)}while(!0)}while(J>=258&&z>=10);return $=D.avail_in-z,$=E>>3<$?E>>3:$,z+=$,O-=$,E-=$<<3,y.bitb=U,y.bitk=E,D.avail_in=z,D.total_in+=O-D.next_in_index,D.next_in_index=O,y.write=F,Me}e.init=function(M,H,g,_,v,S){t=Rl,d=M,C=H,m=g,u=_,p=v,V=S,a=null},e.proc=function(M,H,g){let _,v,S,y=0,D=0,R=0,N,w,x,U;for(R=H.next_in_index,N=H.avail_in,y=M.bitb,D=M.bitk,w=M.write,x=w=258&&N>=10&&(M.bitb=y,M.bitk=D,H.avail_in=N,H.total_in+=R-H.next_in_index,H.next_in_index=R,M.write=w,g=f(d,C,m,u,p,V,M,H),R=H.next_in_index,N=H.avail_in,y=M.bitb,D=M.bitk,w=M.write,x=w>>=a[v+1],D-=a[v+1],S=a[v],S===0){o=a[v+2],t=$S;break}if((S&16)!==0){s=S&15,i=a[v+2],t=GS;break}if((S&64)===0){n=S,r=v/3+a[v+2];break}if((S&32)!==0){t=ah;break}return t=bl,H.msg="invalid literal/length code",g=Ye,M.bitb=y,M.bitk=D,H.avail_in=N,H.total_in+=R-H.next_in_index,H.next_in_index=R,M.write=w,M.inflate_flush(H,g);case GS:for(_=s;D<_;){if(N!==0)g=Me;else return M.bitb=y,M.bitk=D,H.avail_in=N,H.total_in+=R-H.next_in_index,H.next_in_index=R,M.write=w,M.inflate_flush(H,g);N--,y|=(H.read_byte(R++)&255)<>=_,D-=_,n=C,a=p,r=V,t=WS;case WS:for(_=n;D<_;){if(N!==0)g=Me;else return M.bitb=y,M.bitk=D,H.avail_in=N,H.total_in+=R-H.next_in_index,H.next_in_index=R,M.write=w,M.inflate_flush(H,g);N--,y|=(H.read_byte(R++)&255)<>=a[v+1],D-=a[v+1],S=a[v],(S&16)!==0){s=S&15,l=a[v+2],t=XS;break}if((S&64)===0){n=S,r=v/3+a[v+2];break}return t=bl,H.msg="invalid distance code",g=Ye,M.bitb=y,M.bitk=D,H.avail_in=N,H.total_in+=R-H.next_in_index,H.next_in_index=R,M.write=w,M.inflate_flush(H,g);case XS:for(_=s;D<_;){if(N!==0)g=Me;else return M.bitb=y,M.bitk=D,H.avail_in=N,H.total_in+=R-H.next_in_index,H.next_in_index=R,M.write=w,M.inflate_flush(H,g);N--,y|=(H.read_byte(R++)&255)<>=_,D-=_,t=YS;case YS:for(U=w-l;U<0;)U+=M.end;for(;i!==0;){if(x===0&&(w==M.end&&M.read!==0&&(w=0,x=w7&&(D-=8,N++,R--),M.write=w,g=M.inflate_flush(H,g),w=M.write,x=wf.avail_out&&(H=f.avail_out),H!==0&&M==fa&&(M=Me),f.avail_out-=H,f.total_out+=H,f.next_out.set(i.win.subarray(_,_+H),g),g+=H,_+=H,_==i.end&&(_=0,i.write==i.end&&(i.write=0),H=i.write-_,H>f.avail_out&&(H=f.avail_out),H!==0&&M==fa&&(M=Me),f.avail_out-=H,f.total_out+=H,f.next_out.set(i.win.subarray(_,_+H),g),g+=H,_+=H),f.next_out_index=g,i.read=_,M},i.proc=function(f,M){let H,g,_,v,S,y,D,R;for(v=f.next_in_index,S=f.avail_in,g=i.bitb,_=i.bitk,y=i.write,D=y>>1){case 0:g>>>=3,_-=3,H=_&7,g>>>=H,_-=H,a=rh;break;case 1:N=[],w=[],x=[[]],U=[[]],pf.inflate_trees_fixed(N,w,x,U),C.init(N[0],w[0],x[0],0,U[0],0),g>>>=3,_-=3,a=Nl;break;case 2:g>>>=3,_-=3,a=QS;break;case 3:return g>>>=3,_-=3,a=Dr,f.msg="invalid block type",M=Ye,i.bitb=g,i.bitk=_,f.avail_in=S,f.total_in+=v-f.next_in_index,f.next_in_index=v,i.write=y,i.inflate_flush(f,M)}break;case rh:for(;_<32;){if(S!==0)M=Me;else return i.bitb=g,i.bitk=_,f.avail_in=S,f.total_in+=v-f.next_in_index,f.next_in_index=v,i.write=y,i.inflate_flush(f,M);S--,g|=(f.read_byte(v++)&255)<<_,_+=8}if((~g>>>16&65535)!=(g&65535))return a=Dr,f.msg="invalid stored block lengths",M=Ye,i.bitb=g,i.bitk=_,f.avail_in=S,f.total_in+=v-f.next_in_index,f.next_in_index=v,i.write=y,i.inflate_flush(f,M);r=g&65535,g=_=0,a=r!==0?jS:m!==0?wl:v6;break;case jS:if(S===0||D===0&&(y==i.end&&i.read!==0&&(y=0,D=yS&&(H=S),H>D&&(H=D),i.win.set(f.read_buf(v,H),y),v+=H,S-=H,y+=H,D-=H,(r-=H)!==0)break;a=m!==0?wl:v6;break;case QS:for(;_<14;){if(S!==0)M=Me;else return i.bitb=g,i.bitk=_,f.avail_in=S,f.total_in+=v-f.next_in_index,f.next_in_index=v,i.write=y,i.inflate_flush(f,M);S--,g|=(f.read_byte(v++)&255)<<_,_+=8}if(n=H=g&16383,(H&31)>29||(H>>5&31)>29)return a=Dr,f.msg="too many length or distance symbols",M=Ye,i.bitb=g,i.bitk=_,f.avail_in=S,f.total_in+=v-f.next_in_index,f.next_in_index=v,i.write=y,i.inflate_flush(f,M);if(H=258+(H&31)+(H>>5&31),!s||s.length>>=14,_-=14,o=0,a=JS;case JS:for(;o<4+(n>>>10);){for(;_<3;){if(S!==0)M=Me;else return i.bitb=g,i.bitk=_,f.avail_in=S,f.total_in+=v-f.next_in_index,f.next_in_index=v,i.write=y,i.inflate_flush(f,M);S--,g|=(f.read_byte(v++)&255)<<_,_+=8}s[KS[o++]]=g&7,g>>>=3,_-=3}for(;o<19;)s[KS[o++]]=0;if(l[0]=7,H=V.inflate_trees_bits(s,l,d,u,f),H!=Me)return M=H,M==Ye&&(s=null,a=Dr),i.bitb=g,i.bitk=_,f.avail_in=S,f.total_in+=v-f.next_in_index,f.next_in_index=v,i.write=y,i.inflate_flush(f,M);o=0,a=eD;case eD:for(;H=n,!(o>=258+(H&31)+(H>>5&31));){let J,W;for(H=l[0];_>>=H,_-=H,s[o++]=W;else{for(R=W==18?7:W-14,J=W==18?11:3;_>>=H,_-=H,J+=g&A0[R],g>>>=R,_-=R,R=o,H=n,R+J>258+(H&31)+(H>>5&31)||W==16&&R<1)return s=null,a=Dr,f.msg="invalid bit length repeat",M=Ye,i.bitb=g,i.bitk=_,f.avail_in=S,f.total_in+=v-f.next_in_index,f.next_in_index=v,i.write=y,i.inflate_flush(f,M);W=W==16?s[R-1]:0;do s[R++]=W;while(--J!==0);o=R}}if(d[0]=-1,E=[],O=[],z=[],F=[],E[0]=9,O[0]=6,H=n,H=V.inflate_trees_dynamic(257+(H&31),1+(H>>5&31),s,E,O,z,F,u,f),H!=Me)return H==Ye&&(s=null,a=Dr),M=H,i.bitb=g,i.bitk=_,f.avail_in=S,f.total_in+=v-f.next_in_index,f.next_in_index=v,i.write=y,i.inflate_flush(f,M);C.init(E[0],O[0],u,z[0],u,F[0]),a=Nl;case Nl:if(i.bitb=g,i.bitk=_,f.avail_in=S,f.total_in+=v-f.next_in_index,f.next_in_index=v,i.write=y,(M=C.proc(i,f,M))!=pa)return i.inflate_flush(f,M);if(M=Me,C.free(f),v=f.next_in_index,S=f.avail_in,g=i.bitb,_=i.bitk,y=i.write,D=y15?(e.inflateEnd(i),Kt):(e.wbits=a,i.istate.blocks=new d12(i,1<>4)+8>o.wbits){o.mode=a4,i.msg="invalid win size",o.marker=5;break}o.mode=iD;case iD:if(i.avail_in===0)return r;if(r=a,i.avail_in--,i.total_in++,n=i.read_byte(i.next_in_index++)&255,((o.method<<8)+n)%31!==0){o.mode=a4,i.msg="incorrect header check",o.marker=5;break}if((n&C12)===0){o.mode=N7;break}o.mode=aD;case aD:if(i.avail_in===0)return r;r=a,i.avail_in--,i.total_in++,o.need=(i.read_byte(i.next_in_index++)&255)<<24&4278190080,o.mode=rD;case rD:if(i.avail_in===0)return r;r=a,i.avail_in--,i.total_in++,o.need+=(i.read_byte(i.next_in_index++)&255)<<16&16711680,o.mode=nD;case nD:if(i.avail_in===0)return r;r=a,i.avail_in--,i.total_in++,o.need+=(i.read_byte(i.next_in_index++)&255)<<8&65280,o.mode=oD;case oD:return i.avail_in===0?r:(r=a,i.avail_in--,i.total_in++,o.need+=i.read_byte(i.next_in_index++)&255,o.mode=nh,QJ1);case nh:return o.mode=a4,i.msg="need dictionary",o.marker=0,Kt;case N7:if(r=o.blocks.proc(i,r),r==Ye){o.mode=a4,o.marker=0;break}if(r==Me&&(r=a),r!=pa)return r;r=a,o.blocks.reset(i,o.was),o.mode=sD;case sD:return i.avail_in=0,pa;case a4:return Ye;default:return Kt}},e.inflateSetDictionary=function(i,a,r){let n=0,o=r;if(!i||!i.istate||i.istate.mode!=nh)return Kt;const s=i.istate;return o>=1<0&&i.next_in_index!=u&&(l(i.next_in_index),u=i.next_in_index)}while(i.avail_in>0||i.avail_out===0);return d.length>1?(m=new Uint8Array(V),d.forEach(function(f){m.set(f,p),p+=f.length})):m=d[0]?new Uint8Array(d[0]):new Uint8Array,m}},t.flush=function(){i.inflateEnd()}}const e0=4294967295,jt=65535,lD=8,V12=0,L12=99,H12=67324752,j51=134695760,M12=j51,g12=33639248,A12=101010256,v12=101075792,_12=117853008,ff=22,Q51=20,J51=56,S12=ff+Q51+J51,D12=1,y12=39169,R12=10,b12=1,et1=21589,N12=6534,w12=1,T12=8,E12=2048,P12=16,I12=20,cD=45,dD=51,oh="/",CD=new Date(2107,11,31),mD=new Date(1980,0,1),Mt=void 0,j4="undefined",W8="function";class uD{constructor(t){return class extends TransformStream{constructor(i,a){const r=new t(a);super({transform(n,o){o.enqueue(r.append(n))},flush(n){const o=r.flush();o&&n.enqueue(o)}})}}}}const O12=64;let tt1=2;try{typeof navigator!=j4&&navigator.hardwareConcurrency&&(tt1=navigator.hardwareConcurrency)}catch{}const U12={chunkSize:512*1024,maxWorkers:tt1,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:Mt,CompressionStreamNative:typeof CompressionStream!=j4&&CompressionStream,DecompressionStreamNative:typeof DecompressionStream!=j4&&DecompressionStream},p4=Object.assign({},U12);function x12(){return p4}function F12(e){return Math.max(e.chunkSize,O12)}function sM(e){const{baseURL:t,chunkSize:i,maxWorkers:a,terminateWorkerTimeout:r,useCompressionStream:n,useWebWorkers:o,Deflate:s,Inflate:l,CompressionStream:d,DecompressionStream:C,workerScripts:m}=e;if(r4("baseURL",t),r4("chunkSize",i),r4("maxWorkers",a),r4("terminateWorkerTimeout",r),r4("useCompressionStream",n),r4("useWebWorkers",o),s&&(p4.CompressionStream=new uD(s)),l&&(p4.DecompressionStream=new uD(l)),r4("CompressionStream",d),r4("DecompressionStream",C),m!==Mt){const{deflate:u,inflate:p}=m;if((u||p)&&(p4.workerScripts||(p4.workerScripts={})),u){if(!Array.isArray(u))throw new Error("workerScripts.deflate must be an array");p4.workerScripts.deflate=u}if(p){if(!Array.isArray(p))throw new Error("workerScripts.inflate must be an array");p4.workerScripts.inflate=p}}}function r4(e,t){t!==Mt&&(p4[e]=t)}const sh={application:{"andrew-inset":"ez",annodex:"anx","atom+xml":"atom","atomcat+xml":"atomcat","atomserv+xml":"atomsrv",bbolin:"lin","cu-seeme":"cu","davmount+xml":"davmount",dsptype:"tsp",ecmascript:["es","ecma"],futuresplash:"spl",hta:"hta","java-archive":"jar","java-serialized-object":"ser","java-vm":"class",m3g:"m3g","mac-binhex40":"hqx",mathematica:["nb","ma","mb"],msaccess:"mdb",msword:["doc","dot","wiz"],mxf:"mxf",oda:"oda",ogg:"ogx",pdf:"pdf","pgp-keys":"key","pgp-signature":["asc","sig"],"pics-rules":"prf",postscript:["ps","ai","eps","epsi","epsf","eps2","eps3"],rar:"rar","rdf+xml":"rdf","rss+xml":"rss",rtf:"rtf","xhtml+xml":["xhtml","xht"],xml:["xml","xsl","xsd","xpdl"],"xspf+xml":"xspf",zip:"zip","vnd.android.package-archive":"apk","vnd.cinderella":"cdy","vnd.google-earth.kml+xml":"kml","vnd.google-earth.kmz":"kmz","vnd.mozilla.xul+xml":"xul","vnd.ms-excel":["xls","xlb","xlt","xlm","xla","xlc","xlw"],"vnd.ms-pki.seccat":"cat","vnd.ms-pki.stl":"stl","vnd.ms-powerpoint":["ppt","pps","pot","ppa","pwz"],"vnd.oasis.opendocument.chart":"odc","vnd.oasis.opendocument.database":"odb","vnd.oasis.opendocument.formula":"odf","vnd.oasis.opendocument.graphics":"odg","vnd.oasis.opendocument.graphics-template":"otg","vnd.oasis.opendocument.image":"odi","vnd.oasis.opendocument.presentation":"odp","vnd.oasis.opendocument.presentation-template":"otp","vnd.oasis.opendocument.spreadsheet":"ods","vnd.oasis.opendocument.spreadsheet-template":"ots","vnd.oasis.opendocument.text":"odt","vnd.oasis.opendocument.text-master":["odm","otm"],"vnd.oasis.opendocument.text-template":"ott","vnd.oasis.opendocument.text-web":"oth","vnd.openxmlformats-officedocument.spreadsheetml.sheet":"xlsx","vnd.openxmlformats-officedocument.spreadsheetml.template":"xltx","vnd.openxmlformats-officedocument.presentationml.presentation":"pptx","vnd.openxmlformats-officedocument.presentationml.slideshow":"ppsx","vnd.openxmlformats-officedocument.presentationml.template":"potx","vnd.openxmlformats-officedocument.wordprocessingml.document":"docx","vnd.openxmlformats-officedocument.wordprocessingml.template":"dotx","vnd.smaf":"mmf","vnd.stardivision.calc":"sdc","vnd.stardivision.chart":"sds","vnd.stardivision.draw":"sda","vnd.stardivision.impress":"sdd","vnd.stardivision.math":["sdf","smf"],"vnd.stardivision.writer":["sdw","vor"],"vnd.stardivision.writer-global":"sgl","vnd.sun.xml.calc":"sxc","vnd.sun.xml.calc.template":"stc","vnd.sun.xml.draw":"sxd","vnd.sun.xml.draw.template":"std","vnd.sun.xml.impress":"sxi","vnd.sun.xml.impress.template":"sti","vnd.sun.xml.math":"sxm","vnd.sun.xml.writer":"sxw","vnd.sun.xml.writer.global":"sxg","vnd.sun.xml.writer.template":"stw","vnd.symbian.install":["sis","sisx"],"vnd.visio":["vsd","vst","vss","vsw","vsdx","vssx","vstx","vssm","vstm"],"vnd.wap.wbxml":"wbxml","vnd.wap.wmlc":"wmlc","vnd.wap.wmlscriptc":"wmlsc","vnd.wordperfect":"wpd","vnd.wordperfect5.1":"wp5","x-123":"wk","x-7z-compressed":"7z","x-abiword":"abw","x-apple-diskimage":"dmg","x-bcpio":"bcpio","x-bittorrent":"torrent","x-cbr":["cbr","cba","cbt","cb7"],"x-cbz":"cbz","x-cdf":["cdf","cda"],"x-cdlink":"vcd","x-chess-pgn":"pgn","x-cpio":"cpio","x-csh":"csh","x-director":["dir","dxr","cst","cct","cxt","w3d","fgd","swa"],"x-dms":"dms","x-doom":"wad","x-dvi":"dvi","x-httpd-eruby":"rhtml","x-font":"pcf.Z","x-freemind":"mm","x-gnumeric":"gnumeric","x-go-sgf":"sgf","x-graphing-calculator":"gcf","x-gtar":["gtar","taz"],"x-hdf":"hdf","x-httpd-php":["phtml","pht","php"],"x-httpd-php-source":"phps","x-httpd-php3":"php3","x-httpd-php3-preprocessed":"php3p","x-httpd-php4":"php4","x-httpd-php5":"php5","x-ica":"ica","x-info":"info","x-internet-signup":["ins","isp"],"x-iphone":"iii","x-iso9660-image":"iso","x-java-jnlp-file":"jnlp","x-jmol":"jmz","x-killustrator":"kil","x-latex":"latex","x-lyx":"lyx","x-lzx":"lzx","x-maker":["frm","fb","fbdoc"],"x-ms-wmd":"wmd","x-msdos-program":["com","exe","bat","dll"],"x-netcdf":["nc"],"x-ns-proxy-autoconfig":["pac","dat"],"x-nwc":"nwc","x-object":"o","x-oz-application":"oza","x-pkcs7-certreqresp":"p7r","x-python-code":["pyc","pyo"],"x-qgis":["qgs","shp","shx"],"x-quicktimeplayer":"qtl","x-redhat-package-manager":["rpm","rpa"],"x-ruby":"rb","x-sh":"sh","x-shar":"shar","x-shockwave-flash":["swf","swfl"],"x-silverlight":"scr","x-stuffit":"sit","x-sv4cpio":"sv4cpio","x-sv4crc":"sv4crc","x-tar":"tar","x-tex-gf":"gf","x-tex-pk":"pk","x-texinfo":["texinfo","texi"],"x-trash":["~","%","bak","old","sik"],"x-ustar":"ustar","x-wais-source":"src","x-wingz":"wz","x-x509-ca-cert":["crt","der","cer"],"x-xcf":"xcf","x-xfig":"fig","x-xpinstall":"xpi",applixware:"aw","atomsvc+xml":"atomsvc","ccxml+xml":"ccxml","cdmi-capability":"cdmia","cdmi-container":"cdmic","cdmi-domain":"cdmid","cdmi-object":"cdmio","cdmi-queue":"cdmiq","docbook+xml":"dbk","dssc+der":"dssc","dssc+xml":"xdssc","emma+xml":"emma","epub+zip":"epub",exi:"exi","font-tdpfr":"pfr","gml+xml":"gml","gpx+xml":"gpx",gxf:"gxf",hyperstudio:"stk","inkml+xml":["ink","inkml"],ipfix:"ipfix","jsonml+json":"jsonml","lost+xml":"lostxml","mads+xml":"mads",marc:"mrc","marcxml+xml":"mrcx","mathml+xml":["mathml","mml"],mbox:"mbox","mediaservercontrol+xml":"mscml","metalink+xml":"metalink","metalink4+xml":"meta4","mets+xml":"mets","mods+xml":"mods",mp21:["m21","mp21"],mp4:"mp4s","oebps-package+xml":"opf","omdoc+xml":"omdoc",onenote:["onetoc","onetoc2","onetmp","onepkg"],oxps:"oxps","patch-ops-error+xml":"xer","pgp-encrypted":"pgp",pkcs10:"p10","pkcs7-mime":["p7m","p7c"],"pkcs7-signature":"p7s",pkcs8:"p8","pkix-attr-cert":"ac","pkix-crl":"crl","pkix-pkipath":"pkipath",pkixcmp:"pki","pls+xml":"pls","prs.cww":"cww","pskc+xml":"pskcxml","reginfo+xml":"rif","relax-ng-compact-syntax":"rnc","resource-lists+xml":"rl","resource-lists-diff+xml":"rld","rls-services+xml":"rs","rpki-ghostbusters":"gbr","rpki-manifest":"mft","rpki-roa":"roa","rsd+xml":"rsd","sbml+xml":"sbml","scvp-cv-request":"scq","scvp-cv-response":"scs","scvp-vp-request":"spq","scvp-vp-response":"spp",sdp:"sdp","set-payment-initiation":"setpay","set-registration-initiation":"setreg","shf+xml":"shf","sparql-query":"rq","sparql-results+xml":"srx",srgs:"gram","srgs+xml":"grxml","sru+xml":"sru","ssdl+xml":"ssdl","ssml+xml":"ssml","tei+xml":["tei","teicorpus"],"thraud+xml":"tfi","timestamped-data":"tsd","vnd.3gpp.pic-bw-large":"plb","vnd.3gpp.pic-bw-small":"psb","vnd.3gpp.pic-bw-var":"pvb","vnd.3gpp2.tcap":"tcap","vnd.3m.post-it-notes":"pwn","vnd.accpac.simply.aso":"aso","vnd.accpac.simply.imp":"imp","vnd.acucobol":"acu","vnd.acucorp":["atc","acutc"],"vnd.adobe.air-application-installer-package+zip":"air","vnd.adobe.formscentral.fcdt":"fcdt","vnd.adobe.fxp":["fxp","fxpl"],"vnd.adobe.xdp+xml":"xdp","vnd.adobe.xfdf":"xfdf","vnd.ahead.space":"ahead","vnd.airzip.filesecure.azf":"azf","vnd.airzip.filesecure.azs":"azs","vnd.amazon.ebook":"azw","vnd.americandynamics.acc":"acc","vnd.amiga.ami":"ami","vnd.anser-web-certificate-issue-initiation":"cii","vnd.anser-web-funds-transfer-initiation":"fti","vnd.antix.game-component":"atx","vnd.apple.installer+xml":"mpkg","vnd.apple.mpegurl":"m3u8","vnd.aristanetworks.swi":"swi","vnd.astraea-software.iota":"iota","vnd.audiograph":"aep","vnd.blueice.multipass":"mpm","vnd.bmi":"bmi","vnd.businessobjects":"rep","vnd.chemdraw+xml":"cdxml","vnd.chipnuts.karaoke-mmd":"mmd","vnd.claymore":"cla","vnd.cloanto.rp9":"rp9","vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"vnd.cluetrust.cartomobile-config":"c11amc","vnd.cluetrust.cartomobile-config-pkg":"c11amz","vnd.commonspace":"csp","vnd.contact.cmsg":"cdbcmsg","vnd.cosmocaller":"cmc","vnd.crick.clicker":"clkx","vnd.crick.clicker.keyboard":"clkk","vnd.crick.clicker.palette":"clkp","vnd.crick.clicker.template":"clkt","vnd.crick.clicker.wordbank":"clkw","vnd.criticaltools.wbs+xml":"wbs","vnd.ctc-posml":"pml","vnd.cups-ppd":"ppd","vnd.curl.car":"car","vnd.curl.pcurl":"pcurl","vnd.dart":"dart","vnd.data-vision.rdz":"rdz","vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"vnd.dece.ttml+xml":["uvt","uvvt"],"vnd.dece.unspecified":["uvx","uvvx"],"vnd.dece.zip":["uvz","uvvz"],"vnd.denovo.fcselayout-link":"fe_launch","vnd.dna":"dna","vnd.dolby.mlp":"mlp","vnd.dpgraph":"dpg","vnd.dreamfactory":"dfac","vnd.ds-keypoint":"kpxx","vnd.dvb.ait":"ait","vnd.dvb.service":"svc","vnd.dynageo":"geo","vnd.ecowin.chart":"mag","vnd.enliven":"nml","vnd.epson.esf":"esf","vnd.epson.msf":"msf","vnd.epson.quickanime":"qam","vnd.epson.salt":"slt","vnd.epson.ssf":"ssf","vnd.eszigno3+xml":["es3","et3"],"vnd.ezpix-album":"ez2","vnd.ezpix-package":"ez3","vnd.fdf":"fdf","vnd.fdsn.mseed":"mseed","vnd.fdsn.seed":["seed","dataless"],"vnd.flographit":"gph","vnd.fluxtime.clip":"ftc","vnd.framemaker":["fm","frame","maker","book"],"vnd.frogans.fnc":"fnc","vnd.frogans.ltf":"ltf","vnd.fsc.weblaunch":"fsc","vnd.fujitsu.oasys":"oas","vnd.fujitsu.oasys2":"oa2","vnd.fujitsu.oasys3":"oa3","vnd.fujitsu.oasysgp":"fg5","vnd.fujitsu.oasysprs":"bh2","vnd.fujixerox.ddd":"ddd","vnd.fujixerox.docuworks":"xdw","vnd.fujixerox.docuworks.binder":"xbd","vnd.fuzzysheet":"fzs","vnd.genomatix.tuxedo":"txd","vnd.geogebra.file":"ggb","vnd.geogebra.tool":"ggt","vnd.geometry-explorer":["gex","gre"],"vnd.geonext":"gxt","vnd.geoplan":"g2w","vnd.geospace":"g3w","vnd.gmx":"gmx","vnd.grafeq":["gqf","gqs"],"vnd.groove-account":"gac","vnd.groove-help":"ghf","vnd.groove-identity-message":"gim","vnd.groove-injector":"grv","vnd.groove-tool-message":"gtm","vnd.groove-tool-template":"tpl","vnd.groove-vcard":"vcg","vnd.hal+xml":"hal","vnd.handheld-entertainment+xml":"zmm","vnd.hbci":"hbci","vnd.hhe.lesson-player":"les","vnd.hp-hpgl":"hpgl","vnd.hp-hpid":"hpid","vnd.hp-hps":"hps","vnd.hp-jlyt":"jlt","vnd.hp-pcl":"pcl","vnd.hp-pclxl":"pclxl","vnd.hydrostatix.sof-data":"sfd-hdstx","vnd.ibm.minipay":"mpy","vnd.ibm.modcap":["afp","listafp","list3820"],"vnd.ibm.rights-management":"irm","vnd.ibm.secure-container":"sc","vnd.iccprofile":["icc","icm"],"vnd.igloader":"igl","vnd.immervision-ivp":"ivp","vnd.immervision-ivu":"ivu","vnd.insors.igm":"igm","vnd.intercon.formnet":["xpw","xpx"],"vnd.intergeo":"i2g","vnd.intu.qbo":"qbo","vnd.intu.qfx":"qfx","vnd.ipunplugged.rcprofile":"rcprofile","vnd.irepository.package+xml":"irp","vnd.is-xpr":"xpr","vnd.isac.fcs":"fcs","vnd.jam":"jam","vnd.jcp.javame.midlet-rms":"rms","vnd.jisp":"jisp","vnd.joost.joda-archive":"joda","vnd.kahootz":["ktz","ktr"],"vnd.kde.karbon":"karbon","vnd.kde.kchart":"chrt","vnd.kde.kformula":"kfo","vnd.kde.kivio":"flw","vnd.kde.kontour":"kon","vnd.kde.kpresenter":["kpr","kpt"],"vnd.kde.kspread":"ksp","vnd.kde.kword":["kwd","kwt"],"vnd.kenameaapp":"htke","vnd.kidspiration":"kia","vnd.kinar":["kne","knp"],"vnd.koan":["skp","skd","skt","skm"],"vnd.kodak-descriptor":"sse","vnd.las.las+xml":"lasxml","vnd.llamagraphics.life-balance.desktop":"lbd","vnd.llamagraphics.life-balance.exchange+xml":"lbe","vnd.lotus-1-2-3":"123","vnd.lotus-approach":"apr","vnd.lotus-freelance":"pre","vnd.lotus-notes":"nsf","vnd.lotus-organizer":"org","vnd.lotus-screencam":"scm","vnd.lotus-wordpro":"lwp","vnd.macports.portpkg":"portpkg","vnd.mcd":"mcd","vnd.medcalcdata":"mc1","vnd.mediastation.cdkey":"cdkey","vnd.mfer":"mwf","vnd.mfmp":"mfm","vnd.micrografx.flo":"flo","vnd.micrografx.igx":"igx","vnd.mif":"mif","vnd.mobius.daf":"daf","vnd.mobius.dis":"dis","vnd.mobius.mbk":"mbk","vnd.mobius.mqy":"mqy","vnd.mobius.msl":"msl","vnd.mobius.plc":"plc","vnd.mobius.txf":"txf","vnd.mophun.application":"mpn","vnd.mophun.certificate":"mpc","vnd.ms-artgalry":"cil","vnd.ms-cab-compressed":"cab","vnd.ms-excel.addin.macroenabled.12":"xlam","vnd.ms-excel.sheet.binary.macroenabled.12":"xlsb","vnd.ms-excel.sheet.macroenabled.12":"xlsm","vnd.ms-excel.template.macroenabled.12":"xltm","vnd.ms-fontobject":"eot","vnd.ms-htmlhelp":"chm","vnd.ms-ims":"ims","vnd.ms-lrm":"lrm","vnd.ms-officetheme":"thmx","vnd.ms-powerpoint.addin.macroenabled.12":"ppam","vnd.ms-powerpoint.presentation.macroenabled.12":"pptm","vnd.ms-powerpoint.slide.macroenabled.12":"sldm","vnd.ms-powerpoint.slideshow.macroenabled.12":"ppsm","vnd.ms-powerpoint.template.macroenabled.12":"potm","vnd.ms-project":["mpp","mpt"],"vnd.ms-word.document.macroenabled.12":"docm","vnd.ms-word.template.macroenabled.12":"dotm","vnd.ms-works":["wps","wks","wcm","wdb"],"vnd.ms-wpl":"wpl","vnd.ms-xpsdocument":"xps","vnd.mseq":"mseq","vnd.musician":"mus","vnd.muvee.style":"msty","vnd.mynfc":"taglet","vnd.neurolanguage.nlu":"nlu","vnd.nitf":["ntf","nitf"],"vnd.noblenet-directory":"nnd","vnd.noblenet-sealer":"nns","vnd.noblenet-web":"nnw","vnd.nokia.n-gage.data":"ngdat","vnd.nokia.n-gage.symbian.install":"n-gage","vnd.nokia.radio-preset":"rpst","vnd.nokia.radio-presets":"rpss","vnd.novadigm.edm":"edm","vnd.novadigm.edx":"edx","vnd.novadigm.ext":"ext","vnd.oasis.opendocument.chart-template":"otc","vnd.oasis.opendocument.formula-template":"odft","vnd.oasis.opendocument.image-template":"oti","vnd.olpc-sugar":"xo","vnd.oma.dd2+xml":"dd2","vnd.openofficeorg.extension":"oxt","vnd.openxmlformats-officedocument.presentationml.slide":"sldx","vnd.osgeo.mapguide.package":"mgp","vnd.osgi.dp":"dp","vnd.osgi.subsystem":"esa","vnd.palm":["pdb","pqa","oprc"],"vnd.pawaafile":"paw","vnd.pg.format":"str","vnd.pg.osasli":"ei6","vnd.picsel":"efif","vnd.pmi.widget":"wg","vnd.pocketlearn":"plf","vnd.powerbuilder6":"pbd","vnd.previewsystems.box":"box","vnd.proteus.magazine":"mgz","vnd.publishare-delta-tree":"qps","vnd.pvi.ptid1":"ptid","vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"vnd.realvnc.bed":"bed","vnd.recordare.musicxml":"mxl","vnd.recordare.musicxml+xml":"musicxml","vnd.rig.cryptonote":"cryptonote","vnd.rn-realmedia":"rm","vnd.rn-realmedia-vbr":"rmvb","vnd.route66.link66+xml":"link66","vnd.sailingtracker.track":"st","vnd.seemail":"see","vnd.sema":"sema","vnd.semd":"semd","vnd.semf":"semf","vnd.shana.informed.formdata":"ifm","vnd.shana.informed.formtemplate":"itp","vnd.shana.informed.interchange":"iif","vnd.shana.informed.package":"ipk","vnd.simtech-mindmapper":["twd","twds"],"vnd.smart.teacher":"teacher","vnd.solent.sdkm+xml":["sdkm","sdkd"],"vnd.spotfire.dxp":"dxp","vnd.spotfire.sfs":"sfs","vnd.stepmania.package":"smzip","vnd.stepmania.stepchart":"sm","vnd.sus-calendar":["sus","susp"],"vnd.svd":"svd","vnd.syncml+xml":"xsm","vnd.syncml.dm+wbxml":"bdm","vnd.syncml.dm+xml":"xdm","vnd.tao.intent-module-archive":"tao","vnd.tcpdump.pcap":["pcap","cap","dmp"],"vnd.tmobile-livetv":"tmo","vnd.trid.tpt":"tpt","vnd.triscape.mxs":"mxs","vnd.trueapp":"tra","vnd.ufdl":["ufd","ufdl"],"vnd.uiq.theme":"utz","vnd.umajin":"umj","vnd.unity":"unityweb","vnd.uoml+xml":"uoml","vnd.vcx":"vcx","vnd.visionary":"vis","vnd.vsf":"vsf","vnd.webturbo":"wtb","vnd.wolfram.player":"nbp","vnd.wqd":"wqd","vnd.wt.stf":"stf","vnd.xara":"xar","vnd.xfdl":"xfdl","vnd.yamaha.hv-dic":"hvd","vnd.yamaha.hv-script":"hvs","vnd.yamaha.hv-voice":"hvp","vnd.yamaha.openscoreformat":"osf","vnd.yamaha.openscoreformat.osfpvg+xml":"osfpvg","vnd.yamaha.smaf-audio":"saf","vnd.yamaha.smaf-phrase":"spf","vnd.yellowriver-custom-menu":"cmp","vnd.zul":["zir","zirz"],"vnd.zzazz.deck+xml":"zaz","voicexml+xml":"vxml",widget:"wgt",winhlp:"hlp","wsdl+xml":"wsdl","wspolicy+xml":"wspolicy","x-ace-compressed":"ace","x-authorware-bin":["aab","x32","u32","vox"],"x-authorware-map":"aam","x-authorware-seg":"aas","x-blorb":["blb","blorb"],"x-bzip":"bz","x-bzip2":["bz2","boz"],"x-cfs-compressed":"cfs","x-chat":"chat","x-conference":"nsc","x-dgc-compressed":"dgc","x-dtbncx+xml":"ncx","x-dtbook+xml":"dtb","x-dtbresource+xml":"res","x-eva":"eva","x-font-bdf":"bdf","x-font-ghostscript":"gsf","x-font-linux-psf":"psf","x-font-pcf":"pcf","x-font-snf":"snf","x-font-ttf":["ttf","ttc"],"x-font-type1":["pfa","pfb","pfm","afm"],"x-freearc":"arc","x-gca-compressed":"gca","x-glulx":"ulx","x-gramps-xml":"gramps","x-install-instructions":"install","x-lzh-compressed":["lzh","lha"],"x-mie":"mie","x-mobipocket-ebook":["prc","mobi"],"x-ms-application":"application","x-ms-shortcut":"lnk","x-ms-xbap":"xbap","x-msbinder":"obd","x-mscardfile":"crd","x-msclip":"clp","application/x-ms-installer":"msi","x-msmediaview":["mvb","m13","m14"],"x-msmetafile":["wmf","wmz","emf","emz"],"x-msmoney":"mny","x-mspublisher":"pub","x-msschedule":"scd","x-msterminal":"trm","x-mswrite":"wri","x-nzb":"nzb","x-pkcs12":["p12","pfx"],"x-pkcs7-certificates":["p7b","spc"],"x-research-info-systems":"ris","x-silverlight-app":"xap","x-sql":"sql","x-stuffitx":"sitx","x-subrip":"srt","x-t3vm-image":"t3","x-tex-tfm":"tfm","x-tgif":"obj","x-xliff+xml":"xlf","x-xz":"xz","x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"xaml+xml":"xaml","xcap-diff+xml":"xdf","xenc+xml":"xenc","xml-dtd":"dtd","xop+xml":"xop","xproc+xml":"xpl","xslt+xml":"xslt","xv+xml":["mxml","xhvml","xvml","xvm"],yang:"yang","yin+xml":"yin",envoy:"evy",fractals:"fif","internet-property-stream":"acx",olescript:"axs","vnd.ms-outlook":"msg","vnd.ms-pkicertstore":"sst","x-compress":"z","x-perfmon":["pma","pmc","pmr","pmw"],"ynd.ms-pkipko":"pko",gzip:["gz","tgz"],"smil+xml":["smi","smil"],"vnd.debian.binary-package":["deb","udeb"],"vnd.hzn-3d-crossword":"x3d","vnd.sqlite3":["db","sqlite","sqlite3","db-wal","sqlite-wal","db-shm","sqlite-shm"],"vnd.wap.sic":"sic","vnd.wap.slc":"slc","x-krita":["kra","krz"],"x-perl":["pm","pl"],yaml:["yaml","yml"]},audio:{amr:"amr","amr-wb":"awb",annodex:"axa",basic:["au","snd"],flac:"flac",midi:["mid","midi","kar","rmi"],mpeg:["mpga","mpega","mp3","m4a","mp2a","m2a","m3a"],mpegurl:"m3u",ogg:["oga","ogg","spx"],"prs.sid":"sid","x-aiff":"aifc","x-gsm":"gsm","x-ms-wma":"wma","x-ms-wax":"wax","x-pn-realaudio":"ram","x-realaudio":"ra","x-sd2":"sd2",adpcm:"adp",mp4:"mp4a",s3m:"s3m",silk:"sil","vnd.dece.audio":["uva","uvva"],"vnd.digital-winds":"eol","vnd.dra":"dra","vnd.dts":"dts","vnd.dts.hd":"dtshd","vnd.lucent.voice":"lvp","vnd.ms-playready.media.pya":"pya","vnd.nuera.ecelp4800":"ecelp4800","vnd.nuera.ecelp7470":"ecelp7470","vnd.nuera.ecelp9600":"ecelp9600","vnd.rip":"rip",webm:"weba","x-caf":"caf","x-matroska":"mka","x-pn-realaudio-plugin":"rmp",xm:"xm",aac:"aac",aiff:["aiff","aif","aff"],opus:"opus",wav:"wav"},chemical:{"x-alchemy":"alc","x-cache":["cac","cache"],"x-cache-csf":"csf","x-cactvs-binary":["cbin","cascii","ctab"],"x-cdx":"cdx","x-chem3d":"c3d","x-cif":"cif","x-cmdf":"cmdf","x-cml":"cml","x-compass":"cpa","x-crossfire":"bsd","x-csml":["csml","csm"],"x-ctx":"ctx","x-cxf":["cxf","cef"],"x-embl-dl-nucleotide":["emb","embl"],"x-gamess-input":["inp","gam","gamin"],"x-gaussian-checkpoint":["fch","fchk"],"x-gaussian-cube":"cub","x-gaussian-input":["gau","gjc","gjf"],"x-gaussian-log":"gal","x-gcg8-sequence":"gcg","x-genbank":"gen","x-hin":"hin","x-isostar":["istr","ist"],"x-jcamp-dx":["jdx","dx"],"x-kinemage":"kin","x-macmolecule":"mcm","x-macromodel-input":"mmod","x-mdl-molfile":"mol","x-mdl-rdfile":"rd","x-mdl-rxnfile":"rxn","x-mdl-sdfile":"sd","x-mdl-tgf":"tgf","x-mmcif":"mcif","x-mol2":"mol2","x-molconn-Z":"b","x-mopac-graph":"gpt","x-mopac-input":["mop","mopcrt","zmt"],"x-mopac-out":"moo","x-ncbi-asn1":"asn","x-ncbi-asn1-ascii":["prt","ent"],"x-ncbi-asn1-binary":"val","x-rosdal":"ros","x-swissprot":"sw","x-vamas-iso14976":"vms","x-vmd":"vmd","x-xtel":"xtel","x-xyz":"xyz"},font:{otf:"otf",woff:"woff",woff2:"woff2"},image:{gif:"gif",ief:"ief",jpeg:["jpeg","jpg","jpe","jfif","jfif-tbnl","jif"],pcx:"pcx",png:"png","svg+xml":["svg","svgz"],tiff:["tiff","tif"],"vnd.djvu":["djvu","djv"],"vnd.wap.wbmp":"wbmp","x-canon-cr2":"cr2","x-canon-crw":"crw","x-cmu-raster":"ras","x-coreldraw":"cdr","x-coreldrawpattern":"pat","x-coreldrawtemplate":"cdt","x-corelphotopaint":"cpt","x-epson-erf":"erf","x-icon":"ico","x-jg":"art","x-jng":"jng","x-nikon-nef":"nef","x-olympus-orf":"orf","x-portable-anymap":"pnm","x-portable-bitmap":"pbm","x-portable-graymap":"pgm","x-portable-pixmap":"ppm","x-rgb":"rgb","x-xbitmap":"xbm","x-xpixmap":"xpm","x-xwindowdump":"xwd",bmp:"bmp",cgm:"cgm",g3fax:"g3",ktx:"ktx","prs.btif":"btif",sgi:"sgi","vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"vnd.dwg":"dwg","vnd.dxf":"dxf","vnd.fastbidsheet":"fbs","vnd.fpx":"fpx","vnd.fst":"fst","vnd.fujixerox.edmics-mmr":"mmr","vnd.fujixerox.edmics-rlc":"rlc","vnd.ms-modi":"mdi","vnd.ms-photo":"wdp","vnd.net-fpx":"npx","vnd.xiff":"xif",webp:"webp","x-3ds":"3ds","x-cmx":"cmx","x-freehand":["fh","fhc","fh4","fh5","fh7"],"x-pict":["pic","pct"],"x-tga":"tga","cis-cod":"cod",avif:"avifs",heic:["heif","heic"],pjpeg:["pjpg"],"vnd.adobe.photoshop":"psd","x-adobe-dng":"dng","x-fuji-raf":"raf","x-icns":"icns","x-kodak-dcr":"dcr","x-kodak-k25":"k25","x-kodak-kdc":"kdc","x-minolta-mrw":"mrw","x-panasonic-raw":["raw","rw2","rwl"],"x-pentax-pef":["pef","ptx"],"x-sigma-x3f":"x3f","x-sony-arw":"arw","x-sony-sr2":"sr2","x-sony-srf":"srf"},message:{rfc822:["eml","mime","mht","mhtml","nws"]},model:{iges:["igs","iges"],mesh:["msh","mesh","silo"],vrml:["wrl","vrml"],"x3d+vrml":["x3dv","x3dvz"],"x3d+xml":"x3dz","x3d+binary":["x3db","x3dbz"],"vnd.collada+xml":"dae","vnd.dwf":"dwf","vnd.gdl":"gdl","vnd.gtw":"gtw","vnd.mts":"mts","vnd.usdz+zip":"usdz","vnd.vtu":"vtu"},text:{"cache-manifest":["manifest","appcache"],calendar:["ics","icz","ifb"],css:"css",csv:"csv",h323:"323",html:["html","htm","shtml","stm"],iuls:"uls",plain:["txt","text","brf","conf","def","list","log","in","bas","diff","ksh"],richtext:"rtx",scriptlet:["sct","wsc"],texmacs:"tm","tab-separated-values":"tsv","vnd.sun.j2me.app-descriptor":"jad","vnd.wap.wml":"wml","vnd.wap.wmlscript":"wmls","x-bibtex":"bib","x-boo":"boo","x-c++hdr":["h++","hpp","hxx","hh"],"x-c++src":["c++","cpp","cxx","cc"],"x-component":"htc","x-dsrc":"d","x-diff":"patch","x-haskell":"hs","x-java":"java","x-literate-haskell":"lhs","x-moc":"moc","x-pascal":["p","pas","pp","inc"],"x-pcs-gcd":"gcd","x-python":"py","x-scala":"scala","x-setext":"etx","x-tcl":["tcl","tk"],"x-tex":["tex","ltx","sty","cls"],"x-vcalendar":"vcs","x-vcard":"vcf",n3:"n3","prs.lines.tag":"dsc",sgml:["sgml","sgm"],troff:["t","tr","roff","man","me","ms"],turtle:"ttl","uri-list":["uri","uris","urls"],vcard:"vcard","vnd.curl":"curl","vnd.curl.dcurl":"dcurl","vnd.curl.scurl":"scurl","vnd.curl.mcurl":"mcurl","vnd.dvb.subtitle":"sub","vnd.fly":"fly","vnd.fmi.flexstor":"flx","vnd.graphviz":"gv","vnd.in3d.3dml":"3dml","vnd.in3d.spot":"spot","x-asm":["s","asm"],"x-c":["c","h","dic"],"x-fortran":["f","for","f77","f90"],"x-opml":"opml","x-nfo":"nfo","x-sfv":"sfv","x-uuencode":"uu",webviewhtml:"htt",javascript:"js",json:"json",markdown:["md","markdown","mdown","markdn"],"vnd.wap.si":"si","vnd.wap.sl":"sl"},video:{avif:"avif","3gpp":"3gp",annodex:"axv",dl:"dl",dv:["dif","dv"],fli:"fli",gl:"gl",mpeg:["mpeg","mpg","mpe","m1v","m2v","mp2","mpa","mpv2"],mp4:["mp4","mp4v","mpg4"],quicktime:["qt","mov"],ogg:"ogv","vnd.mpegurl":["mxu","m4u"],"x-flv":"flv","x-la-asf":["lsf","lsx"],"x-mng":"mng","x-ms-asf":["asf","asx","asr"],"x-ms-wm":"wm","x-ms-wmv":"wmv","x-ms-wmx":"wmx","x-ms-wvx":"wvx","x-msvideo":"avi","x-sgi-movie":"movie","x-matroska":["mpv","mkv","mk3d","mks"],"3gpp2":"3g2",h261:"h261",h263:"h263",h264:"h264",jpeg:"jpgv",jpm:["jpm","jpgm"],mj2:["mj2","mjp2"],"vnd.dece.hd":["uvh","uvvh"],"vnd.dece.mobile":["uvm","uvvm"],"vnd.dece.pd":["uvp","uvvp"],"vnd.dece.sd":["uvs","uvvs"],"vnd.dece.video":["uvv","uvvv"],"vnd.dvb.file":"dvb","vnd.fvt":"fvt","vnd.ms-playready.media.pyv":"pyv","vnd.uvvu.mp4":["uvu","uvvu"],"vnd.vivo":"viv",webm:"webm","x-f4v":"f4v","x-m4v":"m4v","x-ms-vob":"vob","x-smv":"smv",mp2t:"ts"},"x-conference":{"x-cooltalk":"ice"},"x-world":{"x-vrml":["vrm","flr","wrz","xaf","xof"]}};(()=>{const e={};for(const t of Object.keys(sh))for(const i of Object.keys(sh[t])){const a=sh[t][i];if(typeof a=="string")e[a]=t+"/"+i;else for(let r=0;r>>1^3988292384:t=t>>>1;it1[e]=t}class Vf{constructor(t){this.crc=t||-1}append(t){let i=this.crc|0;for(let a=0,r=t.length|0;a>>8^it1[(i^t[a])&255];this.crc=i}get(){return~this.crc}}class at1 extends TransformStream{constructor(){let t;const i=new Vf;super({transform(a,r){i.append(a),r.enqueue(a)},flush(){const a=new Uint8Array(4);new DataView(a.buffer).setUint32(0,i.get()),t.value=a}}),t=this}}function Lf(e){if(typeof TextEncoder==j4){e=unescape(encodeURIComponent(e));const t=new Uint8Array(e.length);for(let i=0;i0&&t&&(e[i-1]=It.partial(t,e[i-1]&2147483648>>t-1,1)),e},partial(e,t,i){return e===32?t:(i?t|0:t<<32-e)+e*1099511627776},getPartial(e){return Math.round(e/1099511627776)||32},_shiftRight(e,t,i,a){for(a===void 0&&(a=[]);t>=32;t-=32)a.push(i),i=0;if(t===0)return a.concat(e);for(let o=0;o>>t),i=e[o]<<32-t;const r=e.length?e[e.length-1]:0,n=It.getPartial(r);return a.push(It.partial(t+n&31,t+n>32?i:a.pop(),1)),a}},bd={bytes:{fromBits(e){const i=It.bitLength(e)/8,a=new Uint8Array(i);let r;for(let n=0;n>>24,r<<=8;return a},toBits(e){const t=[];let i,a=0;for(i=0;i9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const n=new Uint32Array(i);let o=0;for(let s=t.blockSize+a-(t.blockSize+a&t.blockSize-1);s<=r;s+=t.blockSize)t._block(n.subarray(16*o,16*(o+1))),o+=1;return i.splice(0,16*o),t}finalize(){const e=this;let t=e._buffer;const i=e._h;t=It.concat(t,[It.partial(1,1)]);for(let a=t.length+2;a&15;a++)t.push(0);for(t.push(Math.floor(e._length/4294967296)),t.push(e._length|0);t.length;)e._block(t.splice(0,16));return e.reset(),i}_f(e,t,i,a){if(e<=19)return t&i|~t&a;if(e<=39)return t^i^a;if(e<=59)return t&i|t&a|i&a;if(e<=79)return t^i^a}_S(e,t){return t<>>32-e}_block(e){const t=this,i=t._h,a=Array(80);for(let d=0;d<16;d++)a[d]=e[d];let r=i[0],n=i[1],o=i[2],s=i[3],l=i[4];for(let d=0;d<=79;d++){d>=16&&(a[d]=t._S(1,a[d-3]^a[d-8]^a[d-14]^a[d-16]));const C=t._S(5,r)+t._f(d,n,o,s)+l+a[d]+t._key[Math.floor(d/20)]|0;l=s,s=o,o=t._S(30,n),n=r,r=C}i[0]=i[0]+r|0,i[1]=i[1]+n|0,i[2]=i[2]+o|0,i[3]=i[3]+s|0,i[4]=i[4]+l|0}};const nt1={};nt1.aes=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const i=t._tables[0][4],a=t._tables[1],r=e.length;let n,o,s,l=1;if(r!==4&&r!==6&&r!==8)throw new Error("invalid aes key size");for(t._key=[o=e.slice(0),s=[]],n=r;n<4*r+28;n++){let d=o[n-1];(n%r===0||r===8&&n%r===4)&&(d=i[d>>>24]<<24^i[d>>16&255]<<16^i[d>>8&255]<<8^i[d&255],n%r===0&&(d=d<<8^d>>>24^l<<24,l=l<<1^(l>>7)*283)),o[n]=o[n-r]^d}for(let d=0;n;d++,n--){const C=o[d&3?n:n-4];n<=4||d<4?s[d]=C:s[d]=a[0][i[C>>>24]]^a[1][i[C>>16&255]]^a[2][i[C>>8&255]]^a[3][i[C&255]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],i=e[4],a=t[4],r=[],n=[];let o,s,l,d;for(let C=0;C<256;C++)n[(r[C]=C<<1^(C>>7)*283)^C]=C;for(let C=o=0;!i[C];C^=s||1,o=n[o]||1){let m=o^o<<1^o<<2^o<<3^o<<4;m=m>>8^m&255^99,i[C]=m,a[m]=C,d=r[l=r[s=r[C]]];let u=d*16843009^l*65537^s*257^C*16843008,p=r[m]*257^m*16843008;for(let V=0;V<4;V++)e[V][C]=p=p<<24^p>>>8,t[V][m]=u=u<<24^u>>>8}for(let C=0;C<5;C++)e[C]=e[C].slice(0),t[C]=t[C].slice(0)}_crypt(e,t){if(e.length!==4)throw new Error("invalid aes block size");const i=this._key[t],a=i.length/4-2,r=[0,0,0,0],n=this._tables[t],o=n[0],s=n[1],l=n[2],d=n[3],C=n[4];let m=e[0]^i[0],u=e[t?3:1]^i[1],p=e[2]^i[2],V=e[t?1:3]^i[3],f=4,M,H,g;for(let _=0;_>>24]^s[u>>16&255]^l[p>>8&255]^d[V&255]^i[f],H=o[u>>>24]^s[p>>16&255]^l[V>>8&255]^d[m&255]^i[f+1],g=o[p>>>24]^s[V>>16&255]^l[m>>8&255]^d[u&255]^i[f+2],V=o[V>>>24]^s[m>>16&255]^l[u>>8&255]^d[p&255]^i[f+3],f+=4,m=M,u=H,p=g;for(let _=0;_<4;_++)r[t?3&-_:_]=C[m>>>24]<<24^C[u>>16&255]<<16^C[p>>8&255]<<8^C[V&255]^i[f++],M=m,m=u,u=p,p=V,V=M;return r}};const k12={getRandomValues(e){const t=new Uint32Array(e.buffer),i=a=>{let r=987654321;const n=4294967295;return function(){return r=36969*(r&65535)+(r>>16)&n,a=18e3*(a&65535)+(a>>16)&n,(((r<<16)+a&n)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let a=0,r;a>24&255)===255){let t=e>>16&255,i=e>>8&255,a=e&255;t===255?(t=0,i===255?(i=0,a===255?a=0:++a):++i):++t,e=0,e+=t<<16,e+=i<<8,e+=a}else e+=1<<24;return e}incCounter(e){(e[0]=this.incWord(e[0]))===0&&(e[1]=this.incWord(e[1]))}calculate(e,t,i){let a;if(!(a=t.length))return[];const r=It.bitLength(t);for(let n=0;n>5)+1<<2;let n,o,s,l,d;const C=new ArrayBuffer(r),m=new DataView(C);let u=0;const p=It;for(t=bd.bytes.toBits(t),d=1;u<(r||1);d++){for(n=o=e.encrypt(p.concat(t,[d])),s=1;sr&&(e=new i().update(e).finalize());for(let n=0;nthis.resolveReady=o),password:pt1(t,i),signed:a,strength:r-1,pending:new Uint8Array})},async transform(o,s){const l=this,{password:d,strength:C,resolveReady:m,ready:u}=l;d?(await J12(l,C,d,ri(o,0,o8[C]+2)),o=ri(o,o8[C]+2),n?s.error(new Error(ct1)):m()):await u;const p=new Uint8Array(o.length-C4-(o.length-C4)%I6);s.enqueue(ut1(l,o,p,0,C4,!0))},async flush(o){const{signed:s,ctr:l,hmac:d,pending:C,ready:m}=this;if(d&&l){await m;const u=ri(C,0,C.length-C4),p=ri(C,C.length-C4);let V=new Uint8Array;if(u.length){const f=l8(_3,u);d.update(f);const M=l.update(f);V=s8(_3,M)}if(s){const f=ri(s8(_3,d.digest()),0,C4);for(let M=0;Mthis.resolveReady=n),password:pt1(t,i),strength:a-1,pending:new Uint8Array})},async transform(n,o){const s=this,{password:l,strength:d,resolveReady:C,ready:m}=s;let u=new Uint8Array;l?(u=await e22(s,d,l),C()):await m;const p=new Uint8Array(u.length+n.length-n.length%I6);p.set(u,0),o.enqueue(ut1(s,n,p,u.length,0))},async flush(n){const{ctr:o,hmac:s,pending:l,ready:d}=this;if(s&&o){await d;let C=new Uint8Array;if(l.length){const m=o.update(l8(_3,l));s.update(m),C=s8(_3,m)}r.signature=s8(_3,s.digest()).slice(0,C4),n.enqueue(lM(C,r.signature))}}}),r=this}}function ut1(e,t,i,a,r,n){const{ctr:o,hmac:s,pending:l}=e,d=t.length-r;l.length&&(t=lM(l,t),i=a22(i,d-d%I6));let C;for(C=0;C<=d-I6;C+=I6){const m=l8(_3,ri(t,C,C+I6));n&&s.update(m);const u=o.update(m);n||s.update(u),i.set(s8(_3,u),C+a)}return e.pending=ri(t,C),i}async function J12(e,t,i,a){const r=await ht1(e,t,i,ri(a,0,o8[t])),n=ri(a,o8[t]);if(r[0]!=n[0]||r[1]!=n[1])throw new Error(st1)}async function e22(e,t,i){const a=dt1(new Uint8Array(o8[t])),r=await ht1(e,t,i,a);return lM(a,r)}async function ht1(e,t,i,a){e.password=null;const r=await t22(z12,i,W12,!1,X12),n=await i22(Object.assign({salt:a},Hf),r,8*(w7[t]*2+2)),o=new Uint8Array(n),s=l8(_3,ri(o,0,w7[t])),l=l8(_3,ri(o,w7[t],w7[t]*2)),d=ri(o,w7[t]*2);return Object.assign(e,{keys:{key:s,authentication:l,passwordVerification:d},ctr:new q12(new $12(s),Array.from(Y12)),hmac:new K12(l)}),d}async function t22(e,t,i,a,r){if(hD)try{return await X8.importKey(e,t,i,a,r)}catch{return hD=!1,Nn.importKey(t)}else return Nn.importKey(t)}async function i22(e,t,i){if(pD)try{return await X8.deriveBits(e,t,i)}catch{return pD=!1,Nn.pbkdf2(t,e.salt,Hf.iterations,i)}else return Nn.pbkdf2(t,e.salt,Hf.iterations,i)}function pt1(e,t){return t===Mt?Lf(e):t}function lM(e,t){let i=e;return e.length+t.length&&(i=new Uint8Array(e.length+t.length),i.set(e,0),i.set(t,e.length)),i}function a22(e,t){if(t&&t>e.length){const i=e;e=new Uint8Array(t),e.set(i,0)}return e}function ri(e,t,i){return e.subarray(t,i)}function s8(e,t){return e.fromBits(t)}function l8(e,t){return e.toBits(t)}const K6=12;class r22 extends TransformStream{constructor({password:t,passwordVerification:i,checkPasswordOnly:a}){super({start(){Object.assign(this,{password:t,passwordVerification:i}),ft1(this,t)},transform(r,n){const o=this;if(o.password){const s=fD(o,r.subarray(0,K6));if(o.password=null,s[K6-1]!=o.passwordVerification)throw new Error(st1);r=r.subarray(K6)}a?n.error(new Error(ct1)):n.enqueue(fD(o,r))}})}}class n22 extends TransformStream{constructor({password:t,passwordVerification:i}){super({start(){Object.assign(this,{password:t,passwordVerification:i}),ft1(this,t)},transform(a,r){const n=this;let o,s;if(n.password){n.password=null;const l=dt1(new Uint8Array(K6));l[K6-1]=n.passwordVerification,o=new Uint8Array(a.length+l.length),o.set(VD(n,l),0),s=K6}else o=new Uint8Array(a.length),s=0;o.set(VD(n,a),s),r.enqueue(o)}})}}function fD(e,t){const i=new Uint8Array(t.length);for(let a=0;a>>24]),r=~e.crcKey2.get(),e.keys=[i,a,r]}function Vt1(e){const t=e.keys[2]|2;return Lt1(Math.imul(t,t^1)>>>8)}function Lt1(e){return e&255}function LD(e){return e&4294967295}const HD="deflate-raw";class o22 extends TransformStream{constructor(t,{chunkSize:i,CompressionStream:a,CompressionStreamNative:r}){super({});const{compressed:n,encrypted:o,useCompressionStream:s,zipCrypto:l,signed:d,level:C}=t,m=this;let u,p,V=Ht1(super.readable);(!o||l)&&d&&(u=new at1,V=S3(V,u)),n&&(V=gt1(V,s,{level:C,chunkSize:i},r,a)),o&&(l?V=S3(V,new n22(t)):(p=new Q12(t),V=S3(V,p))),Mt1(m,V,()=>{let f;o&&!l&&(f=p.signature),(!o||l)&&d&&(f=new DataView(u.value.buffer).getUint32(0)),m.signature=f})}}class s22 extends TransformStream{constructor(t,{chunkSize:i,DecompressionStream:a,DecompressionStreamNative:r}){super({});const{zipCrypto:n,encrypted:o,signed:s,signature:l,compressed:d,useCompressionStream:C}=t;let m,u,p=Ht1(super.readable);o&&(n?p=S3(p,new r22(t)):(u=new j12(t),p=S3(p,u))),d&&(p=gt1(p,C,{chunkSize:i},r,a)),(!o||n)&&s&&(m=new at1,p=S3(p,m)),Mt1(this,p,()=>{if((!o||n)&&s){const V=new DataView(m.value.buffer);if(l!=V.getUint32(0,!1))throw new Error(lt1)}})}}function Ht1(e){return S3(e,new TransformStream({transform(t,i){t&&t.length&&i.enqueue(t)}}))}function Mt1(e,t,i){t=S3(t,new TransformStream({flush:i})),Object.defineProperty(e,"readable",{get(){return t}})}function gt1(e,t,i,a,r){try{const n=t&&a?a:r;e=S3(e,new n(HD,i))}catch{if(t)try{e=S3(e,new r(HD,i))}catch{return e}else return e}return e}function S3(e,t){return e.pipeThrough(t)}const l22="message",c22="start",d22="pull",MD="data",C22="ack",gD="close",At1="deflate",m22="inflate";class u22 extends TransformStream{constructor(t,i){super({});const a=this,{codecType:r}=t;let n;r.startsWith(At1)?n=o22:r.startsWith(m22)&&(n=s22);let o=0,s=0;const l=new n(t,i),d=super.readable,C=new TransformStream({transform(u,p){u&&u.length&&(s+=u.length,p.enqueue(u))},flush(){Object.assign(a,{inputSize:s})}}),m=new TransformStream({transform(u,p){u&&u.length&&(o+=u.length,p.enqueue(u))},flush(){const{signature:u}=l;Object.assign(a,{signature:u,outputSize:o,inputSize:s})}});Object.defineProperty(a,"readable",{get(){return d.pipeThrough(C).pipeThrough(l).pipeThrough(m)}})}}class h22 extends TransformStream{constructor(t){let i;super({transform:a,flush(r){i&&i.length&&r.enqueue(i)}});function a(r,n){if(i){const o=new Uint8Array(i.length+r.length);o.set(i),o.set(r,i.length),r=o,i=null}r.length>t?(n.enqueue(r.slice(0,t)),a(r.slice(t),n)):i=r}}}let vt1=typeof Worker!=j4;class lh{constructor(t,{readable:i,writable:a},{options:r,config:n,streamOptions:o,useWebWorkers:s,transferStreams:l,scripts:d},C){const{signal:m}=o;return Object.assign(t,{busy:!0,readable:i.pipeThrough(new h22(n.chunkSize)).pipeThrough(new p22(i,o),{signal:m}),writable:a,options:Object.assign({},r),scripts:d,transferStreams:l,terminate(){return new Promise(u=>{const{worker:p,busy:V}=t;p?(V?t.resolveTerminated=u:(p.terminate(),u()),t.interface=null):u()})},onTaskFinished(){const{resolveTerminated:u}=t;u&&(t.resolveTerminated=null,t.terminated=!0,t.worker.terminate(),u()),t.busy=!1,C(t)}}),(s&&vt1?f22:_t1)(t,n)}}class p22 extends TransformStream{constructor(t,{onstart:i,onprogress:a,size:r,onend:n}){let o=0;super({async start(){i&&await ch(i,r)},async transform(s,l){o+=s.length,a&&await ch(a,o,r),l.enqueue(s)},async flush(){t.size=o,n&&await ch(n,o)}})}}async function ch(e,...t){try{await e(...t)}catch{}}function _t1(e,t){return{run:()=>V22(e,t)}}function f22(e,t){const{baseURL:i,chunkSize:a}=t;if(!e.interface){let r;try{r=M22(e.scripts[0],i,e)}catch{return vt1=!1,_t1(e,t)}Object.assign(e,{worker:r,interface:{run:()=>L22(e,{chunkSize:a})}})}return e.interface}async function V22({options:e,readable:t,writable:i,onTaskFinished:a},r){try{const n=new u22(e,r);await t.pipeThrough(n).pipeTo(i,{preventClose:!0,preventAbort:!0});const{signature:o,inputSize:s,outputSize:l}=n;return{signature:o,inputSize:s,outputSize:l}}finally{a()}}async function L22(e,t){let i,a;const r=new Promise((u,p)=>{i=u,a=p});Object.assign(e,{reader:null,writer:null,resolveResult:i,rejectResult:a,result:r});const{readable:n,options:o,scripts:s}=e,{writable:l,closed:d}=H22(e.writable);lc({type:c22,scripts:s.slice(1),options:o,config:t,readable:n,writable:l},e)||Object.assign(e,{reader:n.getReader(),writer:l.getWriter()});const m=await r;try{await l.getWriter().close()}catch{}return await d,m}function H22(e){let t;const i=new Promise(r=>t=r);return{writable:new WritableStream({async write(r){const n=e.getWriter();await n.ready,await n.write(r),n.releaseLock()},close(){t()},abort(r){return e.getWriter().abort(r)}}),closed:i}}let AD=!0,vD=!0;function M22(e,t,i){const a={type:"module"};let r,n;typeof e==W8&&(e=e());try{r=new URL(e,t)}catch{r=e}if(AD)try{n=new Worker(r)}catch{AD=!1,n=new Worker(r,a)}else n=new Worker(r,a);return n.addEventListener(l22,o=>g22(o,i)),n}function lc(e,{worker:t,writer:i,onTaskFinished:a,transferStreams:r}){try{let{value:n,readable:o,writable:s}=e;const l=[];if(n&&(n.byteLength!H.busy);if(M)return SD(M),new lh(M,e,t,f);if(Br.lengthdh.push({resolve:H,stream:e,workerOptions:t}))}function f(M){if(dh.length){const[{resolve:H,stream:g,workerOptions:_}]=dh.splice(0,1);H(new lh(M,g,_,f))}else M.worker?(SD(M),v22(M,t)):Br=Br.filter(H=>H!=M)}}function v22(e,t){const{config:i}=t,{terminateWorkerTimeout:a}=i;Number.isFinite(a)&&a>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{Br=Br.filter(r=>r!=e);try{await e.terminate()}catch{}},a))}function SD(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}function _22(e){const t=()=>URL.createObjectURL(new Blob([`const{Array:e,Object:t,Number:n,Math:r,Error:s,Uint8Array:i,Uint16Array:o,Uint32Array:c,Int32Array:f,Map:a,DataView:l,Promise:u,TextEncoder:w,crypto:h,postMessage:d,TransformStream:p,ReadableStream:y,WritableStream:m,CompressionStream:b,DecompressionStream:g}=self,k=void 0,v="undefined",S="function";class z{constructor(e){return class extends p{constructor(t,n){const r=new e(n);super({transform(e,t){t.enqueue(r.append(e))},flush(e){const t=r.flush();t&&e.enqueue(t)}})}}}}const C=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;C[e]=t}class x{constructor(e){this.t=e||-1}append(e){let t=0|this.t;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^C[255&(t^e[n])];this.t=t}get(){return~this.t}}class A extends p{constructor(){let e;const t=new x;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new i(4);new l(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}const _={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=_.i(n);return 32===r?e.concat(t):_.o(t,r,0|n,e.slice(0,e.length-1))},l(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+_.i(n)},u(e,t){if(32*e.length0&&t&&(e[n-1]=_.h(t,e[n-1]&2147483648>>t-1,1)),e},h:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,i:e=>r.round(e/1099511627776)||32,o(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=_.i(s);return r.push(_.h(t+i&31,t+i>32?n:r.pop(),1)),r}},I={p:{m(e){const t=_.l(e)/8,n=new i(t);let r;for(let s=0;t>s;s++)0==(3&s)&&(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},g(e){const t=[];let n,r=0;for(n=0;n9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const o=new c(n);let f=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);i>=e;e+=t.blockSize)t.I(o.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),t}P(){const e=this;let t=e.C;const n=e.S;t=_.concat(t,[_.h(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(r.floor(e.A/4294967296)),t.push(0|e.A);t.length;)e.I(t.splice(0,16));return e.reset(),n}D(e,t,n,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}V(e,t){return t<>>32-e}I(t){const n=this,s=n.S,i=e(80);for(let e=0;16>e;e++)i[e]=t[e];let o=s[0],c=s[1],f=s[2],a=s[3],l=s[4];for(let e=0;79>=e;e++){16>e||(i[e]=n.V(1,i[e-3]^i[e-8]^i[e-14]^i[e-16]));const t=n.V(5,o)+n.D(e,c,f,a)+l+i[e]+n.v[r.floor(e/20)]|0;l=a,a=f,f=n.V(30,c),c=o,o=t}s[0]=s[0]+o|0,s[1]=s[1]+c|0,s[2]=s[2]+f|0,s[3]=s[3]+a|0,s[4]=s[4]+l|0}},D={getRandomValues(e){const t=new c(e.buffer),n=e=>{let t=987654321;const n=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&n,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(r.random()>.5?1:-1))};for(let s,i=0;inew V.R(I.p.g(e)),B(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const i=1+(r>>5)<<2;let o,c,f,a,u;const w=new ArrayBuffer(i),h=new l(w);let d=0;const p=_;for(t=I.p.g(t),u=1;(i||1)>d;u++){for(o=c=e.encrypt(p.concat(t,[u])),f=1;n>f;f++)for(c=e.encrypt(c),a=0;ad&&fs&&(e=(new n).update(e).P());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.U[0].update(r[0]),t.U[1].update(r[1]),t.K=new n(t.U[0])}reset(){const e=this;e.K=new e.M(e.U[0]),e.N=!1}update(e){this.N=!0,this.K.update(e)}digest(){const e=this,t=e.K.P(),n=new e.M(e.U[1]).update(t).P();return e.reset(),n}encrypt(e){if(this.N)throw new s("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},R=typeof h!=v&&typeof h.getRandomValues==S,B="Invalid password",E="Invalid signature",M="zipjs-abort-check-password";function U(e){return R?h.getRandomValues(e):D.getRandomValues(e)}const K=16,N={name:"PBKDF2"},O=t.assign({hash:{name:"HMAC"}},N),T=t.assign({iterations:1e3,hash:{name:"SHA-1"}},N),W=["deriveBits"],j=[8,12,16],H=[16,24,32],L=10,F=[0,0,0,0],q=typeof h!=v,G=q&&h.subtle,J=q&&typeof G!=v,Q=I.p,X=class{constructor(e){const t=this;t.O=[[[],[],[],[],[]],[[],[],[],[],[]]],t.O[0][0][0]||t.T();const n=t.O[0][4],r=t.O[1],i=e.length;let o,c,f,a=1;if(4!==i&&6!==i&&8!==i)throw new s("invalid aes key size");for(t.v=[c=e.slice(0),f=[]],o=i;4*i+28>o;o++){let e=c[o-1];(o%i==0||8===i&&o%i==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],o%i==0&&(e=e<<8^e>>>24^a<<24,a=a<<1^283*(a>>7))),c[o]=c[o-i]^e}for(let e=0;o;e++,o--){const t=c[3&e?o:o-4];f[e]=4>=o||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this.W(e,0)}decrypt(e){return this.W(e,1)}T(){const e=this.O[0],t=this.O[1],n=e[4],r=t[4],s=[],i=[];let o,c,f,a;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=o=0;!n[l];l^=c||1,o=i[o]||1){let i=o^o<<1^o<<2^o<<3^o<<4;i=i>>8^255&i^99,n[l]=i,r[i]=l,a=s[f=s[c=s[l]]];let u=16843009*a^65537*f^257*c^16843008*l,w=257*s[i]^16843008*i;for(let n=0;4>n;n++)e[n][l]=w=w<<24^w>>>8,t[n][i]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}W(e,t){if(4!==e.length)throw new s("invalid aes block size");const n=this.v[t],r=n.length/4-2,i=[0,0,0,0],o=this.O[t],c=o[0],f=o[1],a=o[2],l=o[3],u=o[4];let w,h,d,p=e[0]^n[0],y=e[t?3:1]^n[1],m=e[2]^n[2],b=e[t?1:3]^n[3],g=4;for(let e=0;r>e;e++)w=c[p>>>24]^f[y>>16&255]^a[m>>8&255]^l[255&b]^n[g],h=c[y>>>24]^f[m>>16&255]^a[b>>8&255]^l[255&p]^n[g+1],d=c[m>>>24]^f[b>>16&255]^a[p>>8&255]^l[255&y]^n[g+2],b=c[b>>>24]^f[p>>16&255]^a[y>>8&255]^l[255&m]^n[g+3],g+=4,p=w,y=h,m=d;for(let e=0;4>e;e++)i[t?3&-e:e]=u[p>>>24]<<24^u[y>>16&255]<<16^u[m>>8&255]<<8^u[255&b]^n[g++],w=p,p=y,y=m,m=b,b=w;return i}},Y=class{constructor(e,t){this.j=e,this.H=t,this.L=t}reset(){this.L=this.H}update(e){return this.F(this.j,e,this.L)}q(e){if(255==(e>>24&255)){let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}else e+=1<<24;return e}G(e){0===(e[0]=this.q(e[0]))&&(e[1]=this.q(e[1]))}F(e,t,n){let r;if(!(r=t.length))return[];const s=_.l(t);for(let s=0;r>s;s+=4){this.G(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return _.u(t,s)}},Z=V.R;let $=q&&J&&typeof G.importKey==S,ee=q&&J&&typeof G.deriveBits==S;class te extends p{constructor({password:e,rawPassword:n,signed:r,encryptionStrength:o,checkPasswordOnly:c}){super({start(){t.assign(this,{ready:new u((e=>this.J=e)),password:ie(e,n),signed:r,X:o-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:o,J:f,ready:a}=n;r?(await(async(e,t,n,r)=>{const i=await se(e,t,n,ce(r,0,j[t])),o=ce(r,j[t]);if(i[0]!=o[0]||i[1]!=o[1])throw new s(B)})(n,o,r,ce(e,0,j[o]+2)),e=ce(e,j[o]+2),c?t.error(new s(M)):f()):await a;const l=new i(e.length-L-(e.length-L)%K);t.enqueue(re(n,e,l,0,L,!0))},async flush(e){const{signed:t,Y:n,Z:r,pending:o,ready:c}=this;if(r&&n){await c;const f=ce(o,0,o.length-L),a=ce(o,o.length-L);let l=new i;if(f.length){const e=ae(Q,f);r.update(e);const t=n.update(e);l=fe(Q,t)}if(t){const e=ce(fe(Q,r.digest()),0,L);for(let t=0;L>t;t++)if(e[t]!=a[t])throw new s(E)}e.enqueue(l)}}})}}class ne extends p{constructor({password:e,rawPassword:n,encryptionStrength:r}){let s;super({start(){t.assign(this,{ready:new u((e=>this.J=e)),password:ie(e,n),X:r-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:s,J:o,ready:c}=n;let f=new i;r?(f=await(async(e,t,n)=>{const r=U(new i(j[t]));return oe(r,await se(e,t,n,r))})(n,s,r),o()):await c;const a=new i(f.length+e.length-e.length%K);a.set(f,0),t.enqueue(re(n,e,a,f.length,0))},async flush(e){const{Y:t,Z:n,pending:r,ready:o}=this;if(n&&t){await o;let c=new i;if(r.length){const e=t.update(ae(Q,r));n.update(e),c=fe(Q,e)}s.signature=fe(Q,n.digest()).slice(0,L),e.enqueue(oe(c,s.signature))}}}),s=this}}function re(e,t,n,r,s,o){const{Y:c,Z:f,pending:a}=e,l=t.length-s;let u;for(a.length&&(t=oe(a,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new i(t)).set(n,0)}return e})(n,l-l%K)),u=0;l-K>=u;u+=K){const e=ae(Q,ce(t,u,u+K));o&&f.update(e);const s=c.update(e);o||f.update(s),n.set(fe(Q,s),u+r)}return e.pending=ce(t,u),n}async function se(n,r,s,o){n.password=null;const c=await(async(e,t,n,r,s)=>{if(!$)return V.importKey(t);try{return await G.importKey("raw",t,n,!1,s)}catch(e){return $=!1,V.importKey(t)}})(0,s,O,0,W),f=await(async(e,t,n)=>{if(!ee)return V.B(t,e.salt,T.iterations,n);try{return await G.deriveBits(e,t,n)}catch(r){return ee=!1,V.B(t,e.salt,T.iterations,n)}})(t.assign({salt:o},T),c,8*(2*H[r]+2)),a=new i(f),l=ae(Q,ce(a,0,H[r])),u=ae(Q,ce(a,H[r],2*H[r])),w=ce(a,2*H[r]);return t.assign(n,{keys:{key:l,$:u,passwordVerification:w},Y:new Y(new X(l),e.from(F)),Z:new Z(u)}),w}function ie(e,t){return t===k?(e=>{if(typeof w==v){const t=new i((e=unescape(encodeURIComponent(e))).length);for(let n=0;n>>24]),i=~e.te.get(),e.keys=[n,s,i]}function ye(e){const t=2|e.keys[2];return me(r.imul(t,1^t)>>>8)}function me(e){return 255&e}function be(e){return 4294967295&e}const ge="deflate-raw";class ke extends p{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:s,encrypted:i,useCompressionStream:o,zipCrypto:c,signed:f,level:a}=e,u=this;let w,h,d=Se(super.readable);i&&!c||!f||(w=new A,d=xe(d,w)),s&&(d=Ce(d,o,{level:a,chunkSize:t},r,n)),i&&(c?d=xe(d,new ue(e)):(h=new ne(e),d=xe(d,h))),ze(u,d,(()=>{let e;i&&!c&&(e=h.signature),i&&!c||!f||(e=new l(w.value.buffer).getUint32(0)),u.signature=e}))}}class ve extends p{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:i,encrypted:o,signed:c,signature:f,compressed:a,useCompressionStream:u}=e;let w,h,d=Se(super.readable);o&&(i?d=xe(d,new le(e)):(h=new te(e),d=xe(d,h))),a&&(d=Ce(d,u,{chunkSize:t},r,n)),o&&!i||!c||(w=new A,d=xe(d,w)),ze(this,d,(()=>{if((!o||i)&&c){const e=new l(w.value.buffer);if(f!=e.getUint32(0,!1))throw new s(E)}}))}}function Se(e){return xe(e,new p({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ze(e,n,r){n=xe(n,new p({flush:r})),t.defineProperty(e,"readable",{get:()=>n})}function Ce(e,t,n,r,s){try{e=xe(e,new(t&&r?r:s)(ge,n))}catch(r){if(!t)return e;try{e=xe(e,new s(ge,n))}catch(t){return e}}return e}function xe(e,t){return e.pipeThrough(t)}const Ae="data",_e="close";class Ie extends p{constructor(e,n){super({});const r=this,{codecType:s}=e;let i;s.startsWith("deflate")?i=ke:s.startsWith("inflate")&&(i=ve);let o=0,c=0;const f=new i(e,n),a=super.readable,l=new p({transform(e,t){e&&e.length&&(c+=e.length,t.enqueue(e))},flush(){t.assign(r,{inputSize:c})}}),u=new p({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))},flush(){const{signature:e}=f;t.assign(r,{signature:e,outputSize:o,inputSize:c})}});t.defineProperty(r,"readable",{get:()=>a.pipeThrough(l).pipeThrough(f).pipeThrough(u)})}}class Pe extends p{constructor(e){let t;super({transform:function n(r,s){if(t){const e=new i(t.length+r.length);e.set(t),e.set(r,t.length),r=e,t=null}r.length>e?(s.enqueue(r.slice(0,e)),n(r.slice(e),s)):t=r},flush(e){t&&t.length&&e.enqueue(t)}})}}const De=new a,Ve=new a;let Re,Be=0,Ee=!0;async function Me(e){try{const{options:t,scripts:r,config:s}=e;if(r&&r.length)try{Ee?importScripts.apply(k,r):await Ue(r)}catch(e){Ee=!1,await Ue(r)}self.initCodec&&self.initCodec(),s.CompressionStreamNative=self.CompressionStream,s.DecompressionStreamNative=self.DecompressionStream,self.Deflate&&(s.CompressionStream=new z(self.Deflate)),self.Inflate&&(s.DecompressionStream=new z(self.Inflate));const i={highWaterMark:1},o=e.readable||new y({async pull(e){const t=new u((e=>De.set(Be,e)));Ke({type:"pull",messageId:Be}),Be=(Be+1)%n.MAX_SAFE_INTEGER;const{value:r,done:s}=await t;e.enqueue(r),s&&e.close()}},i),c=e.writable||new m({async write(e){let t;const r=new u((e=>t=e));Ve.set(Be,t),Ke({type:Ae,value:e,messageId:Be}),Be=(Be+1)%n.MAX_SAFE_INTEGER,await r}},i),f=new Ie(t,s);Re=new AbortController;const{signal:a}=Re;await o.pipeThrough(f).pipeThrough(new Pe(s.chunkSize)).pipeTo(c,{signal:a,preventClose:!0,preventAbort:!0});try{await c.getWriter().close()}catch(e){}const{signature:l,inputSize:w,outputSize:h}=f;Ke({type:_e,result:{signature:l,inputSize:w,outputSize:h}})}catch(e){Ne(e)}}async function Ue(e){for(const t of e)await import(t)}function Ke(e){let{value:t}=e;if(t)if(t.length)try{t=new i(t),e.value=t.buffer,d(e,[e.value])}catch(t){d(e)}else d(e);else d(e)}function Ne(e=new s("Unknown error")){const{message:t,stack:n,code:r,name:i}=e;d({error:{message:t,stack:n,code:r,name:i}})}addEventListener("message",(({data:e})=>{const{type:t,messageId:n,value:r,done:s}=e;try{if("start"==t&&Me(e),t==Ae){const e=De.get(n);De.delete(n),e({value:new i(r),done:s})}if("ack"==t){const e=Ve.get(n);Ve.delete(n),e()}t==_e&&Re.abort()}catch(e){Ne(e)}}));const Oe=-2;function Te(t){return We(t.map((([t,n])=>new e(t).fill(n,0,t))))}function We(t){return t.reduce(((t,n)=>t.concat(e.isArray(n)?We(n):n)),[])}const je=[0,1,2,3].concat(...Te([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function He(){const e=this;function t(e,t){let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}e.ne=n=>{const s=e.re,i=e.ie.se,o=e.ie.oe;let c,f,a,l=-1;for(n.ce=0,n.fe=573,c=0;o>c;c++)0!==s[2*c]?(n.ae[++n.ce]=l=c,n.le[c]=0):s[2*c+1]=0;for(;2>n.ce;)a=n.ae[++n.ce]=2>l?++l:0,s[2*a]=1,n.le[a]=0,n.ue--,i&&(n.we-=i[2*a+1]);for(e.he=l,c=r.floor(n.ce/2);c>=1;c--)n.de(s,c);a=o;do{c=n.ae[1],n.ae[1]=n.ae[n.ce--],n.de(s,1),f=n.ae[1],n.ae[--n.fe]=c,n.ae[--n.fe]=f,s[2*a]=s[2*c]+s[2*f],n.le[a]=r.max(n.le[c],n.le[f])+1,s[2*c+1]=s[2*f+1]=a,n.ae[1]=a++,n.de(s,1)}while(n.ce>=2);n.ae[--n.fe]=n.ae[1],(t=>{const n=e.re,r=e.ie.se,s=e.ie.pe,i=e.ie.ye,o=e.ie.me;let c,f,a,l,u,w,h=0;for(l=0;15>=l;l++)t.be[l]=0;for(n[2*t.ae[t.fe]+1]=0,c=t.fe+1;573>c;c++)f=t.ae[c],l=n[2*n[2*f+1]+1]+1,l>o&&(l=o,h++),n[2*f+1]=l,f>e.he||(t.be[l]++,u=0,i>f||(u=s[f-i]),w=n[2*f],t.ue+=w*(l+u),r&&(t.we+=w*(r[2*f+1]+u)));if(0!==h){do{for(l=o-1;0===t.be[l];)l--;t.be[l]--,t.be[l+1]+=2,t.be[o]--,h-=2}while(h>0);for(l=o;0!==l;l--)for(f=t.be[l];0!==f;)a=t.ae[--c],a>e.he||(n[2*a+1]!=l&&(t.ue+=(l-n[2*a+1])*n[2*a],n[2*a+1]=l),f--)}})(n),((e,n,r)=>{const s=[];let i,o,c,f=0;for(i=1;15>=i;i++)s[i]=f=f+r[i-1]<<1;for(o=0;n>=o;o++)c=e[2*o+1],0!==c&&(e[2*o]=t(s[c]++,c))})(s,e.he,n.be)}}function Le(e,t,n,r,s){const i=this;i.se=e,i.pe=t,i.ye=n,i.oe=r,i.me=s}He.ge=[0,1,2,3,4,5,6,7].concat(...Te([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),He.ke=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],He.ve=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],He.Se=e=>256>e?je[e]:je[256+(e>>>7)],He.ze=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],He.Ce=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],He.xe=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],He.Ae=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const Fe=Te([[144,8],[112,9],[24,7],[8,8]]);Le._e=We([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((e,t)=>[e,Fe[t]])));const qe=Te([[30,5]]);function Ge(e,t,n,r,s){const i=this;i.Ie=e,i.Pe=t,i.De=n,i.Ve=r,i.Re=s}Le.Be=We([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((e,t)=>[e,qe[t]]))),Le.Ee=new Le(Le._e,He.ze,257,286,15),Le.Me=new Le(Le.Be,He.Ce,0,30,15),Le.Ue=new Le(null,He.xe,0,19,7);const Je=[new Ge(0,0,0,0,0),new Ge(4,4,8,4,1),new Ge(4,5,16,8,1),new Ge(4,6,32,32,1),new Ge(4,4,16,16,2),new Ge(8,16,32,32,2),new Ge(8,16,128,128,2),new Ge(8,32,128,256,2),new Ge(32,128,258,1024,2),new Ge(32,258,258,4096,2)],Qe=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],Xe=113,Ye=666,Ze=262;function $e(e,t,n,r){const s=e[2*t],i=e[2*n];return i>s||s==i&&r[t]<=r[n]}function et(){const e=this;let t,n,s,c,f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z,C,x,A,_,I,P,D,V,R,B,E,M,U;const K=new He,N=new He,O=new He;let T,W,j,H,L,F;function q(){let t;for(t=0;286>t;t++)E[2*t]=0;for(t=0;30>t;t++)M[2*t]=0;for(t=0;19>t;t++)U[2*t]=0;E[512]=1,e.ue=e.we=0,W=j=0}function G(e,t){let n,r=-1,s=e[1],i=0,o=7,c=4;0===s&&(o=138,c=3),e[2*(t+1)+1]=65535;for(let f=0;t>=f;f++)n=s,s=e[2*(f+1)+1],++ii?U[2*n]+=i:0!==n?(n!=r&&U[2*n]++,U[32]++):i>10?U[36]++:U[34]++,i=0,r=n,0===s?(o=138,c=3):n==s?(o=6,c=3):(o=7,c=4))}function J(t){e.Ke[e.pending++]=t}function Q(e){J(255&e),J(e>>>8&255)}function X(e,t){let n;const r=t;F>16-r?(n=e,L|=n<>>16-F,F+=r-16):(L|=e<=n;n++)if(r=i,i=e[2*(n+1)+1],++o>=c||r!=i){if(f>o)do{Y(r,U)}while(0!=--o);else 0!==r?(r!=s&&(Y(r,U),o--),Y(16,U),X(o-3,2)):o>10?(Y(18,U),X(o-11,7)):(Y(17,U),X(o-3,3));o=0,s=r,0===i?(c=138,f=3):r==i?(c=6,f=3):(c=7,f=4)}}function $(){16==F?(Q(L),L=0,F=0):8>F||(J(255&L),L>>>=8,F-=8)}function ee(t,n){let s,i,o;if(e.Ne[W]=t,e.Oe[W]=255&n,W++,0===t?E[2*n]++:(j++,t--,E[2*(He.ge[n]+256+1)]++,M[2*He.Se(t)]++),0==(8191&W)&&D>2){for(s=8*W,i=C-k,o=0;30>o;o++)s+=M[2*o]*(5+He.Ce[o]);if(s>>>=3,jc);Y(256,t),H=t[513]}function ne(){F>8?Q(L):F>0&&J(255&L),L=0,F=0}function re(t,n,r){X(0+(r?1:0),3),((t,n)=>{ne(),H=8,Q(n),Q(~n),e.Ke.set(u.subarray(t,t+n),e.pending),e.pending+=n})(t,n)}function se(n){((t,n,r)=>{let s,i,o=0;D>0?(K.ne(e),N.ne(e),o=(()=>{let t;for(G(E,K.he),G(M,N.he),O.ne(e),t=18;t>=3&&0===U[2*He.Ae[t]+1];t--);return e.ue+=14+3*(t+1),t})(),s=e.ue+3+7>>>3,i=e.we+3+7>>>3,i>s||(s=i)):s=i=n+5,n+4>s||-1==t?i==s?(X(2+(r?1:0),3),te(Le._e,Le.Be)):(X(4+(r?1:0),3),((e,t,n)=>{let r;for(X(e-257,5),X(t-1,5),X(n-4,4),r=0;n>r;r++)X(U[2*He.Ae[r]+1],3);Z(E,e-1),Z(M,t-1)})(K.he+1,N.he+1,o+1),te(E,M)):re(t,n,r),q(),r&&ne()})(0>k?-1:k,C-k,n),k=C,t.Te()}function ie(){let e,n,r,s;do{if(s=w-A-C,0===s&&0===C&&0===A)s=f;else if(-1==s)s--;else if(C>=f+f-Ze){u.set(u.subarray(f,f+f),0),x-=f,C-=f,k-=f,e=y,r=e;do{n=65535&d[--r],d[r]=f>n?0:n-f}while(0!=--e);e=f,r=e;do{n=65535&h[--r],h[r]=f>n?0:n-f}while(0!=--e);s+=f}if(0===t.We)return;e=t.je(u,C+A,s),A+=e,3>A||(p=255&u[C],p=(p<A&&0!==t.We)}function oe(e){let t,n,r=I,s=C,i=_;const o=C>f-Ze?C-(f-Ze):0;let c=B;const a=l,w=C+258;let d=u[s+i-1],p=u[s+i];R>_||(r>>=2),c>A&&(c=A);do{if(t=e,u[t+i]==p&&u[t+i-1]==d&&u[t]==u[s]&&u[++t]==u[s+1]){s+=2,t++;do{}while(u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&w>s);if(n=258-(w-s),s=w-258,n>i){if(x=e,i=n,n>=c)break;d=u[s+i-1],p=u[s+i]}}}while((e=65535&h[e&a])>o&&0!=--r);return i>A?A:i}e.le=[],e.be=[],e.ae=[],E=[],M=[],U=[],e.de=(t,n)=>{const r=e.ae,s=r[n];let i=n<<1;for(;i<=e.ce&&(i(W||(W=8),j||(j=8),G||(G=0),t.Le=null,-1==S&&(S=6),1>j||j>9||8!=W||9>x||x>15||0>S||S>9||0>G||G>2?Oe:(t.Fe=e,a=x,f=1<(t.qe=t.Ge=0,t.Le=null,e.pending=0,e.Je=0,n=Xe,c=0,K.re=E,K.ie=Le.Ee,N.re=M,N.ie=Le.Me,O.re=U,O.ie=Le.Ue,L=0,F=0,H=8,q(),(()=>{w=2*f,d[y-1]=0;for(let e=0;y-1>e;e++)d[e]=0;P=Je[D].Pe,R=Je[D].Ie,B=Je[D].De,I=Je[D].Ve,C=0,k=0,A=0,v=_=2,z=0,p=0})(),0))(t))),e.Qe=()=>42!=n&&n!=Xe&&n!=Ye?Oe:(e.Oe=null,e.Ne=null,e.Ke=null,d=null,h=null,u=null,e.Fe=null,n==Xe?-3:0),e.Xe=(e,t,n)=>{let r=0;return-1==t&&(t=6),0>t||t>9||0>n||n>2?Oe:(Je[D].Re!=Je[t].Re&&0!==e.qe&&(r=e.Ye(1)),D!=t&&(D=t,P=Je[D].Pe,R=Je[D].Ie,B=Je[D].De,I=Je[D].Ve),V=n,r)},e.Ze=(e,t,r)=>{let s,i=r,o=0;if(!t||42!=n)return Oe;if(3>i)return 0;for(i>f-Ze&&(i=f-Ze,o=r-i),u.set(t.subarray(o,o+i),0),C=i,k=i,p=255&u[0],p=(p<=s;s++)p=(p<{let o,w,m,I,R;if(i>4||0>i)return Oe;if(!r.$e||!r.et&&0!==r.We||n==Ye&&4!=i)return r.Le=Qe[4],Oe;if(0===r.tt)return r.Le=Qe[7],-5;var B;if(t=r,I=c,c=i,42==n&&(w=8+(a-8<<4)<<8,m=(D-1&255)>>1,m>3&&(m=3),w|=m<<6,0!==C&&(w|=32),w+=31-w%31,n=Xe,J((B=w)>>8&255),J(255&B)),0!==e.pending){if(t.Te(),0===t.tt)return c=-1,0}else if(0===t.We&&I>=i&&4!=i)return t.Le=Qe[7],-5;if(n==Ye&&0!==t.We)return r.Le=Qe[7],-5;if(0!==t.We||0!==A||0!=i&&n!=Ye){switch(R=-1,Je[D].Re){case 0:R=(e=>{let n,r=65535;for(r>s-5&&(r=s-5);;){if(1>=A){if(ie(),0===A&&0==e)return 0;if(0===A)break}if(C+=A,A=0,n=k+r,(0===C||C>=n)&&(A=C-n,C=n,se(!1),0===t.tt))return 0;if(C-k>=f-Ze&&(se(!1),0===t.tt))return 0}return se(4==e),0===t.tt?4==e?2:0:4==e?3:1})(i);break;case 1:R=(e=>{let n,r=0;for(;;){if(Ze>A){if(ie(),Ze>A&&0==e)return 0;if(0===A)break}if(3>A||(p=(p<f-Ze||2!=V&&(v=oe(r)),3>v)n=ee(0,255&u[C]),A--,C++;else if(n=ee(C-x,v-3),A-=v,v>P||3>A)C+=v,v=0,p=255&u[C],p=(p<{let n,r,s=0;for(;;){if(Ze>A){if(ie(),Ze>A&&0==e)return 0;if(0===A)break}if(3>A||(p=(p<_&&f-Ze>=(C-s&65535)&&(2!=V&&(v=oe(s)),5>=v&&(1==V||3==v&&C-x>4096)&&(v=2)),3>_||v>_)if(0!==z){if(n=ee(0,255&u[C-1]),n&&se(!1),C++,A--,0===t.tt)return 0}else z=1,C++,A--;else{r=C+A-3,n=ee(C-1-S,_-3),A-=_-1,_-=2;do{++C>r||(p=(p<1+H+10-F&&(X(2,3),Y(256,Le._e),$()),H=7;else if(re(0,0,!1),3==i)for(o=0;y>o;o++)d[o]=0;if(t.Te(),0===t.tt)return c=-1,0}}return 4!=i?0:1}}function tt(){const e=this;e.nt=0,e.rt=0,e.We=0,e.qe=0,e.tt=0,e.Ge=0}function nt(e){const t=new tt,n=(o=e&&e.chunkSize?e.chunkSize:65536)+5*(r.floor(o/16383)+1);var o;const c=new i(n);let f=e?e.level:-1;void 0===f&&(f=-1),t.He(f),t.$e=c,this.append=(e,r)=>{let o,f,a=0,l=0,u=0;const w=[];if(e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,o=t.Ye(0),0!=o)throw new s("deflating: "+t.Le);t.rt&&(t.rt==n?w.push(new i(c)):w.push(c.subarray(0,t.rt))),u+=t.rt,r&&t.nt>0&&t.nt!=a&&(r(t.nt),a=t.nt)}while(t.We>0||0===t.tt);return w.length>1?(f=new i(u),w.forEach((e=>{f.set(e,l),l+=e.length}))):f=w[0]?new i(w[0]):new i,f}},this.flush=()=>{let e,r,o=0,f=0;const a=[];do{if(t.rt=0,t.tt=n,e=t.Ye(4),1!=e&&0!=e)throw new s("deflating: "+t.Le);n-t.tt>0&&a.push(c.slice(0,t.rt)),f+=t.rt}while(t.We>0||0===t.tt);return t.Qe(),r=new i(f),a.forEach((e=>{r.set(e,o),o+=e.length})),r}}tt.prototype={He(e,t){const n=this;return n.Fe=new et,t||(t=15),n.Fe.He(n,e,t)},Ye(e){const t=this;return t.Fe?t.Fe.Ye(t,e):Oe},Qe(){const e=this;if(!e.Fe)return Oe;const t=e.Fe.Qe();return e.Fe=null,t},Xe(e,t){const n=this;return n.Fe?n.Fe.Xe(n,e,t):Oe},Ze(e,t){const n=this;return n.Fe?n.Fe.Ze(n,e,t):Oe},je(e,t,n){const r=this;let s=r.We;return s>n&&(s=n),0===s?0:(r.We-=s,e.set(r.et.subarray(r.nt,r.nt+s),t),r.nt+=s,r.qe+=s,s)},Te(){const e=this;let t=e.Fe.pending;t>e.tt&&(t=e.tt),0!==t&&(e.$e.set(e.Fe.Ke.subarray(e.Fe.Je,e.Fe.Je+t),e.rt),e.rt+=t,e.Fe.Je+=t,e.Ge+=t,e.tt-=t,e.Fe.pending-=t,0===e.Fe.pending&&(e.Fe.Je=0))}};const rt=-2,st=-3,it=-5,ot=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],ct=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],ft=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],at=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],lt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],ut=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],wt=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];function ht(){let e,t,n,r,s,i;function o(e,t,o,c,f,a,l,u,w,h,d){let p,y,m,b,g,k,v,S,z,C,x,A,_,I,P;C=0,g=o;do{n[e[t+C]]++,C++,g--}while(0!==g);if(n[0]==o)return l[0]=-1,u[0]=0,0;for(S=u[0],k=1;15>=k&&0===n[k];k++);for(v=k,k>S&&(S=k),g=15;0!==g&&0===n[g];g--);for(m=g,S>g&&(S=g),u[0]=S,I=1<k;k++,I<<=1)if(0>(I-=n[k]))return st;if(0>(I-=n[g]))return st;for(n[g]+=I,i[1]=k=0,C=1,_=2;0!=--g;)i[_]=k+=n[C],_++,C++;g=0,C=0;do{0!==(k=e[t+C])&&(d[i[k]++]=g),C++}while(++g=v;v++)for(p=n[v];0!=p--;){for(;v>A+S;){if(b++,A+=S,P=m-A,P=P>S?S:P,(y=1<<(k=v-A))>p+1&&(y-=p+1,_=v,P>k))for(;++kn[++_];)y-=n[_];if(P=1<1440)return st;s[b]=x=h[0],h[0]+=P,0!==b?(i[b]=g,r[0]=k,r[1]=S,k=g>>>A-S,r[2]=x-s[b-1]-k,w.set(r,3*(s[b-1]+k))):l[0]=x}for(r[1]=v-A,o>C?d[C]d[C]?0:96,r[2]=d[C++]):(r[0]=a[d[C]-c]+16+64,r[2]=f[d[C++]-c]):r[0]=192,y=1<>>A;P>k;k+=y)w.set(r,3*(x+k));for(k=1<>>=1)g^=k;for(g^=k,z=(1<c;c++)t[c]=0;for(c=0;16>c;c++)n[c]=0;for(c=0;3>c;c++)r[c]=0;s.set(n.subarray(0,15),0),i.set(n.subarray(0,16),0)}this.st=(n,r,s,i,f)=>{let a;return c(19),e[0]=0,a=o(n,0,19,19,null,null,s,r,i,e,t),a==st?f.Le="oversubscribed dynamic bit lengths tree":a!=it&&0!==r[0]||(f.Le="incomplete dynamic bit lengths tree",a=st),a},this.it=(n,r,s,i,f,a,l,u,w)=>{let h;return c(288),e[0]=0,h=o(s,0,n,257,at,lt,a,i,u,e,t),0!=h||0===i[0]?(h==st?w.Le="oversubscribed literal/length tree":-4!=h&&(w.Le="incomplete literal/length tree",h=st),h):(c(288),h=o(s,n,r,0,ut,wt,l,f,u,e,t),0!=h||0===f[0]&&n>257?(h==st?w.Le="oversubscribed distance tree":h==it?(w.Le="incomplete distance tree",h=st):-4!=h&&(w.Le="empty distance tree with lengths",h=st),h):0)}}function dt(){const e=this;let t,n,r,s,i=0,o=0,c=0,f=0,a=0,l=0,u=0,w=0,h=0,d=0;function p(e,t,n,r,s,i,o,c){let f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z;d=c.nt,p=c.We,w=o.ot,h=o.ct,y=o.write,m=yh;)p--,w|=(255&c.ft(d++))<>=a[z+1],h-=a[z+1],0!=(16&u)){for(u&=15,k=a[z+2]+(w&ot[u]),w>>=u,h-=u;15>h;)p--,w|=(255&c.ft(d++))<>=a[z+1],h-=a[z+1],0!=(16&u)){for(u&=15;u>h;)p--,w|=(255&c.ft(d++))<>=u,h-=u,m-=k,v>y){S=y-v;do{S+=o.end}while(0>S);if(u=o.end-S,k>u){if(k-=u,y-S>0&&u>y-S)do{o.lt[y++]=o.lt[S++]}while(0!=--u);else o.lt.set(o.lt.subarray(S,S+u),y),y+=u,S+=u,u=0;S=0}}else S=y-v,y-S>0&&2>y-S?(o.lt[y++]=o.lt[S++],o.lt[y++]=o.lt[S++],k-=2):(o.lt.set(o.lt.subarray(S,S+2),y),y+=2,S+=2,k-=2);if(y-S>0&&k>y-S)do{o.lt[y++]=o.lt[S++]}while(0!=--k);else o.lt.set(o.lt.subarray(S,S+k),y),y+=k,S+=k,k=0;break}if(0!=(64&u))return c.Le="invalid distance code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,st;f+=a[z+2],f+=w&ot[u],z=3*(l+f),u=a[z]}break}if(0!=(64&u))return 0!=(32&u)?(k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,1):(c.Le="invalid literal/length code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,st);if(f+=a[z+2],f+=w&ot[u],z=3*(l+f),0===(u=a[z])){w>>=a[z+1],h-=a[z+1],o.lt[y++]=a[z+2],m--;break}}else w>>=a[z+1],h-=a[z+1],o.lt[y++]=a[z+2],m--}while(m>=258&&p>=10);return k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,0}e.init=(e,i,o,c,f,a)=>{t=0,u=e,w=i,r=o,h=c,s=f,d=a,n=null},e.ut=(e,y,m)=>{let b,g,k,v,S,z,C,x=0,A=0,_=0;for(_=y.nt,v=y.We,x=e.ot,A=e.ct,S=e.write,z=S=258&&v>=10&&(e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,m=p(u,w,r,h,s,d,e,y),_=y.nt,v=y.We,x=e.ot,A=e.ct,S=e.write,z=SA;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<>>=n[g+1],A-=n[g+1],k=n[g],0===k){f=n[g+2],t=6;break}if(0!=(16&k)){a=15&k,i=n[g+2],t=2;break}if(0==(64&k)){c=k,o=g/3+n[g+2];break}if(0!=(32&k)){t=7;break}return t=9,y.Le="invalid literal/length code",m=st,e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);case 2:for(b=a;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<>=b,A-=b,c=w,n=s,o=d,t=3;case 3:for(b=c;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<>=n[g+1],A-=n[g+1],k=n[g],0!=(16&k)){a=15&k,l=n[g+2],t=4;break}if(0==(64&k)){c=k,o=g/3+n[g+2];break}return t=9,y.Le="invalid distance code",m=st,e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);case 4:for(b=a;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<>=b,A-=b,t=5;case 5:for(C=S-l;0>C;)C+=e.end;for(;0!==i;){if(0===z&&(S==e.end&&0!==e.read&&(S=0,z=S7&&(A-=8,v++,_--),e.write=S,m=e.wt(y,m),S=e.write,z=S{}}ht.dt=(e,t,n,r)=>(e[0]=9,t[0]=5,n[0]=ct,r[0]=ft,0);const pt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function yt(e,t){const n=this;let r,s=0,o=0,c=0,a=0;const l=[0],u=[0],w=new dt;let h=0,d=new f(4320);const p=new ht;n.ct=0,n.ot=0,n.lt=new i(t),n.end=t,n.read=0,n.write=0,n.reset=(e,t)=>{t&&(t[0]=0),6==s&&w.ht(e),s=0,n.ct=0,n.ot=0,n.read=n.write=0},n.reset(e,null),n.wt=(e,t)=>{let r,s,i;return s=e.rt,i=n.read,r=(i>n.write?n.end:n.write)-i,r>e.tt&&(r=e.tt),0!==r&&t==it&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.lt.subarray(i,i+r),s),s+=r,i+=r,i==n.end&&(i=0,n.write==n.end&&(n.write=0),r=n.write-i,r>e.tt&&(r=e.tt),0!==r&&t==it&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.lt.subarray(i,i+r),s),s+=r,i+=r),e.rt=s,n.read=i,t},n.ut=(e,t)=>{let i,f,y,m,b,g,k,v;for(m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=gy;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>1){case 0:f>>>=3,y-=3,i=7&y,f>>>=i,y-=i,s=1;break;case 1:S=[],z=[],C=[[]],x=[[]],ht.dt(S,z,C,x),w.init(S[0],z[0],C[0],0,x[0],0),f>>>=3,y-=3,s=6;break;case 2:f>>>=3,y-=3,s=3;break;case 3:return f>>>=3,y-=3,s=9,e.Le="invalid block type",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t)}break;case 1:for(;32>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>16&65535)!=(65535&f))return s=9,e.Le="invalid stored block lengths",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);o=65535&f,f=y=0,s=0!==o?2:0!==h?7:0;break;case 2:if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(0===k&&(g==n.end&&0!==n.read&&(g=0,k=gb&&(i=b),i>k&&(i=k),n.lt.set(e.je(m,i),g),m+=i,b-=i,g+=i,k-=i,0!=(o-=i))break;s=0!==h?7:0;break;case 3:for(;14>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<29||(i>>5&31)>29)return s=9,e.Le="too many length or distance symbols",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(i=258+(31&i)+(i>>5&31),!r||r.lengthv;v++)r[v]=0;f>>>=14,y-=14,a=0,s=4;case 4:for(;4+(c>>>10)>a;){for(;3>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>=3,y-=3}for(;19>a;)r[pt[a++]]=0;if(l[0]=7,i=p.st(r,l,u,d,e),0!=i)return(t=i)==st&&(r=null,s=9),n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);a=0,s=5;case 5:for(;i=c,258+(31&i)+(i>>5&31)>a;){let o,w;for(i=l[0];i>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<w)f>>>=i,y-=i,r[a++]=w;else{for(v=18==w?7:w-14,o=18==w?11:3;i+v>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>=i,y-=i,o+=f&ot[v],f>>>=v,y-=v,v=a,i=c,v+o>258+(31&i)+(i>>5&31)||16==w&&1>v)return r=null,s=9,e.Le="invalid bit length repeat",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w=16==w?r[v-1]:0;do{r[v++]=w}while(0!=--o);a=v}}if(u[0]=-1,A=[],_=[],I=[],P=[],A[0]=9,_[0]=6,i=c,i=p.it(257+(31&i),1+(i>>5&31),r,A,_,I,P,d,e),0!=i)return i==st&&(r=null,s=9),t=i,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w.init(A[0],_[0],d,I[0],d,P[0]),s=6;case 6:if(n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,1!=(t=w.ut(n,e,t)))return n.wt(e,t);if(t=0,w.ht(e),m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=g{n.reset(e,null),n.lt=null,d=null},n.yt=(e,t,r)=>{n.lt.set(e.subarray(t,t+r),0),n.read=n.write=r},n.bt=()=>1==s?1:0}const mt=13,bt=[0,0,255,255];function gt(){const e=this;function t(e){return e&&e.gt?(e.qe=e.Ge=0,e.Le=null,e.gt.mode=7,e.gt.kt.reset(e,null),0):rt}e.mode=0,e.method=0,e.vt=[0],e.St=0,e.marker=0,e.zt=0,e.Ct=t=>(e.kt&&e.kt.ht(t),e.kt=null,0),e.xt=(n,r)=>(n.Le=null,e.kt=null,8>r||r>15?(e.Ct(n),rt):(e.zt=r,n.gt.kt=new yt(n,1<{let n,r;if(!e||!e.gt||!e.et)return rt;const s=e.gt;for(t=4==t?it:0,n=it;;)switch(s.mode){case 0:if(0===e.We)return n;if(n=t,e.We--,e.qe++,8!=(15&(s.method=e.ft(e.nt++)))){s.mode=mt,e.Le="unknown compression method",s.marker=5;break}if(8+(s.method>>4)>s.zt){s.mode=mt,e.Le="invalid win size",s.marker=5;break}s.mode=1;case 1:if(0===e.We)return n;if(n=t,e.We--,e.qe++,r=255&e.ft(e.nt++),((s.method<<8)+r)%31!=0){s.mode=mt,e.Le="incorrect header check",s.marker=5;break}if(0==(32&r)){s.mode=7;break}s.mode=2;case 2:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St=(255&e.ft(e.nt++))<<24&4278190080,s.mode=3;case 3:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<16&16711680,s.mode=4;case 4:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<8&65280,s.mode=5;case 5:return 0===e.We?n:(n=t,e.We--,e.qe++,s.St+=255&e.ft(e.nt++),s.mode=6,2);case 6:return s.mode=mt,e.Le="need dictionary",s.marker=0,rt;case 7:if(n=s.kt.ut(e,n),n==st){s.mode=mt,s.marker=0;break}if(0==n&&(n=t),1!=n)return n;n=t,s.kt.reset(e,s.vt),s.mode=12;case 12:return e.We=0,1;case mt:return st;default:return rt}},e._t=(e,t,n)=>{let r=0,s=n;if(!e||!e.gt||6!=e.gt.mode)return rt;const i=e.gt;return s<1<{let n,r,s,i,o;if(!e||!e.gt)return rt;const c=e.gt;if(c.mode!=mt&&(c.mode=mt,c.marker=0),0===(n=e.We))return it;for(r=e.nt,s=c.marker;0!==n&&4>s;)e.ft(r)==bt[s]?s++:s=0!==e.ft(r)?0:4-s,r++,n--;return e.qe+=r-e.nt,e.nt=r,e.We=n,c.marker=s,4!=s?st:(i=e.qe,o=e.Ge,t(e),e.qe=i,e.Ge=o,c.mode=7,0)},e.Pt=e=>e&&e.gt&&e.gt.kt?e.gt.kt.bt():rt}function kt(){}function vt(e){const t=new kt,n=e&&e.chunkSize?r.floor(2*e.chunkSize):131072,o=new i(n);let c=!1;t.xt(),t.$e=o,this.append=(e,r)=>{const f=[];let a,l,u=0,w=0,h=0;if(0!==e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,0!==t.We||c||(t.nt=0,c=!0),a=t.At(0),c&&a===it){if(0!==t.We)throw new s("inflating: bad input")}else if(0!==a&&1!==a)throw new s("inflating: "+t.Le);if((c||1===a)&&t.We===e.length)throw new s("inflating: bad input");t.rt&&(t.rt===n?f.push(new i(o)):f.push(o.subarray(0,t.rt))),h+=t.rt,r&&t.nt>0&&t.nt!=u&&(r(t.nt),u=t.nt)}while(t.We>0||0===t.tt);return f.length>1?(l=new i(h),f.forEach((e=>{l.set(e,w),w+=e.length}))):l=f[0]?new i(f[0]):new i,l}},this.flush=()=>{t.Ct()}}kt.prototype={xt(e){const t=this;return t.gt=new gt,e||(e=15),t.gt.xt(t,e)},At(e){const t=this;return t.gt?t.gt.At(t,e):rt},Ct(){const e=this;if(!e.gt)return rt;const t=e.gt.Ct(e);return e.gt=null,t},It(){const e=this;return e.gt?e.gt.It(e):rt},_t(e,t){const n=this;return n.gt?n.gt._t(n,e,t):rt},ft(e){return this.et[e]},je(e,t){return this.et.subarray(e,e+t)}},self.initCodec=()=>{self.Deflate=nt,self.Inflate=vt}; +`],{type:"text/javascript"}));e({workerScripts:{inflate:[t],deflate:[t]}})}const S22="Writer iterator completed too soon",D22="Content-Type",y22=64*1024,St1="writable";class dM{constructor(){this.size=0}init(){this.initialized=!0}}class Dt1 extends dM{get readable(){const t=this,{chunkSize:i=y22}=t,a=new ReadableStream({start(){this.chunkOffset=0},async pull(r){const{offset:n=0,size:o,diskNumberStart:s}=a,{chunkOffset:l}=this;r.enqueue(await gf(t,n+l,Math.min(i,o-l),s)),l+i>o?r.close():this.chunkOffset+=i}});return a}}class R22 extends Dt1{constructor(t){super(),Object.assign(this,{blob:t,size:t.size})}async readUint8Array(t,i){const a=this,r=t+i;let o=await(t||ri&&(o=o.slice(t,r)),new Uint8Array(o)}}class yt1 extends dM{constructor(t){super();const i=this,a=new TransformStream,r=[];t&&r.push([D22,t]),Object.defineProperty(i,St1,{get(){return a.writable}}),i.blob=new Response(a.readable,{headers:r}).blob()}getData(){return this.blob}}class b22 extends Dt1{constructor(t){super(),this.readers=t}async init(){const t=this,{readers:i}=t;t.lastDiskNumber=0,t.lastDiskOffset=0,await Promise.all(i.map(async(a,r)=>{await a.init(),r!=i.length-1&&(t.lastDiskOffset+=a.size),t.size+=a.size})),super.init()}async readUint8Array(t,i,a=0){const r=this,{readers:n}=this;let o,s=a;s==-1&&(s=n.length-1);let l=t;for(;l>=n[s].size;)l-=n[s].size,s++;const d=n[s],C=d.size;if(l+i<=C)o=await gf(d,l,i);else{const m=C-l;o=new Uint8Array(i),o.set(await gf(d,l,m)),o.set(await r.readUint8Array(t+m,i-m,a),m)}return r.lastDiskNumber=Math.max(s,r.lastDiskNumber),o}}class Mf extends dM{constructor(t,i=4294967295){super();const a=this;Object.assign(a,{diskNumber:0,diskOffset:0,size:0,maxSize:i,availableSize:i});let r,n,o;const s=new WritableStream({async write(C){const{availableSize:m}=a;if(o)C.length>=m?(await l(C.slice(0,m)),await d(),a.diskOffset+=r.size,a.diskNumber++,o=null,await this.write(C.slice(m))):await l(C);else{const{value:u,done:p}=await t.next();if(p&&!u)throw new Error(S22);r=u,r.size=0,r.maxSize&&(a.maxSize=r.maxSize),a.availableSize=a.maxSize,await c8(r),n=u.writable,o=n.getWriter(),await this.write(C)}},async close(){await o.ready,await d()}});Object.defineProperty(a,St1,{get(){return s}});async function l(C){const m=C.length;m&&(await o.ready,await o.write(C),r.size+=m,a.size+=m,a.availableSize-=m)}async function d(){n.size=r.size,await o.close()}}}async function c8(e,t){e.init&&!e.initialized&&await e.init(t)}function N22(e){return Array.isArray(e)&&(e=new b22(e)),e instanceof ReadableStream&&(e={readable:e}),e}function w22(e){e.writable===Mt&&typeof e.next==W8&&(e=new Mf(e)),e instanceof WritableStream&&(e={writable:e});const{writable:t}=e;return t.size===Mt&&(t.size=0),e instanceof Mf||Object.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}function gf(e,t,i,a){return e.readUint8Array(t,i,a)}const T22="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0 ".split("");T22.length==256;const E22="filename",P22="rawFilename",I22="comment",O22="rawComment",U22="uncompressedSize",x22="compressedSize",F22="offset",DD="diskNumberStart",Rt1="lastModDate",k22="rawLastModDate",bt1="lastAccessDate",Nt1="creationDate",wt1="internalFileAttribute",Tt1="externalFileAttribute",Et1="msDosCompatible",Pt1="zip64",B22=[E22,P22,x22,U22,Rt1,k22,I22,O22,bt1,Nt1,F22,DD,DD,wt1,Tt1,Et1,Pt1,"directory","bitFlag","encrypted","signature","filenameUTF8","commentUTF8","compressionMethod","version","versionMadeBy","extraField","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class It1{constructor(t){B22.forEach(i=>this[i]=t[i])}}const z22="File already exists",Z22="Zip file comment exceeds 64KB",G22="File entry comment exceeds 64KB",W22="File entry name exceeds 64KB",yD="Version exceeds 65535",X22="The strength must equal 1, 2, or 3",Y22="Extra field type exceeds 65535",$22="Extra field data exceeds 64KB",CM="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",RD=new Uint8Array([7,0,2,0,65,69,3,0,0]);let Ch=0;const bD=[];class q22{constructor(t,i={}){t=w22(t),Object.assign(this,{writer:t,addSplitZipSignature:t instanceof Mf,options:i,config:x12(),files:new Map,filenames:new Set,offset:t.writable.size,pendingEntriesSize:0,pendingAddFileCalls:new Set,bufferedWrites:0})}async add(t="",i,a={}){const r=this,{pendingAddFileCalls:n,config:o}=r;ChbD.push(l));let s;try{if(t=t.trim(),r.filenames.has(t))throw new Error(z22);return r.filenames.add(t),s=K22(r,t,i,a),n.add(s),await s}catch(l){throw r.filenames.delete(t),l}finally{n.delete(s);const l=bD.shift();l?l():Ch--}}async close(t=new Uint8Array,i={}){const a=this,{pendingAddFileCalls:r,writer:n}=this,{writable:o}=n;for(;r.size;)await Promise.allSettled(Array.from(r));return await ne2(this,t,i),ke(a,i,"preventClose")||await o.getWriter().close(),n.getData?n.getData():o}}async function K22(e,t,i,a){t=t.trim(),a.directory&&!t.endsWith(oh)?t+=oh:a.directory=t.endsWith(oh);const r=Lf(t);if(ce(r)>jt)throw new Error(W22);const n=a.comment||"",o=Lf(n);if(ce(o)>jt)throw new Error(G22);const s=ke(e,a,"version",I12);if(s>jt)throw new Error(yD);const l=ke(e,a,"versionMadeBy",20);if(l>jt)throw new Error(yD);const d=ke(e,a,Rt1,new Date),C=ke(e,a,bt1),m=ke(e,a,Nt1),u=ke(e,a,Et1,!0),p=ke(e,a,wt1,0),V=ke(e,a,Tt1,0),f=ke(e,a,"password"),M=ke(e,a,"rawPassword"),H=ke(e,a,"encryptionStrength",3),g=ke(e,a,"zipCrypto"),_=ke(e,a,"extendedTimestamp",!0),v=ke(e,a,"keepOrder",!0),S=ke(e,a,"level"),y=ke(e,a,"useWebWorkers"),D=ke(e,a,"bufferedWrite"),R=ke(e,a,"dataDescriptorSignature",!1),N=ke(e,a,"signal"),w=ke(e,a,"useCompressionStream");let x=ke(e,a,"dataDescriptor",!0),U=ke(e,a,Pt1);if(f!==Mt&&H!==Mt&&(H<1||H>3))throw new Error(X22);let E=new Uint8Array;const{extraField:O}=a;if(O){let L1=0,e1=0;O.forEach(Y=>L1+=4+ce(Y)),E=new Uint8Array(L1),O.forEach((Y,a1)=>{if(a1>jt)throw new Error(Y22);if(ce(Y)>jt)throw new Error($22);S5(E,new Uint16Array([a1]),e1),S5(E,new Uint16Array([ce(Y)]),e1+2),S5(E,Y,e1+4),e1+=4+ce(Y)})}let z=0,F=0,J=0;const W=U===!0;i&&(i=N22(i),await c8(i),i.size===Mt?(x=!0,(U||U===Mt)&&(U=!0,J=z=e0)):(J=i.size,z=oe2(J)));const{diskOffset:r1,diskNumber:$,maxSize:t1}=e.writer,l1=W||J>=e0,V1=W||z>=e0,A1=W||e.offset+e.pendingEntriesSize-r1>=e0,M1=ke(e,a,"supportZip64SplitFile",!0)&&W||$+Math.ceil(e.pendingEntriesSize/t1)>=jt;if(A1||l1||V1||M1){if(U===!1||!v)throw new Error(CM);U=!0}U=U||!1,a=Object.assign({},a,{rawFilename:r,rawComment:o,version:s,versionMadeBy:l,lastModDate:d,lastAccessDate:C,creationDate:m,rawExtraField:E,zip64:U,zip64UncompressedSize:l1,zip64CompressedSize:V1,zip64Offset:A1,zip64DiskNumberStart:M1,password:f,rawPassword:M,level:S,useWebWorkers:y,encryptionStrength:H,extendedTimestamp:_,zipCrypto:g,bufferedWrite:D,keepOrder:v,dataDescriptor:x,dataDescriptorSignature:R,signal:N,msDosCompatible:u,internalFileAttribute:p,externalFileAttribute:V,useCompressionStream:w});const X=J22(a),s1=te2(a),m1=ce(X.localHeaderArray,s1.dataDescriptorArray);F=m1+z,e.options.usdz&&(F+=F+64),e.pendingEntriesSize+=F;let f1;try{f1=await j22(e,t,i,{headerInfo:X,dataDescriptorInfo:s1,metadataSize:m1},a)}finally{e.pendingEntriesSize-=F}return Object.assign(f1,{name:t,comment:n,extraField:O}),new It1(f1)}async function j22(e,t,i,a,r){const{files:n,writer:o}=e,{keepOrder:s,dataDescriptor:l,signal:d}=r,{headerInfo:C}=a,{usdz:m}=e.options,u=Array.from(n.values()).pop();let p={},V,f,M,H,g,_;n.set(t,p);try{let D;s&&(D=u&&u.lock,v()),(r.bufferedWrite||e.writerLocked||e.bufferedWrites&&s||!l)&&!m?(_=new yt1,_.writable.size=0,V=!0,e.bufferedWrites++,await c8(o)):(_=o,await S()),await c8(_);const{writable:R}=o;let{diskOffset:N}=o;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const x=new Uint8Array(4),U=rt(x);le(U,0,j51),await f3(R,x),e.offset+=4}m&&ee2(a,e.offset-N),V||(await D,await y(R));const{diskNumber:w}=o;if(g=!0,p.diskNumberStart=w,p=await Q22(i,_,p,a,e.config,r),g=!1,n.set(t,p),p.filename=t,V){await _.writable.getWriter().close();let x=await _.getData();await D,await S(),H=!0,l||(x=await ae2(p,x,R,r)),await y(R),p.diskNumberStart=o.diskNumber,N=o.diskOffset,await x.stream().pipeTo(R,{preventClose:!0,preventAbort:!0,signal:d}),R.size+=x.size,H=!1}if(p.offset=e.offset-N,p.zip64)re2(p,r);else if(p.offset>=e0)throw new Error(CM);return e.offset+=p.size,p}catch(D){if(V&&H||!V&&g){if(e.hasCorruptedEntries=!0,D)try{D.corruptedEntry=!0}catch{}V?e.offset+=_.writable.size:e.offset=_.writable.size}throw n.delete(t),D}finally{V&&e.bufferedWrites--,M&&M(),f&&f()}function v(){p.lock=new Promise(D=>M=D)}async function S(){e.writerLocked=!0;const{lockWriter:D}=e;e.lockWriter=new Promise(R=>f=()=>{e.writerLocked=!1,R()}),await D}async function y(D){ce(C.localHeaderArray)>o.availableSize&&(o.availableSize=0,await f3(D,new Uint8Array))}}async function Q22(e,t,{diskNumberStart:i,lock:a},r,n,o){const{headerInfo:s,dataDescriptorInfo:l,metadataSize:d}=r,{localHeaderArray:C,headerArray:m,lastModDate:u,rawLastModDate:p,encrypted:V,compressed:f,version:M,compressionMethod:H,rawExtraFieldExtendedTimestamp:g,extraFieldExtendedTimestampFlag:_,rawExtraFieldNTFS:v,rawExtraFieldAES:S}=s,{dataDescriptorArray:y}=l,{rawFilename:D,lastAccessDate:R,creationDate:N,password:w,rawPassword:x,level:U,zip64:E,zip64UncompressedSize:O,zip64CompressedSize:z,zip64Offset:F,zip64DiskNumberStart:J,zipCrypto:W,dataDescriptor:r1,directory:$,versionMadeBy:t1,rawComment:l1,rawExtraField:V1,useWebWorkers:A1,onstart:n1,onprogress:M1,onend:X,signal:s1,encryptionStrength:m1,extendedTimestamp:f1,msDosCompatible:L1,internalFileAttribute:e1,externalFileAttribute:Y,useCompressionStream:a1}=o,c1={lock:a,versionMadeBy:t1,zip64:E,directory:Boolean($),filenameUTF8:!0,rawFilename:D,commentUTF8:!0,rawComment:l1,rawExtraFieldExtendedTimestamp:g,rawExtraFieldNTFS:v,rawExtraFieldAES:S,rawExtraField:V1,extendedTimestamp:f1,msDosCompatible:L1,internalFileAttribute:e1,externalFileAttribute:Y,diskNumberStart:i};let H1=0,_1=0,P1;const{writable:O1}=t;if(e){e.chunkSize=F12(n),await f3(O1,C);const y1=e.readable,X1=y1.size=e.size,j1={options:{codecType:At1,level:U,rawPassword:x,password:w,encryptionStrength:m1,zipCrypto:V&&W,passwordVerification:V&&W&&p>>8&255,signed:!0,compressed:f,encrypted:V,useWebWorkers:A1,useCompressionStream:a1,transferStreams:!1},config:n,streamOptions:{signal:s1,size:X1,onstart:n1,onprogress:M1,onend:X}},o2=await A22({readable:y1,writable:O1},j1);_1=o2.inputSize,H1=o2.outputSize,P1=o2.signature,O1.size+=_1}else await f3(O1,C);let x1;if(E){let y1=4;O&&(y1+=8),z&&(y1+=8),F&&(y1+=8),J&&(y1+=4),x1=new Uint8Array(y1)}else x1=new Uint8Array;return ie2({signature:P1,rawExtraFieldZip64:x1,compressedSize:H1,uncompressedSize:_1,headerInfo:s,dataDescriptorInfo:l},o),r1&&await f3(O1,y),Object.assign(c1,{uncompressedSize:_1,compressedSize:H1,lastModDate:u,rawLastModDate:p,creationDate:N,lastAccessDate:R,encrypted:V,size:d+H1,compressionMethod:H,version:M,headerArray:m,signature:P1,rawExtraFieldZip64:x1,extraFieldExtendedTimestampFlag:_,zip64UncompressedSize:O,zip64CompressedSize:z,zip64Offset:F,zip64DiskNumberStart:J}),c1}function J22(e){const{rawFilename:t,lastModDate:i,lastAccessDate:a,creationDate:r,rawPassword:n,password:o,level:s,zip64:l,zipCrypto:d,dataDescriptor:C,directory:m,rawExtraField:u,encryptionStrength:p,extendedTimestamp:V}=e,f=s!==0&&!m,M=Boolean(o&&ce(o)||n&&ce(n));let H=e.version,g;if(M&&!d){g=new Uint8Array(ce(RD)+2);const J=rt(g);Le(J,0,y12),S5(g,RD,2),Nd(J,8,p)}else g=new Uint8Array;let _,v,S;if(V){v=new Uint8Array(9+(a?4:0)+(r?4:0));const J=rt(v);Le(J,0,et1),Le(J,2,ce(v)-4),S=1+(a?2:0)+(r?4:0),Nd(J,4,S);let W=5;le(J,W,Math.floor(i.getTime()/1e3)),W+=4,a&&(le(J,W,Math.floor(a.getTime()/1e3)),W+=4),r&&le(J,W,Math.floor(r.getTime()/1e3));try{_=new Uint8Array(36);const r1=rt(_),$=mh(i);Le(r1,0,R12),Le(r1,2,32),Le(r1,8,b12),Le(r1,10,24),Qt(r1,12,$),Qt(r1,20,mh(a)||$),Qt(r1,28,mh(r)||$)}catch{_=new Uint8Array}}else _=v=new Uint8Array;let y=E12;C&&(y=y|T12);let D=V12;f&&(D=lD),l&&(H=H>cD?H:cD),M&&(y=y|w12,d||(H=H>dD?H:dD,D=L12,f&&(g[9]=lD)));const R=new Uint8Array(26),N=rt(R);Le(N,0,H),Le(N,2,y),Le(N,4,D);const w=new Uint32Array(1),x=rt(w);let U;iCD?U=CD:U=i,Le(x,0,(U.getHours()<<6|U.getMinutes())<<5|U.getSeconds()/2),Le(x,2,(U.getFullYear()-1980<<4|U.getMonth()+1)<<5|U.getDate());const E=w[0];le(N,6,E),Le(N,22,ce(t));const O=ce(g,v,_,u);Le(N,24,O);const z=new Uint8Array(30+ce(t)+O),F=rt(z);return le(F,0,H12),S5(z,R,4),S5(z,t,30),S5(z,g,30+ce(t)),S5(z,v,30+ce(t,g)),S5(z,_,30+ce(t,g,v)),S5(z,u,30+ce(t,g,v,_)),{localHeaderArray:z,headerArray:R,headerView:N,lastModDate:i,rawLastModDate:E,encrypted:M,compressed:f,version:H,compressionMethod:D,extraFieldExtendedTimestampFlag:S,rawExtraFieldExtendedTimestamp:v,rawExtraFieldNTFS:_,rawExtraFieldAES:g,extraFieldLength:O}}function ee2(e,t){const{headerInfo:i}=e;let{localHeaderArray:a,extraFieldLength:r}=i,n=rt(a),o=64-(t+ce(a))%64;o<4&&(o+=64);const s=new Uint8Array(o),l=rt(s);Le(l,0,N12),Le(l,2,o-2);const d=a;i.localHeaderArray=a=new Uint8Array(ce(d)+o),S5(a,d),S5(a,s,ce(d)),n=rt(a),Le(n,28,r+o),e.metadataSize+=o}function te2(e){const{zip64:t,dataDescriptor:i,dataDescriptorSignature:a}=e;let r=new Uint8Array,n,o=0;return i&&(r=new Uint8Array(t?a?24:20:a?16:12),n=rt(r),a&&(o=4,le(n,0,M12))),{dataDescriptorArray:r,dataDescriptorView:n,dataDescriptorOffset:o}}function ie2(e,t){const{signature:i,rawExtraFieldZip64:a,compressedSize:r,uncompressedSize:n,headerInfo:o,dataDescriptorInfo:s}=e,{headerView:l,encrypted:d}=o,{dataDescriptorView:C,dataDescriptorOffset:m}=s,{zip64:u,zip64UncompressedSize:p,zip64CompressedSize:V,zipCrypto:f,dataDescriptor:M}=t;if((!d||f)&&i!==Mt&&(le(l,10,i),M&&le(C,m,i)),u){const H=rt(a);Le(H,0,D12),Le(H,2,ce(a)-4);let g=4;p&&(le(l,18,e0),Qt(H,g,BigInt(n)),g+=8),V&&(le(l,14,e0),Qt(H,g,BigInt(r))),M&&(Qt(C,m+4,BigInt(r)),Qt(C,m+12,BigInt(n)))}else le(l,14,r),le(l,18,n),M&&(le(C,m+4,r),le(C,m+8,n))}async function ae2(e,t,i,{zipCrypto:a}){let r;r=await t.slice(0,26).arrayBuffer(),r.byteLength!=26&&(r=r.slice(0,26));const n=new DataView(r);return(!e.encrypted||a)&&le(n,14,e.signature),e.zip64?(le(n,18,e0),le(n,22,e0)):(le(n,18,e.compressedSize),le(n,22,e.uncompressedSize)),await f3(i,new Uint8Array(r)),t.slice(r.byteLength)}function re2(e,t){const{rawExtraFieldZip64:i,offset:a,diskNumberStart:r}=e,{zip64UncompressedSize:n,zip64CompressedSize:o,zip64Offset:s,zip64DiskNumberStart:l}=t,d=rt(i);let C=4;n&&(C+=8),o&&(C+=8),s&&(Qt(d,C,BigInt(a)),C+=8),l&&le(d,C,r)}async function ne2(e,t,i){const{files:a,writer:r}=e,{diskOffset:n,writable:o}=r;let{diskNumber:s}=r,l=0,d=0,C=e.offset-n,m=a.size;for(const[,S]of a){const{rawFilename:y,rawExtraFieldZip64:D,rawExtraFieldAES:R,rawComment:N,rawExtraFieldNTFS:w,rawExtraField:x,extendedTimestamp:U,extraFieldExtendedTimestampFlag:E,lastModDate:O}=S;let z;if(U){z=new Uint8Array(9);const F=rt(z);Le(F,0,et1),Le(F,2,5),Nd(F,4,E),le(F,5,Math.floor(O.getTime()/1e3))}else z=new Uint8Array;S.rawExtraFieldCDExtendedTimestamp=z,d+=46+ce(y,N,D,R,w,z,x)}const u=new Uint8Array(d),p=rt(u);await c8(r);let V=0;for(const[S,y]of Array.from(a.values()).entries()){const{offset:D,rawFilename:R,rawExtraFieldZip64:N,rawExtraFieldAES:w,rawExtraFieldCDExtendedTimestamp:x,rawExtraFieldNTFS:U,rawExtraField:E,rawComment:O,versionMadeBy:z,headerArray:F,directory:J,zip64:W,zip64UncompressedSize:r1,zip64CompressedSize:$,zip64DiskNumberStart:t1,zip64Offset:l1,msDosCompatible:V1,internalFileAttribute:A1,externalFileAttribute:n1,diskNumberStart:M1,uncompressedSize:X,compressedSize:s1}=y,m1=ce(N,w,x,U,E);le(p,l,g12),Le(p,l+4,z);const f1=rt(F);r1||le(f1,18,X),$||le(f1,14,s1),S5(u,F,l+6),Le(p,l+30,m1),Le(p,l+32,ce(O)),Le(p,l+34,W&&t1?jt:M1),Le(p,l+36,A1),n1?le(p,l+38,n1):J&&V1&&Nd(p,l+38,P12),le(p,l+42,W&&l1?e0:D),S5(u,R,l+46),S5(u,N,l+46+ce(R)),S5(u,w,l+46+ce(R,N)),S5(u,x,l+46+ce(R,N,w)),S5(u,U,l+46+ce(R,N,w,x)),S5(u,E,l+46+ce(R,N,w,x,U)),S5(u,O,l+46+ce(R)+m1);const L1=46+ce(R,O)+m1;if(l-V>r.availableSize&&(r.availableSize=0,await f3(o,u.slice(V,l)),V=l),l+=L1,i.onprogress)try{await i.onprogress(S+1,a.size,new It1(y))}catch{}}await f3(o,V?u.slice(V):u);let f=r.diskNumber;const{availableSize:M}=r;M=e0||d>=e0||m>=jt||f>=jt){if(H===!1)throw new Error(CM);H=!0}const g=new Uint8Array(H?S12:ff),_=rt(g);l=0,H&&(le(_,0,v12),Qt(_,4,BigInt(44)),Le(_,12,45),Le(_,14,45),le(_,16,f),le(_,20,s),Qt(_,24,BigInt(m)),Qt(_,32,BigInt(m)),Qt(_,40,BigInt(d)),Qt(_,48,BigInt(C)),le(_,56,_12),Qt(_,64,BigInt(C)+BigInt(d)),le(_,72,f+1),ke(e,i,"supportZip64SplitFile",!0)&&(f=jt,s=jt),m=jt,C=e0,d=e0,l+=J51+Q51),le(_,l,A12),Le(_,l+4,f),Le(_,l+6,s),Le(_,l+8,m),Le(_,l+10,m),le(_,l+12,d),le(_,l+16,C);const v=ce(t);if(v)if(v<=jt)Le(_,l+20,v);else throw new Error(Z22);await f3(o,g),v&&await f3(o,t)}async function f3(e,t){const i=e.getWriter();try{await i.ready,e.size+=ce(t),await i.write(t)}finally{i.releaseLock()}}function mh(e){if(e)return(BigInt(e.getTime())+BigInt(116444736e5))*BigInt(1e4)}function ke(e,t,i,a){const r=t[i]===Mt?e.options[i]:t[i];return r===Mt?a:r}function oe2(e){return e+5*(Math.floor(e/16383)+1)}function Nd(e,t,i){e.setUint8(t,i)}function Le(e,t,i){e.setUint16(t,i,!0)}function le(e,t,i){e.setUint32(t,i,!0)}function Qt(e,t,i){e.setBigUint64(t,i,!0)}function S5(e,t,i){e.set(t,i)}function rt(e){return new DataView(e.buffer)}function ce(...e){let t=0;return e.forEach(i=>i&&(t+=i.length)),t}let Ot1;try{Ot1=import.meta.url}catch{}sM({baseURL:Ot1});_22(sM);sM({Deflate:qJ1,Inflate:f12});var Ut1={exports:{}};(function(e){(function(t,i){e.exports?e.exports=i():window.ysFixWebmDuration=i()})("fix-webm-duration",function(){var t={172351395:{name:"EBML",type:"Container"},646:{name:"EBMLVersion",type:"Uint"},759:{name:"EBMLReadVersion",type:"Uint"},754:{name:"EBMLMaxIDLength",type:"Uint"},755:{name:"EBMLMaxSizeLength",type:"Uint"},642:{name:"DocType",type:"String"},647:{name:"DocTypeVersion",type:"Uint"},645:{name:"DocTypeReadVersion",type:"Uint"},108:{name:"Void",type:"Binary"},63:{name:"CRC-32",type:"Binary"},190023271:{name:"SignatureSlot",type:"Container"},16010:{name:"SignatureAlgo",type:"Uint"},16026:{name:"SignatureHash",type:"Uint"},16037:{name:"SignaturePublicKey",type:"Binary"},16053:{name:"Signature",type:"Binary"},15963:{name:"SignatureElements",type:"Container"},15995:{name:"SignatureElementList",type:"Container"},9522:{name:"SignedElement",type:"Binary"},139690087:{name:"Segment",type:"Container"},21863284:{name:"SeekHead",type:"Container"},3515:{name:"Seek",type:"Container"},5035:{name:"SeekID",type:"Binary"},5036:{name:"SeekPosition",type:"Uint"},88713574:{name:"Info",type:"Container"},13220:{name:"SegmentUID",type:"Binary"},13188:{name:"SegmentFilename",type:"String"},1882403:{name:"PrevUID",type:"Binary"},1868715:{name:"PrevFilename",type:"String"},2013475:{name:"NextUID",type:"Binary"},1999803:{name:"NextFilename",type:"String"},1092:{name:"SegmentFamily",type:"Binary"},10532:{name:"ChapterTranslate",type:"Container"},10748:{name:"ChapterTranslateEditionUID",type:"Uint"},10687:{name:"ChapterTranslateCodec",type:"Uint"},10661:{name:"ChapterTranslateID",type:"Binary"},710577:{name:"TimecodeScale",type:"Uint"},1161:{name:"Duration",type:"Float"},1121:{name:"DateUTC",type:"Date"},15273:{name:"Title",type:"String"},3456:{name:"MuxingApp",type:"String"},5953:{name:"WritingApp",type:"String"},103:{name:"Timecode",type:"Uint"},6228:{name:"SilentTracks",type:"Container"},6359:{name:"SilentTrackNumber",type:"Uint"},39:{name:"Position",type:"Uint"},43:{name:"PrevSize",type:"Uint"},35:{name:"SimpleBlock",type:"Binary"},32:{name:"BlockGroup",type:"Container"},33:{name:"Block",type:"Binary"},34:{name:"BlockVirtual",type:"Binary"},13729:{name:"BlockAdditions",type:"Container"},38:{name:"BlockMore",type:"Container"},110:{name:"BlockAddID",type:"Uint"},37:{name:"BlockAdditional",type:"Binary"},27:{name:"BlockDuration",type:"Uint"},122:{name:"ReferencePriority",type:"Uint"},123:{name:"ReferenceBlock",type:"Int"},125:{name:"ReferenceVirtual",type:"Int"},36:{name:"CodecState",type:"Binary"},13730:{name:"DiscardPadding",type:"Int"},14:{name:"Slices",type:"Container"},104:{name:"TimeSlice",type:"Container"},76:{name:"LaceNumber",type:"Uint"},77:{name:"FrameNumber",type:"Uint"},75:{name:"BlockAdditionID",type:"Uint"},78:{name:"Delay",type:"Uint"},79:{name:"SliceDuration",type:"Uint"},72:{name:"ReferenceFrame",type:"Container"},73:{name:"ReferenceOffset",type:"Uint"},74:{name:"ReferenceTimeCode",type:"Uint"},47:{name:"EncryptedBlock",type:"Binary"},106212971:{name:"Tracks",type:"Container"},46:{name:"TrackEntry",type:"Container"},87:{name:"TrackNumber",type:"Uint"},13253:{name:"TrackUID",type:"Uint"},3:{name:"TrackType",type:"Uint"},57:{name:"FlagEnabled",type:"Uint"},8:{name:"FlagDefault",type:"Uint"},5546:{name:"FlagForced",type:"Uint"},28:{name:"FlagLacing",type:"Uint"},11751:{name:"MinCache",type:"Uint"},11768:{name:"MaxCache",type:"Uint"},254851:{name:"DefaultDuration",type:"Uint"},216698:{name:"DefaultDecodedFieldDuration",type:"Uint"},209231:{name:"TrackTimecodeScale",type:"Float"},4991:{name:"TrackOffset",type:"Int"},5614:{name:"MaxBlockAdditionID",type:"Uint"},4974:{name:"Name",type:"String"},177564:{name:"Language",type:"String"},6:{name:"CodecID",type:"String"},9122:{name:"CodecPrivate",type:"Binary"},362120:{name:"CodecName",type:"String"},13382:{name:"AttachmentLink",type:"Uint"},1742487:{name:"CodecSettings",type:"String"},1785920:{name:"CodecInfoURL",type:"String"},438848:{name:"CodecDownloadURL",type:"String"},42:{name:"CodecDecodeAll",type:"Uint"},12203:{name:"TrackOverlay",type:"Uint"},5802:{name:"CodecDelay",type:"Uint"},5819:{name:"SeekPreRoll",type:"Uint"},9764:{name:"TrackTranslate",type:"Container"},9980:{name:"TrackTranslateEditionUID",type:"Uint"},9919:{name:"TrackTranslateCodec",type:"Uint"},9893:{name:"TrackTranslateTrackID",type:"Binary"},96:{name:"Video",type:"Container"},26:{name:"FlagInterlaced",type:"Uint"},5048:{name:"StereoMode",type:"Uint"},5056:{name:"AlphaMode",type:"Uint"},5049:{name:"OldStereoMode",type:"Uint"},48:{name:"PixelWidth",type:"Uint"},58:{name:"PixelHeight",type:"Uint"},5290:{name:"PixelCropBottom",type:"Uint"},5307:{name:"PixelCropTop",type:"Uint"},5324:{name:"PixelCropLeft",type:"Uint"},5341:{name:"PixelCropRight",type:"Uint"},5296:{name:"DisplayWidth",type:"Uint"},5306:{name:"DisplayHeight",type:"Uint"},5298:{name:"DisplayUnit",type:"Uint"},5299:{name:"AspectRatioType",type:"Uint"},963876:{name:"ColourSpace",type:"Binary"},1029411:{name:"GammaValue",type:"Float"},230371:{name:"FrameRate",type:"Float"},97:{name:"Audio",type:"Container"},53:{name:"SamplingFrequency",type:"Float"},14517:{name:"OutputSamplingFrequency",type:"Float"},31:{name:"Channels",type:"Uint"},15739:{name:"ChannelPositions",type:"Binary"},8804:{name:"BitDepth",type:"Uint"},98:{name:"TrackOperation",type:"Container"},99:{name:"TrackCombinePlanes",type:"Container"},100:{name:"TrackPlane",type:"Container"},101:{name:"TrackPlaneUID",type:"Uint"},102:{name:"TrackPlaneType",type:"Uint"},105:{name:"TrackJoinBlocks",type:"Container"},109:{name:"TrackJoinUID",type:"Uint"},64:{name:"TrickTrackUID",type:"Uint"},65:{name:"TrickTrackSegmentUID",type:"Binary"},70:{name:"TrickTrackFlag",type:"Uint"},71:{name:"TrickMasterTrackUID",type:"Uint"},68:{name:"TrickMasterTrackSegmentUID",type:"Binary"},11648:{name:"ContentEncodings",type:"Container"},8768:{name:"ContentEncoding",type:"Container"},4145:{name:"ContentEncodingOrder",type:"Uint"},4146:{name:"ContentEncodingScope",type:"Uint"},4147:{name:"ContentEncodingType",type:"Uint"},4148:{name:"ContentCompression",type:"Container"},596:{name:"ContentCompAlgo",type:"Uint"},597:{name:"ContentCompSettings",type:"Binary"},4149:{name:"ContentEncryption",type:"Container"},2017:{name:"ContentEncAlgo",type:"Uint"},2018:{name:"ContentEncKeyID",type:"Binary"},2019:{name:"ContentSignature",type:"Binary"},2020:{name:"ContentSigKeyID",type:"Binary"},2021:{name:"ContentSigAlgo",type:"Uint"},2022:{name:"ContentSigHashAlgo",type:"Uint"},206814059:{name:"Cues",type:"Container"},59:{name:"CuePoint",type:"Container"},51:{name:"CueTime",type:"Uint"},55:{name:"CueTrackPositions",type:"Container"},119:{name:"CueTrack",type:"Uint"},113:{name:"CueClusterPosition",type:"Uint"},112:{name:"CueRelativePosition",type:"Uint"},50:{name:"CueDuration",type:"Uint"},4984:{name:"CueBlockNumber",type:"Uint"},106:{name:"CueCodecState",type:"Uint"},91:{name:"CueReference",type:"Container"},22:{name:"CueRefTime",type:"Uint"},23:{name:"CueRefCluster",type:"Uint"},4959:{name:"CueRefNumber",type:"Uint"},107:{name:"CueRefCodecState",type:"Uint"},155296873:{name:"Attachments",type:"Container"},8615:{name:"AttachedFile",type:"Container"},1662:{name:"FileDescription",type:"String"},1646:{name:"FileName",type:"String"},1632:{name:"FileMimeType",type:"String"},1628:{name:"FileData",type:"Binary"},1710:{name:"FileUID",type:"Uint"},1653:{name:"FileReferral",type:"Binary"},1633:{name:"FileUsedStartTime",type:"Uint"},1634:{name:"FileUsedEndTime",type:"Uint"},4433776:{name:"Chapters",type:"Container"},1465:{name:"EditionEntry",type:"Container"},1468:{name:"EditionUID",type:"Uint"},1469:{name:"EditionFlagHidden",type:"Uint"},1499:{name:"EditionFlagDefault",type:"Uint"},1501:{name:"EditionFlagOrdered",type:"Uint"},54:{name:"ChapterAtom",type:"Container"},13252:{name:"ChapterUID",type:"Uint"},5716:{name:"ChapterStringUID",type:"String"},17:{name:"ChapterTimeStart",type:"Uint"},18:{name:"ChapterTimeEnd",type:"Uint"},24:{name:"ChapterFlagHidden",type:"Uint"},1432:{name:"ChapterFlagEnabled",type:"Uint"},11879:{name:"ChapterSegmentUID",type:"Binary"},11964:{name:"ChapterSegmentEditionUID",type:"Uint"},9155:{name:"ChapterPhysicalEquiv",type:"Uint"},15:{name:"ChapterTrack",type:"Container"},9:{name:"ChapterTrackNumber",type:"Uint"},0:{name:"ChapterDisplay",type:"Container"},5:{name:"ChapString",type:"String"},892:{name:"ChapLanguage",type:"String"},894:{name:"ChapCountry",type:"String"},10564:{name:"ChapProcess",type:"Container"},10581:{name:"ChapProcessCodecID",type:"Uint"},1293:{name:"ChapProcessPrivate",type:"Binary"},10513:{name:"ChapProcessCommand",type:"Container"},10530:{name:"ChapProcessTime",type:"Uint"},10547:{name:"ChapProcessData",type:"Binary"},39109479:{name:"Tags",type:"Container"},13171:{name:"Tag",type:"Container"},9152:{name:"Targets",type:"Container"},10442:{name:"TargetTypeValue",type:"Uint"},9162:{name:"TargetType",type:"String"},9157:{name:"TagTrackUID",type:"Uint"},9161:{name:"TagEditionUID",type:"Uint"},9156:{name:"TagChapterUID",type:"Uint"},9158:{name:"TagAttachmentUID",type:"Uint"},10184:{name:"SimpleTag",type:"Container"},1443:{name:"TagName",type:"String"},1146:{name:"TagLanguage",type:"String"},1156:{name:"TagDefault",type:"Uint"},1159:{name:"TagString",type:"String"},1157:{name:"TagBinary",type:"Binary"}};function i(C,m){C.prototype=Object.create(m.prototype),C.prototype.constructor=C}function a(C,m){this.name=C||"Unknown",this.type=m||"Unknown"}a.prototype.updateBySource=function(){},a.prototype.setSource=function(C){this.source=C,this.updateBySource()},a.prototype.updateByData=function(){},a.prototype.setData=function(C){this.data=C,this.updateByData()};function r(C,m){a.call(this,C,m||"Uint")}i(r,a);function n(C){return C.length%2===1?"0"+C:C}r.prototype.updateBySource=function(){this.data="";for(var C=0;C=p&&u<8;u++,p*=128);if(!m)for(var V=p+C,f=u-1;f>=0;f--){var M=V%256;this.source[this.offset+f]=M,V=(V-M)/256}this.offset+=u},s.prototype.writeSections=function(C){this.offset=0;for(var m=0;m=i&&parseInt(a[i],10)}function Gn(e,t,i){if(!e.RTCPeerConnection)return;const a=e.RTCPeerConnection.prototype,r=a.addEventListener;a.addEventListener=function(o,s){if(o!==t)return r.apply(this,arguments);const l=d=>{const C=i(d);C&&(s.handleEvent?s.handleEvent(C):s(C))};return this._eventMap=this._eventMap||{},this._eventMap[t]||(this._eventMap[t]=new Map),this._eventMap[t].set(s,l),r.apply(this,[o,l])};const n=a.removeEventListener;a.removeEventListener=function(o,s){if(o!==t||!this._eventMap||!this._eventMap[t])return n.apply(this,arguments);if(!this._eventMap[t].has(s))return n.apply(this,arguments);const l=this._eventMap[t].get(s);return this._eventMap[t].delete(s),this._eventMap[t].size===0&&delete this._eventMap[t],Object.keys(this._eventMap).length===0&&delete this._eventMap,n.apply(this,[o,l])},Object.defineProperty(a,"on"+t,{get(){return this["_on"+t]},set(o){this["_on"+t]&&(this.removeEventListener(t,this["_on"+t]),delete this["_on"+t]),o&&this.addEventListener(t,this["_on"+t]=o)},enumerable:!0,configurable:!0})}function le2(e){return typeof e!="boolean"?new Error("Argument type: "+typeof e+". Please use a boolean."):(xt1=e,e?"adapter.js logging disabled":"adapter.js logging enabled")}function ce2(e){return typeof e!="boolean"?new Error("Argument type: "+typeof e+". Please use a boolean."):(Ft1=!e,"adapter.js deprecation warnings "+(e?"disabled":"enabled"))}function kt1(){if(typeof window=="object"){if(xt1)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function mM(e,t){!Ft1||console.warn(e+" is deprecated, please use "+t+" instead.")}function de2(e){const t={browser:null,version:null};if(typeof e>"u"||!e.navigator||!e.navigator.userAgent)return t.browser="Not a browser.",t;const{navigator:i}=e;if(i.mozGetUserMedia)t.browser="firefox",t.version=cc(i.userAgent,/Firefox\/(\d+)\./,1);else if(i.webkitGetUserMedia||e.isSecureContext===!1&&e.webkitRTCPeerConnection)t.browser="chrome",t.version=cc(i.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else if(e.RTCPeerConnection&&i.userAgent.match(/AppleWebKit\/(\d+)\./))t.browser="safari",t.version=cc(i.userAgent,/AppleWebKit\/(\d+)\./,1),t.supportsUnifiedPlan=e.RTCRtpTransceiver&&"currentDirection"in e.RTCRtpTransceiver.prototype;else return t.browser="Not a supported browser.",t;return t}function ND(e){return Object.prototype.toString.call(e)==="[object Object]"}function Bt1(e){return ND(e)?Object.keys(e).reduce(function(t,i){const a=ND(e[i]),r=a?Bt1(e[i]):e[i],n=a&&!Object.keys(r).length;return r===void 0||n?t:Object.assign(t,{[i]:r})},{}):e}function Af(e,t,i){!t||i.has(t.id)||(i.set(t.id,t),Object.keys(t).forEach(a=>{a.endsWith("Id")?Af(e,e.get(t[a]),i):a.endsWith("Ids")&&t[a].forEach(r=>{Af(e,e.get(r),i)})}))}function wD(e,t,i){const a=i?"outbound-rtp":"inbound-rtp",r=new Map;if(t===null)return r;const n=[];return e.forEach(o=>{o.type==="track"&&o.trackIdentifier===t.id&&n.push(o)}),n.forEach(o=>{e.forEach(s=>{s.type===a&&s.trackId===o.id&&Af(e,s,r)})}),r}const TD=kt1;function zt1(e,t){const i=e&&e.navigator;if(!i.mediaDevices)return;const a=function(s){if(typeof s!="object"||s.mandatory||s.optional)return s;const l={};return Object.keys(s).forEach(d=>{if(d==="require"||d==="advanced"||d==="mediaSource")return;const C=typeof s[d]=="object"?s[d]:{ideal:s[d]};C.exact!==void 0&&typeof C.exact=="number"&&(C.min=C.max=C.exact);const m=function(u,p){return u?u+p.charAt(0).toUpperCase()+p.slice(1):p==="deviceId"?"sourceId":p};if(C.ideal!==void 0){l.optional=l.optional||[];let u={};typeof C.ideal=="number"?(u[m("min",d)]=C.ideal,l.optional.push(u),u={},u[m("max",d)]=C.ideal,l.optional.push(u)):(u[m("",d)]=C.ideal,l.optional.push(u))}C.exact!==void 0&&typeof C.exact!="number"?(l.mandatory=l.mandatory||{},l.mandatory[m("",d)]=C.exact):["min","max"].forEach(u=>{C[u]!==void 0&&(l.mandatory=l.mandatory||{},l.mandatory[m(u,d)]=C[u])})}),s.advanced&&(l.optional=(l.optional||[]).concat(s.advanced)),l},r=function(s,l){if(t.version>=61)return l(s);if(s=JSON.parse(JSON.stringify(s)),s&&typeof s.audio=="object"){const d=function(C,m,u){m in C&&!(u in C)&&(C[u]=C[m],delete C[m])};s=JSON.parse(JSON.stringify(s)),d(s.audio,"autoGainControl","googAutoGainControl"),d(s.audio,"noiseSuppression","googNoiseSuppression"),s.audio=a(s.audio)}if(s&&typeof s.video=="object"){let d=s.video.facingMode;d=d&&(typeof d=="object"?d:{ideal:d});const C=t.version<66;if(d&&(d.exact==="user"||d.exact==="environment"||d.ideal==="user"||d.ideal==="environment")&&!(i.mediaDevices.getSupportedConstraints&&i.mediaDevices.getSupportedConstraints().facingMode&&!C)){delete s.video.facingMode;let m;if(d.exact==="environment"||d.ideal==="environment"?m=["back","rear"]:(d.exact==="user"||d.ideal==="user")&&(m=["front"]),m)return i.mediaDevices.enumerateDevices().then(u=>{u=u.filter(V=>V.kind==="videoinput");let p=u.find(V=>m.some(f=>V.label.toLowerCase().includes(f)));return!p&&u.length&&m.includes("back")&&(p=u[u.length-1]),p&&(s.video.deviceId=d.exact?{exact:p.deviceId}:{ideal:p.deviceId}),s.video=a(s.video),TD("chrome: "+JSON.stringify(s)),l(s)})}s.video=a(s.video)}return TD("chrome: "+JSON.stringify(s)),l(s)},n=function(s){return t.version>=64?s:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[s.name]||s.name,message:s.message,constraint:s.constraint||s.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}},o=function(s,l,d){r(s,C=>{i.webkitGetUserMedia(C,l,m=>{d&&d(n(m))})})};if(i.getUserMedia=o.bind(i),i.mediaDevices.getUserMedia){const s=i.mediaDevices.getUserMedia.bind(i.mediaDevices);i.mediaDevices.getUserMedia=function(l){return r(l,d=>s(d).then(C=>{if(d.audio&&!C.getAudioTracks().length||d.video&&!C.getVideoTracks().length)throw C.getTracks().forEach(m=>{m.stop()}),new DOMException("","NotFoundError");return C},C=>Promise.reject(n(C))))}}}function Ce2(e,t){if(!(e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices)&&!!e.navigator.mediaDevices){if(typeof t!="function"){console.error("shimGetDisplayMedia: getSourceId argument is not a function");return}e.navigator.mediaDevices.getDisplayMedia=function(a){return t(a).then(r=>{const n=a.video&&a.video.width,o=a.video&&a.video.height,s=a.video&&a.video.frameRate;return a.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:r,maxFrameRate:s||3}},n&&(a.video.mandatory.maxWidth=n),o&&(a.video.mandatory.maxHeight=o),e.navigator.mediaDevices.getUserMedia(a)})}}}function Zt1(e){e.MediaStream=e.MediaStream||e.webkitMediaStream}function Gt1(e){if(typeof e=="object"&&e.RTCPeerConnection&&!("ontrack"in e.RTCPeerConnection.prototype)){Object.defineProperty(e.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(i){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=i)},enumerable:!0,configurable:!0});const t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=a=>{a.stream.addEventListener("addtrack",r=>{let n;e.RTCPeerConnection.prototype.getReceivers?n=this.getReceivers().find(s=>s.track&&s.track.id===r.track.id):n={track:r.track};const o=new Event("track");o.track=r.track,o.receiver=n,o.transceiver={receiver:n},o.streams=[a.stream],this.dispatchEvent(o)}),a.stream.getTracks().forEach(r=>{let n;e.RTCPeerConnection.prototype.getReceivers?n=this.getReceivers().find(s=>s.track&&s.track.id===r.id):n={track:r};const o=new Event("track");o.track=r,o.receiver=n,o.transceiver={receiver:n},o.streams=[a.stream],this.dispatchEvent(o)})},this.addEventListener("addstream",this._ontrackpoly)),t.apply(this,arguments)}}else Gn(e,"track",t=>(t.transceiver||Object.defineProperty(t,"transceiver",{value:{receiver:t.receiver}}),t))}function Wt1(e){if(typeof e=="object"&&e.RTCPeerConnection&&!("getSenders"in e.RTCPeerConnection.prototype)&&"createDTMFSender"in e.RTCPeerConnection.prototype){const t=function(r,n){return{track:n,get dtmf(){return this._dtmf===void 0&&(n.kind==="audio"?this._dtmf=r.createDTMFSender(n):this._dtmf=null),this._dtmf},_pc:r}};if(!e.RTCPeerConnection.prototype.getSenders){e.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const r=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(s,l){let d=r.apply(this,arguments);return d||(d=t(this,s),this._senders.push(d)),d};const n=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(s){n.apply(this,arguments);const l=this._senders.indexOf(s);l!==-1&&this._senders.splice(l,1)}}const i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(n){this._senders=this._senders||[],i.apply(this,[n]),n.getTracks().forEach(o=>{this._senders.push(t(this,o))})};const a=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(n){this._senders=this._senders||[],a.apply(this,[n]),n.getTracks().forEach(o=>{const s=this._senders.find(l=>l.track===o);s&&this._senders.splice(this._senders.indexOf(s),1)})}}else if(typeof e=="object"&&e.RTCPeerConnection&&"getSenders"in e.RTCPeerConnection.prototype&&"createDTMFSender"in e.RTCPeerConnection.prototype&&e.RTCRtpSender&&!("dtmf"in e.RTCRtpSender.prototype)){const t=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){const a=t.apply(this,[]);return a.forEach(r=>r._pc=this),a},Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function Xt1(e){if(!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){const[a,r,n]=arguments;if(arguments.length>0&&typeof a=="function")return t.apply(this,arguments);if(t.length===0&&(arguments.length===0||typeof a!="function"))return t.apply(this,[]);const o=function(l){const d={};return l.result().forEach(m=>{const u={id:m.id,timestamp:m.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[m.type]||m.type};m.names().forEach(p=>{u[p]=m.stat(p)}),d[u.id]=u}),d},s=function(l){return new Map(Object.keys(l).map(d=>[d,l[d]]))};if(arguments.length>=2){const l=function(d){r(s(o(d)))};return t.apply(this,[l,a])}return new Promise((l,d)=>{t.apply(this,[function(C){l(s(o(C)))},d])}).then(r,n)}}function Yt1(e){if(!(typeof e=="object"&&e.RTCPeerConnection&&e.RTCRtpSender&&e.RTCRtpReceiver))return;if(!("getStats"in e.RTCRtpSender.prototype)){const i=e.RTCPeerConnection.prototype.getSenders;i&&(e.RTCPeerConnection.prototype.getSenders=function(){const n=i.apply(this,[]);return n.forEach(o=>o._pc=this),n});const a=e.RTCPeerConnection.prototype.addTrack;a&&(e.RTCPeerConnection.prototype.addTrack=function(){const n=a.apply(this,arguments);return n._pc=this,n}),e.RTCRtpSender.prototype.getStats=function(){const n=this;return this._pc.getStats().then(o=>wD(o,n.track,!0))}}if(!("getStats"in e.RTCRtpReceiver.prototype)){const i=e.RTCPeerConnection.prototype.getReceivers;i&&(e.RTCPeerConnection.prototype.getReceivers=function(){const r=i.apply(this,[]);return r.forEach(n=>n._pc=this),r}),Gn(e,"track",a=>(a.receiver._pc=a.srcElement,a)),e.RTCRtpReceiver.prototype.getStats=function(){const r=this;return this._pc.getStats().then(n=>wD(n,r.track,!1))}}if(!("getStats"in e.RTCRtpSender.prototype&&"getStats"in e.RTCRtpReceiver.prototype))return;const t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof e.MediaStreamTrack){const a=arguments[0];let r,n,o;return this.getSenders().forEach(s=>{s.track===a&&(r?o=!0:r=s)}),this.getReceivers().forEach(s=>(s.track===a&&(n?o=!0:n=s),s.track===a)),o||r&&n?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):r?r.getStats():n?n.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return t.apply(this,arguments)}}function $t1(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(o=>this._shimmedLocalStreams[o][0])};const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(o,s){if(!s)return t.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const l=t.apply(this,arguments);return this._shimmedLocalStreams[s.id]?this._shimmedLocalStreams[s.id].indexOf(l)===-1&&this._shimmedLocalStreams[s.id].push(l):this._shimmedLocalStreams[s.id]=[s,l],l};const i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(o){this._shimmedLocalStreams=this._shimmedLocalStreams||{},o.getTracks().forEach(d=>{if(this.getSenders().find(m=>m.track===d))throw new DOMException("Track already exists.","InvalidAccessError")});const s=this.getSenders();i.apply(this,arguments);const l=this.getSenders().filter(d=>s.indexOf(d)===-1);this._shimmedLocalStreams[o.id]=[o].concat(l)};const a=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(o){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[o.id],a.apply(this,arguments)};const r=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(o){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},o&&Object.keys(this._shimmedLocalStreams).forEach(s=>{const l=this._shimmedLocalStreams[s].indexOf(o);l!==-1&&this._shimmedLocalStreams[s].splice(l,1),this._shimmedLocalStreams[s].length===1&&delete this._shimmedLocalStreams[s]}),r.apply(this,arguments)}}function qt1(e,t){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&t.version>=65)return $t1(e);const i=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){const C=i.apply(this);return this._reverseStreams=this._reverseStreams||{},C.map(m=>this._reverseStreams[m.id])};const a=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(C){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},C.getTracks().forEach(m=>{if(this.getSenders().find(p=>p.track===m))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[C.id]){const m=new e.MediaStream(C.getTracks());this._streams[C.id]=m,this._reverseStreams[m.id]=C,C=m}a.apply(this,[C])};const r=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(C){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},r.apply(this,[this._streams[C.id]||C]),delete this._reverseStreams[this._streams[C.id]?this._streams[C.id].id:C.id],delete this._streams[C.id]},e.RTCPeerConnection.prototype.addTrack=function(C,m){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const u=[].slice.call(arguments,1);if(u.length!==1||!u[0].getTracks().find(f=>f===C))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find(f=>f.track===C))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const V=this._streams[m.id];if(V)V.addTrack(C),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{const f=new e.MediaStream([C]);this._streams[m.id]=f,this._reverseStreams[f.id]=m,this.addStream(f)}return this.getSenders().find(f=>f.track===C)};function n(d,C){let m=C.sdp;return Object.keys(d._reverseStreams||[]).forEach(u=>{const p=d._reverseStreams[u],V=d._streams[p.id];m=m.replace(new RegExp(V.id,"g"),p.id)}),new RTCSessionDescription({type:C.type,sdp:m})}function o(d,C){let m=C.sdp;return Object.keys(d._reverseStreams||[]).forEach(u=>{const p=d._reverseStreams[u],V=d._streams[p.id];m=m.replace(new RegExp(p.id,"g"),V.id)}),new RTCSessionDescription({type:C.type,sdp:m})}["createOffer","createAnswer"].forEach(function(d){const C=e.RTCPeerConnection.prototype[d],m={[d](){const u=arguments;return arguments.length&&typeof arguments[0]=="function"?C.apply(this,[V=>{const f=n(this,V);u[0].apply(null,[f])},V=>{u[1]&&u[1].apply(null,V)},arguments[2]]):C.apply(this,arguments).then(V=>n(this,V))}};e.RTCPeerConnection.prototype[d]=m[d]});const s=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){return!arguments.length||!arguments[0].type?s.apply(this,arguments):(arguments[0]=o(this,arguments[0]),s.apply(this,arguments))};const l=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get(){const d=l.get.apply(this);return d.type===""?d:n(this,d)}}),e.RTCPeerConnection.prototype.removeTrack=function(C){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!C._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(!(C._pc===this))throw new DOMException("Sender was not created by this connection.","InvalidAccessError");this._streams=this._streams||{};let u;Object.keys(this._streams).forEach(p=>{this._streams[p].getTracks().find(f=>C.track===f)&&(u=this._streams[p])}),u&&(u.getTracks().length===1?this.removeStream(this._reverseStreams[u.id]):u.removeTrack(C.track),this.dispatchEvent(new Event("negotiationneeded")))}}function vf(e,t){!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),!!e.RTCPeerConnection&&t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(i){const a=e.RTCPeerConnection.prototype[i],r={[i](){return arguments[0]=new(i==="addIceCandidate"?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),a.apply(this,arguments)}};e.RTCPeerConnection.prototype[i]=r[i]})}function Kt1(e,t){Gn(e,"negotiationneeded",i=>{const a=i.target;if(!((t.version<72||a.getConfiguration&&a.getConfiguration().sdpSemantics==="plan-b")&&a.signalingState!=="stable"))return i})}const ED=Object.freeze(Object.defineProperty({__proto__:null,shimMediaStream:Zt1,shimOnTrack:Gt1,shimGetSendersWithDtmf:Wt1,shimGetStats:Xt1,shimSenderReceiverGetStats:Yt1,shimAddTrackRemoveTrackWithNative:$t1,shimAddTrackRemoveTrack:qt1,shimPeerConnection:vf,fixNegotiationNeeded:Kt1,shimGetUserMedia:zt1,shimGetDisplayMedia:Ce2},Symbol.toStringTag,{value:"Module"}));function jt1(e,t){const i=e&&e.navigator,a=e&&e.MediaStreamTrack;if(i.getUserMedia=function(r,n,o){mM("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),i.mediaDevices.getUserMedia(r).then(n,o)},!(t.version>55&&"autoGainControl"in i.mediaDevices.getSupportedConstraints())){const r=function(o,s,l){s in o&&!(l in o)&&(o[l]=o[s],delete o[s])},n=i.mediaDevices.getUserMedia.bind(i.mediaDevices);if(i.mediaDevices.getUserMedia=function(o){return typeof o=="object"&&typeof o.audio=="object"&&(o=JSON.parse(JSON.stringify(o)),r(o.audio,"autoGainControl","mozAutoGainControl"),r(o.audio,"noiseSuppression","mozNoiseSuppression")),n(o)},a&&a.prototype.getSettings){const o=a.prototype.getSettings;a.prototype.getSettings=function(){const s=o.apply(this,arguments);return r(s,"mozAutoGainControl","autoGainControl"),r(s,"mozNoiseSuppression","noiseSuppression"),s}}if(a&&a.prototype.applyConstraints){const o=a.prototype.applyConstraints;a.prototype.applyConstraints=function(s){return this.kind==="audio"&&typeof s=="object"&&(s=JSON.parse(JSON.stringify(s)),r(s,"autoGainControl","mozAutoGainControl"),r(s,"noiseSuppression","mozNoiseSuppression")),o.apply(this,[s])}}}}function me2(e,t){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||!e.navigator.mediaDevices||(e.navigator.mediaDevices.getDisplayMedia=function(a){if(!(a&&a.video)){const r=new DOMException("getDisplayMedia without video constraints is undefined");return r.name="NotFoundError",r.code=8,Promise.reject(r)}return a.video===!0?a.video={mediaSource:t}:a.video.mediaSource=t,e.navigator.mediaDevices.getUserMedia(a)})}function Qt1(e){typeof e=="object"&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function _f(e,t){if(typeof e!="object"||!(e.RTCPeerConnection||e.mozRTCPeerConnection))return;!e.RTCPeerConnection&&e.mozRTCPeerConnection&&(e.RTCPeerConnection=e.mozRTCPeerConnection),t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(r){const n=e.RTCPeerConnection.prototype[r],o={[r](){return arguments[0]=new(r==="addIceCandidate"?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),n.apply(this,arguments)}};e.RTCPeerConnection.prototype[r]=o[r]});const i={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},a=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){const[n,o,s]=arguments;return a.apply(this,[n||null]).then(l=>{if(t.version<53&&!o)try{l.forEach(d=>{d.type=i[d.type]||d.type})}catch(d){if(d.name!=="TypeError")throw d;l.forEach((C,m)=>{l.set(m,Object.assign({},C,{type:i[C.type]||C.type}))})}return l}).then(o,s)}}function Jt1(e){if(!(typeof e=="object"&&e.RTCPeerConnection&&e.RTCRtpSender)||e.RTCRtpSender&&"getStats"in e.RTCRtpSender.prototype)return;const t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){const r=t.apply(this,[]);return r.forEach(n=>n._pc=this),r});const i=e.RTCPeerConnection.prototype.addTrack;i&&(e.RTCPeerConnection.prototype.addTrack=function(){const r=i.apply(this,arguments);return r._pc=this,r}),e.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function e01(e){if(!(typeof e=="object"&&e.RTCPeerConnection&&e.RTCRtpSender)||e.RTCRtpSender&&"getStats"in e.RTCRtpReceiver.prototype)return;const t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){const a=t.apply(this,[]);return a.forEach(r=>r._pc=this),a}),Gn(e,"track",i=>(i.receiver._pc=i.srcElement,i)),e.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function t01(e){!e.RTCPeerConnection||"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(i){mM("removeStream","removeTrack"),this.getSenders().forEach(a=>{a.track&&i.getTracks().includes(a.track)&&this.removeTrack(a)})})}function i01(e){e.DataChannel&&!e.RTCDataChannel&&(e.RTCDataChannel=e.DataChannel)}function a01(e){if(!(typeof e=="object"&&e.RTCPeerConnection))return;const t=e.RTCPeerConnection.prototype.addTransceiver;t&&(e.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let a=arguments[1]&&arguments[1].sendEncodings;a===void 0&&(a=[]),a=[...a];const r=a.length>0;r&&a.forEach(o=>{if("rid"in o&&!/^[a-z0-9]{0,16}$/i.test(o.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in o&&!(parseFloat(o.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in o&&!(parseFloat(o.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});const n=t.apply(this,arguments);if(r){const{sender:o}=n,s=o.getParameters();(!("encodings"in s)||s.encodings.length===1&&Object.keys(s.encodings[0]).length===0)&&(s.encodings=a,o.sendEncodings=a,this.setParametersPromises.push(o.setParameters(s).then(()=>{delete o.sendEncodings}).catch(()=>{delete o.sendEncodings})))}return n})}function r01(e){if(!(typeof e=="object"&&e.RTCRtpSender))return;const t=e.RTCRtpSender.prototype.getParameters;t&&(e.RTCRtpSender.prototype.getParameters=function(){const a=t.apply(this,arguments);return"encodings"in a||(a.encodings=[].concat(this.sendEncodings||[{}])),a})}function n01(e){if(!(typeof e=="object"&&e.RTCPeerConnection))return;const t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>t.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):t.apply(this,arguments)}}function o01(e){if(!(typeof e=="object"&&e.RTCPeerConnection))return;const t=e.RTCPeerConnection.prototype.createAnswer;e.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>t.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):t.apply(this,arguments)}}const PD=Object.freeze(Object.defineProperty({__proto__:null,shimOnTrack:Qt1,shimPeerConnection:_f,shimSenderGetStats:Jt1,shimReceiverGetStats:e01,shimRemoveStream:t01,shimRTCDataChannel:i01,shimAddTransceiver:a01,shimGetParameters:r01,shimCreateOffer:n01,shimCreateAnswer:o01,shimGetUserMedia:jt1,shimGetDisplayMedia:me2},Symbol.toStringTag,{value:"Module"}));function s01(e){if(!(typeof e!="object"||!e.RTCPeerConnection)){if("getLocalStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in e.RTCPeerConnection.prototype)){const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addStream=function(a){this._localStreams||(this._localStreams=[]),this._localStreams.includes(a)||this._localStreams.push(a),a.getAudioTracks().forEach(r=>t.call(this,r,a)),a.getVideoTracks().forEach(r=>t.call(this,r,a))},e.RTCPeerConnection.prototype.addTrack=function(a,...r){return r&&r.forEach(n=>{this._localStreams?this._localStreams.includes(n)||this._localStreams.push(n):this._localStreams=[n]}),t.apply(this,arguments)}}"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(i){this._localStreams||(this._localStreams=[]);const a=this._localStreams.indexOf(i);if(a===-1)return;this._localStreams.splice(a,1);const r=i.getTracks();this.getSenders().forEach(n=>{r.includes(n.track)&&this.removeTrack(n)})})}}function l01(e){if(!(typeof e!="object"||!e.RTCPeerConnection)&&("getRemoteStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in e.RTCPeerConnection.prototype))){Object.defineProperty(e.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(i){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=i),this.addEventListener("track",this._onaddstreampoly=a=>{a.streams.forEach(r=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(r))return;this._remoteStreams.push(r);const n=new Event("addstream");n.stream=r,this.dispatchEvent(n)})})}});const t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){const a=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(r){r.streams.forEach(n=>{if(a._remoteStreams||(a._remoteStreams=[]),a._remoteStreams.indexOf(n)>=0)return;a._remoteStreams.push(n);const o=new Event("addstream");o.stream=n,a.dispatchEvent(o)})}),t.apply(a,arguments)}}}function c01(e){if(typeof e!="object"||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype,i=t.createOffer,a=t.createAnswer,r=t.setLocalDescription,n=t.setRemoteDescription,o=t.addIceCandidate;t.createOffer=function(d,C){const m=arguments.length>=2?arguments[2]:arguments[0],u=i.apply(this,[m]);return C?(u.then(d,C),Promise.resolve()):u},t.createAnswer=function(d,C){const m=arguments.length>=2?arguments[2]:arguments[0],u=a.apply(this,[m]);return C?(u.then(d,C),Promise.resolve()):u};let s=function(l,d,C){const m=r.apply(this,[l]);return C?(m.then(d,C),Promise.resolve()):m};t.setLocalDescription=s,s=function(l,d,C){const m=n.apply(this,[l]);return C?(m.then(d,C),Promise.resolve()):m},t.setRemoteDescription=s,s=function(l,d,C){const m=o.apply(this,[l]);return C?(m.then(d,C),Promise.resolve()):m},t.addIceCandidate=s}function d01(e){const t=e&&e.navigator;if(t.mediaDevices&&t.mediaDevices.getUserMedia){const i=t.mediaDevices,a=i.getUserMedia.bind(i);t.mediaDevices.getUserMedia=r=>a(C01(r))}!t.getUserMedia&&t.mediaDevices&&t.mediaDevices.getUserMedia&&(t.getUserMedia=function(a,r,n){t.mediaDevices.getUserMedia(a).then(r,n)}.bind(t))}function C01(e){return e&&e.video!==void 0?Object.assign({},e,{video:Bt1(e.video)}):e}function m01(e){if(!e.RTCPeerConnection)return;const t=e.RTCPeerConnection;e.RTCPeerConnection=function(a,r){if(a&&a.iceServers){const n=[];for(let o=0;oo.receiver.track.kind==="audio");a.offerToReceiveAudio===!1&&r?r.direction==="sendrecv"?r.setDirection?r.setDirection("sendonly"):r.direction="sendonly":r.direction==="recvonly"&&(r.setDirection?r.setDirection("inactive"):r.direction="inactive"):a.offerToReceiveAudio===!0&&!r&&this.addTransceiver("audio",{direction:"recvonly"}),typeof a.offerToReceiveVideo<"u"&&(a.offerToReceiveVideo=!!a.offerToReceiveVideo);const n=this.getTransceivers().find(o=>o.receiver.track.kind==="video");a.offerToReceiveVideo===!1&&n?n.direction==="sendrecv"?n.setDirection?n.setDirection("sendonly"):n.direction="sendonly":n.direction==="recvonly"&&(n.setDirection?n.setDirection("inactive"):n.direction="inactive"):a.offerToReceiveVideo===!0&&!n&&this.addTransceiver("video",{direction:"recvonly"})}return t.apply(this,arguments)}}function p01(e){typeof e!="object"||e.AudioContext||(e.AudioContext=e.webkitAudioContext)}const ID=Object.freeze(Object.defineProperty({__proto__:null,shimLocalStreamsAPI:s01,shimRemoteStreamsAPI:l01,shimCallbacksAPI:c01,shimGetUserMedia:d01,shimConstraints:C01,shimRTCIceServerUrls:m01,shimTrackEventTransceiver:u01,shimCreateOfferLegacy:h01,shimAudioContext:p01},Symbol.toStringTag,{value:"Module"}));var uM={exports:{}};(function(e){const t={};t.generateIdentifier=function(){return Math.random().toString(36).substring(2,12)},t.localCName=t.generateIdentifier(),t.splitLines=function(i){return i.trim().split(` `).map(a=>a.trim())},t.splitSections=function(i){return i.split(` m=`).map((r,n)=>(n>0?"m="+r:r).trim()+`\r `)},t.getDescription=function(i){const a=t.splitSections(i);return a&&a[0]},t.getMediaSections=function(i){const a=t.splitSections(i);return a.shift(),a},t.matchPrefix=function(i,a){return t.splitLines(i).filter(r=>r.indexOf(a)===0)},t.parseCandidate=function(i){let a;i.indexOf("a=candidate:")===0?a=i.substring(12).split(" "):a=i.substring(10).split(" ");const r={foundation:a[0],component:{1:"rtp",2:"rtcp"}[a[1]]||a[1],protocol:a[2].toLowerCase(),priority:parseInt(a[3],10),ip:a[4],address:a[4],port:parseInt(a[5],10),type:a[7]};for(let n=8;n(i.candidate&&Object.defineProperty(i,"candidate",{value:new e.RTCIceCandidate(i.candidate),writable:"false"}),i))}function Sf(e){!e.RTCIceCandidate||e.RTCIceCandidate&&"relayProtocol"in e.RTCIceCandidate.prototype||Gn(e,"icecandidate",t=>{if(t.candidate){const i=j6.parseCandidate(t.candidate.candidate);i.type==="relay"&&(t.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[i.priority>>24])}return t})}function Cc(e,t){if(!e.RTCPeerConnection)return;"sctp"in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"sctp",{get(){return typeof this._sctp>"u"?null:this._sctp}});const i=function(s){if(!s||!s.sdp)return!1;const l=j6.splitSections(s.sdp);return l.shift(),l.some(d=>{const C=j6.parseMLine(d);return C&&C.kind==="application"&&C.protocol.indexOf("SCTP")!==-1})},a=function(s){const l=s.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(l===null||l.length<2)return-1;const d=parseInt(l[1],10);return d!==d?-1:d},r=function(s){let l=65536;return t.browser==="firefox"&&(t.version<57?s===-1?l=16384:l=2147483637:t.version<60?l=t.version===57?65535:65536:l=2147483637),l},n=function(s,l){let d=65536;t.browser==="firefox"&&t.version===57&&(d=65535);const C=j6.matchPrefix(s.sdp,"a=max-message-size:");return C.length>0?d=parseInt(C[0].substring(19),10):t.browser==="firefox"&&l!==-1&&(d=2147483637),d},o=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,t.browser==="chrome"&&t.version>=76){const{sdpSemantics:l}=this.getConfiguration();l==="plan-b"&&Object.defineProperty(this,"sctp",{get(){return typeof this._sctp>"u"?null:this._sctp},enumerable:!0,configurable:!0})}if(i(arguments[0])){const l=a(arguments[0]),d=r(l),C=n(arguments[0],l);let m;d===0&&C===0?m=Number.POSITIVE_INFINITY:d===0||C===0?m=Math.max(d,C):m=Math.min(d,C);const u={};Object.defineProperty(u,"maxMessageSize",{get(){return m}}),this._sctp=u}return o.apply(this,arguments)}}function mc(e){if(!(e.RTCPeerConnection&&"createDataChannel"in e.RTCPeerConnection.prototype))return;function t(a,r){const n=a.send;a.send=function(){const s=arguments[0],l=s.length||s.size||s.byteLength;if(a.readyState==="open"&&r.sctp&&l>r.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+r.sctp.maxMessageSize+" bytes)");return n.apply(a,arguments)}}const i=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){const r=i.apply(this,arguments);return t(r,this),r},Gn(e,"datachannel",a=>(t(a.channel,a.target),a))}function Df(e){if(!e.RTCPeerConnection||"connectionState"in e.RTCPeerConnection.prototype)return;const t=e.RTCPeerConnection.prototype;Object.defineProperty(t,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(t,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(i){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),i&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=i)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(i=>{const a=t[i];t[i]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=r=>{const n=r.target;if(n._lastConnectionState!==n.connectionState){n._lastConnectionState=n.connectionState;const o=new Event("connectionstatechange",r);n.dispatchEvent(o)}return r},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),a.apply(this,arguments)}})}function yf(e,t){if(!e.RTCPeerConnection||t.browser==="chrome"&&t.version>=71||t.browser==="safari"&&t.version>=605)return;const i=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(r){if(r&&r.sdp&&r.sdp.indexOf(` +`},t.getDirection=function(i,a){const r=t.splitLines(i);for(let n=0;n(i.candidate&&Object.defineProperty(i,"candidate",{value:new e.RTCIceCandidate(i.candidate),writable:"false"}),i))}function Sf(e){!e.RTCIceCandidate||e.RTCIceCandidate&&"relayProtocol"in e.RTCIceCandidate.prototype||Gn(e,"icecandidate",t=>{if(t.candidate){const i=j6.parseCandidate(t.candidate.candidate);i.type==="relay"&&(t.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[i.priority>>24])}return t})}function Cc(e,t){if(!e.RTCPeerConnection)return;"sctp"in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"sctp",{get(){return typeof this._sctp>"u"?null:this._sctp}});const i=function(s){if(!s||!s.sdp)return!1;const l=j6.splitSections(s.sdp);return l.shift(),l.some(d=>{const C=j6.parseMLine(d);return C&&C.kind==="application"&&C.protocol.indexOf("SCTP")!==-1})},a=function(s){const l=s.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(l===null||l.length<2)return-1;const d=parseInt(l[1],10);return d!==d?-1:d},r=function(s){let l=65536;return t.browser==="firefox"&&(t.version<57?s===-1?l=16384:l=2147483637:t.version<60?l=t.version===57?65535:65536:l=2147483637),l},n=function(s,l){let d=65536;t.browser==="firefox"&&t.version===57&&(d=65535);const C=j6.matchPrefix(s.sdp,"a=max-message-size:");return C.length>0?d=parseInt(C[0].substring(19),10):t.browser==="firefox"&&l!==-1&&(d=2147483637),d},o=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,t.browser==="chrome"&&t.version>=76){const{sdpSemantics:l}=this.getConfiguration();l==="plan-b"&&Object.defineProperty(this,"sctp",{get(){return typeof this._sctp>"u"?null:this._sctp},enumerable:!0,configurable:!0})}if(i(arguments[0])){const l=a(arguments[0]),d=r(l),C=n(arguments[0],l);let m;d===0&&C===0?m=Number.POSITIVE_INFINITY:d===0||C===0?m=Math.max(d,C):m=Math.min(d,C);const u={};Object.defineProperty(u,"maxMessageSize",{get(){return m}}),this._sctp=u}return o.apply(this,arguments)}}function mc(e){if(!(e.RTCPeerConnection&&"createDataChannel"in e.RTCPeerConnection.prototype))return;function t(a,r){const n=a.send;a.send=function(){const s=arguments[0],l=s.length||s.size||s.byteLength;if(a.readyState==="open"&&r.sctp&&l>r.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+r.sctp.maxMessageSize+" bytes)");return n.apply(a,arguments)}}const i=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){const r=i.apply(this,arguments);return t(r,this),r},Gn(e,"datachannel",a=>(t(a.channel,a.target),a))}function Df(e){if(!e.RTCPeerConnection||"connectionState"in e.RTCPeerConnection.prototype)return;const t=e.RTCPeerConnection.prototype;Object.defineProperty(t,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(t,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(i){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),i&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=i)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(i=>{const a=t[i];t[i]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=r=>{const n=r.target;if(n._lastConnectionState!==n.connectionState){n._lastConnectionState=n.connectionState;const o=new Event("connectionstatechange",r);n.dispatchEvent(o)}return r},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),a.apply(this,arguments)}})}function yf(e,t){if(!e.RTCPeerConnection||t.browser==="chrome"&&t.version>=71||t.browser==="safari"&&t.version>=605)return;const i=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(r){if(r&&r.sdp&&r.sdp.indexOf(` a=extmap-allow-mixed`)!==-1){const n=r.sdp.split(` `).filter(o=>o.trim()!=="a=extmap-allow-mixed").join(` -`);e.RTCSessionDescription&&r instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:r.type,sdp:n}):r.sdp=n}return i.apply(this,arguments)}}function uc(e,t){if(!(e.RTCPeerConnection&&e.RTCPeerConnection.prototype))return;const i=e.RTCPeerConnection.prototype.addIceCandidate;!i||i.length===0||(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?(t.browser==="chrome"&&t.version<78||t.browser==="firefox"&&t.version<68||t.browser==="safari")&&arguments[0]&&arguments[0].candidate===""?Promise.resolve():i.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}function hc(e,t){if(!(e.RTCPeerConnection&&e.RTCPeerConnection.prototype))return;const i=e.RTCPeerConnection.prototype.setLocalDescription;!i||i.length===0||(e.RTCPeerConnection.prototype.setLocalDescription=function(){let r=arguments[0]||{};if(typeof r!="object"||r.type&&r.sdp)return i.apply(this,arguments);if(r={type:r.type,sdp:r.sdp},!r.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":r.type="offer";break;default:r.type="answer";break}return r.sdp||r.type!=="offer"&&r.type!=="answer"?i.apply(this,[r]):(r.type==="offer"?this.createOffer:this.createAnswer).apply(this).then(o=>i.apply(this,[o]))})}const ue2=Object.freeze(Object.defineProperty({__proto__:null,shimRTCIceCandidate:dc,shimRTCIceCandidateRelayProtocol:Sf,shimMaxMessageSize:Cc,shimSendThrowTypeError:mc,shimConnectionState:Df,removeExtmapAllowMixed:yf,shimAddIceCandidateNullOrEmpty:uc,shimParameterlessSetLocalDescription:hc},Symbol.toStringTag,{value:"Module"}));function he2({window:e}={},t={shimChrome:!0,shimFirefox:!0,shimSafari:!0}){const i=kt1,a=ce2(e),r={browserDetails:a,commonShim:ue2,extractVersion:cc,disableLog:se2,disableWarnings:le2,sdp:me2};switch(a.browser){case"chrome":if(!ED||!vf||!t.shimChrome)return i("Chrome shim is not included in this adapter release."),r;if(a.version===null)return i("Chrome shim can not determine version, not shimming."),r;i("adapter.js shimming chrome."),r.browserShim=ED,uc(e,a),hc(e),zt1(e,a),Zt1(e),vf(e,a),Gt1(e),qt1(e,a),Wt1(e),Xt1(e),Yt1(e),Kt1(e,a),dc(e),Sf(e),Df(e),Cc(e,a),mc(e),yf(e,a);break;case"firefox":if(!PD||!_f||!t.shimFirefox)return i("Firefox shim is not included in this adapter release."),r;i("adapter.js shimming firefox."),r.browserShim=PD,uc(e,a),hc(e),jt1(e,a),_f(e,a),Qt1(e),t01(e),Jt1(e),e01(e),i01(e),a01(e),r01(e),n01(e),o01(e),dc(e),Df(e),Cc(e,a),mc(e);break;case"safari":if(!ID||!t.shimSafari)return i("Safari shim is not included in this adapter release."),r;i("adapter.js shimming safari."),r.browserShim=ID,uc(e,a),hc(e),m01(e),h01(e),c01(e),s01(e),l01(e),u01(e),d01(e),p01(e),dc(e),Sf(e),Cc(e,a),mc(e),yf(e,a);break;default:i("Unsupported browser!");break}return r}const pe2=he2({window:typeof window>"u"?void 0:window});class fe2{constructor(t,i,a,r,n,o=[],s,l,d){S1(this,"id");S1(this,"consumerId");S1(this,"stream");S1(this,"status");S1(this,"ended");S1(this,"signaller");S1(this,"peerConnection");S1(this,"availableICEIPs");S1(this,"selectedICEIPs");S1(this,"rtcConfiguration");S1(this,"onTrackAdded");S1(this,"onNewIceRemoteAddress");S1(this,"onClose");this.id=t,this.consumerId=i,this.stream=a,this.onTrackAdded=s,this.onNewIceRemoteAddress=l,this.onClose=d,this.status="",this.signaller=r,this.rtcConfiguration=n,this.ended=!1,this.availableICEIPs=[],this.selectedICEIPs=o,this.peerConnection=this.createRTCPeerConnection(n),this.updateStatus("[WebRTC] [Session] Creating Session...")}hasEnded(){return this.ended}isConnected(){return this.peerConnection.connectionState=="connected"}updateStatus(t){this.status=t}createRTCPeerConnection(t){console.debug("[WebRTC] [Session] Creating RTCPeerConnection");const i=new RTCPeerConnection(t);return i.addTransceiver("video",{direction:"recvonly"}),this.ended=!1,i.addEventListener("negotiationneeded",this.onNegotiationNeeded.bind(this)),i.addEventListener("track",this.onTrackAddedCallback.bind(this)),i.addEventListener("icecandidate",this.onIceCandidate.bind(this)),i.addEventListener("icecandidateerror",this.onIceCandidateError.bind(this)),i.addEventListener("iceconnectionstatechange",this.onIceConnectionStateChange.bind(this)),i.addEventListener("connectionstatechange",this.onConnectionStateChange.bind(this)),i.addEventListener("signalingstatechange",this.onSignalingStateChange.bind(this)),i.addEventListener("icegatheringstatechange",this.onIceGatheringStateChange.bind(this)),i}onIncomingSDP(t){this.peerConnection.setRemoteDescription(t).then(()=>{console.debug(`[WebRTC] [Session] Remote description set to ${JSON.stringify(t,null,4)}`),this.onRemoteDescriptionSet()}).catch(i=>console.error(`[WebRTC] [Session] Failed setting remote description ${t}. Reason: ${i}`))}onRemoteDescriptionSet(){this.peerConnection.createAnswer().then(t=>{console.debug(`[WebRTC] [Session] SDP Answer created as: ${JSON.stringify(t,null,4)}`),this.onAnswerCreated(t)}).catch(t=>console.error(`[WebRTC] [Session] Failed creating description answer. Reason: ${t}`))}onAnswerCreated(t){this.peerConnection.setLocalDescription(t).then(()=>{console.debug(`[WebRTC] [Session] Local description set as${JSON.stringify(t,null,4)}`),this.onLocalDescriptionSet()}).catch(function(i){console.error(`[WebRTC] [Session] Failed setting local description. Reason: ${i}`)})}onLocalDescriptionSet(){this.peerConnection.localDescription!==null&&this.signaller.sendMediaNegotiation(this.id,this.consumerId,this.stream.id,this.peerConnection.localDescription)}onIncomingICE(t){const i=/\b(?:\d{1,3}\.){3}\d{1,3}\b/g,r=(n=>{const o=n.match(i);return o==null?void 0:o.find(s=>!s.includes(":"))})(t.candidate);if(r&&!this.availableICEIPs.includes(r)&&this.onNewIceRemoteAddress&&(this.availableICEIPs.push(r),this.onNewIceRemoteAddress(this.availableICEIPs)),t.candidate&&Array.isArray(this.selectedICEIPs)&&!this.selectedICEIPs.isEmpty()&&!this.selectedICEIPs.some(n=>t.candidate.includes(n))){console.debug(`[WebRTC] [Session] ICE candidate ignored: ${JSON.stringify(t,null,4)}`);return}this.peerConnection.addIceCandidate(t).then(()=>console.debug(`[WebRTC] [Session] ICE candidate added: ${JSON.stringify(t,null,4)}`)).catch(n=>console.error(`[WebRTC] [Session] Failed adding ICE candidate ${t}. Reason: ${n}`))}onIceCandidate(t){!t.candidate||this.signaller.sendIceNegotiation(this.id,this.consumerId,this.stream.id,t.candidate)}onIceCandidateError(t){console.debug(`[WebRTC] [Session] ICE Candidate "${t.url}" negotiation failed`)}onTrackAddedCallback(t){var i;(i=this.onTrackAdded)==null||i.call(this,t)}onNegotiationNeeded(t){console.debug("[WebRTC] [Session] Peer Connection is waiting for negotiation...")}onIceConnectionStateChange(){const t=`ICEConnection state changed to "${this.peerConnection.iceConnectionState}"`;console.debug("[WebRTC] [Session] "+t),this.peerConnection.iceConnectionState==="failed"&&this.peerConnection.restartIce()}onConnectionStateChange(){var i;const t=`RTCPeerConnection state changed to "${this.peerConnection.connectionState}"`;console.debug("[WebRTC] [Session] "+t),this.peerConnection.connectionState==="failed"&&((i=this.onClose)==null||i.call(this,this.id,"PeerConnection failed"),this.end())}onSignalingStateChange(){const t=`Signalling state changed to "${this.peerConnection.iceConnectionState}"`;console.debug("[WebRTC] [Session] "+t)}onIceGatheringStateChange(){this.peerConnection.iceGatheringState==="complete"&&console.debug(`[WebRTC] [Session] ICE gathering completed for session ${this.id}`)}end(){this.endPeerConnection(),this.onTrackAdded=void 0,this.onNewIceRemoteAddress=void 0,this.onClose=void 0,this.ended=!0,console.debug(`[WebRTC] [Session] Session ${this.id} ended.`)}endPeerConnection(){this.peerConnection.removeEventListener("negotiationneeded",this.onNegotiationNeeded.bind(this)),this.peerConnection.removeEventListener("track",this.onTrackAddedCallback.bind(this)),this.peerConnection.removeEventListener("icecandidate",this.onIceCandidate.bind(this)),this.peerConnection.removeEventListener("icecandidateerror",this.onIceCandidateError.bind(this)),this.peerConnection.removeEventListener("iceconnectionstatechange",this.onIceConnectionStateChange.bind(this)),this.peerConnection.removeEventListener("connectionstatechange",this.onConnectionStateChange.bind(this)),this.peerConnection.removeEventListener("signalingstatechange",this.onSignalingStateChange.bind(this)),this.peerConnection.removeEventListener("icegatheringstatechange",this.onIceGatheringStateChange.bind(this)),this.peerConnection.close()}}class Ve2{constructor(t,i,a,r){S1(this,"ws");S1(this,"onOpen");S1(this,"onStatusChange");S1(this,"url");S1(this,"listeners");S1(this,"shouldReconnect");var o;this.onOpen=a,this.onStatusChange=r,this.listeners=new Map,this.shouldReconnect=i,this.url=t;const n=`Connecting to signalling server on ${t}`;console.debug("[WebRTC] [Signaller] "+n),(o=this.onStatusChange)==null||o.call(this,n);try{this.ws=this.connect()}catch(s){console.error(`Could not establish initial connection. ${s}`)}}addEventListener(t,i,a){this.listeners.has(t)||this.listeners.set(t,new Map),this.listeners.get(t).set(i,a),this.ws.addEventListener(t,i,a)}removeEventListener(t,i,a){if(this.ws.removeEventListener(t,i,a),!this.listeners.has(t))return;const r=this.listeners.get(t);if(!r.has(i)){console.warn(`[WebRTC] [Signaller] Failed removing listener named ${i.name} of type "${t}". Reason: not found`);return}const n=r.get(i);a&&n&&a!==n||r.delete(i)}removeAllListeners(t,i){if(!(!this.listeners.size||!this.listeners.has(t))){for(const[a,r]of this.listeners.get(t))this.ws.removeEventListener(t,a,r);i&&this.listeners.delete(t)}}requestConsumerId(t,i){const a=this;this.addEventListener("message",function n(o){try{const s=JSON.parse(o.data);if(s.type!=="answer")return;const l=s.content;if(l.type!=="peerId")return;console.debug("[WebRTC] [Signaller] Message accepted from requestConsumerId:",s),a.removeEventListener("message",n);const d=l.content.id;i==null||i(`Consumer Id arrived: ${d}`),t(d)}catch(s){const l=`Failed receiving PeerId Answer Message. Error: ${s}. Data: ${o.data}`;console.error("[WebRTC] [Signaller] "+l),i==null||i(l)}});const r={type:"question",content:{type:"peerId"}};try{this.ws.send(JSON.stringify(r)),console.debug("[WebRTC] [Signaller] Message sent:",r),i==null||i("Consumer Id requested, waiting answer...")}catch(n){const o=`Failed requesting peer id. Reason: ${n}`;console.error("[WebRTC] [Signaller] "+o),i==null||i(o)}}isConnected(){return this.ws.readyState===this.ws.OPEN}requestStreams(t){const i={type:"question",content:{type:"availableStreams"}};try{if(this.ws.readyState!==this.ws.OPEN)return;this.ws.send(JSON.stringify(i)),console.debug("[WebRTC] [Signaller] Message sent:",i),t==null||t("StreamsAvailable requested")}catch(a){const r=`Failed requesting available streams. Reason: ${a}`;console.error("[WebRTC] [Signaller] "+r),t==null||t(r)}}requestSessionId(t,i,a,r){const n=this;n.addEventListener("message",function s(l){try{const d=JSON.parse(l.data);if(d.type!=="answer")return;const C=d.content;if(C.type!=="startSession")return;console.debug("[WebRTC] [Signaller] Message accepted from requestSessionId:",d);const m=C.content.session_id;if(m===void 0)return;n.removeEventListener("message",s),r==null||r(`Session Id arrived: ${m}`),a(m)}catch(d){const C=`Failed receiving StartSession Answer Message. Error: ${d}. Data: ${l.data}`;console.error("[WebRTC] [Signaller] "+C),r==null||r(C);return}});const o={type:"question",content:{type:"startSession",content:{consumer_id:t,producer_id:i}}};try{this.ws.send(JSON.stringify(o)),console.debug("[WebRTC] [Signaller] Message sent:",o),r==null||r("Session Id requested, waiting answer...")}catch(s){const l=`Failed requesting Session Id. Reason: ${s}`;console.error("[WebRTC] [Signaller] "+l),r==null||r(l)}}sendIceNegotiation(t,i,a,r,n){const o={type:"negotiation",content:{type:"iceNegotiation",content:{session_id:t,consumer_id:i,producer_id:a,ice:r.toJSON()}}};console.debug(`[WebRTC] [Signaller] Sending ICE answer: ${JSON.stringify(o,null,4)}`);try{this.ws.send(JSON.stringify(o)),console.debug("[WebRTC] [Signaller] Message sent:",o),n==null||n("ICE Candidate sent")}catch(s){const l=`Failed sending ICE Candidate. Reason: ${s}`;console.error("[WebRTC] [Signaller] "+l),n==null||n(l)}}sendMediaNegotiation(t,i,a,r,n){const o={type:"negotiation",content:{type:"mediaNegotiation",content:{session_id:t,consumer_id:i,producer_id:a,sdp:r.toJSON()}}};try{this.ws.send(JSON.stringify(o)),console.debug("[WebRTC] [Signaller] Message sent:",o),n==null||n("ICE Candidate sent")}catch(s){const l=`Failed sending SDP. Reason: ${s}`;console.error("[WebRTC] [Signaller] "+l),n==null||n(l)}}parseSessionStartAnswer(t){const i=JSON.parse(t.data);if(i.type!=="answer")return;const a=i.content;if(a.type==="startSession")return a.content.session_id}parseEndSessionQuestion(t,i,a,r,n){console.debug(`[WebRTC] [Signaller] Registering parseEndSessionQuestion for Consumer "${t}", Producer "${i}", Session "${a}", with callbacks:`,r,n);const o=this;this.addEventListener("message",function s(l){try{const d=JSON.parse(l.data);if(d.type!=="question")return;const C=d.content;if(C.type!=="endSession")return;console.debug("[WebRTC] [Signaller] Message accepted from parseEndSessionQuestion:",d);const m=C.content;if(m.consumer_id!==t||m.producer_id!==i||m.session_id!==a)return;o.removeEventListener("message",s);const u=m.reason;n==null||n("EndSession arrived"),r==null||r(a,u)}catch(d){const C=`Failed parsing received Message. Error: ${d}. Data: ${l.data}`;console.error("[WebRTC] [Signaller] "+C),n==null||n(C);return}})}parseNegotiation(t,i,a,r,n,o){console.debug(`[WebRTC] [Signaller] Registering parseNegotiation for Consumer "${t}", Producer "${i}", Session "${a}", with callbacks:`,r,n,o),this.addEventListener("message",s=>{try{const l=JSON.parse(s.data);if(l.type!=="negotiation")return;console.debug("[WebRTC] [Signaller] Message accepted from parseNegotiation:",l);const d=l.content;if(d.content.consumer_id!==t||d.content.producer_id!==i||d.content.session_id!==a)return;switch(d.type){case"iceNegotiation":o==null||o("iceNegotiation arrived"),r==null||r(d.content.ice);break;case"mediaNegotiation":o==null||o("mediaNegotiation arrived"),n==null||n(d.content.sdp);break}}catch(l){const d=`Failed parsing received Message. Error: ${l}. Data: ${s.data}`;console.error("[WebRTC] [Signaller] "+d),o==null||o(d);return}})}parseAvailableStreamsAnswer(t,i){console.debug("[WebRTC] [Signaller] Registering parseAvailableStreamsAnswer with callbacks:",t,i);const a=this;this.addEventListener("message",function r(n){try{const o=JSON.parse(n.data);if(o.type!=="answer")return;const s=o.content;if(s.type!=="availableStreams")return;console.debug("[WebRTC] [Signaller] Message accepted from parseAvailableStreamsAnswer:",o),a.removeEventListener("message",r);const l=s.content;i==null||i("Available Streams arrived"),t==null||t(l)}catch(o){const s=`Failed parsing received Message. Error: ${o}. Data: ${n.data}`;console.error("[WebRTC] [Signaller] "+s),i==null||i(s);return}})}end(t){this.ws.removeEventListener("open",this.onOpenCallback.bind(this)),this.ws.removeEventListener("error",this.onErrorCallback.bind(this)),this.ws.removeEventListener("close",this.onCloseCallback.bind(this)),this.removeAllListeners("open",!1),this.removeAllListeners("error",!1),this.removeAllListeners("close",!1),this.removeAllListeners("message",!1),this.ws.readyState===this.ws.OPEN&&(console.debug(`[WebRTC] [Signaller] Closing WebSocket. Reason: ${t}`),this.ws.close())}connect(){const t=new WebSocket(this.url.toString());t.addEventListener("open",this.onOpenCallback.bind(this)),t.addEventListener("error",this.onErrorCallback.bind(this)),t.addEventListener("close",this.onCloseCallback.bind(this));for(const[i,a]of this.listeners)for(const[r,n]of a)t.addEventListener(i,r,n);return t}reconnect(){var a;const t="Reconnecting to signalling";console.debug("[WebRTC] [Signaller] "+t),(a=this.onStatusChange)==null||a.call(this,t),this.end("reconnect");const i=this.ws;i.onclose=null,i.onopen=null,i.onmessage=null,i.onerror=null;try{this.ws=this.connect()}catch(r){console.error(`[WebRTC] [Signaller] Could not reconnect. ${r}`)}}onOpenCallback(t){var a,r;const i="Signaller Connected";console.debug("[WebRTC] [Signaller] "+i,t),(a=this.onStatusChange)==null||a.call(this,i),(r=this.onOpen)==null||r.call(this,t)}onCloseCallback(t){var a;const i="Signaller connection closed";console.debug("[WebRTC] [Signaller] "+i,t),(a=this.onStatusChange)==null||a.call(this,i),this.shouldReconnect&&setTimeout(()=>{(this.ws.readyState===this.ws.CLOSED||this.ws.readyState===this.ws.CLOSING)&&this.reconnect()},1e3)}onErrorCallback(t){var a;const i="Signaller connection Error";console.debug("[WebRTC] [Signaller] "+i,t),(a=this.onStatusChange)==null||a.call(this,i)}}class OD{constructor(t,i){S1(this,"availableStreams",i1(new Array));S1(this,"availableICEIPs",i1(new Array));S1(this,"mediaStream",i1());S1(this,"signallerStatus",i1("waiting..."));S1(this,"streamStatus",i1("waiting..."));S1(this,"consumerId");S1(this,"streamName");S1(this,"session");S1(this,"rtcConfiguration");S1(this,"selectedICEIPs",[]);S1(this,"hasEnded",!1);S1(this,"signaller");S1(this,"waitingForAvailableStreamsAnswer",!1);S1(this,"waitingForSessionStart",!1);console.debug("[WebRTC] Trying to connect to signalling server."),this.rtcConfiguration=i,this.signaller=new Ve2(t,!0,()=>{this.startConsumer()},a=>this.updateSignallerStatus(a))}close(t){this.stopSession(t),this.signaller.end(t),this.hasEnded=!0}startStream(t,i){return this.selectedICEIPs=i.value,T1(t,(a,r)=>{if((a==null?void 0:a.id)===(r==null?void 0:r.id))return;const n=`Selected stream changed from "${r==null?void 0:r.id}" to "${a==null?void 0:a.id}".`;console.debug("[WebRTC] "+n),r!==void 0&&this.stopSession(n),a!==void 0&&(this.streamName=a.name,this.startSession())}),T1(i,(a,r)=>{if(a===r)return;const n=`Selected IPs changed from "${r}" to "${a}".`;console.debug("[WebRTC] "+n),this.selectedICEIPs=a,this.streamName!==void 0&&this.stopSession(n),this.streamName!==void 0&&this.startSession()}),{availableStreams:this.availableStreams,availableICEIPs:this.availableICEIPs,mediaStream:this.mediaStream,signallerStatus:this.signallerStatus,streamStatus:this.streamStatus}}updateStreamStatus(t){console.debug(`[WebRTC] Stream status updated from "${this.streamStatus.value}" to "${t}"`);const i=new Date().toTimeString().split(" ").first();this.streamStatus.value=`${t} (${i})`}updateSignallerStatus(t){console.debug(`[WebRTC] Signaller status updated from "${this.signallerStatus.value}" to "${t}"`);const i=new Date().toTimeString().split(" ").first();this.signallerStatus.value=`${t} (${i})`}startConsumer(){this.hasEnded=!1,this.consumerId===void 0&&this.signaller.requestConsumerId(t=>{this.consumerId=t},t=>this.updateStreamStatus(t)),this.availableStreams.value=[],this.updateStreamsAvailable()}updateStreamsAvailable(){if(this.waitingForAvailableStreamsAnswer){this.signaller.requestStreams();return}if(this.hasEnded){this.waitingForAvailableStreamsAnswer=!1;return}this.waitingForAvailableStreamsAnswer=!0,window.setTimeout(()=>{!this.waitingForAvailableStreamsAnswer||(this.signaller.parseAvailableStreamsAnswer(t=>{!this.waitingForAvailableStreamsAnswer||(this.waitingForAvailableStreamsAnswer=!1,this.availableStreams.value=t,this.updateStreamsAvailable())}),this.signaller.requestStreams())},1e3)}onTrackAdded(t){var r,n,o,s,l,d;const[i]=t.streams;this.mediaStream.value=i,this.mediaStream.value.getVideoTracks().filter(C=>C.kind==="video").forEach(C=>{if(!("contentHint"in C)){console.error("MediaStreamTrack contentHint attribute not supported.");return}C.contentHint="motion"}),console.debug("[WebRTC] Track added"),console.debug("Event:",t),console.debug("Settings:",(n=(r=t.track).getSettings)==null?void 0:n.call(r)),console.debug("Constraints:",(s=(o=t.track).getConstraints)==null?void 0:s.call(o)),console.debug("Capabilities:",(d=(l=t.track).getCapabilities)==null?void 0:d.call(l))}requestSession(t,i){console.debug("[WebRTC] Requesting stream:",t),this.signaller.requestSessionId(i,t.id,a=>{this.onSessionIdReceived(t,t.id,a)},a=>this.updateStreamStatus(a)),this.hasEnded=!1}startSession(){this.waitingForSessionStart||(this.waitingForSessionStart=!0,window.setTimeout(()=>{if(!this.waitingForSessionStart)return;const t=this.availableStreams.value.find(a=>a.name===this.streamName);if(t===void 0){const a=`Failed to start a new Session with "${this.streamName}". Reason: not available`;console.error("[WebRTC] "+a),this.updateStreamStatus(a),this.waitingForSessionStart=!1,this.startSession();return}const i=`Starting session with producer "${t.id}" ("${this.streamName}")`;if(this.updateStreamStatus(i),console.debug("[WebRTC] "+i),this.consumerId===void 0){const a=`Failed to start a new Session with producer"${t.id}" ("${this.streamName}"). Reason: undefined consumerId`;console.error("[WebRTC] "+a),this.updateStreamStatus(a),this.startConsumer(),this.startSession();return}this.requestSession(t,this.consumerId),this.waitingForSessionStart=!1},1e3))}onSessionClosed(t){this.stopSession(t),this.consumerId=void 0,this.startConsumer(),this.startSession()}onSessionIdReceived(t,i,a){this.session=new fe2(a,this.consumerId,t,this.signaller,this.rtcConfiguration,this.selectedICEIPs,n=>this.onTrackAdded(n),n=>this.availableICEIPs.value=n,(n,o)=>this.onSessionClosed(o)),this.signaller.parseEndSessionQuestion(this.consumerId,i,this.session.id,(n,o)=>{console.debug(`[WebRTC] Session ${n} ended. Reason: ${o}`),this.session=void 0,this.hasEnded=!0},n=>this.updateSignallerStatus(n)),this.signaller.parseNegotiation(this.consumerId,i,this.session.id,this.session.onIncomingICE.bind(this.session),this.session.onIncomingSDP.bind(this.session),n=>this.updateSignallerStatus(n));const r=`Session ${this.session.id} successfully started`;console.debug("[WebRTC] "+r),this.updateStreamStatus(r)}stopSession(t){if(this.session===void 0){console.debug("[WebRTC] Stopping an undefined session, probably it was already stopped?");return}const i=`Stopping session ${this.session.id}. Reason: ${t}`;this.updateStreamStatus(i),console.debug("[WebRTC] "+i),this.session.end(),this.session=void 0,this.hasEnded=!0}}const hM=er("video",()=>{const e=To(),t=QC(),{globalAddress:i,rtcConfiguration:a,webRTCSignallingURI:r}=r5();console.debug("[WebRTC] Using webrtc-adapter for",pe2.browserDetails);const n=R5("cockpit-allowed-stream-ips",[]),o=i1({}),s=new OD(r.val,a),{availableStreams:l}=s.startStream(i1(void 0),n),d=i1([]),C=R5("video-recovery-warning-already-shown",!1),m=q(()=>l.value.map(E=>E.name));T1(n,()=>{Object.keys(o.value).forEach(E=>o.value[E]=void 0)}),setInterval(()=>{Object.keys(o.value).forEach(E=>{if(o.value[E]===void 0)return;const O=o.value[E].webRtcManager.availableICEIPs.filter(F=>!d.value.includes(F));d.value=[...d.value,...O];const z=l.value.find(F=>F.name===E);qs(z,o.value[E].stream)||(console.log(`New stream for '${E}':`),console.log(JSON.stringify(z,null,2)),u(E),o.value[E].stream=z)})},300);const u=E=>{const O=i1(),z=new OD(r.val,a),{mediaStream:F}=z.startStream(O,n);o.value[E]={stream:O,webRtcManager:z,mediaStream:F,mediaRecorder:void 0,timeRecordingStart:void 0},console.debug(`Activated stream '${E}'.`)},p=E=>(o.value[E]===void 0&&u(E),o.value[E]),V=E=>(o.value[E]===void 0&&u(E),o.value[E].mediaStream),f=E=>(o.value[E]===void 0&&u(E),o.value[E].mediaRecorder!==void 0&&o.value[E].mediaRecorder.state==="recording"),M=E=>{o.value[E]===void 0&&u(E),o.value[E].mediaRecorder.stop(),t.pushAlert(new ii(_e.Success,`Stopped recording stream ${E}.`))},H=E=>{if(o.value[E]===void 0&&u(E),m.value.isEmpty()){O2.fire({text:"No streams available.",icon:"error"});return}if(o.value[E].mediaStream===void 0){O2.fire({text:"Media stream not defined.",icon:"error"});return}if(!o.value[E].mediaStream.active){O2.fire({text:"Media stream not yet active. Wait a second and try again.",icon:"error"});return}o.value[E].timeRecordingStart=new Date;const O=o.value[E],z=pt().slice(0,6),F=hn(O.timeRecordingStart,"LLL dd, yyyy - HH\uA789mm\uA789ss O"),J=`${e.missionName||"Cockpit"} (${F}) #${z}`;o.value[E].mediaRecorder=new MediaRecorder(O.mediaStream),A5.logging()||A5.startLogging();const W=O.mediaStream.getVideoTracks()[0],r1=W.getSettings().width||1920,$=W.getSettings().height||1080;o.value[E].mediaRecorder.start(1e3);let t1=-1;o.value[E].mediaRecorder.ondataavailable=async l1=>{t1++;const V1=`${z}_${t1}`;if(await D.getItem(V1)){M(E);return}await D.setItem(V1,l1.data)},o.value[E].mediaRecorder.onstop=async()=>{const l1=[];if(await D.iterate((m1,f1)=>{f1.includes(z)&&l1.push({blob:m1,name:f1})}),l1.length===0){O2.fire({text:"No video recording data found.",icon:"error"});return}const A1=l1.sort((m1,f1)=>{const L1=m1.name.split("_"),e1=f1.name.split("_");return Number(L1[L1.length-1])-Number(e1[e1.length-1])}).map(m1=>m1.blob).reduce((m1,f1)=>new Blob([m1,f1],{type:"video/webm"})),n1=await oe2(A1,Date.now()-O.timeRecordingStart.getTime());R.setItem(`${J}.webm`,n1);const M1=A5.getSlice(A5.currentCockpitLog,O.timeRecordingStart,new Date),X=A5.toAssOverlay(M1,r1,$,O.timeRecordingStart.getTime()),s1=new Blob([X],{type:"text/plain"});R.setItem(`${J}.ass`,s1),o.value[E].mediaRecorder=void 0},t.pushAlert(new ii(_e.Success,`Started recording stream ${E}.`))},g=async E=>{console.debug(`Discarding files from the video recovery database: ${E.join(", ")}`);for(const O of E)await R.removeItem(O)},_=async E=>{if(console.debug(`Downloading files from the video recovery database: ${E.join(", ")}`),E.length===1){const W=await R.getItem(E[0]);if(!W){O2.fire({text:"File not found.",icon:"error"});return}_a.exports.saveAs(W,E[0]);return}const O=new $22(new yt1("application/zip")),z=E.filter(async W=>await R.getItem(W)).map(async W=>{const r1=await R.getItem(W);return{filename:W,file:r1}}),F=await Promise.all(z);for(const{filename:W,file:r1}of F)await O.add(W,new y22(r1));const J=await O.close();_a.exports.saveAs(J,"Cockpit-Video-Recovery.zip")},v=async()=>{const E=[];await D.iterate((O,z)=>{E.push(z)});for(const O of E)await D.removeItem(O)},S=async()=>{let E=0;return await D.iterate(O=>{E+=O.size}),E},y=async E=>{const O=await R.getItem(E);return O?O.size:void 0},D=H4.createInstance({driver:H4.INDEXEDDB,name:"Cockpit - Temporary Video",storeName:"cockpit-temp-video-db",version:1,description:"Database for storing the chunks of an ongoing recording, to be merged afterwards."}),R=H4.createInstance({driver:H4.INDEXEDDB,name:"Cockpit - Video Recovery",storeName:"cockpit-video-recovery-db",version:1,description:"Local backups of Cockpit video recordings to be retrieved in case of failure."});R.length().then(E=>{E!==0&&(C.value||(O2.fire({title:"Download of video recordings",text:`Cockpit has video recordings waiting on the disk storage. +`);e.RTCSessionDescription&&r instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:r.type,sdp:n}):r.sdp=n}return i.apply(this,arguments)}}function uc(e,t){if(!(e.RTCPeerConnection&&e.RTCPeerConnection.prototype))return;const i=e.RTCPeerConnection.prototype.addIceCandidate;!i||i.length===0||(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?(t.browser==="chrome"&&t.version<78||t.browser==="firefox"&&t.version<68||t.browser==="safari")&&arguments[0]&&arguments[0].candidate===""?Promise.resolve():i.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}function hc(e,t){if(!(e.RTCPeerConnection&&e.RTCPeerConnection.prototype))return;const i=e.RTCPeerConnection.prototype.setLocalDescription;!i||i.length===0||(e.RTCPeerConnection.prototype.setLocalDescription=function(){let r=arguments[0]||{};if(typeof r!="object"||r.type&&r.sdp)return i.apply(this,arguments);if(r={type:r.type,sdp:r.sdp},!r.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":r.type="offer";break;default:r.type="answer";break}return r.sdp||r.type!=="offer"&&r.type!=="answer"?i.apply(this,[r]):(r.type==="offer"?this.createOffer:this.createAnswer).apply(this).then(o=>i.apply(this,[o]))})}const he2=Object.freeze(Object.defineProperty({__proto__:null,shimRTCIceCandidate:dc,shimRTCIceCandidateRelayProtocol:Sf,shimMaxMessageSize:Cc,shimSendThrowTypeError:mc,shimConnectionState:Df,removeExtmapAllowMixed:yf,shimAddIceCandidateNullOrEmpty:uc,shimParameterlessSetLocalDescription:hc},Symbol.toStringTag,{value:"Module"}));function pe2({window:e}={},t={shimChrome:!0,shimFirefox:!0,shimSafari:!0}){const i=kt1,a=de2(e),r={browserDetails:a,commonShim:he2,extractVersion:cc,disableLog:le2,disableWarnings:ce2,sdp:ue2};switch(a.browser){case"chrome":if(!ED||!vf||!t.shimChrome)return i("Chrome shim is not included in this adapter release."),r;if(a.version===null)return i("Chrome shim can not determine version, not shimming."),r;i("adapter.js shimming chrome."),r.browserShim=ED,uc(e,a),hc(e),zt1(e,a),Zt1(e),vf(e,a),Gt1(e),qt1(e,a),Wt1(e),Xt1(e),Yt1(e),Kt1(e,a),dc(e),Sf(e),Df(e),Cc(e,a),mc(e),yf(e,a);break;case"firefox":if(!PD||!_f||!t.shimFirefox)return i("Firefox shim is not included in this adapter release."),r;i("adapter.js shimming firefox."),r.browserShim=PD,uc(e,a),hc(e),jt1(e,a),_f(e,a),Qt1(e),t01(e),Jt1(e),e01(e),i01(e),a01(e),r01(e),n01(e),o01(e),dc(e),Df(e),Cc(e,a),mc(e);break;case"safari":if(!ID||!t.shimSafari)return i("Safari shim is not included in this adapter release."),r;i("adapter.js shimming safari."),r.browserShim=ID,uc(e,a),hc(e),m01(e),h01(e),c01(e),s01(e),l01(e),u01(e),d01(e),p01(e),dc(e),Sf(e),Cc(e,a),mc(e),yf(e,a);break;default:i("Unsupported browser!");break}return r}const fe2=pe2({window:typeof window>"u"?void 0:window});class Ve2{constructor(t,i,a,r,n,o=[],s,l,d){S1(this,"id");S1(this,"consumerId");S1(this,"stream");S1(this,"status");S1(this,"ended");S1(this,"signaller");S1(this,"peerConnection");S1(this,"availableICEIPs");S1(this,"selectedICEIPs");S1(this,"rtcConfiguration");S1(this,"onTrackAdded");S1(this,"onNewIceRemoteAddress");S1(this,"onClose");this.id=t,this.consumerId=i,this.stream=a,this.onTrackAdded=s,this.onNewIceRemoteAddress=l,this.onClose=d,this.status="",this.signaller=r,this.rtcConfiguration=n,this.ended=!1,this.availableICEIPs=[],this.selectedICEIPs=o,this.peerConnection=this.createRTCPeerConnection(n),this.updateStatus("[WebRTC] [Session] Creating Session...")}hasEnded(){return this.ended}isConnected(){return this.peerConnection.connectionState=="connected"}updateStatus(t){this.status=t}createRTCPeerConnection(t){console.debug("[WebRTC] [Session] Creating RTCPeerConnection");const i=new RTCPeerConnection(t);return i.addTransceiver("video",{direction:"recvonly"}),this.ended=!1,i.addEventListener("negotiationneeded",this.onNegotiationNeeded.bind(this)),i.addEventListener("track",this.onTrackAddedCallback.bind(this)),i.addEventListener("icecandidate",this.onIceCandidate.bind(this)),i.addEventListener("icecandidateerror",this.onIceCandidateError.bind(this)),i.addEventListener("iceconnectionstatechange",this.onIceConnectionStateChange.bind(this)),i.addEventListener("connectionstatechange",this.onConnectionStateChange.bind(this)),i.addEventListener("signalingstatechange",this.onSignalingStateChange.bind(this)),i.addEventListener("icegatheringstatechange",this.onIceGatheringStateChange.bind(this)),i}onIncomingSDP(t){this.peerConnection.setRemoteDescription(t).then(()=>{console.debug(`[WebRTC] [Session] Remote description set to ${JSON.stringify(t,null,4)}`),this.onRemoteDescriptionSet()}).catch(i=>console.error(`[WebRTC] [Session] Failed setting remote description ${t}. Reason: ${i}`))}onRemoteDescriptionSet(){this.peerConnection.createAnswer().then(t=>{console.debug(`[WebRTC] [Session] SDP Answer created as: ${JSON.stringify(t,null,4)}`),this.onAnswerCreated(t)}).catch(t=>console.error(`[WebRTC] [Session] Failed creating description answer. Reason: ${t}`))}onAnswerCreated(t){this.peerConnection.setLocalDescription(t).then(()=>{console.debug(`[WebRTC] [Session] Local description set as${JSON.stringify(t,null,4)}`),this.onLocalDescriptionSet()}).catch(function(i){console.error(`[WebRTC] [Session] Failed setting local description. Reason: ${i}`)})}onLocalDescriptionSet(){this.peerConnection.localDescription!==null&&this.signaller.sendMediaNegotiation(this.id,this.consumerId,this.stream.id,this.peerConnection.localDescription)}onIncomingICE(t){const i=/\b(?:\d{1,3}\.){3}\d{1,3}\b/g,r=(n=>{const o=n.match(i);return o==null?void 0:o.find(s=>!s.includes(":"))})(t.candidate);if(r&&!this.availableICEIPs.includes(r)&&this.onNewIceRemoteAddress&&(this.availableICEIPs.push(r),this.onNewIceRemoteAddress(this.availableICEIPs)),t.candidate&&Array.isArray(this.selectedICEIPs)&&!this.selectedICEIPs.isEmpty()&&!this.selectedICEIPs.some(n=>t.candidate.includes(n))){console.debug(`[WebRTC] [Session] ICE candidate ignored: ${JSON.stringify(t,null,4)}`);return}this.peerConnection.addIceCandidate(t).then(()=>console.debug(`[WebRTC] [Session] ICE candidate added: ${JSON.stringify(t,null,4)}`)).catch(n=>console.error(`[WebRTC] [Session] Failed adding ICE candidate ${t}. Reason: ${n}`))}onIceCandidate(t){!t.candidate||this.signaller.sendIceNegotiation(this.id,this.consumerId,this.stream.id,t.candidate)}onIceCandidateError(t){console.debug(`[WebRTC] [Session] ICE Candidate "${t.url}" negotiation failed`)}onTrackAddedCallback(t){var i;(i=this.onTrackAdded)==null||i.call(this,t)}onNegotiationNeeded(t){console.debug("[WebRTC] [Session] Peer Connection is waiting for negotiation...")}onIceConnectionStateChange(){const t=`ICEConnection state changed to "${this.peerConnection.iceConnectionState}"`;console.debug("[WebRTC] [Session] "+t),this.peerConnection.iceConnectionState==="failed"&&this.peerConnection.restartIce()}onConnectionStateChange(){var i;const t=`RTCPeerConnection state changed to "${this.peerConnection.connectionState}"`;console.debug("[WebRTC] [Session] "+t),this.peerConnection.connectionState==="failed"&&((i=this.onClose)==null||i.call(this,this.id,"PeerConnection failed"),this.end())}onSignalingStateChange(){const t=`Signalling state changed to "${this.peerConnection.iceConnectionState}"`;console.debug("[WebRTC] [Session] "+t)}onIceGatheringStateChange(){this.peerConnection.iceGatheringState==="complete"&&console.debug(`[WebRTC] [Session] ICE gathering completed for session ${this.id}`)}end(){this.endPeerConnection(),this.onTrackAdded=void 0,this.onNewIceRemoteAddress=void 0,this.onClose=void 0,this.ended=!0,console.debug(`[WebRTC] [Session] Session ${this.id} ended.`)}endPeerConnection(){this.peerConnection.removeEventListener("negotiationneeded",this.onNegotiationNeeded.bind(this)),this.peerConnection.removeEventListener("track",this.onTrackAddedCallback.bind(this)),this.peerConnection.removeEventListener("icecandidate",this.onIceCandidate.bind(this)),this.peerConnection.removeEventListener("icecandidateerror",this.onIceCandidateError.bind(this)),this.peerConnection.removeEventListener("iceconnectionstatechange",this.onIceConnectionStateChange.bind(this)),this.peerConnection.removeEventListener("connectionstatechange",this.onConnectionStateChange.bind(this)),this.peerConnection.removeEventListener("signalingstatechange",this.onSignalingStateChange.bind(this)),this.peerConnection.removeEventListener("icegatheringstatechange",this.onIceGatheringStateChange.bind(this)),this.peerConnection.close()}}class Le2{constructor(t,i,a,r){S1(this,"ws");S1(this,"onOpen");S1(this,"onStatusChange");S1(this,"url");S1(this,"listeners");S1(this,"shouldReconnect");var o;this.onOpen=a,this.onStatusChange=r,this.listeners=new Map,this.shouldReconnect=i,this.url=t;const n=`Connecting to signalling server on ${t}`;console.debug("[WebRTC] [Signaller] "+n),(o=this.onStatusChange)==null||o.call(this,n);try{this.ws=this.connect()}catch(s){console.error(`Could not establish initial connection. ${s}`)}}addEventListener(t,i,a){this.listeners.has(t)||this.listeners.set(t,new Map),this.listeners.get(t).set(i,a),this.ws.addEventListener(t,i,a)}removeEventListener(t,i,a){if(this.ws.removeEventListener(t,i,a),!this.listeners.has(t))return;const r=this.listeners.get(t);if(!r.has(i)){console.warn(`[WebRTC] [Signaller] Failed removing listener named ${i.name} of type "${t}". Reason: not found`);return}const n=r.get(i);a&&n&&a!==n||r.delete(i)}removeAllListeners(t,i){if(!(!this.listeners.size||!this.listeners.has(t))){for(const[a,r]of this.listeners.get(t))this.ws.removeEventListener(t,a,r);i&&this.listeners.delete(t)}}requestConsumerId(t,i){const a=this;this.addEventListener("message",function n(o){try{const s=JSON.parse(o.data);if(s.type!=="answer")return;const l=s.content;if(l.type!=="peerId")return;console.debug("[WebRTC] [Signaller] Message accepted from requestConsumerId:",s),a.removeEventListener("message",n);const d=l.content.id;i==null||i(`Consumer Id arrived: ${d}`),t(d)}catch(s){const l=`Failed receiving PeerId Answer Message. Error: ${s}. Data: ${o.data}`;console.error("[WebRTC] [Signaller] "+l),i==null||i(l)}});const r={type:"question",content:{type:"peerId"}};try{this.ws.send(JSON.stringify(r)),console.debug("[WebRTC] [Signaller] Message sent:",r),i==null||i("Consumer Id requested, waiting answer...")}catch(n){const o=`Failed requesting peer id. Reason: ${n}`;console.error("[WebRTC] [Signaller] "+o),i==null||i(o)}}isConnected(){return this.ws.readyState===this.ws.OPEN}requestStreams(t){const i={type:"question",content:{type:"availableStreams"}};try{if(this.ws.readyState!==this.ws.OPEN)return;this.ws.send(JSON.stringify(i)),console.debug("[WebRTC] [Signaller] Message sent:",i),t==null||t("StreamsAvailable requested")}catch(a){const r=`Failed requesting available streams. Reason: ${a}`;console.error("[WebRTC] [Signaller] "+r),t==null||t(r)}}requestSessionId(t,i,a,r){const n=this;n.addEventListener("message",function s(l){try{const d=JSON.parse(l.data);if(d.type!=="answer")return;const C=d.content;if(C.type!=="startSession")return;console.debug("[WebRTC] [Signaller] Message accepted from requestSessionId:",d);const m=C.content.session_id;if(m===void 0)return;n.removeEventListener("message",s),r==null||r(`Session Id arrived: ${m}`),a(m)}catch(d){const C=`Failed receiving StartSession Answer Message. Error: ${d}. Data: ${l.data}`;console.error("[WebRTC] [Signaller] "+C),r==null||r(C);return}});const o={type:"question",content:{type:"startSession",content:{consumer_id:t,producer_id:i}}};try{this.ws.send(JSON.stringify(o)),console.debug("[WebRTC] [Signaller] Message sent:",o),r==null||r("Session Id requested, waiting answer...")}catch(s){const l=`Failed requesting Session Id. Reason: ${s}`;console.error("[WebRTC] [Signaller] "+l),r==null||r(l)}}sendIceNegotiation(t,i,a,r,n){const o={type:"negotiation",content:{type:"iceNegotiation",content:{session_id:t,consumer_id:i,producer_id:a,ice:r.toJSON()}}};console.debug(`[WebRTC] [Signaller] Sending ICE answer: ${JSON.stringify(o,null,4)}`);try{this.ws.send(JSON.stringify(o)),console.debug("[WebRTC] [Signaller] Message sent:",o),n==null||n("ICE Candidate sent")}catch(s){const l=`Failed sending ICE Candidate. Reason: ${s}`;console.error("[WebRTC] [Signaller] "+l),n==null||n(l)}}sendMediaNegotiation(t,i,a,r,n){const o={type:"negotiation",content:{type:"mediaNegotiation",content:{session_id:t,consumer_id:i,producer_id:a,sdp:r.toJSON()}}};try{this.ws.send(JSON.stringify(o)),console.debug("[WebRTC] [Signaller] Message sent:",o),n==null||n("ICE Candidate sent")}catch(s){const l=`Failed sending SDP. Reason: ${s}`;console.error("[WebRTC] [Signaller] "+l),n==null||n(l)}}parseSessionStartAnswer(t){const i=JSON.parse(t.data);if(i.type!=="answer")return;const a=i.content;if(a.type==="startSession")return a.content.session_id}parseEndSessionQuestion(t,i,a,r,n){console.debug(`[WebRTC] [Signaller] Registering parseEndSessionQuestion for Consumer "${t}", Producer "${i}", Session "${a}", with callbacks:`,r,n);const o=this;this.addEventListener("message",function s(l){try{const d=JSON.parse(l.data);if(d.type!=="question")return;const C=d.content;if(C.type!=="endSession")return;console.debug("[WebRTC] [Signaller] Message accepted from parseEndSessionQuestion:",d);const m=C.content;if(m.consumer_id!==t||m.producer_id!==i||m.session_id!==a)return;o.removeEventListener("message",s);const u=m.reason;n==null||n("EndSession arrived"),r==null||r(a,u)}catch(d){const C=`Failed parsing received Message. Error: ${d}. Data: ${l.data}`;console.error("[WebRTC] [Signaller] "+C),n==null||n(C);return}})}parseNegotiation(t,i,a,r,n,o){console.debug(`[WebRTC] [Signaller] Registering parseNegotiation for Consumer "${t}", Producer "${i}", Session "${a}", with callbacks:`,r,n,o),this.addEventListener("message",s=>{try{const l=JSON.parse(s.data);if(l.type!=="negotiation")return;console.debug("[WebRTC] [Signaller] Message accepted from parseNegotiation:",l);const d=l.content;if(d.content.consumer_id!==t||d.content.producer_id!==i||d.content.session_id!==a)return;switch(d.type){case"iceNegotiation":o==null||o("iceNegotiation arrived"),r==null||r(d.content.ice);break;case"mediaNegotiation":o==null||o("mediaNegotiation arrived"),n==null||n(d.content.sdp);break}}catch(l){const d=`Failed parsing received Message. Error: ${l}. Data: ${s.data}`;console.error("[WebRTC] [Signaller] "+d),o==null||o(d);return}})}parseAvailableStreamsAnswer(t,i){console.debug("[WebRTC] [Signaller] Registering parseAvailableStreamsAnswer with callbacks:",t,i);const a=this;this.addEventListener("message",function r(n){try{const o=JSON.parse(n.data);if(o.type!=="answer")return;const s=o.content;if(s.type!=="availableStreams")return;console.debug("[WebRTC] [Signaller] Message accepted from parseAvailableStreamsAnswer:",o),a.removeEventListener("message",r);const l=s.content;i==null||i("Available Streams arrived"),t==null||t(l)}catch(o){const s=`Failed parsing received Message. Error: ${o}. Data: ${n.data}`;console.error("[WebRTC] [Signaller] "+s),i==null||i(s);return}})}end(t){this.ws.removeEventListener("open",this.onOpenCallback.bind(this)),this.ws.removeEventListener("error",this.onErrorCallback.bind(this)),this.ws.removeEventListener("close",this.onCloseCallback.bind(this)),this.removeAllListeners("open",!1),this.removeAllListeners("error",!1),this.removeAllListeners("close",!1),this.removeAllListeners("message",!1),this.ws.readyState===this.ws.OPEN&&(console.debug(`[WebRTC] [Signaller] Closing WebSocket. Reason: ${t}`),this.ws.close())}connect(){const t=new WebSocket(this.url.toString());t.addEventListener("open",this.onOpenCallback.bind(this)),t.addEventListener("error",this.onErrorCallback.bind(this)),t.addEventListener("close",this.onCloseCallback.bind(this));for(const[i,a]of this.listeners)for(const[r,n]of a)t.addEventListener(i,r,n);return t}reconnect(){var a;const t="Reconnecting to signalling";console.debug("[WebRTC] [Signaller] "+t),(a=this.onStatusChange)==null||a.call(this,t),this.end("reconnect");const i=this.ws;i.onclose=null,i.onopen=null,i.onmessage=null,i.onerror=null;try{this.ws=this.connect()}catch(r){console.error(`[WebRTC] [Signaller] Could not reconnect. ${r}`)}}onOpenCallback(t){var a,r;const i="Signaller Connected";console.debug("[WebRTC] [Signaller] "+i,t),(a=this.onStatusChange)==null||a.call(this,i),(r=this.onOpen)==null||r.call(this,t)}onCloseCallback(t){var a;const i="Signaller connection closed";console.debug("[WebRTC] [Signaller] "+i,t),(a=this.onStatusChange)==null||a.call(this,i),this.shouldReconnect&&setTimeout(()=>{(this.ws.readyState===this.ws.CLOSED||this.ws.readyState===this.ws.CLOSING)&&this.reconnect()},1e3)}onErrorCallback(t){var a;const i="Signaller connection Error";console.debug("[WebRTC] [Signaller] "+i,t),(a=this.onStatusChange)==null||a.call(this,i)}}class OD{constructor(t,i){S1(this,"availableStreams",i1(new Array));S1(this,"availableICEIPs",i1(new Array));S1(this,"mediaStream",i1());S1(this,"signallerStatus",i1("waiting..."));S1(this,"streamStatus",i1("waiting..."));S1(this,"consumerId");S1(this,"streamName");S1(this,"session");S1(this,"rtcConfiguration");S1(this,"selectedICEIPs",[]);S1(this,"hasEnded",!1);S1(this,"signaller");S1(this,"waitingForAvailableStreamsAnswer",!1);S1(this,"waitingForSessionStart",!1);console.debug("[WebRTC] Trying to connect to signalling server."),this.rtcConfiguration=i,this.signaller=new Le2(t,!0,()=>{this.startConsumer()},a=>this.updateSignallerStatus(a))}close(t){this.stopSession(t),this.signaller.end(t),this.hasEnded=!0}startStream(t,i){return this.selectedICEIPs=i.value,T1(t,(a,r)=>{if((a==null?void 0:a.id)===(r==null?void 0:r.id))return;const n=`Selected stream changed from "${r==null?void 0:r.id}" to "${a==null?void 0:a.id}".`;console.debug("[WebRTC] "+n),r!==void 0&&this.stopSession(n),a!==void 0&&(this.streamName=a.name,this.startSession())}),T1(i,(a,r)=>{if(a===r)return;const n=`Selected IPs changed from "${r}" to "${a}".`;console.debug("[WebRTC] "+n),this.selectedICEIPs=a,this.streamName!==void 0&&this.stopSession(n),this.streamName!==void 0&&this.startSession()}),{availableStreams:this.availableStreams,availableICEIPs:this.availableICEIPs,mediaStream:this.mediaStream,signallerStatus:this.signallerStatus,streamStatus:this.streamStatus}}updateStreamStatus(t){console.debug(`[WebRTC] Stream status updated from "${this.streamStatus.value}" to "${t}"`);const i=new Date().toTimeString().split(" ").first();this.streamStatus.value=`${t} (${i})`}updateSignallerStatus(t){console.debug(`[WebRTC] Signaller status updated from "${this.signallerStatus.value}" to "${t}"`);const i=new Date().toTimeString().split(" ").first();this.signallerStatus.value=`${t} (${i})`}startConsumer(){this.hasEnded=!1,this.consumerId===void 0&&this.signaller.requestConsumerId(t=>{this.consumerId=t},t=>this.updateStreamStatus(t)),this.availableStreams.value=[],this.updateStreamsAvailable()}updateStreamsAvailable(){if(this.waitingForAvailableStreamsAnswer){this.signaller.requestStreams();return}if(this.hasEnded){this.waitingForAvailableStreamsAnswer=!1;return}this.waitingForAvailableStreamsAnswer=!0,window.setTimeout(()=>{!this.waitingForAvailableStreamsAnswer||(this.signaller.parseAvailableStreamsAnswer(t=>{!this.waitingForAvailableStreamsAnswer||(this.waitingForAvailableStreamsAnswer=!1,this.availableStreams.value=t,this.updateStreamsAvailable())}),this.signaller.requestStreams())},1e3)}onTrackAdded(t){var r,n,o,s,l,d;const[i]=t.streams;this.mediaStream.value=i,this.mediaStream.value.getVideoTracks().filter(C=>C.kind==="video").forEach(C=>{if(!("contentHint"in C)){console.error("MediaStreamTrack contentHint attribute not supported.");return}C.contentHint="motion"}),console.debug("[WebRTC] Track added"),console.debug("Event:",t),console.debug("Settings:",(n=(r=t.track).getSettings)==null?void 0:n.call(r)),console.debug("Constraints:",(s=(o=t.track).getConstraints)==null?void 0:s.call(o)),console.debug("Capabilities:",(d=(l=t.track).getCapabilities)==null?void 0:d.call(l))}requestSession(t,i){console.debug("[WebRTC] Requesting stream:",t),this.signaller.requestSessionId(i,t.id,a=>{this.onSessionIdReceived(t,t.id,a)},a=>this.updateStreamStatus(a)),this.hasEnded=!1}startSession(){this.waitingForSessionStart||(this.waitingForSessionStart=!0,window.setTimeout(()=>{if(!this.waitingForSessionStart)return;const t=this.availableStreams.value.find(a=>a.name===this.streamName);if(t===void 0){const a=`Failed to start a new Session with "${this.streamName}". Reason: not available`;console.error("[WebRTC] "+a),this.updateStreamStatus(a),this.waitingForSessionStart=!1,this.startSession();return}const i=`Starting session with producer "${t.id}" ("${this.streamName}")`;if(this.updateStreamStatus(i),console.debug("[WebRTC] "+i),this.consumerId===void 0){const a=`Failed to start a new Session with producer"${t.id}" ("${this.streamName}"). Reason: undefined consumerId`;console.error("[WebRTC] "+a),this.updateStreamStatus(a),this.startConsumer(),this.startSession();return}this.requestSession(t,this.consumerId),this.waitingForSessionStart=!1},1e3))}onSessionClosed(t){this.stopSession(t),this.consumerId=void 0,this.startConsumer(),this.startSession()}onSessionIdReceived(t,i,a){this.session=new Ve2(a,this.consumerId,t,this.signaller,this.rtcConfiguration,this.selectedICEIPs,n=>this.onTrackAdded(n),n=>this.availableICEIPs.value=n,(n,o)=>this.onSessionClosed(o)),this.signaller.parseEndSessionQuestion(this.consumerId,i,this.session.id,(n,o)=>{console.debug(`[WebRTC] Session ${n} ended. Reason: ${o}`),this.session=void 0,this.hasEnded=!0},n=>this.updateSignallerStatus(n)),this.signaller.parseNegotiation(this.consumerId,i,this.session.id,this.session.onIncomingICE.bind(this.session),this.session.onIncomingSDP.bind(this.session),n=>this.updateSignallerStatus(n));const r=`Session ${this.session.id} successfully started`;console.debug("[WebRTC] "+r),this.updateStreamStatus(r)}stopSession(t){if(this.session===void 0){console.debug("[WebRTC] Stopping an undefined session, probably it was already stopped?");return}const i=`Stopping session ${this.session.id}. Reason: ${t}`;this.updateStreamStatus(i),console.debug("[WebRTC] "+i),this.session.end(),this.session=void 0,this.hasEnded=!0}}const hM=er("video",()=>{const e=To(),t=QC(),{globalAddress:i,rtcConfiguration:a,webRTCSignallingURI:r}=r5();console.debug("[WebRTC] Using webrtc-adapter for",fe2.browserDetails);const n=R5("cockpit-allowed-stream-ips",[]),o=i1({}),s=new OD(r.val,a),{availableStreams:l}=s.startStream(i1(void 0),n),d=i1([]),C=R5("video-recovery-warning-already-shown",!1),m=q(()=>l.value.map(E=>E.name));T1(n,()=>{Object.keys(o.value).forEach(E=>o.value[E]=void 0)}),setInterval(()=>{Object.keys(o.value).forEach(E=>{if(o.value[E]===void 0)return;const O=o.value[E].webRtcManager.availableICEIPs.filter(F=>!d.value.includes(F));d.value=[...d.value,...O];const z=l.value.find(F=>F.name===E);qs(z,o.value[E].stream)||(console.log(`New stream for '${E}':`),console.log(JSON.stringify(z,null,2)),u(E),o.value[E].stream=z)})},300);const u=E=>{const O=i1(),z=new OD(r.val,a),{mediaStream:F}=z.startStream(O,n);o.value[E]={stream:O,webRtcManager:z,mediaStream:F,mediaRecorder:void 0,timeRecordingStart:void 0},console.debug(`Activated stream '${E}'.`)},p=E=>(o.value[E]===void 0&&u(E),o.value[E]),V=E=>(o.value[E]===void 0&&u(E),o.value[E].mediaStream),f=E=>(o.value[E]===void 0&&u(E),o.value[E].mediaRecorder!==void 0&&o.value[E].mediaRecorder.state==="recording"),M=E=>{o.value[E]===void 0&&u(E),o.value[E].mediaRecorder.stop(),t.pushAlert(new ii(_e.Success,`Stopped recording stream ${E}.`))},H=E=>{if(o.value[E]===void 0&&u(E),m.value.isEmpty()){O2.fire({text:"No streams available.",icon:"error"});return}if(o.value[E].mediaStream===void 0){O2.fire({text:"Media stream not defined.",icon:"error"});return}if(!o.value[E].mediaStream.active){O2.fire({text:"Media stream not yet active. Wait a second and try again.",icon:"error"});return}o.value[E].timeRecordingStart=new Date;const O=o.value[E],z=pt().slice(0,6),F=hn(O.timeRecordingStart,"LLL dd, yyyy - HH\uA789mm\uA789ss O"),J=`${e.missionName||"Cockpit"} (${F}) #${z}`;o.value[E].mediaRecorder=new MediaRecorder(O.mediaStream),A5.logging()||A5.startLogging();const W=O.mediaStream.getVideoTracks()[0],r1=W.getSettings().width||1920,$=W.getSettings().height||1080;o.value[E].mediaRecorder.start(1e3);let t1=-1;o.value[E].mediaRecorder.ondataavailable=async l1=>{t1++;const V1=`${z}_${t1}`;if(await D.getItem(V1)){M(E);return}await D.setItem(V1,l1.data)},o.value[E].mediaRecorder.onstop=async()=>{const l1=[];if(await D.iterate((m1,f1)=>{f1.includes(z)&&l1.push({blob:m1,name:f1})}),l1.length===0){O2.fire({text:"No video recording data found.",icon:"error"});return}const A1=l1.sort((m1,f1)=>{const L1=m1.name.split("_"),e1=f1.name.split("_");return Number(L1[L1.length-1])-Number(e1[e1.length-1])}).map(m1=>m1.blob).reduce((m1,f1)=>new Blob([m1,f1],{type:"video/webm"})),n1=await se2(A1,Date.now()-O.timeRecordingStart.getTime());R.setItem(`${J}.webm`,n1);const M1=A5.getSlice(A5.currentCockpitLog,O.timeRecordingStart,new Date),X=A5.toAssOverlay(M1,r1,$,O.timeRecordingStart.getTime()),s1=new Blob([X],{type:"text/plain"});R.setItem(`${J}.ass`,s1),o.value[E].mediaRecorder=void 0},t.pushAlert(new ii(_e.Success,`Started recording stream ${E}.`))},g=async E=>{console.debug(`Discarding files from the video recovery database: ${E.join(", ")}`);for(const O of E)await R.removeItem(O)},_=async E=>{if(console.debug(`Downloading files from the video recovery database: ${E.join(", ")}`),E.length===1){const W=await R.getItem(E[0]);if(!W){O2.fire({text:"File not found.",icon:"error"});return}_a.exports.saveAs(W,E[0]);return}const O=new q22(new yt1("application/zip")),z=E.filter(async W=>await R.getItem(W)).map(async W=>{const r1=await R.getItem(W);return{filename:W,file:r1}}),F=await Promise.all(z);for(const{filename:W,file:r1}of F)await O.add(W,new R22(r1));const J=await O.close();_a.exports.saveAs(J,"Cockpit-Video-Recovery.zip")},v=async()=>{const E=[];await D.iterate((O,z)=>{E.push(z)});for(const O of E)await D.removeItem(O)},S=async()=>{let E=0;return await D.iterate(O=>{E+=O.size}),E},y=async E=>{const O=await R.getItem(E);return O?O.size:void 0},D=H4.createInstance({driver:H4.INDEXEDDB,name:"Cockpit - Temporary Video",storeName:"cockpit-temp-video-db",version:1,description:"Database for storing the chunks of an ongoing recording, to be merged afterwards."}),R=H4.createInstance({driver:H4.INDEXEDDB,name:"Cockpit - Video Recovery",storeName:"cockpit-video-recovery-db",version:1,description:"Local backups of Cockpit video recordings to be retrieved in case of failure."});R.length().then(E=>{E!==0&&(C.value||(O2.fire({title:"Download of video recordings",text:`Cockpit has video recordings waiting on the disk storage. To download or discard those, please go to the video page, in the configuration menu. Remember that those recordings are only available on the device you used to record the videos, and that they take disk space. If you don't need them anymore, you can discard them. - `,icon:"warning"}),C.value=!0))});let N;const w=setInterval(async()=>{if(d.value!==void 0){if(!n.value.isEmpty()){clearInterval(w),clearTimeout(N);return}if(d.value.length>=1){try{if((await kB1(i)).forEach(O=>{const z=d.value.includes(O.ipv4Address),F=n.value.includes(O.ipv4Address);O.interfaceType!=="WIRED"||F||!z||(console.info(`Adding the wired address '${O.ipv4Address}' to the list of allowed ICE IPs.`),n.value.push(O.ipv4Address))}),!n.value.isEmpty()){clearInterval(w),clearTimeout(N);return}}catch(E){console.log(E)}if(N)return;N=setTimeout(()=>{console.info("No ICE IPs selected for the allowed list. Warning user."),O2.fire({html:` + `,icon:"warning"}),C.value=!0))});let N;const w=setInterval(async()=>{if(d.value!==void 0){if(!n.value.isEmpty()){clearInterval(w),clearTimeout(N);return}if(d.value.length>=1){try{if((await BB1(i)).forEach(O=>{const z=d.value.includes(O.ipv4Address),F=n.value.includes(O.ipv4Address);O.interfaceType!=="WIRED"||F||!z||(console.info(`Adding the wired address '${O.ipv4Address}' to the list of allowed ICE IPs.`),n.value.push(O.ipv4Address))}),!n.value.isEmpty()){clearInterval(w),clearTimeout(N);return}}catch(E){console.log(E)}if(N)return;N=setTimeout(()=>{console.info("No ICE IPs selected for the allowed list. Warning user."),O2.fire({html:`

Cockpit detected more than one IP address being used to route the video streaming. This often leads to video stuttering, especially if one of the IPs is from a non-wired connection.


@@ -926,24 +926,24 @@ a=extmap-allow-mixed`)!==-1){const n=r.sdp.split(`
  • 1. Open the video configuration page (Main-menu > Configuration > Video).
  • 2. Select the IP address that should be used for the video streaming.
  • - `,icon:"warning",customClass:{htmlContainer:"text-left"}}),clearInterval(w)},5e3)}}},5e3),x=()=>{const E=[];if(m.value.forEach(O=>{f(O)||(H(O),E.push(O))}),E.isEmpty()){t.pushAlert(new ii(_e.Error,"No streams available to be recorded."));return}t.pushAlert(new ii(_e.Success,`Started recording streams: ${E.join(", ")}.`))},U=()=>{const E=[];if(m.value.forEach(O=>{f(O)&&(M(O),E.push(O))}),E.isEmpty()){t.pushAlert(new ii(_e.Error,"No streams were being recorded."));return}t.pushAlert(new ii(_e.Success,`Stopped recording streams: ${E.join(", ")}.`))};return Y4(it.start_recording_all_streams,kg(x,3e3)),Y4(it.stop_recording_all_streams,kg(U,3e3)),{availableIceIps:d,allowedIceIps:n,namesAvailableStreams:m,videoStoringDB:R,tempVideoChunksDB:D,discardFilesFromVideoDB:g,downloadFilesFromVideoDB:_,clearTemporaryVideoDB:v,temporaryVideoDBSize:S,videoStorageFileSize:y,getMediaStream:V,getStreamData:p,isRecording:f,stopRecording:M,startRecording:H}});function Le2(e,t,i){if(t==null)return e;if(Array.isArray(t))throw new Error("Multiple matches is not implemented");return typeof t=="number"&&~t?P(Y1,null,[P("span",{class:"v-combobox__unmask"},[e.substr(0,t)]),P("span",{class:"v-combobox__mask"},[e.substr(t,i)]),P("span",{class:"v-combobox__unmask"},[e.substr(t+i)])]):e}const He2=k1({autoSelectFirst:{type:[Boolean,String]},delimiters:Array,...n51({filterKeys:["title"]}),...Fe1({hideNoData:!0,returnObject:!0}),...Ta(IH({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...Io({transition:!1})},"VCombobox"),Me2=h2()({name:"VCombobox",props:He2(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,t){var m1,f1;let{emit:i,slots:a}=t;const{t:r}=ir(),n=i1(),o=g2(!1),s=g2(!0),l=g2(!1),d=i1(),C=i1(),m=ue(e,"menu"),u=q({get:()=>m.value,set:L1=>{var e1;m.value&&!L1&&((e1=d.value)==null?void 0:e1.\u03A8openChildren)||(m.value=L1)}}),p=g2(-1);let V=!1;const f=q(()=>{var L1;return(L1=n.value)==null?void 0:L1.color}),M=q(()=>u.value?e.closeText:e.openText),{items:H,transformIn:g,transformOut:_}=De1(e),{textColorClasses:v,textColorStyles:S}=Bi(f),y=ue(e,"modelValue",[],L1=>g(Ft(L1)),L1=>{var Y;const e1=_(L1);return e.multiple?e1:(Y=e1[0])!=null?Y:null}),D=vH(),R=g2(e.multiple?"":(f1=(m1=y.value[0])==null?void 0:m1.title)!=null?f1:""),N=q({get:()=>R.value,set:L1=>{var e1;if(R.value=L1!=null?L1:"",e.multiple||(y.value=[Kr(e,L1)]),L1&&e.multiple&&((e1=e.delimiters)==null?void 0:e1.length)){const Y=L1.split(new RegExp(`(?:${e.delimiters.join("|")})+`));Y.length>1&&(Y.forEach(a1=>{a1=a1.trim(),a1&&n1(Kr(e,a1))}),R.value="")}L1||(p.value=-1),s.value=!L1}}),w=q(()=>typeof e.counterValue=="function"?e.counterValue(y.value):typeof e.counterValue=="number"?e.counterValue:e.multiple?y.value.length:N.value.length);T1(R,L1=>{V?k2(()=>V=!1):o.value&&!u.value&&(u.value=!0),i("update:search",L1)}),T1(y,L1=>{var e1,Y;e.multiple||(R.value=(Y=(e1=L1[0])==null?void 0:e1.title)!=null?Y:"")});const{filteredItems:x,getMatches:U}=o51(e,H,()=>s.value?"":N.value),E=q(()=>e.hideSelected?x.value.filter(L1=>!y.value.some(e1=>e1.value===L1.value)):x.value),O=q(()=>y.value.map(L1=>L1.value)),z=q(()=>{var e1;return(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&N.value===((e1=E.value[0])==null?void 0:e1.title))&&E.value.length>0&&!s.value&&!l.value}),F=q(()=>e.hideNoData&&!H.value.length||e.readonly||(D==null?void 0:D.isReadonly.value)),J=i1(),{onListScroll:W,onListKeydown:r1}=xe1(J,n);function $(L1){V=!0,e.openOnClear&&(u.value=!0)}function t1(){F.value||(u.value=!0)}function l1(L1){F.value||(o.value&&(L1.preventDefault(),L1.stopPropagation()),u.value=!u.value)}function V1(L1){var a1;if(Ux1(L1)||e.readonly||(D==null?void 0:D.isReadonly.value))return;const e1=n.value.selectionStart,Y=y.value.length;if((p.value>-1||["Enter","ArrowDown","ArrowUp"].includes(L1.key))&&L1.preventDefault(),["Enter","ArrowDown"].includes(L1.key)&&(u.value=!0),["Escape"].includes(L1.key)&&(u.value=!1),["Enter","Escape","Tab"].includes(L1.key)&&(z.value&&["Enter","Tab"].includes(L1.key)&&n1(x.value[0]),s.value=!0),L1.key==="ArrowDown"&&z.value&&((a1=J.value)==null||a1.focus("next")),!!e.multiple){if(["Backspace","Delete"].includes(L1.key)){if(p.value<0){L1.key==="Backspace"&&!N.value&&(p.value=Y-1);return}const c1=p.value,H1=y.value[p.value];H1&&!H1.props.disabled&&n1(H1,!1),p.value=c1>=Y-1?Y-2:c1}if(L1.key==="ArrowLeft"){if(p.value<0&&e1>0)return;const c1=p.value>-1?p.value-1:Y-1;y.value[c1]?p.value=c1:(p.value=-1,n.value.setSelectionRange(N.value.length,N.value.length))}if(L1.key==="ArrowRight"){if(p.value<0)return;const c1=p.value+1;y.value[c1]?p.value=c1:(p.value=-1,n.value.setSelectionRange(0,0))}L1.key==="Enter"&&N.value&&(n1(Kr(e,N.value)),N.value="")}}function A1(){var L1;o.value&&(s.value=!0,(L1=n.value)==null||L1.focus())}function n1(L1){let e1=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(e.multiple){const Y=y.value.findIndex(c1=>e.valueComparator(c1.value,L1.value)),a1=e1==null?!~Y:e1;if(~Y){const c1=a1?[...y.value,L1]:[...y.value];c1.splice(Y,1),y.value=c1}else a1&&(y.value=[...y.value,L1]);N.value=""}else{const Y=e1!==!1;y.value=Y?[L1]:[],R.value=Y?L1.title:"",k2(()=>{u.value=!1,s.value=!0})}}function M1(L1){o.value=!0,setTimeout(()=>{l.value=!0})}function X(L1){l.value=!1}function s1(L1){(L1==null||L1===""&&!e.multiple)&&(y.value=[])}return T1(x,L1=>{!L1.length&&e.hideNoData&&(u.value=!1)}),T1(o,(L1,e1)=>{L1||L1===e1||(p.value=-1,u.value=!1,z.value&&!l.value&&!y.value.some(Y=>{let{value:a1}=Y;return a1===E.value[0].value})?n1(E.value[0]):e.multiple&&N.value&&n1(Kr(e,N.value)))}),T1(u,()=>{if(!e.hideSelected&&u.value&&y.value.length){const L1=E.value.findIndex(e1=>y.value.some(Y=>e.valueComparator(Y.value,e1.value)));ze&&window.requestAnimationFrame(()=>{var e1;L1>=0&&((e1=C.value)==null||e1.scrollToIndex(L1))})}}),M2(()=>{const L1=!!(e.chips||a.chip),e1=!!(!e.hideNoData||E.value.length||a["prepend-item"]||a["append-item"]||a["no-data"]),Y=y.value.length>0,a1=kt.filterProps(e);return P(kt,V2({ref:n},a1,{modelValue:N.value,"onUpdate:modelValue":[c1=>N.value=c1,s1],focused:o.value,"onUpdate:focused":c1=>o.value=c1,validationValue:y.externalValue,counterValue:w.value,dirty:Y,class:["v-combobox",{"v-combobox--active-menu":u.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!a.selection,"v-combobox--selecting-index":p.value>-1,[`v-combobox--${e.multiple?"multiple":"single"}`]:!0},e.class],style:e.style,readonly:e.readonly,placeholder:Y?void 0:e.placeholder,"onClick:clear":$,"onMousedown:control":t1,onKeydown:V1}),{...a,default:()=>P(Y1,null,[P(Pe1,V2({ref:d,modelValue:u.value,"onUpdate:modelValue":c1=>u.value=c1,activator:"parent",contentClass:"v-combobox__content",disabled:F.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterLeave:A1},e.menuProps),{default:()=>{var c1;return[e1&&P(Ld,{ref:J,selected:O.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:H1=>H1.preventDefault(),onKeydown:r1,onFocusin:M1,onFocusout:X,onScrollPassive:W,tabindex:"-1",color:(c1=e.itemColor)!=null?c1:e.color},{default:()=>{var H1,_1,P1,O1;return[(H1=a["prepend-item"])==null?void 0:H1.call(a),!E.value.length&&!e.hideNoData&&((P1=(_1=a["no-data"])==null?void 0:_1.call(a))!=null?P1:P(ha,{title:r(e.noDataText)},null)),P(Ue1,{ref:C,renderless:!0,items:E.value},{default:x1=>{var u2,v2;let{item:y1,index:X1,itemRef:j1}=x1;const o2=V2(y1.props,{ref:j1,key:X1,active:z.value&&X1===0?!0:void 0,onClick:()=>n1(y1,null)});return(v2=(u2=a.item)==null?void 0:u2.call(a,{item:y1,index:X1,props:o2}))!=null?v2:P(ha,o2,{prepend:d2=>{let{isSelected:D2}=d2;return P(Y1,null,[e.multiple&&!e.hideSelected?P(Dn,{key:y1.value,modelValue:D2,ripple:!1,tabindex:"-1"},null):void 0,y1.props.prependIcon&&P(Ze,{icon:y1.props.prependIcon},null)])},title:()=>{var d2,D2,y2;return s.value?y1.title:Le2(y1.title,(d2=U(y1))==null?void 0:d2.title,(y2=(D2=N.value)==null?void 0:D2.length)!=null?y2:0)}})}}),(O1=a["append-item"])==null?void 0:O1.call(a)]}})]}}),y.value.map((c1,H1)=>{function _1(y1){y1.stopPropagation(),y1.preventDefault(),n1(c1,!1)}const P1={"onClick:close":_1,onMousedown(y1){y1.preventDefault(),y1.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},O1=L1?!!a.chip:!!a.selection,x1=O1?lH(L1?a.chip({item:c1,index:H1,props:P1}):a.selection({item:c1,index:H1})):void 0;if(!(O1&&!x1))return P("div",{key:c1.value,class:["v-combobox__selection",H1===p.value&&["v-combobox__selection--selected",v.value]],style:H1===p.value?S.value:{}},[L1?a.chip?P(ot,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:c1.title}}},{default:()=>[x1]}):P(fe1,V2({key:"chip",closable:e.closableChips,size:"small",text:c1.title,disabled:c1.props.disabled},P1),null):x1!=null?x1:P("span",{class:"v-combobox__selection-text"},[c1.title,e.multiple&&H1{await s(),await l()});const s=async()=>{var p;const u=[];await t.videoStoringDB.iterate((V,f)=>{u.push({filename:f,size:0})});for(const V of u)V.size=(p=await t.videoStorageFileSize(V.filename))!=null?p:0;r.value=u},l=async()=>{const u=await t.temporaryVideoDBSize();n.value=u},d=async u=>{await t.discardFilesFromVideoDB(u),await s(),o.value=[]},C=async u=>{await t.downloadFilesFromVideoDB(u),await s(),o.value=[]},m=async()=>{await t.clearTemporaryVideoDB(),await l()};return(u,p)=>{const V=k5("tooltip");return C1(),Q1(kn,null,{title:v1(()=>[L2("Video configuration")]),content:v1(()=>[ge2,K("div",Ae2,[P(Me2,{modelValue:B(i),"onUpdate:modelValue":p[0]||(p[0]=f=>de(i)?i.value=f:null),multiple:"",items:B(a),label:"Allowed WebRTC remote IP Addresses",class:"w-full my-3 uri-input",variant:"outlined",chips:"",clearable:"",hint:"IP Addresses of the Vehicle allowed to be used for the WebRTC ICE Routing. Usually, the IP of the tether/cabled interface. Blank means any route. E.g: 192.168.2.2"},null,8,["modelValue","items"])]),r.value.isEmpty()?(C1(),N1("div",ve2,De2)):(C1(),Q1(B(cQ1),{key:1,hoverable:""},{default:v1(()=>[P(B(HQ1),null,{default:v1(()=>[P(B(D7)),P(B(D7),null,{default:v1(()=>[L2("Filename")]),_:1}),P(B(D7),null,{default:v1(()=>[L2("Size")]),_:1}),P(B(D7),null,{default:v1(()=>[o.value.isEmpty()?a2("",!0):(C1(),N1("span",{key:0,class:"text-base rounded-md cursor-pointer hover:text-slate-500/50 mdi mdi-trash-can",onClick:p[1]||(p[1]=f=>d(o.value))}))]),_:1}),P(B(D7),null,{default:v1(()=>[o.value.isEmpty()?a2("",!0):(C1(),N1("span",{key:0,class:"text-base rounded-md cursor-pointer hover:text-slate-500/50 mdi mdi-download",onClick:p[2]||(p[2]=f=>C(o.value))}))]),_:1})]),_:1}),P(B(mQ1),null,{default:v1(()=>[(C1(!0),N1(Y1,null,fe(r.value,f=>(C1(),Q1(B(yQ1),{key:f.filename},{default:v1(()=>[P(B(S7),null,{default:v1(()=>[N2(K("input",{"onUpdate:modelValue":p[3]||(p[3]=M=>o.value=M),value:f.filename,type:"checkbox",class:"w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 rounded focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"},null,8,ye2),[[hC,o.value]])]),_:2},1024),P(B(S7),null,{default:v1(()=>[L2(q1(f.filename),1)]),_:2},1024),P(B(S7),null,{default:v1(()=>[L2(q1(B(r_)(f.size)),1)]),_:2},1024),P(B(S7),null,{default:v1(()=>[o.value.isEmpty()?(C1(),N1("span",{key:0,class:"rounded-md cursor-pointer hover:text-slate-500/50 mdi mdi-trash-can",onClick:M=>d([f.filename])},null,8,Re2)):a2("",!0)]),_:2},1024),P(B(S7),null,{default:v1(()=>[o.value.isEmpty()?(C1(),N1("span",{key:0,class:"rounded-md cursor-pointer hover:text-slate-500/50 mdi mdi-download",onClick:M=>C([f.filename])},null,8,be2)):a2("",!0)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})),n.value>0?N2((C1(),N1("div",{key:2,class:"flex flex-col items-center justify-center p-4 m-4 transition-all rounded-md cursor-pointer bg-slate-600 text-slate-50 hover:bg-slate-500/80",onClick:p[4]||(p[4]=f=>m())},[Ne2,K("span",we2,"Current size: "+q1(B(r_)(n.value)),1)])),[[V,"Remove video files used during the recording. This will not affect already saved videos.",void 0,{bottom:!0}]]):a2("",!0)]),_:1})}}});const Ee2=k1({...F2(),...Ik()},"VLayout"),Pe2=h2()({name:"VLayout",props:Ee2(),setup(e,t){let{slots:i}=t;const{layoutClasses:a,layoutStyles:r,getLayoutItem:n,items:o,layoutRef:s}=Ok(e);return M2(()=>{var l;return P("div",{ref:s,class:[a.value,e.class],style:[r.value,e.style]},[(l=i.default)==null?void 0:l.call(i)])}),{getLayoutItem:n,items:o}}});const Ie2=k1({scrollable:Boolean,...F2(),...T5({tag:"main"})},"VMain"),f01=h2()({name:"VMain",props:Ie2(),setup(e,t){let{slots:i}=t;const{mainStyles:a}=Ck1(),{ssrBootStyles:r}=TH();return M2(()=>P(e.tag,{class:["v-main",{"v-main--scrollable":e.scrollable},e.class],style:[a.value,r.value,e.style]},{default:()=>{var n,o;return[e.scrollable?P("div",{class:"v-main__scroller"},[(n=i.default)==null?void 0:n.call(i)]):(o=i.default)==null?void 0:o.call(i)]}})),{}}});function Oe2(e){let{rootEl:t,isSticky:i,layoutItemStyles:a}=e;const r=g2(!1),n=g2(0),o=q(()=>{const d=typeof r.value=="boolean"?"top":r.value;return[i.value?{top:"auto",bottom:"auto",height:void 0}:void 0,r.value?{[d]:f2(n.value)}:{top:a.value.top}]});ee(()=>{T1(i,d=>{d?window.addEventListener("scroll",l,{passive:!0}):window.removeEventListener("scroll",l)},{immediate:!0})}),xe(()=>{window.removeEventListener("scroll",l)});let s=0;function l(){var f;const d=s>window.scrollY?"up":"down",C=t.value.getBoundingClientRect(),m=parseFloat((f=a.value.top)!=null?f:0),u=window.scrollY-Math.max(0,n.value-m),p=C.height+Math.max(n.value,m)-window.scrollY-window.innerHeight,V=parseFloat(getComputedStyle(t.value).getPropertyValue("--v-body-scroll-y"))||0;C.height0;i--){if(e[i].t===e[i-1].t)continue;const a=UD(t),r=(e[i].d-e[i-1].d)/(e[i].t-e[i-1].t);t+=(r-a)*Math.abs(r),i===e.length-1&&(t*=.5)}return UD(t)*1e3}function Fe2(){const e={};function t(r){Array.from(r.changedTouches).forEach(n=>{var s;((s=e[n.identifier])!=null?s:e[n.identifier]=new kx1(xe2)).push([r.timeStamp,n])})}function i(r){Array.from(r.changedTouches).forEach(n=>{delete e[n.identifier]})}function a(r){var d;const n=(d=e[r])==null?void 0:d.values().reverse();if(!n)throw new Error(`No samples for touch id ${r}`);const o=n[0],s=[],l=[];for(const C of n){if(o[0]-C[0]>Ue2)break;s.push({t:C[0],d:C[1].clientX}),l.push({t:C[0],d:C[1].clientY})}return{x:xD(s),y:xD(l),get direction(){const{x:C,y:m}=this,[u,p]=[Math.abs(C),Math.abs(m)];return u>p&&C>=0?"right":u>p&&C<=0?"left":p>u&&m>=0?"down":p>u&&m<=0?"up":ke2()}}}return{addMovement:t,endTouch:i,getVelocity:a}}function ke2(){throw new Error}function Be2(e){let{isActive:t,isTemporary:i,width:a,touchless:r,position:n}=e;ee(()=>{window.addEventListener("touchstart",H,{passive:!0}),window.addEventListener("touchmove",g,{passive:!1}),window.addEventListener("touchend",_,{passive:!0})}),xe(()=>{window.removeEventListener("touchstart",H),window.removeEventListener("touchmove",g),window.removeEventListener("touchend",_)});const o=q(()=>["left","right"].includes(n.value)),{addMovement:s,endTouch:l,getVelocity:d}=Fe2();let C=!1;const m=g2(!1),u=g2(0),p=g2(0);let V;function f(S,y){return(n.value==="left"?S:n.value==="right"?document.documentElement.clientWidth-S:n.value==="top"?S:n.value==="bottom"?document.documentElement.clientHeight-S:_6())-(y?a.value:0)}function M(S){let y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;const D=n.value==="left"?(S-p.value)/a.value:n.value==="right"?(document.documentElement.clientWidth-S-p.value)/a.value:n.value==="top"?(S-p.value)/a.value:n.value==="bottom"?(document.documentElement.clientHeight-S-p.value)/a.value:_6();return y?Math.max(0,Math.min(1,D)):D}function H(S){if(r.value)return;const y=S.changedTouches[0].clientX,D=S.changedTouches[0].clientY,R=25,N=n.value==="left"?ydocument.documentElement.clientWidth-R:n.value==="top"?Ddocument.documentElement.clientHeight-R:_6(),w=t.value&&(n.value==="left"?ydocument.documentElement.clientWidth-a.value:n.value==="top"?Ddocument.documentElement.clientHeight-a.value:_6());(N||w||t.value&&i.value)&&(C=!0,V=[y,D],p.value=f(o.value?y:D,t.value),u.value=M(o.value?y:D),l(S),s(S))}function g(S){const y=S.changedTouches[0].clientX,D=S.changedTouches[0].clientY;if(C){if(!S.cancelable){C=!1;return}const N=Math.abs(y-V[0]),w=Math.abs(D-V[1]);(o.value?N>w&&N>3:w>N&&w>3)?(m.value=!0,C=!1):(o.value?w:N)>3&&(C=!1)}if(!m.value)return;S.preventDefault(),s(S);const R=M(o.value?y:D,!1);u.value=Math.max(0,Math.min(1,R)),R>1?p.value=f(o.value?y:D,!0):R<0&&(p.value=f(o.value?y:D,!1))}function _(S){if(C=!1,!m.value)return;s(S),m.value=!1;const y=d(S.changedTouches[0].identifier),D=Math.abs(y.x),R=Math.abs(y.y);(o.value?D>R&&D>400:R>D&&R>3)?t.value=y.direction===({left:"right",right:"left",top:"down",bottom:"up"}[n.value]||_6()):t.value=u.value>.5}const v=q(()=>m.value?{transform:n.value==="left"?`translateX(calc(-100% + ${u.value*a.value}px))`:n.value==="right"?`translateX(calc(100% - ${u.value*a.value}px))`:n.value==="top"?`translateY(calc(-100% + ${u.value*a.value}px))`:n.value==="bottom"?`translateY(calc(100% - ${u.value*a.value}px))`:_6(),transition:"none"}:void 0);return{isDragging:m,dragProgress:u,dragStyles:v}}function _6(){throw new Error}const ze2=["start","end","left","right","top","bottom"],Ze2=k1({color:String,disableResizeWatcher:Boolean,disableRouteWatcher:Boolean,expandOnHover:Boolean,floating:Boolean,modelValue:{type:Boolean,default:null},permanent:Boolean,rail:{type:Boolean,default:null},railWidth:{type:[Number,String],default:56},scrim:{type:[Boolean,String],default:!0},image:String,temporary:Boolean,touchless:Boolean,width:{type:[Number,String],default:256},location:{type:String,default:"start",validator:e=>ze2.includes(e)},sticky:Boolean,...Pa(),...F2(),...ik1(),...Xi(),...dk1(),...p0(),...T5({tag:"nav"}),...p5()},"VNavigationDrawer"),Ge2=h2()({name:"VNavigationDrawer",props:Ze2(),emits:{"update:modelValue":e=>!0,"update:rail":e=>!0},setup(e,t){let{attrs:i,emit:a,slots:r}=t;const{isRtl:n}=pi(),{themeClasses:o}=N5(e),{borderClasses:s}=nr(e),{backgroundColorClasses:l,backgroundColorStyles:d}=d0(t2(e,"color")),{elevationClasses:C}=O3(e),{displayClasses:m,mobile:u}=I8(e),{roundedClasses:p}=F0(e),V=X21(),f=ue(e,"modelValue",null,$=>!!$),{ssrBootStyles:M}=TH(),{scopeId:H}=om(),g=i1(),_=g2(!1),v=q(()=>e.rail&&e.expandOnHover&&_.value?Number(e.width):Number(e.rail?e.railWidth:e.width)),S=q(()=>Up(e.location,n.value)),y=q(()=>!e.permanent&&(u.value||e.temporary)),D=q(()=>e.sticky&&!y.value&&S.value!=="bottom");M3(()=>e.expandOnHover&&e.rail!=null,()=>{T1(_,$=>a("update:rail",!$))}),M3(()=>!e.disableResizeWatcher,()=>{T1(y,$=>!e.permanent&&k2(()=>f.value=!$))}),M3(()=>!e.disableRouteWatcher&&!!V,()=>{T1(V.currentRoute,()=>y.value&&(f.value=!1))}),T1(()=>e.permanent,$=>{$&&(f.value=!0)}),B5(()=>{e.modelValue!=null||y.value||(f.value=e.permanent||!u.value)});const{isDragging:R,dragProgress:N,dragStyles:w}=Be2({isActive:f,isTemporary:y,width:v,touchless:t2(e,"touchless"),position:S}),x=q(()=>{const $=y.value?0:e.rail&&e.expandOnHover?Number(e.railWidth):v.value;return R.value?$*N.value:$}),{layoutItemStyles:U,layoutItemScrimStyles:E}=mk1({id:e.name,order:q(()=>parseInt(e.order,10)),position:S,layoutSize:x,elementSize:v,active:q(()=>f.value||R.value),disableTransitions:q(()=>R.value),absolute:q(()=>e.absolute||D.value&&typeof O.value!="string")}),{isStuck:O,stickyStyles:z}=Oe2({rootEl:g,isSticky:D,layoutItemStyles:U}),F=d0(q(()=>typeof e.scrim=="string"?e.scrim:null)),J=q(()=>({...R.value?{opacity:N.value*.2,transition:"none"}:void 0,...E.value}));I0({VList:{bgColor:"transparent"}});function W(){_.value=!0}function r1(){_.value=!1}return M2(()=>{const $=r.image||e.image;return P(Y1,null,[P(e.tag,V2({ref:g,onMouseenter:W,onMouseleave:r1,class:["v-navigation-drawer",`v-navigation-drawer--${S.value}`,{"v-navigation-drawer--expand-on-hover":e.expandOnHover,"v-navigation-drawer--floating":e.floating,"v-navigation-drawer--is-hovering":_.value,"v-navigation-drawer--rail":e.rail,"v-navigation-drawer--temporary":y.value,"v-navigation-drawer--active":f.value,"v-navigation-drawer--sticky":D.value},o.value,l.value,s.value,m.value,C.value,p.value,e.class],style:[d.value,U.value,w.value,M.value,z.value,e.style]},H,i),{default:()=>{var t1,l1,V1,A1;return[$&&P("div",{key:"image",class:"v-navigation-drawer__img"},[r.image?(t1=r.image)==null?void 0:t1.call(r,{image:e.image}):P("img",{src:e.image,alt:""},null)]),r.prepend&&P("div",{class:"v-navigation-drawer__prepend"},[(l1=r.prepend)==null?void 0:l1.call(r)]),P("div",{class:"v-navigation-drawer__content"},[(V1=r.default)==null?void 0:V1.call(r)]),r.append&&P("div",{class:"v-navigation-drawer__append"},[(A1=r.append)==null?void 0:A1.call(r)])]}}),P(q5,{name:"fade-transition"},{default:()=>[y.value&&(R.value||f.value)&&!!e.scrim&&P("div",V2({class:["v-navigation-drawer__scrim",F.backgroundColorClasses.value],style:[J.value,F.backgroundColorStyles.value],onClick:()=>f.value=!1},H),null)]})])}),{isStuck:O}}}),We2=n2({__name:"ConfigurationMenu",setup(e){const t=r5(),i=i1([y_]),{mdAndDown:a}=I8(),r=[{icon:"mdi-book-open-blank-variant",title:"General",component:y_},{icon:"mdi-controller",title:"Joystick",component:oq1},{icon:"mdi-video",title:"Video",component:Te2},{icon:"mdi-script",title:"Logs",component:dq1},{icon:"mdi-bell-ring",title:"Alerts",component:Fz1},{icon:"mdi-dev-to",title:"Development",component:iW1},{icon:"mdi-rocket",title:"Mission",component:mq1}],n=q(()=>t==null?void 0:t.configurationPages);return(o,s)=>(C1(),Q1(st,{width:"100%",height:"100%"},{default:v1(()=>[P(Pe2,null,{default:v1(()=>[P(Ge2,{permanent:"",rail:B(a),"expand-on-hover":B(a),elevation:B(a)?5:0},{default:v1(()=>[P(Ld,{selected:i.value,"onUpdate:selected":s[0]||(s[0]=l=>i.value=l)},{default:v1(()=>[P(ha,{"prepend-icon":"mdi-view-dashboard",title:"Configuration menu"}),P(Qs),(C1(),N1(Y1,null,fe(r,(l,d)=>P(ha,{key:d,"prepend-icon":l.icon,title:l.title,value:l.component},null,8,["prepend-icon","title","value"])),64))]),_:1},8,["selected"]),P(Qs),P(Ld,{selected:i.value,"onUpdate:selected":s[1]||(s[1]=l=>i.value=l)},{default:v1(()=>[(C1(!0),N1(Y1,null,fe(n.value,(l,d)=>(C1(),Q1(ha,{key:d,"prepend-icon":l.icon,title:l.title,value:l.component},null,8,["prepend-icon","title","value"]))),128))]),_:1},8,["selected"])]),_:1},8,["rail","expand-on-hover","elevation"]),P(f01,{scrollable:""},{default:v1(()=>[(C1(),Q1(fn(i.value[0])))]),_:1})]),_:1})]),_:1}))}});var V01={exports:{}};const Xe2=Za1(kn1);(function(e){e.exports=function(t){var i={};function a(r){if(i[r])return i[r].exports;var n=i[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,a),n.l=!0,n.exports}return a.m=t,a.c=i,a.d=function(r,n,o){a.o(r,n)||Object.defineProperty(r,n,{enumerable:!0,get:o})},a.r=function(r){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},a.t=function(r,n){if(n&1&&(r=a(r)),n&8||n&4&&typeof r=="object"&&r&&r.__esModule)return r;var o=Object.create(null);if(a.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:r}),n&2&&typeof r!="string")for(var s in r)a.d(o,s,function(l){return r[l]}.bind(null,s));return o},a.n=function(r){var n=r&&r.__esModule?function(){return r.default}:function(){return r};return a.d(n,"a",n),n},a.o=function(r,n){return Object.prototype.hasOwnProperty.call(r,n)},a.p="",a(a.s="fb15")}({"24fb":function(t,i,a){t.exports=function(o){var s=[];return s.toString=function(){return this.map(function(d){var C=r(d,o);return d[2]?"@media ".concat(d[2]," {").concat(C,"}"):C}).join("")},s.i=function(l,d,C){typeof l=="string"&&(l=[[null,l,""]]);var m={};if(C)for(var u=0;u{const E=[];if(m.value.forEach(O=>{f(O)||(H(O),E.push(O))}),E.isEmpty()){t.pushAlert(new ii(_e.Error,"No streams available to be recorded."));return}t.pushAlert(new ii(_e.Success,`Started recording streams: ${E.join(", ")}.`))},U=()=>{const E=[];if(m.value.forEach(O=>{f(O)&&(M(O),E.push(O))}),E.isEmpty()){t.pushAlert(new ii(_e.Error,"No streams were being recorded."));return}t.pushAlert(new ii(_e.Success,`Stopped recording streams: ${E.join(", ")}.`))};return Y4(it.start_recording_all_streams,kg(x,3e3)),Y4(it.stop_recording_all_streams,kg(U,3e3)),{availableIceIps:d,allowedIceIps:n,namesAvailableStreams:m,videoStoringDB:R,tempVideoChunksDB:D,discardFilesFromVideoDB:g,downloadFilesFromVideoDB:_,clearTemporaryVideoDB:v,temporaryVideoDBSize:S,videoStorageFileSize:y,getMediaStream:V,getStreamData:p,isRecording:f,stopRecording:M,startRecording:H}});function He2(e,t,i){if(t==null)return e;if(Array.isArray(t))throw new Error("Multiple matches is not implemented");return typeof t=="number"&&~t?P(Y1,null,[P("span",{class:"v-combobox__unmask"},[e.substr(0,t)]),P("span",{class:"v-combobox__mask"},[e.substr(t,i)]),P("span",{class:"v-combobox__unmask"},[e.substr(t+i)])]):e}const Me2=k1({autoSelectFirst:{type:[Boolean,String]},delimiters:Array,...n51({filterKeys:["title"]}),...Fe1({hideNoData:!0,returnObject:!0}),...Ta(IH({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...Io({transition:!1})},"VCombobox"),ge2=h2()({name:"VCombobox",props:Me2(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,t){var m1,f1;let{emit:i,slots:a}=t;const{t:r}=ir(),n=i1(),o=g2(!1),s=g2(!0),l=g2(!1),d=i1(),C=i1(),m=ue(e,"menu"),u=q({get:()=>m.value,set:L1=>{var e1;m.value&&!L1&&((e1=d.value)==null?void 0:e1.\u03A8openChildren)||(m.value=L1)}}),p=g2(-1);let V=!1;const f=q(()=>{var L1;return(L1=n.value)==null?void 0:L1.color}),M=q(()=>u.value?e.closeText:e.openText),{items:H,transformIn:g,transformOut:_}=De1(e),{textColorClasses:v,textColorStyles:S}=Bi(f),y=ue(e,"modelValue",[],L1=>g(Ft(L1)),L1=>{var Y;const e1=_(L1);return e.multiple?e1:(Y=e1[0])!=null?Y:null}),D=vH(),R=g2(e.multiple?"":(f1=(m1=y.value[0])==null?void 0:m1.title)!=null?f1:""),N=q({get:()=>R.value,set:L1=>{var e1;if(R.value=L1!=null?L1:"",e.multiple||(y.value=[Kr(e,L1)]),L1&&e.multiple&&((e1=e.delimiters)==null?void 0:e1.length)){const Y=L1.split(new RegExp(`(?:${e.delimiters.join("|")})+`));Y.length>1&&(Y.forEach(a1=>{a1=a1.trim(),a1&&n1(Kr(e,a1))}),R.value="")}L1||(p.value=-1),s.value=!L1}}),w=q(()=>typeof e.counterValue=="function"?e.counterValue(y.value):typeof e.counterValue=="number"?e.counterValue:e.multiple?y.value.length:N.value.length);T1(R,L1=>{V?k2(()=>V=!1):o.value&&!u.value&&(u.value=!0),i("update:search",L1)}),T1(y,L1=>{var e1,Y;e.multiple||(R.value=(Y=(e1=L1[0])==null?void 0:e1.title)!=null?Y:"")});const{filteredItems:x,getMatches:U}=o51(e,H,()=>s.value?"":N.value),E=q(()=>e.hideSelected?x.value.filter(L1=>!y.value.some(e1=>e1.value===L1.value)):x.value),O=q(()=>y.value.map(L1=>L1.value)),z=q(()=>{var e1;return(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&N.value===((e1=E.value[0])==null?void 0:e1.title))&&E.value.length>0&&!s.value&&!l.value}),F=q(()=>e.hideNoData&&!H.value.length||e.readonly||(D==null?void 0:D.isReadonly.value)),J=i1(),{onListScroll:W,onListKeydown:r1}=xe1(J,n);function $(L1){V=!0,e.openOnClear&&(u.value=!0)}function t1(){F.value||(u.value=!0)}function l1(L1){F.value||(o.value&&(L1.preventDefault(),L1.stopPropagation()),u.value=!u.value)}function V1(L1){var a1;if(Ux1(L1)||e.readonly||(D==null?void 0:D.isReadonly.value))return;const e1=n.value.selectionStart,Y=y.value.length;if((p.value>-1||["Enter","ArrowDown","ArrowUp"].includes(L1.key))&&L1.preventDefault(),["Enter","ArrowDown"].includes(L1.key)&&(u.value=!0),["Escape"].includes(L1.key)&&(u.value=!1),["Enter","Escape","Tab"].includes(L1.key)&&(z.value&&["Enter","Tab"].includes(L1.key)&&n1(x.value[0]),s.value=!0),L1.key==="ArrowDown"&&z.value&&((a1=J.value)==null||a1.focus("next")),!!e.multiple){if(["Backspace","Delete"].includes(L1.key)){if(p.value<0){L1.key==="Backspace"&&!N.value&&(p.value=Y-1);return}const c1=p.value,H1=y.value[p.value];H1&&!H1.props.disabled&&n1(H1,!1),p.value=c1>=Y-1?Y-2:c1}if(L1.key==="ArrowLeft"){if(p.value<0&&e1>0)return;const c1=p.value>-1?p.value-1:Y-1;y.value[c1]?p.value=c1:(p.value=-1,n.value.setSelectionRange(N.value.length,N.value.length))}if(L1.key==="ArrowRight"){if(p.value<0)return;const c1=p.value+1;y.value[c1]?p.value=c1:(p.value=-1,n.value.setSelectionRange(0,0))}L1.key==="Enter"&&N.value&&(n1(Kr(e,N.value)),N.value="")}}function A1(){var L1;o.value&&(s.value=!0,(L1=n.value)==null||L1.focus())}function n1(L1){let e1=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(e.multiple){const Y=y.value.findIndex(c1=>e.valueComparator(c1.value,L1.value)),a1=e1==null?!~Y:e1;if(~Y){const c1=a1?[...y.value,L1]:[...y.value];c1.splice(Y,1),y.value=c1}else a1&&(y.value=[...y.value,L1]);N.value=""}else{const Y=e1!==!1;y.value=Y?[L1]:[],R.value=Y?L1.title:"",k2(()=>{u.value=!1,s.value=!0})}}function M1(L1){o.value=!0,setTimeout(()=>{l.value=!0})}function X(L1){l.value=!1}function s1(L1){(L1==null||L1===""&&!e.multiple)&&(y.value=[])}return T1(x,L1=>{!L1.length&&e.hideNoData&&(u.value=!1)}),T1(o,(L1,e1)=>{L1||L1===e1||(p.value=-1,u.value=!1,z.value&&!l.value&&!y.value.some(Y=>{let{value:a1}=Y;return a1===E.value[0].value})?n1(E.value[0]):e.multiple&&N.value&&n1(Kr(e,N.value)))}),T1(u,()=>{if(!e.hideSelected&&u.value&&y.value.length){const L1=E.value.findIndex(e1=>y.value.some(Y=>e.valueComparator(Y.value,e1.value)));ze&&window.requestAnimationFrame(()=>{var e1;L1>=0&&((e1=C.value)==null||e1.scrollToIndex(L1))})}}),M2(()=>{const L1=!!(e.chips||a.chip),e1=!!(!e.hideNoData||E.value.length||a["prepend-item"]||a["append-item"]||a["no-data"]),Y=y.value.length>0,a1=kt.filterProps(e);return P(kt,V2({ref:n},a1,{modelValue:N.value,"onUpdate:modelValue":[c1=>N.value=c1,s1],focused:o.value,"onUpdate:focused":c1=>o.value=c1,validationValue:y.externalValue,counterValue:w.value,dirty:Y,class:["v-combobox",{"v-combobox--active-menu":u.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!a.selection,"v-combobox--selecting-index":p.value>-1,[`v-combobox--${e.multiple?"multiple":"single"}`]:!0},e.class],style:e.style,readonly:e.readonly,placeholder:Y?void 0:e.placeholder,"onClick:clear":$,"onMousedown:control":t1,onKeydown:V1}),{...a,default:()=>P(Y1,null,[P(Pe1,V2({ref:d,modelValue:u.value,"onUpdate:modelValue":c1=>u.value=c1,activator:"parent",contentClass:"v-combobox__content",disabled:F.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterLeave:A1},e.menuProps),{default:()=>{var c1;return[e1&&P(Ld,{ref:J,selected:O.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:H1=>H1.preventDefault(),onKeydown:r1,onFocusin:M1,onFocusout:X,onScrollPassive:W,tabindex:"-1",color:(c1=e.itemColor)!=null?c1:e.color},{default:()=>{var H1,_1,P1,O1;return[(H1=a["prepend-item"])==null?void 0:H1.call(a),!E.value.length&&!e.hideNoData&&((P1=(_1=a["no-data"])==null?void 0:_1.call(a))!=null?P1:P(ha,{title:r(e.noDataText)},null)),P(Ue1,{ref:C,renderless:!0,items:E.value},{default:x1=>{var u2,v2;let{item:y1,index:X1,itemRef:j1}=x1;const o2=V2(y1.props,{ref:j1,key:X1,active:z.value&&X1===0?!0:void 0,onClick:()=>n1(y1,null)});return(v2=(u2=a.item)==null?void 0:u2.call(a,{item:y1,index:X1,props:o2}))!=null?v2:P(ha,o2,{prepend:d2=>{let{isSelected:D2}=d2;return P(Y1,null,[e.multiple&&!e.hideSelected?P(Dn,{key:y1.value,modelValue:D2,ripple:!1,tabindex:"-1"},null):void 0,y1.props.prependIcon&&P(Ze,{icon:y1.props.prependIcon},null)])},title:()=>{var d2,D2,y2;return s.value?y1.title:He2(y1.title,(d2=U(y1))==null?void 0:d2.title,(y2=(D2=N.value)==null?void 0:D2.length)!=null?y2:0)}})}}),(O1=a["append-item"])==null?void 0:O1.call(a)]}})]}}),y.value.map((c1,H1)=>{function _1(y1){y1.stopPropagation(),y1.preventDefault(),n1(c1,!1)}const P1={"onClick:close":_1,onMousedown(y1){y1.preventDefault(),y1.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},O1=L1?!!a.chip:!!a.selection,x1=O1?lH(L1?a.chip({item:c1,index:H1,props:P1}):a.selection({item:c1,index:H1})):void 0;if(!(O1&&!x1))return P("div",{key:c1.value,class:["v-combobox__selection",H1===p.value&&["v-combobox__selection--selected",v.value]],style:H1===p.value?S.value:{}},[L1?a.chip?P(ot,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:c1.title}}},{default:()=>[x1]}):P(fe1,V2({key:"chip",closable:e.closableChips,size:"small",text:c1.title,disabled:c1.props.disabled},P1),null):x1!=null?x1:P("span",{class:"v-combobox__selection-text"},[c1.title,e.multiple&&H1{await s(),await l()});const s=async()=>{var p;const u=[];await t.videoStoringDB.iterate((V,f)=>{u.push({filename:f,size:0})});for(const V of u)V.size=(p=await t.videoStorageFileSize(V.filename))!=null?p:0;r.value=u},l=async()=>{const u=await t.temporaryVideoDBSize();n.value=u},d=async u=>{await t.discardFilesFromVideoDB(u),await s(),o.value=[]},C=async u=>{await t.downloadFilesFromVideoDB(u),await s(),o.value=[]},m=async()=>{await t.clearTemporaryVideoDB(),await l()};return(u,p)=>{const V=k5("tooltip");return C1(),Q1(kn,null,{title:v1(()=>[L2("Video configuration")]),content:v1(()=>[Ae2,K("div",ve2,[P(ge2,{modelValue:B(i),"onUpdate:modelValue":p[0]||(p[0]=f=>de(i)?i.value=f:null),multiple:"",items:B(a),label:"Allowed WebRTC remote IP Addresses",class:"w-full my-3 uri-input",variant:"outlined",chips:"",clearable:"",hint:"IP Addresses of the Vehicle allowed to be used for the WebRTC ICE Routing. Usually, the IP of the tether/cabled interface. Blank means any route. E.g: 192.168.2.2"},null,8,["modelValue","items"])]),r.value.isEmpty()?(C1(),N1("div",_e2,ye2)):(C1(),Q1(B(dQ1),{key:1,hoverable:""},{default:v1(()=>[P(B(MQ1),null,{default:v1(()=>[P(B(D7)),P(B(D7),null,{default:v1(()=>[L2("Filename")]),_:1}),P(B(D7),null,{default:v1(()=>[L2("Size")]),_:1}),P(B(D7),null,{default:v1(()=>[o.value.isEmpty()?a2("",!0):(C1(),N1("span",{key:0,class:"text-base rounded-md cursor-pointer hover:text-slate-500/50 mdi mdi-trash-can",onClick:p[1]||(p[1]=f=>d(o.value))}))]),_:1}),P(B(D7),null,{default:v1(()=>[o.value.isEmpty()?a2("",!0):(C1(),N1("span",{key:0,class:"text-base rounded-md cursor-pointer hover:text-slate-500/50 mdi mdi-download",onClick:p[2]||(p[2]=f=>C(o.value))}))]),_:1})]),_:1}),P(B(uQ1),null,{default:v1(()=>[(C1(!0),N1(Y1,null,fe(r.value,f=>(C1(),Q1(B(RQ1),{key:f.filename},{default:v1(()=>[P(B(S7),null,{default:v1(()=>[N2(K("input",{"onUpdate:modelValue":p[3]||(p[3]=M=>o.value=M),value:f.filename,type:"checkbox",class:"w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 rounded focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"},null,8,Re2),[[hC,o.value]])]),_:2},1024),P(B(S7),null,{default:v1(()=>[L2(q1(f.filename),1)]),_:2},1024),P(B(S7),null,{default:v1(()=>[L2(q1(B(r_)(f.size)),1)]),_:2},1024),P(B(S7),null,{default:v1(()=>[o.value.isEmpty()?(C1(),N1("span",{key:0,class:"rounded-md cursor-pointer hover:text-slate-500/50 mdi mdi-trash-can",onClick:M=>d([f.filename])},null,8,be2)):a2("",!0)]),_:2},1024),P(B(S7),null,{default:v1(()=>[o.value.isEmpty()?(C1(),N1("span",{key:0,class:"rounded-md cursor-pointer hover:text-slate-500/50 mdi mdi-download",onClick:M=>C([f.filename])},null,8,Ne2)):a2("",!0)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})),n.value>0?N2((C1(),N1("div",{key:2,class:"flex flex-col items-center justify-center p-4 m-4 transition-all rounded-md cursor-pointer bg-slate-600 text-slate-50 hover:bg-slate-500/80",onClick:p[4]||(p[4]=f=>m())},[we2,K("span",Te2,"Current size: "+q1(B(r_)(n.value)),1)])),[[V,"Remove video files used during the recording. This will not affect already saved videos.",void 0,{bottom:!0}]]):a2("",!0)]),_:1})}}});const Pe2=k1({...F2(),...Ik()},"VLayout"),Ie2=h2()({name:"VLayout",props:Pe2(),setup(e,t){let{slots:i}=t;const{layoutClasses:a,layoutStyles:r,getLayoutItem:n,items:o,layoutRef:s}=Ok(e);return M2(()=>{var l;return P("div",{ref:s,class:[a.value,e.class],style:[r.value,e.style]},[(l=i.default)==null?void 0:l.call(i)])}),{getLayoutItem:n,items:o}}});const Oe2=k1({scrollable:Boolean,...F2(),...T5({tag:"main"})},"VMain"),f01=h2()({name:"VMain",props:Oe2(),setup(e,t){let{slots:i}=t;const{mainStyles:a}=Ck1(),{ssrBootStyles:r}=TH();return M2(()=>P(e.tag,{class:["v-main",{"v-main--scrollable":e.scrollable},e.class],style:[a.value,r.value,e.style]},{default:()=>{var n,o;return[e.scrollable?P("div",{class:"v-main__scroller"},[(n=i.default)==null?void 0:n.call(i)]):(o=i.default)==null?void 0:o.call(i)]}})),{}}});function Ue2(e){let{rootEl:t,isSticky:i,layoutItemStyles:a}=e;const r=g2(!1),n=g2(0),o=q(()=>{const d=typeof r.value=="boolean"?"top":r.value;return[i.value?{top:"auto",bottom:"auto",height:void 0}:void 0,r.value?{[d]:f2(n.value)}:{top:a.value.top}]});ee(()=>{T1(i,d=>{d?window.addEventListener("scroll",l,{passive:!0}):window.removeEventListener("scroll",l)},{immediate:!0})}),xe(()=>{window.removeEventListener("scroll",l)});let s=0;function l(){var f;const d=s>window.scrollY?"up":"down",C=t.value.getBoundingClientRect(),m=parseFloat((f=a.value.top)!=null?f:0),u=window.scrollY-Math.max(0,n.value-m),p=C.height+Math.max(n.value,m)-window.scrollY-window.innerHeight,V=parseFloat(getComputedStyle(t.value).getPropertyValue("--v-body-scroll-y"))||0;C.height0;i--){if(e[i].t===e[i-1].t)continue;const a=UD(t),r=(e[i].d-e[i-1].d)/(e[i].t-e[i-1].t);t+=(r-a)*Math.abs(r),i===e.length-1&&(t*=.5)}return UD(t)*1e3}function ke2(){const e={};function t(r){Array.from(r.changedTouches).forEach(n=>{var s;((s=e[n.identifier])!=null?s:e[n.identifier]=new kx1(Fe2)).push([r.timeStamp,n])})}function i(r){Array.from(r.changedTouches).forEach(n=>{delete e[n.identifier]})}function a(r){var d;const n=(d=e[r])==null?void 0:d.values().reverse();if(!n)throw new Error(`No samples for touch id ${r}`);const o=n[0],s=[],l=[];for(const C of n){if(o[0]-C[0]>xe2)break;s.push({t:C[0],d:C[1].clientX}),l.push({t:C[0],d:C[1].clientY})}return{x:xD(s),y:xD(l),get direction(){const{x:C,y:m}=this,[u,p]=[Math.abs(C),Math.abs(m)];return u>p&&C>=0?"right":u>p&&C<=0?"left":p>u&&m>=0?"down":p>u&&m<=0?"up":Be2()}}}return{addMovement:t,endTouch:i,getVelocity:a}}function Be2(){throw new Error}function ze2(e){let{isActive:t,isTemporary:i,width:a,touchless:r,position:n}=e;ee(()=>{window.addEventListener("touchstart",H,{passive:!0}),window.addEventListener("touchmove",g,{passive:!1}),window.addEventListener("touchend",_,{passive:!0})}),xe(()=>{window.removeEventListener("touchstart",H),window.removeEventListener("touchmove",g),window.removeEventListener("touchend",_)});const o=q(()=>["left","right"].includes(n.value)),{addMovement:s,endTouch:l,getVelocity:d}=ke2();let C=!1;const m=g2(!1),u=g2(0),p=g2(0);let V;function f(S,y){return(n.value==="left"?S:n.value==="right"?document.documentElement.clientWidth-S:n.value==="top"?S:n.value==="bottom"?document.documentElement.clientHeight-S:_6())-(y?a.value:0)}function M(S){let y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;const D=n.value==="left"?(S-p.value)/a.value:n.value==="right"?(document.documentElement.clientWidth-S-p.value)/a.value:n.value==="top"?(S-p.value)/a.value:n.value==="bottom"?(document.documentElement.clientHeight-S-p.value)/a.value:_6();return y?Math.max(0,Math.min(1,D)):D}function H(S){if(r.value)return;const y=S.changedTouches[0].clientX,D=S.changedTouches[0].clientY,R=25,N=n.value==="left"?ydocument.documentElement.clientWidth-R:n.value==="top"?Ddocument.documentElement.clientHeight-R:_6(),w=t.value&&(n.value==="left"?ydocument.documentElement.clientWidth-a.value:n.value==="top"?Ddocument.documentElement.clientHeight-a.value:_6());(N||w||t.value&&i.value)&&(C=!0,V=[y,D],p.value=f(o.value?y:D,t.value),u.value=M(o.value?y:D),l(S),s(S))}function g(S){const y=S.changedTouches[0].clientX,D=S.changedTouches[0].clientY;if(C){if(!S.cancelable){C=!1;return}const N=Math.abs(y-V[0]),w=Math.abs(D-V[1]);(o.value?N>w&&N>3:w>N&&w>3)?(m.value=!0,C=!1):(o.value?w:N)>3&&(C=!1)}if(!m.value)return;S.preventDefault(),s(S);const R=M(o.value?y:D,!1);u.value=Math.max(0,Math.min(1,R)),R>1?p.value=f(o.value?y:D,!0):R<0&&(p.value=f(o.value?y:D,!1))}function _(S){if(C=!1,!m.value)return;s(S),m.value=!1;const y=d(S.changedTouches[0].identifier),D=Math.abs(y.x),R=Math.abs(y.y);(o.value?D>R&&D>400:R>D&&R>3)?t.value=y.direction===({left:"right",right:"left",top:"down",bottom:"up"}[n.value]||_6()):t.value=u.value>.5}const v=q(()=>m.value?{transform:n.value==="left"?`translateX(calc(-100% + ${u.value*a.value}px))`:n.value==="right"?`translateX(calc(100% - ${u.value*a.value}px))`:n.value==="top"?`translateY(calc(-100% + ${u.value*a.value}px))`:n.value==="bottom"?`translateY(calc(100% - ${u.value*a.value}px))`:_6(),transition:"none"}:void 0);return{isDragging:m,dragProgress:u,dragStyles:v}}function _6(){throw new Error}const Ze2=["start","end","left","right","top","bottom"],Ge2=k1({color:String,disableResizeWatcher:Boolean,disableRouteWatcher:Boolean,expandOnHover:Boolean,floating:Boolean,modelValue:{type:Boolean,default:null},permanent:Boolean,rail:{type:Boolean,default:null},railWidth:{type:[Number,String],default:56},scrim:{type:[Boolean,String],default:!0},image:String,temporary:Boolean,touchless:Boolean,width:{type:[Number,String],default:256},location:{type:String,default:"start",validator:e=>Ze2.includes(e)},sticky:Boolean,...Pa(),...F2(),...ik1(),...Xi(),...dk1(),...p0(),...T5({tag:"nav"}),...p5()},"VNavigationDrawer"),We2=h2()({name:"VNavigationDrawer",props:Ge2(),emits:{"update:modelValue":e=>!0,"update:rail":e=>!0},setup(e,t){let{attrs:i,emit:a,slots:r}=t;const{isRtl:n}=pi(),{themeClasses:o}=N5(e),{borderClasses:s}=nr(e),{backgroundColorClasses:l,backgroundColorStyles:d}=d0(t2(e,"color")),{elevationClasses:C}=O3(e),{displayClasses:m,mobile:u}=I8(e),{roundedClasses:p}=F0(e),V=X21(),f=ue(e,"modelValue",null,$=>!!$),{ssrBootStyles:M}=TH(),{scopeId:H}=om(),g=i1(),_=g2(!1),v=q(()=>e.rail&&e.expandOnHover&&_.value?Number(e.width):Number(e.rail?e.railWidth:e.width)),S=q(()=>Up(e.location,n.value)),y=q(()=>!e.permanent&&(u.value||e.temporary)),D=q(()=>e.sticky&&!y.value&&S.value!=="bottom");M3(()=>e.expandOnHover&&e.rail!=null,()=>{T1(_,$=>a("update:rail",!$))}),M3(()=>!e.disableResizeWatcher,()=>{T1(y,$=>!e.permanent&&k2(()=>f.value=!$))}),M3(()=>!e.disableRouteWatcher&&!!V,()=>{T1(V.currentRoute,()=>y.value&&(f.value=!1))}),T1(()=>e.permanent,$=>{$&&(f.value=!0)}),B5(()=>{e.modelValue!=null||y.value||(f.value=e.permanent||!u.value)});const{isDragging:R,dragProgress:N,dragStyles:w}=ze2({isActive:f,isTemporary:y,width:v,touchless:t2(e,"touchless"),position:S}),x=q(()=>{const $=y.value?0:e.rail&&e.expandOnHover?Number(e.railWidth):v.value;return R.value?$*N.value:$}),{layoutItemStyles:U,layoutItemScrimStyles:E}=mk1({id:e.name,order:q(()=>parseInt(e.order,10)),position:S,layoutSize:x,elementSize:v,active:q(()=>f.value||R.value),disableTransitions:q(()=>R.value),absolute:q(()=>e.absolute||D.value&&typeof O.value!="string")}),{isStuck:O,stickyStyles:z}=Ue2({rootEl:g,isSticky:D,layoutItemStyles:U}),F=d0(q(()=>typeof e.scrim=="string"?e.scrim:null)),J=q(()=>({...R.value?{opacity:N.value*.2,transition:"none"}:void 0,...E.value}));I0({VList:{bgColor:"transparent"}});function W(){_.value=!0}function r1(){_.value=!1}return M2(()=>{const $=r.image||e.image;return P(Y1,null,[P(e.tag,V2({ref:g,onMouseenter:W,onMouseleave:r1,class:["v-navigation-drawer",`v-navigation-drawer--${S.value}`,{"v-navigation-drawer--expand-on-hover":e.expandOnHover,"v-navigation-drawer--floating":e.floating,"v-navigation-drawer--is-hovering":_.value,"v-navigation-drawer--rail":e.rail,"v-navigation-drawer--temporary":y.value,"v-navigation-drawer--active":f.value,"v-navigation-drawer--sticky":D.value},o.value,l.value,s.value,m.value,C.value,p.value,e.class],style:[d.value,U.value,w.value,M.value,z.value,e.style]},H,i),{default:()=>{var t1,l1,V1,A1;return[$&&P("div",{key:"image",class:"v-navigation-drawer__img"},[r.image?(t1=r.image)==null?void 0:t1.call(r,{image:e.image}):P("img",{src:e.image,alt:""},null)]),r.prepend&&P("div",{class:"v-navigation-drawer__prepend"},[(l1=r.prepend)==null?void 0:l1.call(r)]),P("div",{class:"v-navigation-drawer__content"},[(V1=r.default)==null?void 0:V1.call(r)]),r.append&&P("div",{class:"v-navigation-drawer__append"},[(A1=r.append)==null?void 0:A1.call(r)])]}}),P(q5,{name:"fade-transition"},{default:()=>[y.value&&(R.value||f.value)&&!!e.scrim&&P("div",V2({class:["v-navigation-drawer__scrim",F.backgroundColorClasses.value],style:[J.value,F.backgroundColorStyles.value],onClick:()=>f.value=!1},H),null)]})])}),{isStuck:O}}}),Xe2=n2({__name:"ConfigurationMenu",setup(e){const t=r5(),i=i1([y_]),{mdAndDown:a}=I8(),r=[{icon:"mdi-book-open-blank-variant",title:"General",component:y_},{icon:"mdi-controller",title:"Joystick",component:sq1},{icon:"mdi-video",title:"Video",component:Ee2},{icon:"mdi-script",title:"Logs",component:Cq1},{icon:"mdi-bell-ring",title:"Alerts",component:kz1},{icon:"mdi-dev-to",title:"Development",component:aW1},{icon:"mdi-rocket",title:"Mission",component:uq1}],n=q(()=>t==null?void 0:t.configurationPages);return(o,s)=>(C1(),Q1(st,{width:"100%",height:"100%"},{default:v1(()=>[P(Ie2,null,{default:v1(()=>[P(We2,{permanent:"",rail:B(a),"expand-on-hover":B(a),elevation:B(a)?5:0},{default:v1(()=>[P(Ld,{selected:i.value,"onUpdate:selected":s[0]||(s[0]=l=>i.value=l)},{default:v1(()=>[P(ha,{"prepend-icon":"mdi-view-dashboard",title:"Configuration menu"}),P(Qs),(C1(),N1(Y1,null,fe(r,(l,d)=>P(ha,{key:d,"prepend-icon":l.icon,title:l.title,value:l.component},null,8,["prepend-icon","title","value"])),64))]),_:1},8,["selected"]),P(Qs),P(Ld,{selected:i.value,"onUpdate:selected":s[1]||(s[1]=l=>i.value=l)},{default:v1(()=>[(C1(!0),N1(Y1,null,fe(n.value,(l,d)=>(C1(),Q1(ha,{key:d,"prepend-icon":l.icon,title:l.title,value:l.component},null,8,["prepend-icon","title","value"]))),128))]),_:1},8,["selected"])]),_:1},8,["rail","expand-on-hover","elevation"]),P(f01,{scrollable:""},{default:v1(()=>[(C1(),Q1(fn(i.value[0])))]),_:1})]),_:1})]),_:1}))}});var V01={exports:{}};const Ye2=Za1(kn1);(function(e){e.exports=function(t){var i={};function a(r){if(i[r])return i[r].exports;var n=i[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,a),n.l=!0,n.exports}return a.m=t,a.c=i,a.d=function(r,n,o){a.o(r,n)||Object.defineProperty(r,n,{enumerable:!0,get:o})},a.r=function(r){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},a.t=function(r,n){if(n&1&&(r=a(r)),n&8||n&4&&typeof r=="object"&&r&&r.__esModule)return r;var o=Object.create(null);if(a.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:r}),n&2&&typeof r!="string")for(var s in r)a.d(o,s,function(l){return r[l]}.bind(null,s));return o},a.n=function(r){var n=r&&r.__esModule?function(){return r.default}:function(){return r};return a.d(n,"a",n),n},a.o=function(r,n){return Object.prototype.hasOwnProperty.call(r,n)},a.p="",a(a.s="fb15")}({"24fb":function(t,i,a){t.exports=function(o){var s=[];return s.toString=function(){return this.map(function(d){var C=r(d,o);return d[2]?"@media ".concat(d[2]," {").concat(C,"}"):C}).join("")},s.i=function(l,d,C){typeof l=="string"&&(l=[[null,l,""]]);var m={};if(C)for(var u=0;uR.parts.length&&(N.parts.length=R.parts.length)}else{for(var x=[],w=0;w([\\d\\D]*?)<\\/script>[\\d\\D]*","i"),H=f.replace(M,"$1").trim());for(var _=0;_=0&&s1<=360}},circleGap:{type:Number,default:0,validator:function(s1){return s1>=0&&s1<=360}},disabled:{type:Boolean,default:!1}};function w(X){var s1=Object(l.ref)(document.createElement("div")),m1=Object(l.ref)(X.modelValue);X.min!==0&&(m1.value-=X.min);var f1=Object(l.ref)(0),L1=Object(l.ref)(0),e1=Object(l.ref)(0),Y=Object(l.ref)(1),a1=Object(l.computed)(function(){var P1=0;return X.min<0?P1=X.max+Math.abs(X.min):P1=X.max-X.min,P1}),c1=Object(l.computed)(function(){if(X.orientation!=="circular")return 0;var P1=m1.value/(a1.value/(360-X.circleGap));return X.flip?-P1:P1}),H1=Object(l.ref)(!1),_1={slider:s1,modelValueUnrounded:m1,formattedSliderValue:f1,filledWidth:e1,pixelsPerStep:Y,sliderRange:a1,sliderValueDegrees:c1,sliderWidth:L1,holding:H1};return _1}function x(X,s1){Object(l.watchEffect)(function(){X.filledWidth.value=U(X,s1)});var m1=new ResizeObserver(function(f1){X.filledWidth.value=U(X,s1),X.sliderWidth.value=X.slider.value?s1.orientation==="vertical"?X.slider.value.clientHeight:X.slider.value.clientWidth:0,X.slider.value!==f1[0].target&&X.slider.value instanceof Element&&(m1.unobserve(f1[0].target),m1.observe(X.slider.value))});X.slider.value&&m1.observe(X.slider.value)}function U(X,s1){var m1=X.slider;if(!m1.value)return 0;var f1=s1.orientation==="vertical"?m1.value.clientHeight:m1.value.clientWidth;X.pixelsPerStep.value=f1/X.sliderRange.value;var L1=Math.max(Math.min(X.modelValueUnrounded.value*X.pixelsPerStep.value,f1),0);return L1}function E(X,s1){var m1=new ResizeObserver(function(f1){X.value&&(s1.value=X.value.clientWidth,X.value!==f1[0].target&&(m1.unobserve(f1[0].target),X.value&&m1.observe(X.value)))});X.value&&m1.observe(X.value)}var O=function(X,s1,m1){var f1=function(Y){var a1=X.modelValueUnrounded.value+Y;a1=Math.min(X.sliderRange.value,Math.max(0,a1)),s1.limit!==void 0&&(a1=Math.min(a1,s1.limit+Math.abs(s1.min))),m1(a1)},L1=function(Y){switch(Y.key){case"ArrowRight":case"ArrowUp":f1(s1.step);break;case"ArrowLeft":case"ArrowDown":f1(-s1.step);break}};return{handleKeydown:L1}},z=function(X,s1,m1){var f1=Object(l.ref)(s1.modelValue);Object(l.watchEffect)(function(){return f1.value=s1.modelValue}),Object(l.watch)(f1,function(Y){if(X.formattedSliderValue.value!==Y){s1.limit!==void 0&&(Y=Math.min(Y,s1.limit));var a1=0;s1.min<0?a1=Y+Math.abs(s1.min):a1=Y-s1.min,a1=Math.min(a1,X.sliderRange.value),e1(a1)}});var L1=function(a1){var c1=s1.step,H1=0;return a1>0?H1=Math.round(a1/c1)*c1:H1=0,H1=H1+s1.min,s1.limit!==void 0&&(H1=Math.min(H1,s1.limit)),H1},e1=function(a1){X.formattedSliderValue.value=L1(a1),s1.sticky?X.modelValueUnrounded.value=X.formattedSliderValue.value-s1.min:X.modelValueUnrounded.value=a1,m1("update:modelValue",X.formattedSliderValue.value),m1("change",X.formattedSliderValue.value)};return{formatModelValue:L1,updateModelValue:e1,modelValueRef:f1}},F=function(X,s1,m1,f1){var L1=X.formattedSliderValue.value,e1=function(_1,P1,O1){var x1=X.slider.value.getBoundingClientRect(),y1=0;if(s1.orientation==="horizontal")y1=(_1-x1.x)/X.pixelsPerStep.value,s1.flip&&(y1=X.sliderRange.value-y1);else if(s1.orientation==="vertical")y1=(x1.y+x1.height-P1)/X.pixelsPerStep.value,s1.flip&&(y1=X.sliderRange.value-y1);else{var X1=_1-x1.x,j1=P1-x1.y,o2=x1.width/2,u2=x1.height/2,v2=(j1-u2)/(X1-o2),d2=Math.atan(v2)*180/Math.PI;for(X1>=o2?j1D2*30&&(y1=L1)}}return y1=Math.min(X.sliderRange.value,Math.max(y1,0)),s1.limit!==void 0&&(y1=Math.min(y1,s1.limit+Math.abs(s1.min))),L1=y1,y1},Y=function(_1){var P1;if(_1.type==="mousemove")_1=_1,P1=_1;else{if(_1=_1,_1.touches.length>1)return;P1=_1.touches[0]}if(X.holding.value){var O1=X.slider.value.getBoundingClientRect(),x1=s1.orientation==="vertical"?O1.y+O1.height-P1.pageY:P1.pageX-O1.x;x1=Math.min(X.sliderWidth.value,Math.max(x1,0)),f1(e1(P1.pageX-window.scrollX,P1.pageY-window.scrollY,!0)),m1("dragging",X.formattedSliderValue.value,P1)}},a1=function H1(_1){X.holding.value&&(X.holding.value=!1),_1.type==="mouseup"?(window.removeEventListener("mouseup",H1),window.removeEventListener("mousemove",Y)):(window.removeEventListener("touchend",H1),window.removeEventListener("touchmove",Y)),m1("drag-end",X.formattedSliderValue.value,_1)},c1=function(_1){if(_1.preventDefault(),X.holding.value=!0,m1("drag-start",X.formattedSliderValue.value,_1),_1.type==="touchstart"){if(_1=_1,_1.touches.length>1)return;var P1=_1.touches[0];f1(e1(P1.pageX-window.scrollX,P1.pageY-window.scrollY,!1)),window.addEventListener("touchend",a1),window.addEventListener("touchmove",Y)}else _1=_1,f1(e1(_1.pageX-window.scrollX,_1.pageY-window.scrollY,!1)),window.addEventListener("mouseup",a1),window.addEventListener("mousemove",Y)};return{clickHandler:c1}},J=Object(l.defineComponent)({name:"vue3-slider",props:N,setup:function(s1,m1){var f1=m1.emit;(s1.modelValues1.max)&&console.error("[Vue3Slider] Error: value exceeds limits of slider"),s1.max<=s1.min&&console.error("[Vue3Slider] Error: Max value cannot be less than or equal to the min value. This will cause unexpected errors to occur, please fix.");var L1=w(s1),e1=z(L1,s1,f1),Y=e1.updateModelValue,a1=e1.formatModelValue,c1=O(L1,s1,Y),H1=c1.handleKeydown,_1=F(L1,s1,f1,Y),P1=_1.clickHandler,O1=Object(l.ref)(!1),x1=Object(l.computed)(function(){return L1.holding.value?!0:s1.alwaysShowHandle||O1.value}),y1=Object(l.ref)(),X1=Object(l.computed)(function(){if(!s1.tooltip)return"";var y2="";return s1.formatTooltip!==null&&typeof s1.formatTooltip=="function"?y2=s1.formatTooltip(L1.formattedSliderValue.value||a1(L1.modelValueUnrounded.value)):y2=(L1.formattedSliderValue.value||a1(L1.modelValueUnrounded.value)).toString(),s1.tooltipText.replace("%v",y2)}),j1=Object(l.ref)(0),o2=Object(l.computed)(function(){if(!s1.tooltip)return 0;var y2=j1.value;if(s1.orientation!=="horizontal"){var oe;if(y2=(oe=y1.value)===null||oe===void 0?void 0:oe.clientHeight,y2||(y2=20),s1.orientation!=="vertical")return y2}else y2?y2+=s1.height/3:y2=14+L1.formattedSliderValue.value.toString().length*9;return L1.filledWidth.value-y2/2}),u2=Object(l.computed)(function(){return!L1.slider.value||s1.orientation!=="circular"?1:2*Math.PI*(L1.sliderWidth.value/2)}),v2=Object(l.computed)(function(){return s1.orientation!=="circular"?0:s1.circleGap/360*u2.value}),d2=Object(l.computed)(function(){return s1.orientation!=="circular"?0:u2.value-L1.modelValueUnrounded.value/L1.sliderRange.value*u2.value*(1-s1.circleGap/360)}),D2=Object(l.computed)(function(){return{"--width":s1.width,"--height":s1.height+"px","--color":s1.color,"--track-color":s1.trackColor,"--tooltip-color":s1.tooltipColor,"--tooltip-text-color":s1.tooltipTextColor,"--handle-scale":s1.handleScale}});return Object(l.onMounted)(function(){x(L1,s1),E(y1,j1)}),{filledWidth:L1.filledWidth,slider:L1.slider,holding:L1.holding,flip:Object(l.computed)(function(){return s1.flip}),clickHandler:P1,handleKeydown:H1,applyHandleHoverClass:x1,hovering:O1,showTooltip:Object(l.computed)(function(){return s1.tooltip}),alwaysShowTooltip:Object(l.computed)(function(){return s1.alwaysShowTooltip}),tooltip:y1,tooltipText:X1,tooltipOffset:o2,vars:D2,circumference:u2,trackStrokeOffset:v2,strokeOffset:d2,circleOffset:Object(l.computed)(function(){return s1.circleOffset}),circleGap:Object(l.computed)(function(){return s1.circleGap}),sliderValueDegrees:L1.sliderValueDegrees}}});a("6ac3"),J.render=y;var W=J,r1=function(){var X=W;return X.install=function(s1){s1.component("Vue3Slider",X)},X}();function $(X,s1){return n1(X)||A1(X,s1)||l1(X,s1)||t1()}function t1(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function l1(X,s1){if(!!X){if(typeof X=="string")return V1(X,s1);var m1=Object.prototype.toString.call(X).slice(8,-1);if(m1==="Object"&&X.constructor&&(m1=X.constructor.name),m1==="Map"||m1==="Set")return Array.from(X);if(m1==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(m1))return V1(X,s1)}}function V1(X,s1){(s1==null||s1>X.length)&&(s1=X.length);for(var m1=0,f1=new Array(s1);m1(Dt("data-v-d1bc6e0e"),e=e(),yt(),e),qe2={key:0,class:"slider-div"},Ke2=$e2(()=>K("div",{class:"slider-value"},[K("span",null,"Alt (Rel)")],-1)),je2={class:"slider-value"},Qe2=n2({__name:"AltitudeSlider",setup(e){const t=q(()=>qr.value.toFixed(1));return(i,a)=>B(U7)?(C1(),N1("div",qe2,[P(B(Ye2),{modelValue:B(qr),"onUpdate:modelValue":a[0]||(a[0]=r=>de(qr)?qr.value=r:null),orientation:"vertical",width:"100%",height:"20",color:"rgb(59 130 246)","track-color":"rgb(59 130 246 / 0.5)","always-show-handle":"true",step:"0.1"},null,8,["modelValue"]),Ke2,K("div",je2,q1(t.value),1)])):a2("",!0)}});const Je2=w5(Qe2,[["__scopeId","data-v-d1bc6e0e"]]),pM=n2({__name:"Dialog",props:{show:Boolean},emits:["update:show"],setup(e,{emit:t}){const i=e,a=t,r=j2(i).show,n=i1(r.value),o=i1(),s=i1();return ee(()=>{o.value.addEventListener("click",l=>{!l.target||l.target instanceof HTMLElement&&!l.target.closest(".action-button")&&l.target.nodeName!=="DIALOG"||(n.value=!1)})}),T1(r,()=>n.value=r.value),T1(n,()=>{n.value?o.value.showModal():(o.value.setAttribute("closing",""),o.value.addEventListener("animationend",()=>{o.value.removeAttribute("closing"),o.value.close()},{once:!0})),a("update:show",n.value)}),(l,d)=>(C1(),Q1(La,{to:"body"},[K("dialog",{ref_key:"dialogRef",ref:o,class:"modal"},[K("div",V2({ref_key:"dialogContentRef",ref:s},l.$attrs,{class:"flex flex-col items-center justify-center w-full h-full p-5 backdrop-blur-sm"}),[Se(l.$slots,"default")],16)],512)]))}});var e52=Object.defineProperty,wd=Object.getOwnPropertySymbols,L01=Object.prototype.hasOwnProperty,H01=Object.prototype.propertyIsEnumerable,FD=(e,t,i)=>t in e?e52(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,O6=(e,t)=>{for(var i in t||(t={}))L01.call(t,i)&&FD(e,i,t[i]);if(wd)for(var i of wd(t))H01.call(t,i)&&FD(e,i,t[i]);return e},M01=(e,t)=>{var i={};for(var a in e)L01.call(e,a)&&t.indexOf(a)<0&&(i[a]=e[a]);if(e!=null&&wd)for(var a of wd(e))t.indexOf(a)<0&&H01.call(e,a)&&(i[a]=e[a]);return i};const g01="[vue-draggable-plus]: ";function t52(e){console.warn(g01+e)}function i52(e){console.error(g01+e)}function kD(e,t,i){return i>=0&&ii?i.toUpperCase():"")}function r52(e){return Object.keys(e).reduce((t,i)=>(typeof e[i]<"u"&&(t[a52(i)]=e[i]),t),{})}function n52(e,t){if(Array.isArray(e))return e.splice(t,1)}function o52(e,t,i){if(Array.isArray(e))return e.splice(t,0,i)}function s52(e){return typeof e>"u"}function l52(e){return typeof e=="string"}function BD(e,t,i){const a=e.children[i];e.insertBefore(t,a)}function uh(e){e.parentNode&&e.parentNode.removeChild(e)}function c52(e,t=document){var i;let a=null;return typeof(t==null?void 0:t.querySelector)=="function"?a=(i=t==null?void 0:t.querySelector)==null?void 0:i.call(t,e):a=document.querySelector(e),a||t52(`Element not found: ${e}`),a}function d52(e,t,i=null){return function(...a){return e.apply(i,a),t.apply(i,a)}}function C52(e,t){const i=O6({},e);return Object.keys(t).forEach(a=>{i[a]?i[a]=d52(e[a],t[a]):i[a]=t[a]}),i}function m52(e){return e instanceof HTMLElement}function u52(e,t){Object.keys(e).forEach(i=>{t(i,e[i])})}/**! +/*# sourceMappingURL=data:application/json;base64,`+btoa(unescape(encodeURIComponent(JSON.stringify(w))))+" */"),y.styleSheet)y.styleSheet.cssText=R;else{for(;y.firstChild;)y.removeChild(y.firstChild);y.appendChild(document.createTextNode(R))}}},"6ac3":function(t,i,a){a("ff3a")},8875:function(t,i,a){var r,n,o;(function(s,l){n=[],r=l,o=typeof r=="function"?r.apply(i,n):r,o!==void 0&&(t.exports=o)})(typeof self<"u"?self:this,function(){function s(){var l=Object.getOwnPropertyDescriptor(document,"currentScript");if(!l&&"currentScript"in document&&document.currentScript||l&&l.get!==s&&document.currentScript)return document.currentScript;try{throw new Error}catch(v){var d=/.*at [^(]*\((.*):(.+):(.+)\)$/ig,C=/@([^@]*):(\d+):(\d+)\s*$/ig,m=d.exec(v.stack)||C.exec(v.stack),u=m&&m[1]||!1,p=m&&m[2]||!1,V=document.location.href.replace(document.location.hash,""),f,M,H,g=document.getElementsByTagName("script");u===V&&(f=document.documentElement.outerHTML,M=new RegExp("(?:[^\\n]+?\\n){0,"+(p-2)+"}[^<]* - + + diff --git a/style.a9a3a478.css b/style.e6ba9f84.css similarity index 99% rename from style.a9a3a478.css rename to style.e6ba9f84.css index 92dd2a5e8..542cde5ba 100644 --- a/style.a9a3a478.css +++ b/style.e6ba9f84.css @@ -1,4 +1,4 @@ -.v-popper__popper{z-index:10000;top:0;left:0;outline:none}.v-popper__popper.v-popper__popper--hidden{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s;pointer-events:none}.v-popper__popper.v-popper__popper--shown{visibility:visible;opacity:1;transition:opacity .15s}.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{transition:none!important}.v-popper__backdrop{position:absolute;top:0;left:0;width:100%;height:100%;display:none}.v-popper__inner{position:relative;box-sizing:border-box;overflow-y:auto}.v-popper__inner>div{position:relative;z-index:1;max-width:inherit;max-height:inherit}.v-popper__arrow-container{position:absolute;width:10px;height:10px}.v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{display:none}.v-popper__arrow-inner,.v-popper__arrow-outer{border-style:solid;position:absolute;top:0;left:0;width:0;height:0}.v-popper__arrow-inner{visibility:hidden;border-width:7px}.v-popper__arrow-outer{border-width:6px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{left:-2px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{left:-1px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{border-bottom-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:0}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{border-top-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{top:-4px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{top:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{top:-1px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{border-left-width:0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{left:-4px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{left:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{border-right-width:0;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{left:-2px}.v-popper--theme-tooltip .v-popper__inner{background:rgba(0,0,0,.8);color:#fff;border-radius:6px;padding:7px 12px 6px}.v-popper--theme-tooltip .v-popper__arrow-outer{border-color:#000c}.v-popper--theme-dropdown .v-popper__inner{background:#fff;color:#000;border-radius:6px;border:1px solid #ddd;box-shadow:0 6px 30px #0000001a}.v-popper--theme-dropdown .v-popper__arrow-inner{visibility:visible;border-color:#fff}.v-popper--theme-dropdown .v-popper__arrow-outer{border-color:#ddd}.vue-recycle-scroller{position:relative}.vue-recycle-scroller.direction-vertical:not(.page-mode){overflow-y:auto}.vue-recycle-scroller.direction-horizontal:not(.page-mode){overflow-x:auto}.vue-recycle-scroller.direction-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex}.vue-recycle-scroller__slot{-webkit-box-flex:1;-ms-flex:auto 0 0px;flex:auto 0 0}.vue-recycle-scroller__item-wrapper{-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;position:relative}.vue-recycle-scroller.ready .vue-recycle-scroller__item-view{position:absolute;top:0;left:0;will-change:transform}.vue-recycle-scroller.direction-vertical .vue-recycle-scroller__item-wrapper{width:100%}.vue-recycle-scroller.direction-horizontal .vue-recycle-scroller__item-wrapper{height:100%}.vue-recycle-scroller.ready.direction-vertical .vue-recycle-scroller__item-view{width:100%}.vue-recycle-scroller.ready.direction-horizontal .vue-recycle-scroller__item-view{height:100%}.resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.custom-select[data-v-26225d3c]{position:relative;width:100%}.custom-arrow[data-v-26225d3c]{position:absolute;top:0;right:0;background-color:#0f172a;display:block;height:100%;width:1.5rem;pointer-events:none;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.custom-arrow[data-v-26225d3c]:before,.custom-arrow[data-v-26225d3c]:after{--size: .35em;--arrow-color: rgb(177, 177, 177);content:"";position:absolute;width:0;height:0;left:50%;transform:translate(-50%,-50%)}.custom-arrow[data-v-26225d3c]:before{border-left:var(--size) solid transparent;border-right:var(--size) solid transparent;border-bottom:var(--size) solid var(--arrow-color);top:35%}.custom-arrow[data-v-26225d3c]:after{border-left:var(--size) solid transparent;border-right:var(--size) solid transparent;border-top:var(--size) solid var(--arrow-color);top:65%}.v-card{display:block;overflow:hidden;overflow-wrap:break-word;position:relative;padding:0;text-decoration:none;transition-duration:.28s;transition-property:box-shadow,opacity,background;transition-timing-function:cubic-bezier(.4,0,.2,1);z-index:0;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;border-radius:4px}.v-card--border{border-width:thin;box-shadow:none}.v-card--absolute{position:absolute}.v-card--fixed{position:fixed}.v-card:hover>.v-card__overlay{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-card:focus-visible>.v-card__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-card:focus>.v-card__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}}.v-card--active>.v-card__overlay,.v-card[aria-haspopup=menu][aria-expanded=true]>.v-card__overlay{opacity:calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier))}.v-card--active:hover>.v-card__overlay,.v-card[aria-haspopup=menu][aria-expanded=true]:hover>.v-card__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}.v-card--active:focus-visible>.v-card__overlay,.v-card[aria-haspopup=menu][aria-expanded=true]:focus-visible>.v-card__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-card--active:focus>.v-card__overlay,.v-card[aria-haspopup=menu][aria-expanded=true]:focus>.v-card__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}}.v-card--variant-plain,.v-card--variant-outlined,.v-card--variant-text,.v-card--variant-tonal{background:transparent;color:inherit}.v-card--variant-plain{opacity:.62}.v-card--variant-plain:focus,.v-card--variant-plain:hover{opacity:1}.v-card--variant-plain .v-card__overlay{display:none}.v-card--variant-elevated,.v-card--variant-flat{background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-card--variant-elevated{box-shadow:0 2px 1px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 1px 1px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 3px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-card--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-card--variant-outlined{border:thin solid currentColor}.v-card--variant-text .v-card__overlay{background:currentColor}.v-card--variant-tonal .v-card__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.v-card--disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.v-card--disabled>:not(.v-card__loader){opacity:.6}.v-card--flat{box-shadow:none}.v-card--hover{cursor:pointer}.v-card--hover:before,.v-card--hover:after{border-radius:inherit;bottom:0;content:"";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0;transition:inherit}.v-card--hover:before{opacity:1;z-index:-1;box-shadow:0 2px 1px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 1px 1px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 3px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-card--hover:after{z-index:1;opacity:0;box-shadow:0 5px 5px -3px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 8px 10px 1px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 3px 14px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-card--hover:hover:after{opacity:1}.v-card--hover:hover:before{opacity:0}.v-card--hover:hover{box-shadow:0 5px 5px -3px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 8px 10px 1px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 3px 14px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-card--link{cursor:pointer}.v-card-actions{align-items:center;display:flex;flex:none;min-height:52px;padding:.5rem}.v-card-item{align-items:center;display:grid;flex:none;grid-template-areas:"prepend content append";grid-template-columns:max-content auto max-content;padding:.625rem 1rem}.v-card-item+.v-card-text{padding-top:0}.v-card-item__prepend{grid-area:prepend;padding-inline-end:1rem}.v-card-item__append{grid-area:append;padding-inline-start:1rem}.v-card-item__content{align-self:center;grid-area:content;overflow:hidden}.v-card-title{display:block;flex:none;font-size:1.25rem;font-weight:500;-webkit-hyphens:auto;hyphens:auto;letter-spacing:.0125em;min-width:0;overflow-wrap:normal;overflow:hidden;padding:.5rem 1rem;text-overflow:ellipsis;text-transform:none;white-space:nowrap;word-break:normal;word-wrap:break-word}.v-card .v-card-title{line-height:2rem}.v-card--density-comfortable .v-card-title{line-height:1.75rem}.v-card--density-compact .v-card-title{line-height:1.55rem}.v-card-item .v-card-title{padding:0}.v-card-title+.v-card-text,.v-card-title+.v-card-actions{padding-top:0}.v-card-subtitle{display:block;flex:none;font-size:.875rem;font-weight:400;letter-spacing:.0178571429em;opacity:var(--v-medium-emphasis-opacity);overflow:hidden;padding:0 1rem;text-overflow:ellipsis;text-transform:none;white-space:nowrap}.v-card .v-card-subtitle{line-height:1.25rem}.v-card--density-comfortable .v-card-subtitle{line-height:1.125rem}.v-card--density-compact .v-card-subtitle{line-height:1rem}.v-card-item .v-card-subtitle{padding:0 0 .25rem}.v-card-text{flex:1 1 auto;font-size:.875rem;font-weight:400;letter-spacing:.0178571429em;padding:1rem;text-transform:none}.v-card .v-card-text{line-height:1.25rem}.v-card--density-comfortable .v-card-text{line-height:1.2rem}.v-card--density-compact .v-card-text{line-height:1.15rem}.v-card__image{display:flex;height:100%;flex:1 1 auto;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:-1}.v-card__content{border-radius:inherit;overflow:hidden;position:relative}.v-card__loader{bottom:auto;top:0;left:0;position:absolute;right:0;width:100%;z-index:1}.v-card__overlay{background-color:currentColor;border-radius:inherit;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;transition:opacity .2s ease-in-out}.v-avatar{flex:none;align-items:center;display:inline-flex;justify-content:center;line-height:normal;overflow:hidden;position:relative;text-align:center;transition:.2s cubic-bezier(.4,0,.2,1);transition-property:width,height;vertical-align:middle;border-radius:50%}.v-avatar.v-avatar--size-x-small{--v-avatar-height: 24px}.v-avatar.v-avatar--size-small{--v-avatar-height: 32px}.v-avatar.v-avatar--size-default{--v-avatar-height: 40px}.v-avatar.v-avatar--size-large{--v-avatar-height: 48px}.v-avatar.v-avatar--size-x-large{--v-avatar-height: 56px}.v-avatar.v-avatar--density-default{height:calc(var(--v-avatar-height) + 0px);width:calc(var(--v-avatar-height) + 0px)}.v-avatar.v-avatar--density-comfortable{height:calc(var(--v-avatar-height) + -4px);width:calc(var(--v-avatar-height) + -4px)}.v-avatar.v-avatar--density-compact{height:calc(var(--v-avatar-height) + -8px);width:calc(var(--v-avatar-height) + -8px)}.v-avatar--variant-plain,.v-avatar--variant-outlined,.v-avatar--variant-text,.v-avatar--variant-tonal{background:transparent;color:inherit}.v-avatar--variant-plain{opacity:.62}.v-avatar--variant-plain:focus,.v-avatar--variant-plain:hover{opacity:1}.v-avatar--variant-plain .v-avatar__overlay{display:none}.v-avatar--variant-elevated,.v-avatar--variant-flat{background:var(--v-theme-surface);color:rgba(var(--v-theme-on-surface),var(--v-medium-emphasis-opacity))}.v-avatar--variant-elevated{box-shadow:0 2px 1px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 1px 1px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 3px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-avatar--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-avatar--variant-outlined{border:thin solid currentColor}.v-avatar--variant-text .v-avatar__overlay{background:currentColor}.v-avatar--variant-tonal .v-avatar__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.v-avatar--rounded{border-radius:4px}.v-avatar .v-img{height:100%;width:100%}.v-icon{--v-icon-size-multiplier: 1;align-items:center;display:inline-flex;font-feature-settings:"liga";height:1em;justify-content:center;letter-spacing:normal;line-height:1;position:relative;text-indent:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:1em;min-width:1em}.v-icon--clickable{cursor:pointer}.v-icon--size-x-small{font-size:calc(var(--v-icon-size-multiplier) * 1em)}.v-icon--size-small{font-size:calc(var(--v-icon-size-multiplier) * 1.25em)}.v-icon--size-default{font-size:calc(var(--v-icon-size-multiplier) * 1.5em)}.v-icon--size-large{font-size:calc(var(--v-icon-size-multiplier) * 1.75em)}.v-icon--size-x-large{font-size:calc(var(--v-icon-size-multiplier) * 2em)}.v-icon__svg{fill:currentColor;width:100%;height:100%}.v-icon--start{margin-inline-end:8px}.v-icon--end{margin-inline-start:8px}.v-img{--v-theme-overlay-multiplier: 3;z-index:0}.v-img--booting .v-responsive__sizer{transition:none}.v-img__img,.v-img__picture,.v-img__gradient,.v-img__placeholder,.v-img__error{z-index:-1;position:absolute;top:0;left:0;width:100%;height:100%}.v-img__img--preload{filter:blur(4px)}.v-img__img--contain{-o-object-fit:contain;object-fit:contain}.v-img__img--cover{-o-object-fit:cover;object-fit:cover}.v-img__gradient{background-repeat:no-repeat}.v-responsive{display:flex;flex:1 0 auto;max-height:100%;max-width:100%;overflow:hidden;position:relative}.v-responsive--inline{display:inline-flex;flex:0 0 auto}.v-responsive__content{flex:1 0 0px;max-width:100%}.v-responsive__sizer~.v-responsive__content{margin-inline-start:-100%}.v-responsive__sizer{flex:1 0 0px;transition:padding-bottom .2s cubic-bezier(.4,0,.2,1);pointer-events:none}.v-progress-linear{background:transparent;overflow:hidden;position:relative;transition:.2s cubic-bezier(.4,0,.2,1);width:100%}.v-progress-linear__background{background:currentColor;bottom:0;left:0;opacity:var(--v-border-opacity);position:absolute;top:0;transition-property:width,left,right;transition:inherit}.v-progress-linear__content{align-items:center;display:flex;height:100%;justify-content:center;left:0;pointer-events:none;position:absolute;top:0;width:100%}.v-progress-linear__determinate,.v-progress-linear__indeterminate{background:currentColor}.v-progress-linear__determinate{height:inherit;left:0;position:absolute;transition:inherit;transition-property:width,left,right}.v-progress-linear__indeterminate .long,.v-progress-linear__indeterminate .short{animation-play-state:paused;animation-duration:2.2s;animation-iteration-count:infinite;bottom:0;height:inherit;left:0;position:absolute;right:auto;top:0;width:auto;will-change:left,right}.v-progress-linear__indeterminate .long{animation-name:indeterminate-ltr}.v-progress-linear__indeterminate .short{animation-name:indeterminate-short-ltr}.v-progress-linear__stream{animation:stream .25s infinite linear;animation-play-state:paused;bottom:0;left:auto;opacity:.3;pointer-events:none;position:absolute;transition:inherit;transition-property:width,left,right}.v-progress-linear--reverse .v-progress-linear__background,.v-progress-linear--reverse .v-progress-linear__determinate,.v-progress-linear--reverse .v-progress-linear__content,.v-progress-linear--reverse .v-progress-linear__indeterminate .long,.v-progress-linear--reverse .v-progress-linear__indeterminate .short{left:auto;right:0}.v-progress-linear--reverse .v-progress-linear__indeterminate .long{animation-name:indeterminate-rtl}.v-progress-linear--reverse .v-progress-linear__indeterminate .short{animation-name:indeterminate-short-rtl}.v-progress-linear--reverse .v-progress-linear__stream{right:auto}.v-progress-linear--absolute,.v-progress-linear--fixed{left:0;z-index:1}.v-progress-linear--absolute{position:absolute}.v-progress-linear--fixed{position:fixed}.v-progress-linear--rounded{border-radius:9999px}.v-progress-linear--rounded.v-progress-linear--rounded-bar .v-progress-linear__determinate,.v-progress-linear--rounded.v-progress-linear--rounded-bar .v-progress-linear__indeterminate{border-radius:inherit}.v-progress-linear--striped .v-progress-linear__determinate{animation:progress-linear-stripes 1s infinite linear;background-image:linear-gradient(135deg,hsla(0,0%,100%,.25) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.25) 0,hsla(0,0%,100%,.25) 75%,transparent 0,transparent);background-repeat:repeat;background-size:var(--v-progress-linear-height)}.v-progress-linear--active .v-progress-linear__indeterminate .long,.v-progress-linear--active .v-progress-linear__indeterminate .short,.v-progress-linear--active .v-progress-linear__stream{animation-play-state:running}.v-progress-linear--rounded-bar .v-progress-linear__determinate,.v-progress-linear--rounded-bar .v-progress-linear__indeterminate,.v-progress-linear--rounded-bar .v-progress-linear__stream+.v-progress-linear__background{border-radius:9999px}.v-progress-linear--rounded-bar .v-progress-linear__determinate{border-start-start-radius:0;border-end-start-radius:0}@keyframes indeterminate-ltr{0%{left:-90%;right:100%}60%{left:-90%;right:100%}to{left:100%;right:-35%}}@keyframes indeterminate-rtl{0%{left:100%;right:-90%}60%{left:100%;right:-90%}to{left:-35%;right:100%}}@keyframes indeterminate-short-ltr{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@keyframes indeterminate-short-rtl{0%{left:100%;right:-200%}60%{left:-8%;right:107%}to{left:-8%;right:107%}}@keyframes stream{to{transform:translate(var(--v-progress-linear-stream-to))}}@keyframes progress-linear-stripes{0%{background-position-x:var(--v-progress-linear-height)}}.v-ripple__container{color:inherit;border-radius:inherit;position:absolute;width:100%;height:100%;left:0;top:0;overflow:hidden;z-index:0;pointer-events:none;contain:strict}.v-ripple__animation{color:inherit;position:absolute;top:0;left:0;border-radius:50%;background:currentColor;opacity:0;pointer-events:none;overflow:hidden;will-change:transform,opacity}.v-ripple__animation--enter{transition:none;opacity:0}.v-ripple__animation--in{transition:transform .25s cubic-bezier(0,0,.2,1),opacity .1s cubic-bezier(0,0,.2,1);opacity:calc(.25 * var(--v-theme-overlay-multiplier))}.v-ripple__animation--out{transition:opacity .3s cubic-bezier(0,0,.2,1);opacity:0}.v-divider{display:block;flex:1 1 100%;height:0px;max-height:0px;opacity:var(--v-border-opacity);transition:inherit;border-style:solid;border-width:thin 0 0 0}.v-divider--vertical{align-self:stretch;border-width:0 thin 0 0;display:inline-flex;height:inherit;margin-left:-1px;max-height:100%;max-width:0px;vertical-align:text-bottom;width:0px}.v-divider--inset:not(.v-divider--vertical){max-width:calc(100% - 72px);margin-inline-start:72px}.v-divider--inset.v-divider--vertical{margin-bottom:8px;margin-top:8px;max-height:calc(100% - 16px)}.v-switch .v-label{padding-inline-start:10px}.v-switch .v-switch__thumb{background-color:rgb(var(--v-theme-surface-bright));color:rgb(var(--v-theme-on-surface-bright))}.v-switch__loader{display:flex}.v-switch__loader .v-progress-circular{color:rgb(var(--v-theme-surface))}.v-switch__track,.v-switch__thumb{transition:none}.v-selection-control--error:not(.v-selection-control--disabled) .v-switch__track,.v-selection-control--error:not(.v-selection-control--disabled) .v-switch__thumb{background-color:rgb(var(--v-theme-error));color:rgb(var(--v-theme-on-error))}.v-switch__track{background-color:rgb(var(--v-theme-surface-variant));border-radius:9999px;height:14px;opacity:.6;width:36px;cursor:pointer;transition:.2s background-color cubic-bezier(.4,0,.2,1)}.v-switch--inset .v-switch__track{border-radius:9999px;height:32px;width:52px}.v-switch__thumb{align-items:center;border-radius:50%;display:flex;height:20px;justify-content:center;width:20px;pointer-events:none;transition:.15s .05s transform cubic-bezier(0,0,.2,1),.2s color cubic-bezier(.4,0,.2,1),.2s background-color cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 10px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-switch--inset .v-switch__thumb{height:24px;width:24px;transform:scale(.6666666667);box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-switch--inset .v-switch__thumb--filled{transform:none}.v-switch--inset .v-selection-control--dirty .v-switch__thumb{transform:none;transition:.15s .05s transform cubic-bezier(0,0,.2,1)}.v-switch .v-selection-control{min-height:var(--v-input-control-height)}.v-switch .v-selection-control__input{border-radius:50%;transition:.2s transform cubic-bezier(.4,0,.2,1);transform:translate(-10px);position:absolute}.v-switch .v-selection-control__input .v-icon{position:absolute}.v-switch .v-selection-control--dirty .v-selection-control__input{transform:translate(10px)}.v-switch.v-switch--indeterminate .v-selection-control__input{transform:scale(.8)}.v-switch.v-switch--indeterminate .v-switch__thumb{transform:scale(.75);box-shadow:none}.v-switch.v-switch--inset .v-selection-control__wrapper{width:auto}.v-input{display:grid;flex:1 1 auto;font-size:1rem;font-weight:400;line-height:1.5}.v-input--disabled{pointer-events:none}.v-input--density-default{--v-input-control-height: 56px;--v-input-padding-top: 16px}.v-input--density-comfortable{--v-input-control-height: 48px;--v-input-padding-top: 12px}.v-input--density-compact{--v-input-control-height: 40px;--v-input-padding-top: 8px}.v-input--vertical{grid-template-areas:"append" "control" "prepend";grid-template-rows:max-content auto max-content;grid-template-columns:min-content}.v-input--vertical .v-input__prepend{margin-block-start:16px}.v-input--vertical .v-input__append{margin-block-end:16px}.v-input--horizontal{grid-template-areas:"prepend control append" "a messages b";grid-template-columns:max-content minmax(0,1fr) max-content;grid-template-rows:auto auto}.v-input--horizontal .v-input__prepend{margin-inline-end:16px}.v-input--horizontal .v-input__append{margin-inline-start:16px}.v-input__details{align-items:flex-end;display:flex;font-size:.75rem;font-weight:400;grid-area:messages;letter-spacing:.0333333333em;line-height:normal;min-height:22px;padding-top:6px;overflow:hidden;justify-content:space-between}.v-input__details>.v-icon,.v-input__prepend>.v-icon,.v-input__append>.v-icon{opacity:var(--v-medium-emphasis-opacity)}.v-input--disabled .v-input__details>.v-icon,.v-input--disabled .v-input__details .v-messages,.v-input--error .v-input__details>.v-icon,.v-input--error .v-input__details .v-messages,.v-input--disabled .v-input__prepend>.v-icon,.v-input--disabled .v-input__prepend .v-messages,.v-input--error .v-input__prepend>.v-icon,.v-input--error .v-input__prepend .v-messages,.v-input--disabled .v-input__append>.v-icon,.v-input--disabled .v-input__append .v-messages,.v-input--error .v-input__append>.v-icon,.v-input--error .v-input__append .v-messages{opacity:1}.v-input--disabled .v-input__details,.v-input--disabled .v-input__prepend,.v-input--disabled .v-input__append{opacity:var(--v-disabled-opacity)}.v-input--error:not(.v-input--disabled) .v-input__details>.v-icon,.v-input--error:not(.v-input--disabled) .v-input__details .v-messages,.v-input--error:not(.v-input--disabled) .v-input__prepend>.v-icon,.v-input--error:not(.v-input--disabled) .v-input__prepend .v-messages,.v-input--error:not(.v-input--disabled) .v-input__append>.v-icon,.v-input--error:not(.v-input--disabled) .v-input__append .v-messages{color:rgb(var(--v-theme-error))}.v-input__prepend,.v-input__append{display:flex;align-items:flex-start;padding-top:var(--v-input-padding-top)}.v-input--center-affix .v-input__prepend,.v-input--center-affix .v-input__append{align-items:center;padding-top:0}.v-input__prepend{grid-area:prepend}.v-input__append{grid-area:append}.v-input__control{display:flex;grid-area:control}.v-input--hide-spin-buttons input::-webkit-outer-spin-button,.v-input--hide-spin-buttons input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.v-input--hide-spin-buttons input[type=number]{-moz-appearance:textfield}.v-input--plain-underlined .v-input__prepend,.v-input--plain-underlined .v-input__append{align-items:flex-start}.v-input--density-default.v-input--plain-underlined .v-input__prepend,.v-input--density-default.v-input--plain-underlined .v-input__append{padding-top:calc(var(--v-input-padding-top) + 4px)}.v-input--density-comfortable.v-input--plain-underlined .v-input__prepend,.v-input--density-comfortable.v-input--plain-underlined .v-input__append{padding-top:calc(var(--v-input-padding-top) + 2px)}.v-input--density-compact.v-input--plain-underlined .v-input__prepend,.v-input--density-compact.v-input--plain-underlined .v-input__append{padding-top:calc(var(--v-input-padding-top) + 0px)}.v-messages{flex:1 1 auto;font-size:12px;min-height:14px;min-width:1px;opacity:var(--v-medium-emphasis-opacity);position:relative}.v-messages__message{line-height:12px;word-break:break-word;overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;transition-duration:.15s}.v-progress-circular{align-items:center;display:inline-flex;justify-content:center;position:relative;vertical-align:middle}.v-progress-circular>svg{width:100%;height:100%;margin:auto;position:absolute;top:0;bottom:0;left:0;right:0;z-index:0}.v-progress-circular__content{align-items:center;display:flex;justify-content:center}.v-progress-circular__underlay{color:rgba(var(--v-border-color),var(--v-border-opacity));stroke:currentColor;z-index:1}.v-progress-circular__overlay{stroke:currentColor;transition:all .2s ease-in-out,stroke-width 0s;z-index:2}.v-progress-circular--size-x-small{height:16px;width:16px}.v-progress-circular--size-small{height:24px;width:24px}.v-progress-circular--size-default{height:32px;width:32px}.v-progress-circular--size-large{height:48px;width:48px}.v-progress-circular--size-x-large{height:64px;width:64px}.v-progress-circular--indeterminate>svg{animation:progress-circular-rotate 1.4s linear infinite;transform-origin:center center;transition:all .2s ease-in-out}.v-progress-circular--indeterminate .v-progress-circular__overlay{animation:progress-circular-dash 1.4s ease-in-out infinite,progress-circular-rotate 1.4s linear infinite;stroke-dasharray:25,200;stroke-dashoffset:0;stroke-linecap:round;transform-origin:center center;transform:rotate(-90deg)}.v-progress-circular--disable-shrink>svg{animation-duration:.7s}.v-progress-circular--disable-shrink .v-progress-circular__overlay{animation:none}.v-progress-circular--indeterminate:not(.v-progress-circular--visible)>svg,.v-progress-circular--indeterminate:not(.v-progress-circular--visible) .v-progress-circular__overlay{animation-play-state:paused!important}@keyframes progress-circular-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-124px}}@keyframes progress-circular-rotate{to{transform:rotate(270deg)}}.v-selection-control{align-items:center;contain:layout;display:flex;flex:1 0;grid-area:control;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.v-selection-control .v-label{white-space:normal;word-break:break-word;height:100%}.v-selection-control--disabled{opacity:var(--v-disabled-opacity);pointer-events:none}.v-selection-control--error .v-label,.v-selection-control--disabled .v-label{opacity:1}.v-selection-control--error:not(.v-selection-control--disabled) .v-label{color:rgb(var(--v-theme-error))}.v-selection-control--inline{display:inline-flex;flex:0 0 auto;min-width:0;max-width:100%}.v-selection-control--inline .v-label{width:auto}.v-selection-control--density-default{--v-selection-control-size: 40px}.v-selection-control--density-comfortable{--v-selection-control-size: 36px}.v-selection-control--density-compact{--v-selection-control-size: 28px}.v-selection-control__wrapper{width:var(--v-selection-control-size);height:var(--v-selection-control-size);display:inline-flex;align-items:center;position:relative;justify-content:center;flex:none}.v-selection-control__input{width:var(--v-selection-control-size);height:var(--v-selection-control-size);align-items:center;display:flex;flex:none;justify-content:center;position:relative;border-radius:50%}.v-selection-control__input input{cursor:pointer;position:absolute;left:0;top:0;width:100%;height:100%;opacity:0}.v-selection-control__input:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;border-radius:100%;background-color:currentColor;opacity:0;pointer-events:none}.v-selection-control__input:hover:before{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-selection-control__input>.v-icon{opacity:var(--v-medium-emphasis-opacity)}.v-selection-control--disabled .v-selection-control__input>.v-icon,.v-selection-control--dirty .v-selection-control__input>.v-icon,.v-selection-control--error .v-selection-control__input>.v-icon{opacity:1}.v-selection-control--error:not(.v-selection-control--disabled) .v-selection-control__input>.v-icon{color:rgb(var(--v-theme-error))}.v-selection-control--focus-visible .v-selection-control__input:before{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}.v-label{align-items:center;color:inherit;display:inline-flex;font-size:1rem;letter-spacing:.009375em;min-width:0;opacity:var(--v-medium-emphasis-opacity);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-label--clickable{cursor:pointer}.v-selection-control-group{grid-area:control;display:flex;flex-direction:column}.v-selection-control-group--inline{flex-direction:row;flex-wrap:wrap}.v-data-table{width:100%}.v-data-table__table{width:100%;border-collapse:separate;border-spacing:0}.v-data-table__tr--focus{border:1px dotted black}.v-data-table__tr--clickable{cursor:pointer}.v-data-table .v-table__wrapper>table>thead>tr>td.v-data-table-column--align-end,.v-data-table .v-table__wrapper>table>thead>tr th.v-data-table-column--align-end,.v-data-table .v-table__wrapper>table tbody>tr>td.v-data-table-column--align-end,.v-data-table .v-table__wrapper>table tbody>tr th.v-data-table-column--align-end{text-align:end}.v-data-table .v-table__wrapper>table>thead>tr>td.v-data-table-column--align-end .v-data-table-header__content,.v-data-table .v-table__wrapper>table>thead>tr th.v-data-table-column--align-end .v-data-table-header__content,.v-data-table .v-table__wrapper>table tbody>tr>td.v-data-table-column--align-end .v-data-table-header__content,.v-data-table .v-table__wrapper>table tbody>tr th.v-data-table-column--align-end .v-data-table-header__content{flex-direction:row-reverse}.v-data-table .v-table__wrapper>table>thead>tr>td.v-data-table-column--align-center,.v-data-table .v-table__wrapper>table>thead>tr th.v-data-table-column--align-center,.v-data-table .v-table__wrapper>table tbody>tr>td.v-data-table-column--align-center,.v-data-table .v-table__wrapper>table tbody>tr th.v-data-table-column--align-center{text-align:center}.v-data-table .v-table__wrapper>table>thead>tr>td.v-data-table-column--align-center .v-data-table-header__content,.v-data-table .v-table__wrapper>table>thead>tr th.v-data-table-column--align-center .v-data-table-header__content,.v-data-table .v-table__wrapper>table tbody>tr>td.v-data-table-column--align-center .v-data-table-header__content,.v-data-table .v-table__wrapper>table tbody>tr th.v-data-table-column--align-center .v-data-table-header__content{justify-content:center}.v-data-table .v-table__wrapper>table>thead>tr>td.v-data-table-column--no-padding,.v-data-table .v-table__wrapper>table>thead>tr th.v-data-table-column--no-padding,.v-data-table .v-table__wrapper>table tbody>tr>td.v-data-table-column--no-padding,.v-data-table .v-table__wrapper>table tbody>tr th.v-data-table-column--no-padding{padding:0 8px}.v-data-table .v-table__wrapper>table>thead>tr>th,.v-data-table .v-table__wrapper>table tbody>tr>th{align-items:center}.v-data-table .v-table__wrapper>table>thead>tr>th.v-data-table__th--fixed,.v-data-table .v-table__wrapper>table tbody>tr>th.v-data-table__th--fixed{position:sticky}.v-data-table .v-table__wrapper>table>thead>tr>th.v-data-table__th--sortable:hover,.v-data-table .v-table__wrapper>table tbody>tr>th.v-data-table__th--sortable:hover{cursor:pointer;color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-data-table .v-table__wrapper>table>thead>tr>th:not(.v-data-table__th--sorted) .v-data-table-header__sort-icon,.v-data-table .v-table__wrapper>table tbody>tr>th:not(.v-data-table__th--sorted) .v-data-table-header__sort-icon{opacity:0}.v-data-table .v-table__wrapper>table>thead>tr>th:not(.v-data-table__th--sorted):hover .v-data-table-header__sort-icon,.v-data-table .v-table__wrapper>table tbody>tr>th:not(.v-data-table__th--sorted):hover .v-data-table-header__sort-icon{opacity:.5}.v-data-table-column--fixed{background:rgb(var(--v-theme-surface));position:sticky!important;left:0;z-index:1}.v-data-table-column--last-fixed{border-right:1px solid rgba(var(--v-border-color),var(--v-border-opacity))}.v-data-table.v-table--fixed-header>.v-table__wrapper>table>thead>tr>th.v-data-table-column--fixed{z-index:2}.v-data-table-group-header-row td{background:rgba(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface))}.v-data-table-group-header-row td>span{padding-left:5px}.v-data-table--loading .v-data-table__td{opacity:.3}.v-data-table-group-header-row__column{padding-left:calc(var(--v-data-table-group-header-row-depth) * 16px)!important}.v-data-table-header__content{display:flex;align-items:center}.v-data-table-header__sort-badge{display:inline-flex;justify-content:center;align-items:center;font-size:.875rem;padding:4px;border-radius:50%;background:rgba(var(--v-border-color),var(--v-border-opacity));min-width:20px;min-height:20px;width:20px;height:20px}.v-data-table-progress>th{border:none!important;height:auto!important;padding:0!important}.v-data-table-progress__loader{position:relative}.v-data-table-rows-loading,.v-data-table-rows-no-data{text-align:center}.v-data-table-footer{display:flex;align-items:center;flex-wrap:wrap;padding:4px;justify-content:flex-end}.v-data-table-footer__items-per-page{padding-inline-end:24px;display:flex;align-items:center;justify-content:space-between}.v-data-table-footer__items-per-page>span{padding-inline-end:24px}.v-data-table-footer__info{display:flex;padding-inline-end:24px}.v-data-table-footer__pagination{display:flex;align-items:center}.v-data-table-footer__page{padding:0 8px}.v-pagination__list{display:inline-flex;list-style-type:none;justify-content:center;width:100%}.v-pagination__item,.v-pagination__first,.v-pagination__prev,.v-pagination__next,.v-pagination__last{margin:.3rem}.v-btn{align-items:center;border-radius:4px;display:inline-grid;grid-template-areas:"prepend content append";grid-template-columns:max-content auto max-content;font-weight:500;justify-content:center;letter-spacing:.0892857143em;line-height:normal;max-width:100%;outline:none;position:relative;text-decoration:none;text-indent:.0892857143em;text-transform:uppercase;transition-property:box-shadow,transform,opacity,background;transition-duration:.28s;transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;flex-shrink:0;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0}.v-btn--size-x-small{--v-btn-size: .625rem;--v-btn-height: 20px;font-size:var(--v-btn-size);min-width:36px;padding:0 8px}.v-btn--size-small{--v-btn-size: .75rem;--v-btn-height: 28px;font-size:var(--v-btn-size);min-width:50px;padding:0 12px}.v-btn--size-default{--v-btn-size: .875rem;--v-btn-height: 36px;font-size:var(--v-btn-size);min-width:64px;padding:0 16px}.v-btn--size-large{--v-btn-size: 1rem;--v-btn-height: 44px;font-size:var(--v-btn-size);min-width:78px;padding:0 20px}.v-btn--size-x-large{--v-btn-size: 1.125rem;--v-btn-height: 52px;font-size:var(--v-btn-size);min-width:92px;padding:0 24px}.v-btn.v-btn--density-default{height:calc(var(--v-btn-height) + 0px)}.v-btn.v-btn--density-comfortable{height:calc(var(--v-btn-height) + -8px)}.v-btn.v-btn--density-compact{height:calc(var(--v-btn-height) + -12px)}.v-btn--border{border-width:thin;box-shadow:none}.v-btn--absolute{position:absolute}.v-btn--fixed{position:fixed}.v-btn:hover>.v-btn__overlay{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-btn:focus-visible>.v-btn__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-btn:focus>.v-btn__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}}.v-btn--active>.v-btn__overlay,.v-btn[aria-haspopup=menu][aria-expanded=true]>.v-btn__overlay{opacity:calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier))}.v-btn--active:hover>.v-btn__overlay,.v-btn[aria-haspopup=menu][aria-expanded=true]:hover>.v-btn__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}.v-btn--active:focus-visible>.v-btn__overlay,.v-btn[aria-haspopup=menu][aria-expanded=true]:focus-visible>.v-btn__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-btn--active:focus>.v-btn__overlay,.v-btn[aria-haspopup=menu][aria-expanded=true]:focus>.v-btn__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}}.v-btn--variant-plain,.v-btn--variant-outlined,.v-btn--variant-text,.v-btn--variant-tonal{background:transparent;color:inherit}.v-btn--variant-plain{opacity:.62}.v-btn--variant-plain:focus,.v-btn--variant-plain:hover{opacity:1}.v-btn--variant-plain .v-btn__overlay{display:none}.v-btn--variant-elevated,.v-btn--variant-flat{background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-btn--variant-elevated{box-shadow:0 3px 1px -2px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 2px 2px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-btn--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-btn--variant-outlined{border:thin solid currentColor}.v-btn--variant-text .v-btn__overlay{background:currentColor}.v-btn--variant-tonal .v-btn__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}@supports selector(:focus-visible){.v-btn:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;border:2px solid currentColor;border-radius:inherit;opacity:0;transition:opacity .2s ease-in-out}.v-btn:focus-visible:after{opacity:calc(.25 * var(--v-theme-overlay-multiplier))}}.v-btn--icon{border-radius:50%;min-width:0;padding:0}.v-btn--icon.v-btn--size-default{--v-btn-size: 1rem}.v-btn--icon.v-btn--density-default{width:calc(var(--v-btn-height) + 12px);height:calc(var(--v-btn-height) + 12px)}.v-btn--icon.v-btn--density-comfortable{width:calc(var(--v-btn-height) + 0px);height:calc(var(--v-btn-height) + 0px)}.v-btn--icon.v-btn--density-compact{width:calc(var(--v-btn-height) + -8px);height:calc(var(--v-btn-height) + -8px)}.v-btn--elevated:hover,.v-btn--elevated:focus{box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 10px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-btn--elevated:active{box-shadow:0 5px 5px -3px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 8px 10px 1px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 3px 14px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-btn--flat{box-shadow:none}.v-btn--block{display:flex;flex:1 0 auto;min-width:100%}.v-btn--disabled{pointer-events:none;opacity:.26}.v-btn--disabled:hover{opacity:.26}.v-btn--disabled.v-btn--variant-elevated,.v-btn--disabled.v-btn--variant-flat{box-shadow:none;opacity:1;color:rgba(var(--v-theme-on-surface),.26);background:rgb(var(--v-theme-surface))}.v-btn--disabled.v-btn--variant-elevated .v-btn__overlay,.v-btn--disabled.v-btn--variant-flat .v-btn__overlay{opacity:.4615384615}.v-btn--loading{pointer-events:none}.v-btn--loading .v-btn__content,.v-btn--loading .v-btn__prepend,.v-btn--loading .v-btn__append{opacity:0}.v-btn--stacked{grid-template-areas:"prepend" "content" "append";grid-template-columns:auto;grid-template-rows:max-content max-content max-content;justify-items:center;align-content:center}.v-btn--stacked .v-btn__content{flex-direction:column;line-height:1.25}.v-btn--stacked .v-btn__prepend,.v-btn--stacked .v-btn__append,.v-btn--stacked .v-btn__content>.v-icon--start,.v-btn--stacked .v-btn__content>.v-icon--end{margin-inline:0}.v-btn--stacked .v-btn__prepend,.v-btn--stacked .v-btn__content>.v-icon--start{margin-bottom:4px}.v-btn--stacked .v-btn__append,.v-btn--stacked .v-btn__content>.v-icon--end{margin-top:4px}.v-btn--stacked.v-btn--size-x-small{--v-btn-size: .625rem;--v-btn-height: 56px;font-size:var(--v-btn-size);min-width:56px;padding:0 12px}.v-btn--stacked.v-btn--size-small{--v-btn-size: .75rem;--v-btn-height: 64px;font-size:var(--v-btn-size);min-width:64px;padding:0 14px}.v-btn--stacked.v-btn--size-default{--v-btn-size: .875rem;--v-btn-height: 72px;font-size:var(--v-btn-size);min-width:72px;padding:0 16px}.v-btn--stacked.v-btn--size-large{--v-btn-size: 1rem;--v-btn-height: 80px;font-size:var(--v-btn-size);min-width:80px;padding:0 18px}.v-btn--stacked.v-btn--size-x-large{--v-btn-size: 1.125rem;--v-btn-height: 88px;font-size:var(--v-btn-size);min-width:88px;padding:0 20px}.v-btn--stacked.v-btn--density-default{height:calc(var(--v-btn-height) + 0px)}.v-btn--stacked.v-btn--density-comfortable{height:calc(var(--v-btn-height) + -16px)}.v-btn--stacked.v-btn--density-compact{height:calc(var(--v-btn-height) + -24px)}.v-btn--slim{padding:0 8px}.v-btn--rounded{border-radius:24px}.v-btn--rounded.v-btn--icon{border-radius:4px}.v-btn .v-icon{--v-icon-size-multiplier: .8571428571}.v-btn--icon .v-icon{--v-icon-size-multiplier: 1}.v-btn--stacked .v-icon{--v-icon-size-multiplier: 1.1428571429}.v-btn__loader{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}.v-btn__content,.v-btn__prepend,.v-btn__append{align-items:center;display:flex;transition:transform,opacity .2s cubic-bezier(.4,0,.2,1)}.v-btn__prepend{grid-area:prepend;margin-inline:calc(var(--v-btn-height) / -9) calc(var(--v-btn-height) / 4.5)}.v-btn__append{grid-area:append;margin-inline:calc(var(--v-btn-height) / 4.5) calc(var(--v-btn-height) / -9)}.v-btn__content{grid-area:content;justify-content:center;white-space:nowrap}.v-btn__content>.v-icon--start{margin-inline:calc(var(--v-btn-height) / -9) calc(var(--v-btn-height) / 4.5)}.v-btn__content>.v-icon--end{margin-inline:calc(var(--v-btn-height) / 4.5) calc(var(--v-btn-height) / -9)}.v-btn--stacked .v-btn__content{white-space:normal}.v-btn__overlay{background-color:currentColor;border-radius:inherit;opacity:0;transition:opacity .2s ease-in-out}.v-btn__overlay,.v-btn__underlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.v-card-actions .v-btn~.v-btn:not(.v-btn-toggle .v-btn){margin-inline-start:.5rem}.v-pagination .v-btn{border-radius:4px}.v-pagination .v-btn--rounded{border-radius:50%}.v-btn__overlay{transition:none}.v-pagination__item--is-active .v-btn__overlay{opacity:var(--v-border-opacity)}.v-btn-toggle>.v-btn.v-btn--active:not(.v-btn--disabled)>.v-btn__overlay{opacity:calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier))}.v-btn-toggle>.v-btn.v-btn--active:not(.v-btn--disabled):hover>.v-btn__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}.v-btn-toggle>.v-btn.v-btn--active:not(.v-btn--disabled):focus-visible>.v-btn__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-btn-toggle>.v-btn.v-btn--active:not(.v-btn--disabled):focus>.v-btn__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}}.v-btn-group{display:inline-flex;flex-wrap:nowrap;max-width:100%;min-width:0;overflow:hidden;vertical-align:middle;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12));border-radius:4px;background:transparent;color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-btn-group--border{border-width:thin;box-shadow:none}.v-btn-group--density-default.v-btn-group{height:48px}.v-btn-group--density-comfortable.v-btn-group{height:40px}.v-btn-group--density-compact.v-btn-group{height:36px}.v-btn-group .v-btn{border-radius:0;border-color:inherit}.v-btn-group .v-btn:not(:last-child){border-inline-end:none}.v-btn-group .v-btn:not(:first-child){border-inline-start:none}.v-btn-group .v-btn:first-child{border-start-start-radius:inherit;border-end-start-radius:inherit}.v-btn-group .v-btn:last-child{border-start-end-radius:inherit;border-end-end-radius:inherit}.v-btn-group--divided .v-btn:not(:last-child){border-inline-end-width:thin;border-inline-end-style:solid;border-inline-end-color:rgba(var(--v-border-color),var(--v-border-opacity))}.v-btn-group--tile{border-radius:0}.v-select .v-field .v-text-field__prefix,.v-select .v-field .v-text-field__suffix,.v-select .v-field .v-field__input,.v-select .v-field.v-field{cursor:pointer}.v-select .v-field .v-field__input>input{align-self:flex-start;opacity:1;flex:0 0;position:absolute;width:100%;transition:none;pointer-events:none;caret-color:transparent}.v-select .v-field--dirty .v-select__selection{margin-inline-end:2px}.v-select .v-select__selection-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-select__content{overflow:hidden;box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 10px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12));border-radius:4px}.v-select__selection{display:inline-flex;align-items:center;letter-spacing:inherit;line-height:inherit;max-width:100%}.v-select .v-select__selection:first-child{margin-inline-start:0}.v-select--selected .v-field .v-field__input>input{opacity:0}.v-select__menu-icon{margin-inline-start:4px;transition:.2s cubic-bezier(.4,0,.2,1)}.v-select--active-menu .v-select__menu-icon{opacity:var(--v-high-emphasis-opacity);transform:rotate(180deg)}.v-checkbox .v-selection-control{min-height:var(--v-input-control-height)}.v-chip{align-items:center;cursor:default;display:inline-flex;font-weight:400;max-width:100%;min-width:0;overflow:hidden;position:relative;text-decoration:none;white-space:nowrap;vertical-align:middle;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;border-radius:9999px}.v-chip.v-chip--size-x-small{--v-chip-size: .625rem;--v-chip-height: 20px;font-size:.625rem;padding:0 8px}.v-chip.v-chip--size-x-small .v-avatar{--v-avatar-height: 14px}.v-chip--pill.v-chip.v-chip--size-x-small .v-avatar{--v-avatar-height: 20px}.v-chip.v-chip--size-x-small .v-avatar--start{margin-inline-start:-5.6px;margin-inline-end:4px}.v-chip--pill.v-chip.v-chip--size-x-small .v-avatar--start{margin-inline-start:-8px}.v-chip.v-chip--size-x-small .v-avatar--end{margin-inline-start:4px;margin-inline-end:-5.6px}.v-chip--pill.v-chip.v-chip--size-x-small .v-avatar--end{margin-inline-end:-8px}.v-chip--pill.v-chip.v-chip--size-x-small .v-avatar--end+.v-chip__close{margin-inline-start:12px}.v-chip.v-chip--size-x-small .v-icon--start,.v-chip.v-chip--size-x-small .v-chip__filter{margin-inline-start:-4px;margin-inline-end:4px}.v-chip.v-chip--size-x-small .v-icon--end,.v-chip.v-chip--size-x-small .v-chip__close{margin-inline-start:4px;margin-inline-end:-4px}.v-chip.v-chip--size-x-small .v-icon--end+.v-chip__close,.v-chip.v-chip--size-x-small .v-avatar--end+.v-chip__close,.v-chip.v-chip--size-x-small .v-chip__append+.v-chip__close{margin-inline-start:8px}.v-chip.v-chip--size-small{--v-chip-size: .75rem;--v-chip-height: 26px;font-size:.75rem;padding:0 10px}.v-chip.v-chip--size-small .v-avatar{--v-avatar-height: 20px}.v-chip--pill.v-chip.v-chip--size-small .v-avatar{--v-avatar-height: 26px}.v-chip.v-chip--size-small .v-avatar--start{margin-inline-start:-7px;margin-inline-end:5px}.v-chip--pill.v-chip.v-chip--size-small .v-avatar--start{margin-inline-start:-10px}.v-chip.v-chip--size-small .v-avatar--end{margin-inline-start:5px;margin-inline-end:-7px}.v-chip--pill.v-chip.v-chip--size-small .v-avatar--end{margin-inline-end:-10px}.v-chip--pill.v-chip.v-chip--size-small .v-avatar--end+.v-chip__close{margin-inline-start:15px}.v-chip.v-chip--size-small .v-icon--start,.v-chip.v-chip--size-small .v-chip__filter{margin-inline-start:-5px;margin-inline-end:5px}.v-chip.v-chip--size-small .v-icon--end,.v-chip.v-chip--size-small .v-chip__close{margin-inline-start:5px;margin-inline-end:-5px}.v-chip.v-chip--size-small .v-icon--end+.v-chip__close,.v-chip.v-chip--size-small .v-avatar--end+.v-chip__close,.v-chip.v-chip--size-small .v-chip__append+.v-chip__close{margin-inline-start:10px}.v-chip.v-chip--size-default{--v-chip-size: .875rem;--v-chip-height: 32px;font-size:.875rem;padding:0 12px}.v-chip.v-chip--size-default .v-avatar{--v-avatar-height: 26px}.v-chip--pill.v-chip.v-chip--size-default .v-avatar{--v-avatar-height: 32px}.v-chip.v-chip--size-default .v-avatar--start{margin-inline-start:-8.4px;margin-inline-end:6px}.v-chip--pill.v-chip.v-chip--size-default .v-avatar--start{margin-inline-start:-12px}.v-chip.v-chip--size-default .v-avatar--end{margin-inline-start:6px;margin-inline-end:-8.4px}.v-chip--pill.v-chip.v-chip--size-default .v-avatar--end{margin-inline-end:-12px}.v-chip--pill.v-chip.v-chip--size-default .v-avatar--end+.v-chip__close{margin-inline-start:18px}.v-chip.v-chip--size-default .v-icon--start,.v-chip.v-chip--size-default .v-chip__filter{margin-inline-start:-6px;margin-inline-end:6px}.v-chip.v-chip--size-default .v-icon--end,.v-chip.v-chip--size-default .v-chip__close{margin-inline-start:6px;margin-inline-end:-6px}.v-chip.v-chip--size-default .v-icon--end+.v-chip__close,.v-chip.v-chip--size-default .v-avatar--end+.v-chip__close,.v-chip.v-chip--size-default .v-chip__append+.v-chip__close{margin-inline-start:12px}.v-chip.v-chip--size-large{--v-chip-size: 1rem;--v-chip-height: 38px;font-size:1rem;padding:0 14px}.v-chip.v-chip--size-large .v-avatar{--v-avatar-height: 32px}.v-chip--pill.v-chip.v-chip--size-large .v-avatar{--v-avatar-height: 38px}.v-chip.v-chip--size-large .v-avatar--start{margin-inline-start:-9.8px;margin-inline-end:7px}.v-chip--pill.v-chip.v-chip--size-large .v-avatar--start{margin-inline-start:-14px}.v-chip.v-chip--size-large .v-avatar--end{margin-inline-start:7px;margin-inline-end:-9.8px}.v-chip--pill.v-chip.v-chip--size-large .v-avatar--end{margin-inline-end:-14px}.v-chip--pill.v-chip.v-chip--size-large .v-avatar--end+.v-chip__close{margin-inline-start:21px}.v-chip.v-chip--size-large .v-icon--start,.v-chip.v-chip--size-large .v-chip__filter{margin-inline-start:-7px;margin-inline-end:7px}.v-chip.v-chip--size-large .v-icon--end,.v-chip.v-chip--size-large .v-chip__close{margin-inline-start:7px;margin-inline-end:-7px}.v-chip.v-chip--size-large .v-icon--end+.v-chip__close,.v-chip.v-chip--size-large .v-avatar--end+.v-chip__close,.v-chip.v-chip--size-large .v-chip__append+.v-chip__close{margin-inline-start:14px}.v-chip.v-chip--size-x-large{--v-chip-size: 1.125rem;--v-chip-height: 44px;font-size:1.125rem;padding:0 17px}.v-chip.v-chip--size-x-large .v-avatar{--v-avatar-height: 38px}.v-chip--pill.v-chip.v-chip--size-x-large .v-avatar{--v-avatar-height: 44px}.v-chip.v-chip--size-x-large .v-avatar--start{margin-inline-start:-11.9px;margin-inline-end:8.5px}.v-chip--pill.v-chip.v-chip--size-x-large .v-avatar--start{margin-inline-start:-17px}.v-chip.v-chip--size-x-large .v-avatar--end{margin-inline-start:8.5px;margin-inline-end:-11.9px}.v-chip--pill.v-chip.v-chip--size-x-large .v-avatar--end{margin-inline-end:-17px}.v-chip--pill.v-chip.v-chip--size-x-large .v-avatar--end+.v-chip__close{margin-inline-start:25.5px}.v-chip.v-chip--size-x-large .v-icon--start,.v-chip.v-chip--size-x-large .v-chip__filter{margin-inline-start:-8.5px;margin-inline-end:8.5px}.v-chip.v-chip--size-x-large .v-icon--end,.v-chip.v-chip--size-x-large .v-chip__close{margin-inline-start:8.5px;margin-inline-end:-8.5px}.v-chip.v-chip--size-x-large .v-icon--end+.v-chip__close,.v-chip.v-chip--size-x-large .v-avatar--end+.v-chip__close,.v-chip.v-chip--size-x-large .v-chip__append+.v-chip__close{margin-inline-start:17px}.v-chip.v-chip--density-default{height:calc(var(--v-chip-height) + 0px)}.v-chip.v-chip--density-comfortable{height:calc(var(--v-chip-height) + -8px)}.v-chip.v-chip--density-compact{height:calc(var(--v-chip-height) + -12px)}.v-chip:hover>.v-chip__overlay{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-chip:focus-visible>.v-chip__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-chip:focus>.v-chip__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}}.v-chip--active>.v-chip__overlay,.v-chip[aria-haspopup=menu][aria-expanded=true]>.v-chip__overlay{opacity:calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier))}.v-chip--active:hover>.v-chip__overlay,.v-chip[aria-haspopup=menu][aria-expanded=true]:hover>.v-chip__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}.v-chip--active:focus-visible>.v-chip__overlay,.v-chip[aria-haspopup=menu][aria-expanded=true]:focus-visible>.v-chip__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-chip--active:focus>.v-chip__overlay,.v-chip[aria-haspopup=menu][aria-expanded=true]:focus>.v-chip__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}}.v-chip--variant-plain,.v-chip--variant-outlined,.v-chip--variant-text,.v-chip--variant-tonal{background:transparent;color:inherit}.v-chip--variant-plain{opacity:.26}.v-chip--variant-plain:focus,.v-chip--variant-plain:hover{opacity:1}.v-chip--variant-plain .v-chip__overlay{display:none}.v-chip--variant-elevated,.v-chip--variant-flat{background:rgb(var(--v-theme-surface-variant));color:rgb(var(--v-theme-on-surface-variant))}.v-chip--variant-elevated{box-shadow:0 2px 1px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 1px 1px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 3px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-chip--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-chip--variant-outlined{border:thin solid currentColor}.v-chip--variant-text .v-chip__overlay{background:currentColor}.v-chip--variant-tonal .v-chip__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.v-chip--border{border-width:thin}.v-chip--link{cursor:pointer}.v-chip--filter{-webkit-user-select:none;-moz-user-select:none;user-select:none}.v-chip__content{align-items:center;display:inline-flex}.v-autocomplete__selection .v-chip__content,.v-combobox__selection .v-chip__content,.v-select__selection .v-chip__content{overflow:hidden}.v-chip__filter,.v-chip__prepend,.v-chip__append,.v-chip__close{align-items:center;display:inline-flex}.v-chip__close{cursor:pointer;flex:0 1 auto;font-size:18px;max-height:18px;max-width:18px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.v-chip__close .v-icon{font-size:inherit}.v-chip__filter{transition:.15s cubic-bezier(.4,0,.2,1)}.v-chip__overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:currentColor;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .2s ease-in-out}.v-chip--disabled{opacity:.3;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.v-chip--label{border-radius:4px}.v-chip-group{display:flex;max-width:100%;min-width:0;overflow-x:auto;padding:4px 0;flex-wrap:wrap}.v-chip-group .v-chip{margin:4px 8px 4px 0}.v-chip-group .v-chip.v-chip--selected:not(.v-chip--disabled) .v-chip__overlay{opacity:var(--v-activated-opacity)}.v-chip-group--column{flex-wrap:wrap;white-space:normal}.v-list{overflow:auto;padding:8px 0;position:relative;outline:none;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12));border-radius:0;background:rgba(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-list--border{border-width:thin;box-shadow:none}.v-list--disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.v-list--nav{padding-inline:8px}.v-list--rounded{border-radius:4px}.v-list--subheader{padding-top:0}.v-list-img{border-radius:inherit;display:flex;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:-1}.v-list-subheader{align-items:center;background:inherit;color:rgba(var(--v-theme-on-surface),var(--v-medium-emphasis-opacity));display:flex;font-size:.875rem;font-weight:400;line-height:1.375rem;padding-inline-end:16px;min-height:40px;transition:.2s min-height cubic-bezier(.4,0,.2,1)}.v-list-subheader__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-list--density-default .v-list-subheader{min-height:40px;padding-inline-start:calc(16px + var(--indent-padding))!important}.v-list--density-comfortable .v-list-subheader{min-height:36px;padding-inline-start:calc(16px + var(--indent-padding))!important}.v-list--density-compact .v-list-subheader{min-height:32px;padding-inline-start:calc(16px + var(--indent-padding))!important}.v-list-subheader--inset{--indent-padding: 56px}.v-list--nav .v-list-subheader{font-size:.75rem}.v-list-subheader--sticky{background:inherit;left:0;position:sticky;top:0;z-index:1}.v-list__overlay{background-color:currentColor;border-radius:inherit;bottom:0;left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .2s ease-in-out}.v-list-item{align-items:center;display:grid;flex:none;grid-template-areas:"prepend content append";grid-template-columns:max-content 1fr auto;outline:none;max-width:100%;padding:4px 16px;position:relative;text-decoration:none;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;border-radius:0}.v-list-item--border{border-width:thin;box-shadow:none}.v-list-item:hover>.v-list-item__overlay{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-list-item:focus-visible>.v-list-item__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-list-item:focus>.v-list-item__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}}.v-list-item--active>.v-list-item__overlay,.v-list-item[aria-haspopup=menu][aria-expanded=true]>.v-list-item__overlay{opacity:calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier))}.v-list-item--active:hover>.v-list-item__overlay,.v-list-item[aria-haspopup=menu][aria-expanded=true]:hover>.v-list-item__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}.v-list-item--active:focus-visible>.v-list-item__overlay,.v-list-item[aria-haspopup=menu][aria-expanded=true]:focus-visible>.v-list-item__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-list-item--active:focus>.v-list-item__overlay,.v-list-item[aria-haspopup=menu][aria-expanded=true]:focus>.v-list-item__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}}.v-list-item--variant-plain,.v-list-item--variant-outlined,.v-list-item--variant-text,.v-list-item--variant-tonal{background:transparent;color:inherit}.v-list-item--variant-plain{opacity:.62}.v-list-item--variant-plain:focus,.v-list-item--variant-plain:hover{opacity:1}.v-list-item--variant-plain .v-list-item__overlay{display:none}.v-list-item--variant-elevated,.v-list-item--variant-flat{background:rgba(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-list-item--variant-elevated{box-shadow:0 2px 1px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 1px 1px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 3px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-list-item--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-list-item--variant-outlined{border:thin solid currentColor}.v-list-item--variant-text .v-list-item__overlay{background:currentColor}.v-list-item--variant-tonal .v-list-item__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}@supports selector(:focus-visible){.v-list-item:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;border:2px solid currentColor;border-radius:4px;opacity:0;transition:opacity .2s ease-in-out}.v-list-item:focus-visible:after{opacity:calc(.15 * var(--v-theme-overlay-multiplier))}}.v-list-item__prepend>.v-badge .v-icon,.v-list-item__prepend>.v-icon,.v-list-item__append>.v-badge .v-icon,.v-list-item__append>.v-icon{opacity:var(--v-medium-emphasis-opacity)}.v-list-item--active .v-list-item__prepend>.v-badge .v-icon,.v-list-item--active .v-list-item__prepend>.v-icon,.v-list-item--active .v-list-item__append>.v-badge .v-icon,.v-list-item--active .v-list-item__append>.v-icon{opacity:1}.v-list-item--rounded{border-radius:4px}.v-list-item--disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.6}.v-list-item--link{cursor:pointer}.v-navigation-drawer--rail:not(.v-navigation-drawer--expand-on-hover) .v-list-item .v-avatar,.v-navigation-drawer--rail.v-navigation-drawer--expand-on-hover:not(.v-navigation-drawer--is-hovering) .v-list-item .v-avatar{--v-avatar-height: 24px}.v-list-item__prepend{align-items:center;align-self:center;display:flex;grid-area:prepend}.v-list-item__prepend>.v-badge~.v-list-item__spacer,.v-list-item__prepend>.v-icon~.v-list-item__spacer,.v-list-item__prepend>.v-tooltip~.v-list-item__spacer{width:32px}.v-list-item__prepend>.v-avatar~.v-list-item__spacer{width:16px}.v-list-item--slim .v-list-item__prepend>.v-badge~.v-list-item__spacer,.v-list-item--slim .v-list-item__prepend>.v-icon~.v-list-item__spacer,.v-list-item--slim .v-list-item__prepend>.v-tooltip~.v-list-item__spacer{width:8px}.v-list-item--slim .v-list-item__prepend>.v-avatar~.v-list-item__spacer{width:4px}.v-list-item--three-line .v-list-item__prepend{align-self:start}.v-list-item__append{align-self:center;display:flex;align-items:center;grid-area:append}.v-list-item__append .v-list-item__spacer{order:-1;transition:.15s width cubic-bezier(.4,0,.2,1)}.v-list-item__append>.v-badge~.v-list-item__spacer,.v-list-item__append>.v-icon~.v-list-item__spacer,.v-list-item__append>.v-tooltip~.v-list-item__spacer{width:32px}.v-list-item__append>.v-avatar~.v-list-item__spacer{width:16px}.v-list-item--slim .v-list-item__append>.v-badge~.v-list-item__spacer,.v-list-item--slim .v-list-item__append>.v-icon~.v-list-item__spacer,.v-list-item--slim .v-list-item__append>.v-tooltip~.v-list-item__spacer{width:8px}.v-list-item--slim .v-list-item__append>.v-avatar~.v-list-item__spacer{width:4px}.v-list-item--three-line .v-list-item__append{align-self:start}.v-list-item__content{align-self:center;grid-area:content;overflow:hidden}.v-list-item-action{align-self:center;display:flex;align-items:center;grid-area:prepend;flex:none;transition:inherit;transition-property:height,width}.v-list-item-action--start{margin-inline-end:12px}.v-list-item-action--end{margin-inline-start:12px}.v-list-item-media{margin-top:0;margin-bottom:0}.v-list-item-media--start{margin-inline-end:16px}.v-list-item-media--end{margin-inline-start:16px}.v-list-item--two-line .v-list-item-media{margin-top:-4px;margin-bottom:-4px}.v-list-item--three-line .v-list-item-media{margin-top:0;margin-bottom:0}.v-list-item-subtitle{-webkit-box-orient:vertical;display:-webkit-box;opacity:var(--v-medium-emphasis-opacity);overflow:hidden;padding:0;text-overflow:ellipsis;font-size:.875rem;font-weight:400;letter-spacing:.0178571429em;line-height:1rem;text-transform:none}.v-list-item--one-line .v-list-item-subtitle{-webkit-line-clamp:1}.v-list-item--two-line .v-list-item-subtitle{-webkit-line-clamp:2}.v-list-item--three-line .v-list-item-subtitle{-webkit-line-clamp:3}.v-list-item--nav .v-list-item-subtitle{font-size:.75rem;font-weight:400;letter-spacing:.0178571429em;line-height:1rem}.v-list-item-title{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:normal;overflow:hidden;padding:0;white-space:nowrap;text-overflow:ellipsis;word-break:normal;word-wrap:break-word;font-size:1rem;font-weight:400;letter-spacing:.009375em;line-height:1.5rem;text-transform:none}.v-list-item--nav .v-list-item-title{font-size:.8125rem;font-weight:500;letter-spacing:normal;line-height:1rem}.v-list-item--density-default{min-height:40px}.v-list-item--density-default.v-list-item--one-line{min-height:48px;padding-top:4px;padding-bottom:4px}.v-list-item--density-default.v-list-item--two-line{min-height:64px;padding-top:12px;padding-bottom:12px}.v-list-item--density-default.v-list-item--three-line{min-height:88px;padding-top:16px;padding-bottom:16px}.v-list-item--density-default.v-list-item--three-line .v-list-item__prepend,.v-list-item--density-default.v-list-item--three-line .v-list-item__append{padding-top:8px}.v-list-item--density-default:not(.v-list-item--nav).v-list-item--one-line{padding-inline:16px}.v-list-item--density-default:not(.v-list-item--nav).v-list-item--two-line{padding-inline:16px}.v-list-item--density-default:not(.v-list-item--nav).v-list-item--three-line{padding-inline:16px}.v-list-item--density-comfortable{min-height:36px}.v-list-item--density-comfortable.v-list-item--one-line{min-height:44px}.v-list-item--density-comfortable.v-list-item--two-line{min-height:60px;padding-top:8px;padding-bottom:8px}.v-list-item--density-comfortable.v-list-item--three-line{min-height:84px;padding-top:12px;padding-bottom:12px}.v-list-item--density-comfortable.v-list-item--three-line .v-list-item__prepend,.v-list-item--density-comfortable.v-list-item--three-line .v-list-item__append{padding-top:6px}.v-list-item--density-comfortable:not(.v-list-item--nav).v-list-item--one-line{padding-inline:16px}.v-list-item--density-comfortable:not(.v-list-item--nav).v-list-item--two-line{padding-inline:16px}.v-list-item--density-comfortable:not(.v-list-item--nav).v-list-item--three-line{padding-inline:16px}.v-list-item--density-compact{min-height:32px}.v-list-item--density-compact.v-list-item--one-line{min-height:40px}.v-list-item--density-compact.v-list-item--two-line{min-height:56px;padding-top:4px;padding-bottom:4px}.v-list-item--density-compact.v-list-item--three-line{min-height:80px;padding-top:8px;padding-bottom:8px}.v-list-item--density-compact.v-list-item--three-line .v-list-item__prepend,.v-list-item--density-compact.v-list-item--three-line .v-list-item__append{padding-top:4px}.v-list-item--density-compact:not(.v-list-item--nav).v-list-item--one-line{padding-inline:16px}.v-list-item--density-compact:not(.v-list-item--nav).v-list-item--two-line{padding-inline:16px}.v-list-item--density-compact:not(.v-list-item--nav).v-list-item--three-line{padding-inline:16px}.v-list-item--nav{padding-inline:8px}.v-list .v-list-item--nav:not(:only-child){margin-bottom:4px}.v-list-item__underlay{position:absolute}.v-list-item__overlay{background-color:currentColor;border-radius:inherit;bottom:0;left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .2s ease-in-out}.v-list-item--active.v-list-item--variant-elevated .v-list-item__overlay{--v-theme-overlay-multiplier: 0}.v-list{--indent-padding: 0px}.v-list--nav{--indent-padding: -8px}.v-list-group{--list-indent-size: 16px;--parent-padding: var(--indent-padding);--prepend-width: 40px}.v-list-group--fluid{--list-indent-size: 0px}.v-list-group--prepend{--parent-padding: calc(var(--indent-padding) + var(--prepend-width))}.v-list-group--fluid.v-list-group--prepend{--parent-padding: var(--indent-padding)}.v-list-group__items{--indent-padding: calc(var(--parent-padding) + var(--list-indent-size))}.v-list-group__items .v-list-item{padding-inline-start:calc(16px + var(--indent-padding))!important}.v-list-group__header.v-list-item--active:not(:focus-visible) .v-list-item__overlay{opacity:0}.v-list-group__header.v-list-item--active:hover .v-list-item__overlay{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-menu>.v-overlay__content{display:flex;flex-direction:column;border-radius:4px}.v-menu>.v-overlay__content>.v-card,.v-menu>.v-overlay__content>.v-sheet,.v-menu>.v-overlay__content>.v-list{background:rgb(var(--v-theme-surface));border-radius:inherit;overflow:auto;height:100%;box-shadow:0 5px 5px -3px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 8px 10px 1px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 3px 14px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-overlay-container{contain:layout;left:0;pointer-events:none;position:absolute;top:0;display:contents}.v-overlay-scroll-blocked{padding-inline-end:var(--v-scrollbar-offset)}.v-overlay-scroll-blocked:not(html){overflow-y:hidden!important}html.v-overlay-scroll-blocked{position:fixed;top:var(--v-body-scroll-y);left:var(--v-body-scroll-x);width:100%;height:100%}.v-overlay{border-radius:inherit;display:flex;left:0;pointer-events:none;position:fixed;top:0;bottom:0;right:0}.v-overlay__content{outline:none;position:absolute;pointer-events:auto;contain:layout}.v-overlay__scrim{pointer-events:auto;background:rgb(var(--v-theme-on-surface));border-radius:inherit;bottom:0;left:0;opacity:.32;position:fixed;right:0;top:0}.v-overlay--absolute,.v-overlay--contained .v-overlay__scrim{position:absolute}.v-overlay--scroll-blocked{padding-inline-end:var(--v-scrollbar-offset)}.v-text-field input{color:inherit;opacity:0;flex:1;transition:.15s opacity cubic-bezier(.4,0,.2,1);min-width:0}.v-text-field input:focus,.v-text-field input:active{outline:none}.v-text-field input:invalid{box-shadow:none}.v-text-field .v-field{cursor:text}.v-text-field--prefixed.v-text-field .v-field__input{--v-field-padding-start: 6px}.v-text-field--suffixed.v-text-field .v-field__input{--v-field-padding-end: 0}.v-text-field .v-input__details{padding-inline:16px}.v-input--plain-underlined.v-text-field .v-input__details{padding-inline:0}.v-text-field .v-field--no-label input,.v-text-field .v-field--active input{opacity:1}.v-text-field .v-field--single-line input{transition:none}.v-text-field__prefix,.v-text-field__suffix{align-items:center;color:rgba(var(--v-theme-on-surface),var(--v-medium-emphasis-opacity));cursor:default;display:flex;opacity:0;transition:inherit;white-space:nowrap;min-height:max(var(--v-input-control-height, 56px),1.5rem + var(--v-field-input-padding-top) + var(--v-field-input-padding-bottom));padding-top:calc(var(--v-field-padding-top, 4px) + var(--v-input-padding-top, 0));padding-bottom:var(--v-field-padding-bottom, 6px)}.v-field--active .v-text-field__prefix,.v-field--active .v-text-field__suffix{opacity:1}.v-field--disabled .v-text-field__prefix,.v-field--disabled .v-text-field__suffix{color:rgba(var(--v-theme-on-surface),var(--v-disabled-opacity))}.v-text-field__prefix{padding-inline-start:var(--v-field-padding-start)}.v-text-field__suffix{padding-inline-end:var(--v-field-padding-end)}.v-counter{color:rgba(var(--v-theme-on-surface),var(--v-medium-emphasis-opacity));flex:0 1 auto;font-size:12px;transition-duration:.15s}.v-field{display:grid;grid-template-areas:"prepend-inner field clear append-inner";grid-template-columns:min-content minmax(0,1fr) min-content min-content;font-size:16px;letter-spacing:.009375em;max-width:100%;border-radius:4px;contain:layout;flex:1 0;grid-area:control;position:relative;--v-field-padding-start: 16px;--v-field-padding-end: 16px;--v-field-padding-top: 8px;--v-field-padding-bottom: 4px;--v-field-input-padding-top: calc(var(--v-field-padding-top, 8px) + var(--v-input-padding-top, 0));--v-field-input-padding-bottom: var(--v-field-padding-bottom, 4px)}.v-field--disabled{opacity:var(--v-disabled-opacity);pointer-events:none}.v-field .v-chip{--v-chip-height: 24px}.v-field--prepended{padding-inline-start:12px}.v-field--appended{padding-inline-end:12px}.v-field--variant-solo,.v-field--variant-solo-filled,.v-field--variant-solo-inverted{background:rgb(var(--v-theme-surface));border-color:transparent;color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity));box-shadow:0 3px 1px -2px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 2px 2px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-field--variant-solo-inverted.v-field--focused{color:rgb(var(--v-theme-on-surface-variant))}.v-field--variant-filled{border-bottom-left-radius:0;border-bottom-right-radius:0}.v-input--density-default .v-field--variant-solo,.v-input--density-default .v-field--variant-solo-inverted,.v-input--density-default .v-field--variant-solo-filled,.v-input--density-default .v-field--variant-filled{--v-input-control-height: 56px;--v-field-padding-bottom: 4px}.v-input--density-comfortable .v-field--variant-solo,.v-input--density-comfortable .v-field--variant-solo-inverted,.v-input--density-comfortable .v-field--variant-solo-filled,.v-input--density-comfortable .v-field--variant-filled{--v-input-control-height: 48px;--v-field-padding-bottom: 0px}.v-input--density-compact .v-field--variant-solo,.v-input--density-compact .v-field--variant-solo-inverted,.v-input--density-compact .v-field--variant-solo-filled,.v-input--density-compact .v-field--variant-filled{--v-input-control-height: 40px;--v-field-padding-bottom: 0px}.v-field--variant-outlined,.v-field--single-line,.v-field--no-label{--v-field-padding-top: 0px}.v-input--density-default .v-field--variant-outlined,.v-input--density-default .v-field--single-line,.v-input--density-default .v-field--no-label{--v-field-padding-bottom: 16px}.v-input--density-comfortable .v-field--variant-outlined,.v-input--density-comfortable .v-field--single-line,.v-input--density-comfortable .v-field--no-label{--v-field-padding-bottom: 12px}.v-input--density-compact .v-field--variant-outlined,.v-input--density-compact .v-field--single-line,.v-input--density-compact .v-field--no-label{--v-field-padding-bottom: 8px}.v-field--variant-plain,.v-field--variant-underlined{border-radius:0;padding:0}.v-field--variant-plain.v-field,.v-field--variant-underlined.v-field{--v-field-padding-start: 0px;--v-field-padding-end: 0px}.v-input--density-default .v-field--variant-plain,.v-input--density-default .v-field--variant-underlined{--v-input-control-height: 48px;--v-field-padding-top: 4px;--v-field-padding-bottom: 4px}.v-input--density-comfortable .v-field--variant-plain,.v-input--density-comfortable .v-field--variant-underlined{--v-input-control-height: 40px;--v-field-padding-top: 2px;--v-field-padding-bottom: 0px}.v-input--density-compact .v-field--variant-plain,.v-input--density-compact .v-field--variant-underlined{--v-input-control-height: 32px;--v-field-padding-top: 0px;--v-field-padding-bottom: 0px}.v-field--flat{box-shadow:none}.v-field--rounded{border-radius:9999px}.v-field.v-field--prepended{--v-field-padding-start: 6px}.v-field.v-field--appended{--v-field-padding-end: 6px}.v-field__input{align-items:center;color:inherit;-moz-column-gap:2px;column-gap:2px;display:flex;flex-wrap:wrap;letter-spacing:.009375em;opacity:var(--v-high-emphasis-opacity);min-height:max(var(--v-input-control-height, 56px),1.5rem + var(--v-field-input-padding-top) + var(--v-field-input-padding-bottom));min-width:0;padding-inline:var(--v-field-padding-start) var(--v-field-padding-end);padding-top:var(--v-field-input-padding-top);padding-bottom:var(--v-field-input-padding-bottom);position:relative;width:100%}.v-input--density-default .v-field__input{row-gap:8px}.v-input--density-comfortable .v-field__input{row-gap:6px}.v-input--density-compact .v-field__input{row-gap:4px}.v-field__input input{letter-spacing:inherit}.v-field__input input::-moz-placeholder,input.v-field__input::-moz-placeholder,textarea.v-field__input::-moz-placeholder{color:currentColor;opacity:var(--v-disabled-opacity)}.v-field__input input::placeholder,input.v-field__input::placeholder,textarea.v-field__input::placeholder{color:currentColor;opacity:var(--v-disabled-opacity)}.v-field__input:focus,.v-field__input:active{outline:none}.v-field__input:invalid{box-shadow:none}.v-field__field{flex:1 0;grid-area:field;position:relative;align-items:flex-start;display:flex}.v-field__prepend-inner{grid-area:prepend-inner;padding-inline-end:var(--v-field-padding-after)}.v-field__clearable{grid-area:clear}.v-field__append-inner{grid-area:append-inner;padding-inline-start:var(--v-field-padding-after)}.v-field__append-inner,.v-field__clearable,.v-field__prepend-inner{display:flex;align-items:flex-start;padding-top:var(--v-input-padding-top, 8px)}.v-field--center-affix .v-field__append-inner,.v-field--center-affix .v-field__clearable,.v-field--center-affix .v-field__prepend-inner{align-items:center;padding-top:0}.v-field.v-field--variant-underlined .v-field__append-inner,.v-field.v-field--variant-underlined .v-field__clearable,.v-field.v-field--variant-underlined .v-field__prepend-inner,.v-field.v-field--variant-plain .v-field__append-inner,.v-field.v-field--variant-plain .v-field__clearable,.v-field.v-field--variant-plain .v-field__prepend-inner{align-items:flex-start;padding-top:calc(var(--v-field-padding-top, 8px) + var(--v-input-padding-top, 0));padding-bottom:var(--v-field-padding-bottom, 4px)}.v-field--focused .v-field__prepend-inner,.v-field--focused .v-field__append-inner{opacity:1}.v-field__prepend-inner>.v-icon,.v-field__append-inner>.v-icon,.v-field__clearable>.v-icon{opacity:var(--v-medium-emphasis-opacity)}.v-field--disabled .v-field__prepend-inner>.v-icon,.v-field--error .v-field__prepend-inner>.v-icon,.v-field--disabled .v-field__append-inner>.v-icon,.v-field--error .v-field__append-inner>.v-icon,.v-field--disabled .v-field__clearable>.v-icon,.v-field--error .v-field__clearable>.v-icon{opacity:1}.v-field--error:not(.v-field--disabled) .v-field__prepend-inner>.v-icon,.v-field--error:not(.v-field--disabled) .v-field__append-inner>.v-icon,.v-field--error:not(.v-field--disabled) .v-field__clearable>.v-icon{color:rgb(var(--v-theme-error))}.v-field__clearable{cursor:pointer;opacity:0;overflow:hidden;margin-inline:4px;transition:.15s cubic-bezier(.4,0,.2,1);transition-property:opacity,transform,width}.v-field--focused .v-field__clearable,.v-field--persistent-clear .v-field__clearable{opacity:1}@media (hover: hover){.v-field:hover .v-field__clearable{opacity:1}}@media (hover: none){.v-field__clearable{opacity:1}}.v-label.v-field-label{contain:layout paint;display:block;margin-inline-start:var(--v-field-padding-start);margin-inline-end:var(--v-field-padding-end);max-width:calc(100% - var(--v-field-padding-start) - var(--v-field-padding-end));pointer-events:none;position:absolute;top:var(--v-input-padding-top);transform-origin:left center;transition:.15s cubic-bezier(.4,0,.2,1);transition-property:opacity,transform;z-index:1}.v-field--variant-underlined .v-label.v-field-label,.v-field--variant-plain .v-label.v-field-label{top:calc(var(--v-input-padding-top) + var(--v-field-padding-top))}.v-field--center-affix .v-label.v-field-label{top:50%;transform:translateY(-50%)}.v-field--active .v-label.v-field-label{visibility:hidden}.v-field--focused .v-label.v-field-label,.v-field--error .v-label.v-field-label{opacity:1}.v-field--error:not(.v-field--disabled) .v-label.v-field-label{color:rgb(var(--v-theme-error))}.v-label.v-field-label--floating{--v-field-label-scale: .75em;font-size:var(--v-field-label-scale);visibility:hidden;max-width:100%}.v-field--center-affix .v-label.v-field-label--floating{transform:none}.v-field.v-field--active .v-label.v-field-label--floating{visibility:unset}.v-input--density-default .v-field--variant-solo .v-label.v-field-label--floating,.v-input--density-default .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-input--density-default .v-field--variant-filled .v-label.v-field-label--floating,.v-input--density-default .v-field--variant-solo-filled .v-label.v-field-label--floating{top:7px}.v-input--density-comfortable .v-field--variant-solo .v-label.v-field-label--floating,.v-input--density-comfortable .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-input--density-comfortable .v-field--variant-filled .v-label.v-field-label--floating,.v-input--density-comfortable .v-field--variant-solo-filled .v-label.v-field-label--floating{top:5px}.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating{top:3px}.v-field--variant-plain .v-label.v-field-label--floating,.v-field--variant-underlined .v-label.v-field-label--floating{transform:translateY(-16px);margin:0;top:var(--v-input-padding-top)}.v-field--variant-outlined .v-label.v-field-label--floating{transform:translateY(-50%);transform-origin:center;position:static;margin:0 4px}.v-field__outline{--v-field-border-width: 1px;--v-field-border-opacity: .38;align-items:stretch;contain:layout;display:flex;height:100%;left:0;pointer-events:none;position:absolute;right:0;width:100%}@media (hover: hover){.v-field:hover .v-field__outline{--v-field-border-opacity: var(--v-high-emphasis-opacity)}}.v-field--error:not(.v-field--disabled) .v-field__outline{color:rgb(var(--v-theme-error))}.v-field.v-field--focused .v-field__outline,.v-input.v-input--error .v-field__outline{--v-field-border-opacity: 1}.v-field--variant-outlined.v-field--focused .v-field__outline{--v-field-border-width: 2px}.v-field--variant-filled .v-field__outline:before,.v-field--variant-underlined .v-field__outline:before{border-color:currentColor;border-style:solid;border-width:0 0 var(--v-field-border-width);opacity:var(--v-field-border-opacity);transition:opacity .25s cubic-bezier(.4,0,.2,1);content:"";position:absolute;top:0;left:0;width:100%;height:100%}.v-field--variant-filled .v-field__outline:after,.v-field--variant-underlined .v-field__outline:after{border-color:currentColor;border-style:solid;border-width:0 0 2px;transform:scaleX(0);transition:transform .15s cubic-bezier(.4,0,.2,1);content:"";position:absolute;top:0;left:0;width:100%;height:100%}.v-field--focused.v-field--variant-filled .v-field__outline:after,.v-field--focused.v-field--variant-underlined .v-field__outline:after{transform:scaleX(1)}.v-field--variant-outlined .v-field__outline{border-radius:inherit}.v-field--variant-outlined .v-field__outline__start,.v-field--variant-outlined .v-field__outline__notch:before,.v-field--variant-outlined .v-field__outline__notch:after,.v-field--variant-outlined .v-field__outline__end{border:0 solid currentColor;opacity:var(--v-field-border-opacity);transition:opacity .25s cubic-bezier(.4,0,.2,1)}.v-field--variant-outlined .v-field__outline__start{flex:0 0 12px;border-top-width:var(--v-field-border-width);border-bottom-width:var(--v-field-border-width);border-inline-start-width:var(--v-field-border-width);border-start-start-radius:inherit;border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:inherit}.v-field--rounded.v-field--variant-outlined .v-field__outline__start,[class^=rounded-].v-field--variant-outlined .v-field__outline__start,[class*=" rounded-"].v-field--variant-outlined .v-field__outline__start{flex-basis:calc(var(--v-input-control-height) / 2 + 2px)}.v-field--variant-outlined .v-field__outline__notch{flex:none;position:relative;max-width:calc(100% - 12px)}.v-field--variant-outlined .v-field__outline__notch:before,.v-field--variant-outlined .v-field__outline__notch:after{opacity:var(--v-field-border-opacity);transition:opacity .25s cubic-bezier(.4,0,.2,1);content:"";position:absolute;top:0;left:0;width:100%;height:100%}.v-field--variant-outlined .v-field__outline__notch:before{border-width:var(--v-field-border-width) 0 0}.v-field--variant-outlined .v-field__outline__notch:after{bottom:0;border-width:0 0 var(--v-field-border-width)}.v-field--active.v-field--variant-outlined .v-field__outline__notch:before{opacity:0}.v-field--variant-outlined .v-field__outline__end{flex:1;border-top-width:var(--v-field-border-width);border-bottom-width:var(--v-field-border-width);border-inline-end-width:var(--v-field-border-width);border-start-start-radius:0;border-start-end-radius:inherit;border-end-end-radius:inherit;border-end-start-radius:0}.v-field__loader{top:calc(100% - 2px);left:0;position:absolute;right:0;width:100%;border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;overflow:hidden}.v-field--variant-outlined .v-field__loader{top:calc(100% - 3px)}.v-field__overlay{border-radius:inherit;pointer-events:none;position:absolute;top:0;left:0;width:100%;height:100%}.v-field--variant-filled .v-field__overlay{background-color:currentColor;opacity:.04;transition:opacity .25s cubic-bezier(.4,0,.2,1)}.v-field--variant-filled.v-field--has-background .v-field__overlay{opacity:0}@media (hover: hover){.v-field--variant-filled:hover .v-field__overlay{opacity:calc((.04 + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}}.v-field--variant-filled.v-field--focused .v-field__overlay{opacity:calc((.04 + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}.v-field--variant-solo-filled .v-field__overlay{background-color:currentColor;opacity:.04;transition:opacity .25s cubic-bezier(.4,0,.2,1)}@media (hover: hover){.v-field--variant-solo-filled:hover .v-field__overlay{opacity:calc((.04 + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}}.v-field--variant-solo-filled.v-field--focused .v-field__overlay{opacity:calc((.04 + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}.v-field--variant-solo-inverted .v-field__overlay{transition:opacity .25s cubic-bezier(.4,0,.2,1)}.v-field--variant-solo-inverted.v-field--has-background .v-field__overlay{opacity:0}@media (hover: hover){.v-field--variant-solo-inverted:hover .v-field__overlay{opacity:calc((.04 + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}}.v-field--variant-solo-inverted.v-field--focused .v-field__overlay{background-color:rgb(var(--v-theme-surface-variant));opacity:1}.v-field--reverse .v-field__field,.v-field--reverse .v-field__input{flex-direction:row-reverse}.v-field--reverse .v-field__input,.v-field--reverse input{text-align:end}.v-input--disabled .v-field--variant-filled .v-field__outline:before,.v-input--disabled .v-field--variant-underlined .v-field__outline:before{-o-border-image:repeating-linear-gradient(to right,rgba(var(--v-theme-on-surface),var(--v-disabled-opacity)) 0px,rgba(var(--v-theme-on-surface),var(--v-disabled-opacity)) 2px,transparent 2px,transparent 4px) 1 repeat;border-image:repeating-linear-gradient(to right,rgba(var(--v-theme-on-surface),var(--v-disabled-opacity)) 0px,rgba(var(--v-theme-on-surface),var(--v-disabled-opacity)) 2px,transparent 2px,transparent 4px) 1 repeat}.v-field--loading .v-field__outline:after,.v-field--loading .v-field__outline:before{opacity:0}.v-virtual-scroll{display:block;flex:1 1 auto;max-width:100%;overflow:auto;position:relative}.v-virtual-scroll__container{display:block}.v-table{background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity));font-size:.875rem;transition-duration:.28s;transition-property:box-shadow,opacity,background,height;transition-timing-function:cubic-bezier(.4,0,.2,1)}.v-table .v-table-divider{border-right:thin solid rgba(var(--v-border-color),var(--v-border-opacity))}.v-table .v-table__wrapper>table>thead>tr>th{border-bottom:thin solid rgba(var(--v-border-color),var(--v-border-opacity))}.v-table .v-table__wrapper>table>tbody>tr:not(:last-child)>td,.v-table .v-table__wrapper>table>tbody>tr:not(:last-child)>th{border-bottom:thin solid rgba(var(--v-border-color),var(--v-border-opacity))}.v-table .v-table__wrapper>table>tfoot>tr>td,.v-table .v-table__wrapper>table>tfoot>tr>th{border-top:thin solid rgba(var(--v-border-color),var(--v-border-opacity))}.v-table.v-table--hover>.v-table__wrapper>table>tbody>tr>td{position:relative}.v-table.v-table--hover>.v-table__wrapper>table>tbody>tr:hover>td:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(var(--v-border-color),var(--v-hover-opacity));pointer-events:none}.v-table.v-table--fixed-header>.v-table__wrapper>table>thead>tr>th{background:rgb(var(--v-theme-surface));box-shadow:inset 0 -1px 0 rgba(var(--v-border-color),var(--v-border-opacity));z-index:1}.v-table.v-table--fixed-footer>tfoot>tr>th,.v-table.v-table--fixed-footer>tfoot>tr>td{background:rgb(var(--v-theme-surface));box-shadow:inset 0 1px 0 rgba(var(--v-border-color),var(--v-border-opacity))}.v-table{--v-table-header-height: 56px;border-radius:inherit;line-height:1.5;max-width:100%;display:flex;flex-direction:column}.v-table>.v-table__wrapper>table{width:100%;border-spacing:0}.v-table>.v-table__wrapper>table>tbody>tr>td,.v-table>.v-table__wrapper>table>tbody>tr>th,.v-table>.v-table__wrapper>table>thead>tr>td,.v-table>.v-table__wrapper>table>thead>tr>th,.v-table>.v-table__wrapper>table>tfoot>tr>td,.v-table>.v-table__wrapper>table>tfoot>tr>th{padding:0 16px;transition-duration:.28s;transition-property:box-shadow,opacity,background,height;transition-timing-function:cubic-bezier(.4,0,.2,1)}.v-table>.v-table__wrapper>table>tbody>tr>th,.v-table>.v-table__wrapper>table>thead>tr>th,.v-table>.v-table__wrapper>table>tfoot>tr>th{font-weight:500;-webkit-user-select:none;-moz-user-select:none;user-select:none;text-align:start}.v-table--density-default>.v-table__wrapper>table>tbody>tr>th,.v-table--density-default>.v-table__wrapper>table>thead>tr>th,.v-table--density-default>.v-table__wrapper>table>tfoot>tr>th{height:calc(var(--v-table-header-height) + 0px)}.v-table--density-default>.v-table__wrapper>table>tbody>tr>td,.v-table--density-default>.v-table__wrapper>table>thead>tr>td,.v-table--density-default>.v-table__wrapper>table>tfoot>tr>td{height:calc(var(--v-table-row-height, 52px) + 0px)}.v-table--density-comfortable>.v-table__wrapper>table>tbody>tr>th,.v-table--density-comfortable>.v-table__wrapper>table>thead>tr>th,.v-table--density-comfortable>.v-table__wrapper>table>tfoot>tr>th{height:calc(var(--v-table-header-height) - 8px)}.v-table--density-comfortable>.v-table__wrapper>table>tbody>tr>td,.v-table--density-comfortable>.v-table__wrapper>table>thead>tr>td,.v-table--density-comfortable>.v-table__wrapper>table>tfoot>tr>td{height:calc(var(--v-table-row-height, 52px) - 8px)}.v-table--density-compact>.v-table__wrapper>table>tbody>tr>th,.v-table--density-compact>.v-table__wrapper>table>thead>tr>th,.v-table--density-compact>.v-table__wrapper>table>tfoot>tr>th{height:calc(var(--v-table-header-height) - 16px)}.v-table--density-compact>.v-table__wrapper>table>tbody>tr>td,.v-table--density-compact>.v-table__wrapper>table>thead>tr>td,.v-table--density-compact>.v-table__wrapper>table>tfoot>tr>td{height:calc(var(--v-table-row-height, 52px) - 16px)}.v-table__wrapper{border-radius:inherit;overflow:auto;flex:1 1 auto}.v-table--has-top>.v-table__wrapper>table>tbody>tr:first-child:hover>td:first-child{border-top-left-radius:0}.v-table--has-top>.v-table__wrapper>table>tbody>tr:first-child:hover>td:last-child{border-top-right-radius:0}.v-table--has-bottom>.v-table__wrapper>table>tbody>tr:last-child:hover>td:first-child{border-bottom-left-radius:0}.v-table--has-bottom>.v-table__wrapper>table>tbody>tr:last-child:hover>td:last-child{border-bottom-right-radius:0}.v-table--fixed-height>.v-table__wrapper{overflow-y:auto}.v-table--fixed-header>.v-table__wrapper>table>thead{position:sticky;top:0;z-index:2}.v-table--fixed-header>.v-table__wrapper>table>thead>tr>th{border-bottom:0px!important}.v-table--fixed-footer>.v-table__wrapper>table>tfoot>tr{position:sticky;bottom:0;z-index:1}.v-table--fixed-footer>.v-table__wrapper>table>tfoot>tr>td,.v-table--fixed-footer>.v-table__wrapper>table>tfoot>tr>th{border-top:0px!important}.v-slider .v-slider__container input{cursor:default;padding:0;width:100%;display:none}.v-slider>.v-input__append,.v-slider>.v-input__prepend{padding:0}.v-slider__container{position:relative;min-height:inherit;width:100%;height:100%;display:flex;justify-content:center;align-items:center;cursor:pointer}.v-input--disabled .v-slider__container{opacity:var(--v-disabled-opacity)}.v-input--error:not(.v-input--disabled) .v-slider__container{color:rgb(var(--v-theme-error))}.v-slider.v-input--horizontal{align-items:center;margin-inline:8px 8px}.v-slider.v-input--horizontal>.v-input__control{min-height:32px;display:flex;align-items:center}.v-slider.v-input--vertical{justify-content:center;margin-top:12px;margin-bottom:12px}.v-slider.v-input--vertical>.v-input__control{min-height:300px}.v-slider.v-input--disabled{pointer-events:none}.v-slider--has-labels>.v-input__control{margin-bottom:4px}.v-slider__label{margin-inline-end:12px}.v-slider-thumb{touch-action:none;color:rgb(var(--v-theme-surface-variant))}.v-input--error:not(.v-input--disabled) .v-slider-thumb{color:inherit}.v-slider-thumb__label{background:rgba(var(--v-theme-surface-variant),.7);color:rgb(var(--v-theme-on-surface-variant))}.v-slider-thumb__label:before{color:rgba(var(--v-theme-surface-variant),.7)}.v-slider-thumb{outline:none;position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-slider-thumb__surface{cursor:pointer;width:var(--v-slider-thumb-size);height:var(--v-slider-thumb-size);border-radius:50%;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:currentColor}.v-slider-thumb__surface:before{transition:.3s cubic-bezier(.4,0,.2,1);content:"";color:inherit;top:0;left:0;width:100%;height:100%;border-radius:50%;background:currentColor;position:absolute;pointer-events:none;opacity:0}.v-slider-thumb__surface:after{content:"";width:42px;height:42px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.v-slider-thumb__label-container{position:absolute;transition:.2s cubic-bezier(.4,0,1,1)}.v-slider-thumb__label{display:flex;align-items:center;justify-content:center;font-size:.75rem;min-width:35px;height:25px;border-radius:4px;padding:6px;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:.2s cubic-bezier(.4,0,1,1)}.v-slider-thumb__label:before{content:"";width:0;height:0;position:absolute}.v-slider-thumb__ripple{position:absolute;left:calc(var(--v-slider-thumb-size) / -2);top:calc(var(--v-slider-thumb-size) / -2);width:calc(var(--v-slider-thumb-size) * 2);height:calc(var(--v-slider-thumb-size) * 2);background:inherit}.v-slider.v-input--horizontal .v-slider-thumb{top:50%;transform:translateY(-50%);inset-inline-start:calc(var(--v-slider-thumb-position) - var(--v-slider-thumb-size) / 2)}.v-slider.v-input--horizontal .v-slider-thumb__label-container{left:calc(var(--v-slider-thumb-size) / 2);top:0}.v-slider.v-input--horizontal .v-slider-thumb__label{bottom:calc(var(--v-slider-thumb-size) / 2)}.v-locale--is-ltr.v-slider.v-input--horizontal .v-slider-thumb__label,.v-locale--is-ltr .v-slider.v-input--horizontal .v-slider-thumb__label{transform:translate(-50%)}.v-locale--is-rtl.v-slider.v-input--horizontal .v-slider-thumb__label,.v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-thumb__label{transform:translate(50%)}.v-slider.v-input--horizontal .v-slider-thumb__label:before{border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid currentColor;bottom:-6px}.v-slider.v-input--vertical .v-slider-thumb{top:calc(var(--v-slider-thumb-position) - var(--v-slider-thumb-size) / 2)}.v-slider.v-input--vertical .v-slider-thumb__label-container{top:calc(var(--v-slider-thumb-size) / 2);right:0}.v-slider.v-input--vertical .v-slider-thumb__label{top:-12.5px;left:calc(var(--v-slider-thumb-size) / 2)}.v-slider.v-input--vertical .v-slider-thumb__label:before{border-right:6px solid currentColor;border-top:6px solid transparent;border-bottom:6px solid transparent;left:-6px}.v-slider-thumb--focused .v-slider-thumb__surface:before{transform:scale(2);opacity:var(--v-focus-opacity)}.v-slider-thumb--pressed{transition:none}.v-slider-thumb--pressed .v-slider-thumb__surface:before{opacity:var(--v-pressed-opacity)}@media (hover: hover){.v-slider-thumb:hover .v-slider-thumb__surface:before{transform:scale(2)}.v-slider-thumb:hover:not(.v-slider-thumb--focused) .v-slider-thumb__surface:before{opacity:var(--v-hover-opacity)}}.v-slider-track__background,.v-slider-track__fill,.v-slider-track__tick{background-color:rgb(var(--v-theme-surface-variant))}.v-slider-track__tick--filled{background-color:rgb(var(--v-theme-on-surface-variant))}.v-slider-track{border-radius:6px}.v-slider-track__background,.v-slider-track__fill{position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1);border-radius:inherit}.v-slider--pressed .v-slider-track__background,.v-slider--pressed .v-slider-track__fill{transition:none}.v-input--error:not(.v-input--disabled) .v-slider-track__background,.v-input--error:not(.v-input--disabled) .v-slider-track__fill{background-color:currentColor}.v-slider-track__ticks{height:100%;width:100%;position:relative}.v-slider-track__tick{position:absolute;opacity:0;transition:.2s opacity cubic-bezier(.4,0,.2,1);border-radius:2px;width:var(--v-slider-tick-size);height:var(--v-slider-tick-size);transform:translate(calc(var(--v-slider-tick-size) / -2),calc(var(--v-slider-tick-size) / -2))}.v-locale--is-ltr.v-slider-track__tick--first .v-slider-track__tick-label,.v-locale--is-ltr .v-slider-track__tick--first .v-slider-track__tick-label{transform:none}.v-locale--is-rtl.v-slider-track__tick--first .v-slider-track__tick-label,.v-locale--is-rtl .v-slider-track__tick--first .v-slider-track__tick-label{transform:translate(100%)}.v-locale--is-ltr.v-slider-track__tick--last .v-slider-track__tick-label,.v-locale--is-ltr .v-slider-track__tick--last .v-slider-track__tick-label{transform:translate(-100%)}.v-locale--is-rtl.v-slider-track__tick--last .v-slider-track__tick-label,.v-locale--is-rtl .v-slider-track__tick--last .v-slider-track__tick-label{transform:none}.v-slider-track__tick-label{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.v-slider.v-input--horizontal .v-slider-track{display:flex;align-items:center;width:100%;height:calc(var(--v-slider-track-size) + 2px);touch-action:pan-y}.v-slider.v-input--horizontal .v-slider-track__background{height:var(--v-slider-track-size)}.v-slider.v-input--horizontal .v-slider-track__fill{height:inherit}.v-slider.v-input--horizontal .v-slider-track__tick{margin-top:calc(calc(var(--v-slider-track-size) + 2px) / 2)}.v-locale--is-rtl.v-slider.v-input--horizontal .v-slider-track__tick,.v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-track__tick{transform:translate(calc(var(--v-slider-tick-size) / 2),calc(var(--v-slider-tick-size) / -2))}.v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label{margin-top:calc(var(--v-slider-track-size) / 2 + 8px)}.v-locale--is-ltr.v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label,.v-locale--is-ltr .v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label{transform:translate(-50%)}.v-locale--is-rtl.v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label,.v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label{transform:translate(50%)}.v-slider.v-input--horizontal .v-slider-track__tick--first{margin-inline-start:calc(var(--v-slider-tick-size) + 1px)}.v-locale--is-ltr.v-slider.v-input--horizontal .v-slider-track__tick--first .v-slider-track__tick-label,.v-locale--is-ltr .v-slider.v-input--horizontal .v-slider-track__tick--first .v-slider-track__tick-label,.v-locale--is-rtl.v-slider.v-input--horizontal .v-slider-track__tick--first .v-slider-track__tick-label,.v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-track__tick--first .v-slider-track__tick-label{transform:translate(0)}.v-slider.v-input--horizontal .v-slider-track__tick--last{margin-inline-start:calc(100% - var(--v-slider-tick-size) - 1px)}.v-locale--is-ltr.v-slider.v-input--horizontal .v-slider-track__tick--last .v-slider-track__tick-label,.v-locale--is-ltr .v-slider.v-input--horizontal .v-slider-track__tick--last .v-slider-track__tick-label{transform:translate(-100%)}.v-locale--is-rtl.v-slider.v-input--horizontal .v-slider-track__tick--last .v-slider-track__tick-label,.v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-track__tick--last .v-slider-track__tick-label{transform:translate(100%)}.v-slider.v-input--vertical .v-slider-track{height:100%;display:flex;justify-content:center;width:calc(var(--v-slider-track-size) + 2px);touch-action:pan-x}.v-slider.v-input--vertical .v-slider-track__background{width:var(--v-slider-track-size)}.v-slider.v-input--vertical .v-slider-track__fill{width:inherit}.v-slider.v-input--vertical .v-slider-track__ticks{height:100%}.v-slider.v-input--vertical .v-slider-track__tick{margin-inline-start:calc(calc(var(--v-slider-track-size) + 2px) / 2);transform:translate(calc(var(--v-slider-tick-size) / -2),calc(var(--v-slider-tick-size) / 2))}.v-locale--is-rtl.v-slider.v-input--vertical .v-slider-track__tick,.v-locale--is-rtl .v-slider.v-input--vertical .v-slider-track__tick{transform:translate(calc(var(--v-slider-tick-size) / 2),calc(var(--v-slider-tick-size) / 2))}.v-slider.v-input--vertical .v-slider-track__tick--first{bottom:calc(0% + var(--v-slider-tick-size) + 1px)}.v-slider.v-input--vertical .v-slider-track__tick--last{bottom:calc(100% - var(--v-slider-tick-size) - 1px)}.v-slider.v-input--vertical .v-slider-track__tick .v-slider-track__tick-label{margin-inline-start:calc(var(--v-slider-track-size) / 2 + 12px);transform:translateY(-50%)}.v-slider-track__ticks--always-show .v-slider-track__tick,.v-slider--focused .v-slider-track__tick{opacity:1}.v-slider-track__background--opacity{opacity:.38}.uri-input[data-v-a9389ce3]{min-width:350px}.v-dialog{align-items:center;justify-content:center;margin:auto}.v-dialog>.v-overlay__content{max-height:calc(100% - 48px);width:calc(100% - 48px);max-width:calc(100% - 48px);margin:24px}.v-dialog>.v-overlay__content,.v-dialog>.v-overlay__content>form{display:flex;flex-direction:column;min-height:0}.v-dialog>.v-overlay__content>.v-card,.v-dialog>.v-overlay__content>.v-sheet,.v-dialog>.v-overlay__content>form>.v-card,.v-dialog>.v-overlay__content>form>.v-sheet{--v-scrollbar-offset: 0px;border-radius:4px;overflow-y:auto;box-shadow:0 11px 15px -7px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 24px 38px 3px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 9px 46px 8px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-dialog>.v-overlay__content>.v-card,.v-dialog>.v-overlay__content>form>.v-card{display:flex;flex-direction:column}.v-dialog>.v-overlay__content>.v-card>.v-card-item,.v-dialog>.v-overlay__content>form>.v-card>.v-card-item{padding:14px 24px 0}.v-dialog>.v-overlay__content>.v-card>.v-card-item+.v-card-text,.v-dialog>.v-overlay__content>form>.v-card>.v-card-item+.v-card-text{padding-top:10px}.v-dialog>.v-overlay__content>.v-card>.v-card-text,.v-dialog>.v-overlay__content>form>.v-card>.v-card-text{font-size:inherit;letter-spacing:.03125em;line-height:inherit;padding:16px 24px 10px}.v-dialog--fullscreen{--v-scrollbar-offset: 0px}.v-dialog--fullscreen>.v-overlay__content{border-radius:0;margin:0;padding:0;width:100%;height:100%;max-width:100%;max-height:100%;overflow-y:auto;top:0;left:0}.v-dialog--fullscreen>.v-overlay__content>.v-card,.v-dialog--fullscreen>.v-overlay__content>.v-sheet,.v-dialog--fullscreen>.v-overlay__content>form>.v-card,.v-dialog--fullscreen>.v-overlay__content>form>.v-sheet{min-height:100%;min-width:100%;border-radius:0}.v-dialog--scrollable>.v-overlay__content,.v-dialog--scrollable>.v-overlay__content>form{display:flex}.v-dialog--scrollable>.v-overlay__content>.v-card,.v-dialog--scrollable>.v-overlay__content>form>.v-card{display:flex;flex:1 1 100%;flex-direction:column;max-height:100%;max-width:100%}.v-dialog--scrollable>.v-overlay__content>.v-card>.v-card-text,.v-dialog--scrollable>.v-overlay__content>form>.v-card>.v-card-text{backface-visibility:hidden;overflow-y:auto}.v-combobox .v-field .v-text-field__prefix,.v-combobox .v-field .v-text-field__suffix,.v-combobox .v-field .v-field__input,.v-combobox .v-field.v-field{cursor:text}.v-combobox .v-field .v-field__input>input{flex:1 1}.v-combobox .v-field input{min-width:64px}.v-combobox .v-field:not(.v-field--focused) input{min-width:0}.v-combobox .v-field--dirty .v-combobox__selection{margin-inline-end:2px}.v-combobox .v-combobox__selection-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-combobox__content{overflow:hidden;box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 10px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12));border-radius:4px}.v-combobox__mask{background:rgb(var(--v-theme-on-surface-variant))}.v-combobox__selection{display:inline-flex;align-items:center;height:1.5rem;letter-spacing:inherit;line-height:inherit;max-width:90%}.v-combobox__selection:first-child{margin-inline-start:0}.v-combobox--chips.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating{top:0px}.v-combobox--selecting-index .v-combobox__selection{opacity:var(--v-medium-emphasis-opacity)}.v-combobox--selecting-index .v-combobox__selection--selected{opacity:1}.v-combobox--selecting-index .v-field__input>input{caret-color:transparent}.v-combobox--single.v-text-field .v-field--focused input{flex:1 1;position:absolute;left:0;right:0;width:100%;padding-inline:inherit}.v-combobox--single .v-field--active input{transition:none}.v-combobox--single .v-field--dirty:not(.v-field--focused) input{opacity:0}.v-combobox--single .v-field--focused .v-combobox__selection{opacity:0}.v-combobox__menu-icon{margin-inline-start:4px;transition:.2s cubic-bezier(.4,0,.2,1)}.v-combobox--active-menu .v-combobox__menu-icon{opacity:var(--v-high-emphasis-opacity);transform:rotate(180deg)}.v-layout{--v-scrollbar-offset: 0px;display:flex;flex:1 1 auto}.v-layout--full-height{--v-scrollbar-offset: inherit;height:100%}.v-main{flex:1 0 auto;max-width:100%;transition:.2s cubic-bezier(.4,0,.2,1);padding-left:var(--v-layout-left);padding-right:var(--v-layout-right);padding-top:var(--v-layout-top);padding-bottom:var(--v-layout-bottom)}.v-main__scroller{max-width:100%;position:relative}.v-main--scrollable{display:flex;position:absolute;top:0;left:0;width:100%;height:100%}.v-main--scrollable>.v-main__scroller{flex:1 1 auto;overflow-y:auto;--v-layout-left: 0px;--v-layout-right: 0px;--v-layout-top: 0px;--v-layout-bottom: 0px}.v-navigation-drawer{-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;height:100%;max-width:100%;pointer-events:auto;transition-duration:.2s;transition-property:box-shadow,transform,visibility,width,height,left,right,top,bottom;transition-timing-function:cubic-bezier(.4,0,.2,1);position:absolute;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12));background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-navigation-drawer--border{border-width:thin;box-shadow:none}.v-navigation-drawer--rounded{border-radius:4px}.v-navigation-drawer--top{top:0;border-bottom-width:thin}.v-navigation-drawer--bottom{left:0;border-top-width:thin}.v-navigation-drawer--left{top:0;left:0;right:auto;border-right-width:thin}.v-navigation-drawer--right{top:0;left:auto;right:0;border-left-width:thin}.v-navigation-drawer--floating{border:none}.v-navigation-drawer--temporary{box-shadow:0 8px 10px -5px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 16px 24px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 6px 30px 5px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-navigation-drawer--sticky{height:auto;transition:box-shadow,transform,visibility,width,height,left,right}.v-navigation-drawer .v-list{overflow:hidden}.v-navigation-drawer__content{flex:0 1 auto;height:100%;max-width:100%;overflow-x:hidden;overflow-y:auto}.v-navigation-drawer__img{height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.v-navigation-drawer__img img{height:inherit;-o-object-fit:cover;object-fit:cover;width:inherit}.v-navigation-drawer__scrim{position:absolute;top:0;left:0;width:100%;height:100%;background:black;opacity:.2;transition:opacity .2s cubic-bezier(.4,0,.2,1);z-index:1}.v-navigation-drawer__prepend,.v-navigation-drawer__append{flex:none;overflow:hidden}.slider-value[data-v-d1bc6e0e]{white-space:nowrap;text-align:center;font-size:.8rem}.slider-div[data-v-d1bc6e0e]{position:fixed;right:2%;top:25%;bottom:0;width:25px;height:50%;display:flex;flex-direction:column;justify-content:center;z-index:100}.modal{position:absolute;top:50%;left:50%;margin-right:-50%;transform:translate(-50%,-50%);height:-moz-fit-content;height:fit-content;background-color:#4755694d;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);box-shadow:0 0 20px 5px #00000040;border-radius:5px}.modal::backdrop{background-color:#0000004d;opacity:0}.modal[open]{animation:slide-in .25s forwards,fade-in .25s forwards}.modal[open]::backdrop{animation:fade-in .25s forwards}.modal[closing]{pointer-events:none;animation:fade-out .25s forwards}.modal[closing]::backdrop{animation:fade-out .25s forwards}@keyframes slide-in{0%{top:70%}to{top:50%}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{to{opacity:0}0%{opacity:1}}.battery-icon{font-size:2.25rem;line-height:2.25rem}.blob.red[data-v-9ff76688]{background:rgba(255,82,82,1);box-shadow:0 0 #ff5252;animation:pulse-red-9ff76688 2s infinite}@keyframes pulse-red-9ff76688{0%{transform:scale(.95);box-shadow:0 0 #ff5252b3}70%{transform:scale(1);box-shadow:0 0 0 10px #ff525200}to{transform:scale(.95);box-shadow:0 0 #ff525200}}.scroll-container[data-v-9ff76688]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scroll-text[data-v-9ff76688]{transform:translate(0);transition:transform 1s linear}.scroll-text[data-v-9ff76688]:hover{transform:translate(-100%)}.border-blur[data-v-9ff76688]:hover{background-color:#475569;box-shadow:0 0 3px 3px #475569}.icon-symbol{font-size:2rem;line-height:2rem}.edit-panel[data-v-f71d1a1a]{transition:all .2s;position:absolute;z-index:60;background-color:#475569}.left-panel[data-v-f71d1a1a]{top:0%;height:80%;width:20%;left:-20%}.left-panel.active[data-v-f71d1a1a]{left:0%}.middle-panel[data-v-f71d1a1a]{bottom:-20%;left:-20%;height:20%;width:20%}.middle-panel.active[data-v-f71d1a1a]{bottom:0%;left:0%}.bottom-panel[data-v-f71d1a1a]{right:0%;bottom:-20%;height:20%;width:80%}.bottom-panel.active[data-v-f71d1a1a]{bottom:0%}.v-expansion-panel[data-v-f71d1a1a]{background-color:#0000;color:#fff}.fade-and-suffle-move[data-v-f71d1a1a],.fade-and-suffle-enter-active[data-v-f71d1a1a],.fade-and-suffle-leave-active[data-v-f71d1a1a],.fade-enter-active[data-v-f71d1a1a],.fade-leave-active[data-v-f71d1a1a]{transition:all .3s cubic-bezier(.55,0,.1,1)}.fade-and-suffle-enter-from[data-v-f71d1a1a],.fade-enter-from[data-v-f71d1a1a],.fade-and-suffle-leave-to[data-v-f71d1a1a],.fade-leave-to[data-v-f71d1a1a]{opacity:0;transform:scaleY(.01) translate(30px)}.sortable-ghost[data-v-f71d1a1a]{cursor:grabbing}.icon-btn[data-v-f71d1a1a]{display:flex;align-items:center;justify-content:center;height:1.5rem;aspect-ratio:1;font-size:.875rem;line-height:1.25rem;margin-left:.25rem;transition:all;border-radius:.125rem;cursor:pointer;--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity))}.icon-btn[data-v-f71d1a1a]:hover{--tw-bg-opacity: 1;background-color:rgb(100 116 139 / var(--tw-bg-opacity))}.selected-view[data-v-f71d1a1a]{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity))}.expanded-alerts-bar[invisible][data-v-9c347d0d]{display:none}.v-application{display:flex;background:rgb(var(--v-theme-background));color:rgba(var(--v-theme-on-background),var(--v-high-emphasis-opacity))}.v-application__wrap{backface-visibility:hidden;display:flex;flex-direction:column;flex:1 1 auto;max-width:100%;min-height:100vh;min-height:100dvh;position:relative}html,body{overflow:hidden!important}body.hide-cursor{cursor:none}.router-view{width:100%;height:100%;position:relative}.main-view{transition:all .2s;width:100%;height:100%;position:absolute;right:0%;top:0%}.main-view.edit-mode{transform:scale(.8);right:-10%;top:-10%}.swal2-container{z-index:10000}.fade-enter-active,.fade-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.fade-enter-from,.fade-leave-to{opacity:0;transform:translateY(100px)}.bottom-container{position:absolute;bottom:0;width:100%;display:flex;flex-direction:column;align-items:center;z-index:60}.bottom-bar{width:100%;background:rgba(108,117,125,.5);display:flex;justify-content:space-between}@font-face{font-family:Material Design Icons;src:url(./materialdesignicons-webfont.5159a347.eot?v=7.3.67);src:url(./materialdesignicons-webfont.5159a347.eot?#iefix&v=7.3.67) format("embedded-opentype"),url(./materialdesignicons-webfont.31010194.woff2?v=7.3.67) format("woff2"),url(./materialdesignicons-webfont.28c8f97f.woff?v=7.3.67) format("woff"),url(./materialdesignicons-webfont.be825c12.ttf?v=7.3.67) format("truetype");font-weight:400;font-style:normal}.mdi:before,.mdi-set{display:inline-block;font: 24px/1 Material Design Icons;font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.mdi-ab-testing:before{content:"\f01c9"}.mdi-abacus:before{content:"\f16e0"}.mdi-abjad-arabic:before{content:"\f1328"}.mdi-abjad-hebrew:before{content:"\f1329"}.mdi-abugida-devanagari:before{content:"\f132a"}.mdi-abugida-thai:before{content:"\f132b"}.mdi-access-point:before{content:"\f0003"}.mdi-access-point-check:before{content:"\f1538"}.mdi-access-point-minus:before{content:"\f1539"}.mdi-access-point-network:before{content:"\f0002"}.mdi-access-point-network-off:before{content:"\f0be1"}.mdi-access-point-off:before{content:"\f1511"}.mdi-access-point-plus:before{content:"\f153a"}.mdi-access-point-remove:before{content:"\f153b"}.mdi-account:before{content:"\f0004"}.mdi-account-alert:before{content:"\f0005"}.mdi-account-alert-outline:before{content:"\f0b50"}.mdi-account-arrow-down:before{content:"\f1868"}.mdi-account-arrow-down-outline:before{content:"\f1869"}.mdi-account-arrow-left:before{content:"\f0b51"}.mdi-account-arrow-left-outline:before{content:"\f0b52"}.mdi-account-arrow-right:before{content:"\f0b53"}.mdi-account-arrow-right-outline:before{content:"\f0b54"}.mdi-account-arrow-up:before{content:"\f1867"}.mdi-account-arrow-up-outline:before{content:"\f186a"}.mdi-account-badge:before{content:"\f1b0a"}.mdi-account-badge-outline:before{content:"\f1b0b"}.mdi-account-box:before{content:"\f0006"}.mdi-account-box-multiple:before{content:"\f0934"}.mdi-account-box-multiple-outline:before{content:"\f100a"}.mdi-account-box-outline:before{content:"\f0007"}.mdi-account-cancel:before{content:"\f12df"}.mdi-account-cancel-outline:before{content:"\f12e0"}.mdi-account-card:before{content:"\f1ba4"}.mdi-account-card-outline:before{content:"\f1ba5"}.mdi-account-cash:before{content:"\f1097"}.mdi-account-cash-outline:before{content:"\f1098"}.mdi-account-check:before{content:"\f0008"}.mdi-account-check-outline:before{content:"\f0be2"}.mdi-account-child:before{content:"\f0a89"}.mdi-account-child-circle:before{content:"\f0a8a"}.mdi-account-child-outline:before{content:"\f10c8"}.mdi-account-circle:before{content:"\f0009"}.mdi-account-circle-outline:before{content:"\f0b55"}.mdi-account-clock:before{content:"\f0b56"}.mdi-account-clock-outline:before{content:"\f0b57"}.mdi-account-cog:before{content:"\f1370"}.mdi-account-cog-outline:before{content:"\f1371"}.mdi-account-convert:before{content:"\f000a"}.mdi-account-convert-outline:before{content:"\f1301"}.mdi-account-cowboy-hat:before{content:"\f0e9b"}.mdi-account-cowboy-hat-outline:before{content:"\f17f3"}.mdi-account-credit-card:before{content:"\f1ba6"}.mdi-account-credit-card-outline:before{content:"\f1ba7"}.mdi-account-details:before{content:"\f0631"}.mdi-account-details-outline:before{content:"\f1372"}.mdi-account-edit:before{content:"\f06bc"}.mdi-account-edit-outline:before{content:"\f0ffb"}.mdi-account-eye:before{content:"\f0420"}.mdi-account-eye-outline:before{content:"\f127b"}.mdi-account-file:before{content:"\f1ca7"}.mdi-account-file-outline:before{content:"\f1ca8"}.mdi-account-file-text:before{content:"\f1ca9"}.mdi-account-file-text-outline:before{content:"\f1caa"}.mdi-account-filter:before{content:"\f0936"}.mdi-account-filter-outline:before{content:"\f0f9d"}.mdi-account-group:before{content:"\f0849"}.mdi-account-group-outline:before{content:"\f0b58"}.mdi-account-hard-hat:before{content:"\f05b5"}.mdi-account-hard-hat-outline:before{content:"\f1a1f"}.mdi-account-heart:before{content:"\f0899"}.mdi-account-heart-outline:before{content:"\f0be3"}.mdi-account-injury:before{content:"\f1815"}.mdi-account-injury-outline:before{content:"\f1816"}.mdi-account-key:before{content:"\f000b"}.mdi-account-key-outline:before{content:"\f0be4"}.mdi-account-lock:before{content:"\f115e"}.mdi-account-lock-open:before{content:"\f1960"}.mdi-account-lock-open-outline:before{content:"\f1961"}.mdi-account-lock-outline:before{content:"\f115f"}.mdi-account-minus:before{content:"\f000d"}.mdi-account-minus-outline:before{content:"\f0aec"}.mdi-account-multiple:before{content:"\f000e"}.mdi-account-multiple-check:before{content:"\f08c5"}.mdi-account-multiple-check-outline:before{content:"\f11fe"}.mdi-account-multiple-minus:before{content:"\f05d3"}.mdi-account-multiple-minus-outline:before{content:"\f0be5"}.mdi-account-multiple-outline:before{content:"\f000f"}.mdi-account-multiple-plus:before{content:"\f0010"}.mdi-account-multiple-plus-outline:before{content:"\f0800"}.mdi-account-multiple-remove:before{content:"\f120a"}.mdi-account-multiple-remove-outline:before{content:"\f120b"}.mdi-account-music:before{content:"\f0803"}.mdi-account-music-outline:before{content:"\f0ce9"}.mdi-account-network:before{content:"\f0011"}.mdi-account-network-off:before{content:"\f1af1"}.mdi-account-network-off-outline:before{content:"\f1af2"}.mdi-account-network-outline:before{content:"\f0be6"}.mdi-account-off:before{content:"\f0012"}.mdi-account-off-outline:before{content:"\f0be7"}.mdi-account-outline:before{content:"\f0013"}.mdi-account-plus:before{content:"\f0014"}.mdi-account-plus-outline:before{content:"\f0801"}.mdi-account-question:before{content:"\f0b59"}.mdi-account-question-outline:before{content:"\f0b5a"}.mdi-account-reactivate:before{content:"\f152b"}.mdi-account-reactivate-outline:before{content:"\f152c"}.mdi-account-remove:before{content:"\f0015"}.mdi-account-remove-outline:before{content:"\f0aed"}.mdi-account-school:before{content:"\f1a20"}.mdi-account-school-outline:before{content:"\f1a21"}.mdi-account-search:before{content:"\f0016"}.mdi-account-search-outline:before{content:"\f0935"}.mdi-account-settings:before{content:"\f0630"}.mdi-account-settings-outline:before{content:"\f10c9"}.mdi-account-star:before{content:"\f0017"}.mdi-account-star-outline:before{content:"\f0be8"}.mdi-account-supervisor:before{content:"\f0a8b"}.mdi-account-supervisor-circle:before{content:"\f0a8c"}.mdi-account-supervisor-circle-outline:before{content:"\f14ec"}.mdi-account-supervisor-outline:before{content:"\f112d"}.mdi-account-switch:before{content:"\f0019"}.mdi-account-switch-outline:before{content:"\f04cb"}.mdi-account-sync:before{content:"\f191b"}.mdi-account-sync-outline:before{content:"\f191c"}.mdi-account-tag:before{content:"\f1c1b"}.mdi-account-tag-outline:before{content:"\f1c1c"}.mdi-account-tie:before{content:"\f0ce3"}.mdi-account-tie-hat:before{content:"\f1898"}.mdi-account-tie-hat-outline:before{content:"\f1899"}.mdi-account-tie-outline:before{content:"\f10ca"}.mdi-account-tie-voice:before{content:"\f1308"}.mdi-account-tie-voice-off:before{content:"\f130a"}.mdi-account-tie-voice-off-outline:before{content:"\f130b"}.mdi-account-tie-voice-outline:before{content:"\f1309"}.mdi-account-tie-woman:before{content:"\f1a8c"}.mdi-account-voice:before{content:"\f05cb"}.mdi-account-voice-off:before{content:"\f0ed4"}.mdi-account-wrench:before{content:"\f189a"}.mdi-account-wrench-outline:before{content:"\f189b"}.mdi-adjust:before{content:"\f001a"}.mdi-advertisements:before{content:"\f192a"}.mdi-advertisements-off:before{content:"\f192b"}.mdi-air-conditioner:before{content:"\f001b"}.mdi-air-filter:before{content:"\f0d43"}.mdi-air-horn:before{content:"\f0dac"}.mdi-air-humidifier:before{content:"\f1099"}.mdi-air-humidifier-off:before{content:"\f1466"}.mdi-air-purifier:before{content:"\f0d44"}.mdi-air-purifier-off:before{content:"\f1b57"}.mdi-airbag:before{content:"\f0be9"}.mdi-airballoon:before{content:"\f001c"}.mdi-airballoon-outline:before{content:"\f100b"}.mdi-airplane:before{content:"\f001d"}.mdi-airplane-alert:before{content:"\f187a"}.mdi-airplane-check:before{content:"\f187b"}.mdi-airplane-clock:before{content:"\f187c"}.mdi-airplane-cog:before{content:"\f187d"}.mdi-airplane-edit:before{content:"\f187e"}.mdi-airplane-landing:before{content:"\f05d4"}.mdi-airplane-marker:before{content:"\f187f"}.mdi-airplane-minus:before{content:"\f1880"}.mdi-airplane-off:before{content:"\f001e"}.mdi-airplane-plus:before{content:"\f1881"}.mdi-airplane-remove:before{content:"\f1882"}.mdi-airplane-search:before{content:"\f1883"}.mdi-airplane-settings:before{content:"\f1884"}.mdi-airplane-takeoff:before{content:"\f05d5"}.mdi-airport:before{content:"\f084b"}.mdi-alarm:before{content:"\f0020"}.mdi-alarm-bell:before{content:"\f078e"}.mdi-alarm-check:before{content:"\f0021"}.mdi-alarm-light:before{content:"\f078f"}.mdi-alarm-light-off:before{content:"\f171e"}.mdi-alarm-light-off-outline:before{content:"\f171f"}.mdi-alarm-light-outline:before{content:"\f0bea"}.mdi-alarm-multiple:before{content:"\f0022"}.mdi-alarm-note:before{content:"\f0e71"}.mdi-alarm-note-off:before{content:"\f0e72"}.mdi-alarm-off:before{content:"\f0023"}.mdi-alarm-panel:before{content:"\f15c4"}.mdi-alarm-panel-outline:before{content:"\f15c5"}.mdi-alarm-plus:before{content:"\f0024"}.mdi-alarm-snooze:before{content:"\f068e"}.mdi-album:before{content:"\f0025"}.mdi-alert:before{content:"\f0026"}.mdi-alert-box:before{content:"\f0027"}.mdi-alert-box-outline:before{content:"\f0ce4"}.mdi-alert-circle:before{content:"\f0028"}.mdi-alert-circle-check:before{content:"\f11ed"}.mdi-alert-circle-check-outline:before{content:"\f11ee"}.mdi-alert-circle-outline:before{content:"\f05d6"}.mdi-alert-decagram:before{content:"\f06bd"}.mdi-alert-decagram-outline:before{content:"\f0ce5"}.mdi-alert-minus:before{content:"\f14bb"}.mdi-alert-minus-outline:before{content:"\f14be"}.mdi-alert-octagon:before{content:"\f0029"}.mdi-alert-octagon-outline:before{content:"\f0ce6"}.mdi-alert-octagram:before{content:"\f0767"}.mdi-alert-octagram-outline:before{content:"\f0ce7"}.mdi-alert-outline:before{content:"\f002a"}.mdi-alert-plus:before{content:"\f14ba"}.mdi-alert-plus-outline:before{content:"\f14bd"}.mdi-alert-remove:before{content:"\f14bc"}.mdi-alert-remove-outline:before{content:"\f14bf"}.mdi-alert-rhombus:before{content:"\f11ce"}.mdi-alert-rhombus-outline:before{content:"\f11cf"}.mdi-alien:before{content:"\f089a"}.mdi-alien-outline:before{content:"\f10cb"}.mdi-align-horizontal-center:before{content:"\f11c3"}.mdi-align-horizontal-distribute:before{content:"\f1962"}.mdi-align-horizontal-left:before{content:"\f11c2"}.mdi-align-horizontal-right:before{content:"\f11c4"}.mdi-align-vertical-bottom:before{content:"\f11c5"}.mdi-align-vertical-center:before{content:"\f11c6"}.mdi-align-vertical-distribute:before{content:"\f1963"}.mdi-align-vertical-top:before{content:"\f11c7"}.mdi-all-inclusive:before{content:"\f06be"}.mdi-all-inclusive-box:before{content:"\f188d"}.mdi-all-inclusive-box-outline:before{content:"\f188e"}.mdi-allergy:before{content:"\f1258"}.mdi-alpha:before{content:"\f002b"}.mdi-alpha-a:before{content:"\f0aee"}.mdi-alpha-a-box:before{content:"\f0b08"}.mdi-alpha-a-box-outline:before{content:"\f0beb"}.mdi-alpha-a-circle:before{content:"\f0bec"}.mdi-alpha-a-circle-outline:before{content:"\f0bed"}.mdi-alpha-b:before{content:"\f0aef"}.mdi-alpha-b-box:before{content:"\f0b09"}.mdi-alpha-b-box-outline:before{content:"\f0bee"}.mdi-alpha-b-circle:before{content:"\f0bef"}.mdi-alpha-b-circle-outline:before{content:"\f0bf0"}.mdi-alpha-c:before{content:"\f0af0"}.mdi-alpha-c-box:before{content:"\f0b0a"}.mdi-alpha-c-box-outline:before{content:"\f0bf1"}.mdi-alpha-c-circle:before{content:"\f0bf2"}.mdi-alpha-c-circle-outline:before{content:"\f0bf3"}.mdi-alpha-d:before{content:"\f0af1"}.mdi-alpha-d-box:before{content:"\f0b0b"}.mdi-alpha-d-box-outline:before{content:"\f0bf4"}.mdi-alpha-d-circle:before{content:"\f0bf5"}.mdi-alpha-d-circle-outline:before{content:"\f0bf6"}.mdi-alpha-e:before{content:"\f0af2"}.mdi-alpha-e-box:before{content:"\f0b0c"}.mdi-alpha-e-box-outline:before{content:"\f0bf7"}.mdi-alpha-e-circle:before{content:"\f0bf8"}.mdi-alpha-e-circle-outline:before{content:"\f0bf9"}.mdi-alpha-f:before{content:"\f0af3"}.mdi-alpha-f-box:before{content:"\f0b0d"}.mdi-alpha-f-box-outline:before{content:"\f0bfa"}.mdi-alpha-f-circle:before{content:"\f0bfb"}.mdi-alpha-f-circle-outline:before{content:"\f0bfc"}.mdi-alpha-g:before{content:"\f0af4"}.mdi-alpha-g-box:before{content:"\f0b0e"}.mdi-alpha-g-box-outline:before{content:"\f0bfd"}.mdi-alpha-g-circle:before{content:"\f0bfe"}.mdi-alpha-g-circle-outline:before{content:"\f0bff"}.mdi-alpha-h:before{content:"\f0af5"}.mdi-alpha-h-box:before{content:"\f0b0f"}.mdi-alpha-h-box-outline:before{content:"\f0c00"}.mdi-alpha-h-circle:before{content:"\f0c01"}.mdi-alpha-h-circle-outline:before{content:"\f0c02"}.mdi-alpha-i:before{content:"\f0af6"}.mdi-alpha-i-box:before{content:"\f0b10"}.mdi-alpha-i-box-outline:before{content:"\f0c03"}.mdi-alpha-i-circle:before{content:"\f0c04"}.mdi-alpha-i-circle-outline:before{content:"\f0c05"}.mdi-alpha-j:before{content:"\f0af7"}.mdi-alpha-j-box:before{content:"\f0b11"}.mdi-alpha-j-box-outline:before{content:"\f0c06"}.mdi-alpha-j-circle:before{content:"\f0c07"}.mdi-alpha-j-circle-outline:before{content:"\f0c08"}.mdi-alpha-k:before{content:"\f0af8"}.mdi-alpha-k-box:before{content:"\f0b12"}.mdi-alpha-k-box-outline:before{content:"\f0c09"}.mdi-alpha-k-circle:before{content:"\f0c0a"}.mdi-alpha-k-circle-outline:before{content:"\f0c0b"}.mdi-alpha-l:before{content:"\f0af9"}.mdi-alpha-l-box:before{content:"\f0b13"}.mdi-alpha-l-box-outline:before{content:"\f0c0c"}.mdi-alpha-l-circle:before{content:"\f0c0d"}.mdi-alpha-l-circle-outline:before{content:"\f0c0e"}.mdi-alpha-m:before{content:"\f0afa"}.mdi-alpha-m-box:before{content:"\f0b14"}.mdi-alpha-m-box-outline:before{content:"\f0c0f"}.mdi-alpha-m-circle:before{content:"\f0c10"}.mdi-alpha-m-circle-outline:before{content:"\f0c11"}.mdi-alpha-n:before{content:"\f0afb"}.mdi-alpha-n-box:before{content:"\f0b15"}.mdi-alpha-n-box-outline:before{content:"\f0c12"}.mdi-alpha-n-circle:before{content:"\f0c13"}.mdi-alpha-n-circle-outline:before{content:"\f0c14"}.mdi-alpha-o:before{content:"\f0afc"}.mdi-alpha-o-box:before{content:"\f0b16"}.mdi-alpha-o-box-outline:before{content:"\f0c15"}.mdi-alpha-o-circle:before{content:"\f0c16"}.mdi-alpha-o-circle-outline:before{content:"\f0c17"}.mdi-alpha-p:before{content:"\f0afd"}.mdi-alpha-p-box:before{content:"\f0b17"}.mdi-alpha-p-box-outline:before{content:"\f0c18"}.mdi-alpha-p-circle:before{content:"\f0c19"}.mdi-alpha-p-circle-outline:before{content:"\f0c1a"}.mdi-alpha-q:before{content:"\f0afe"}.mdi-alpha-q-box:before{content:"\f0b18"}.mdi-alpha-q-box-outline:before{content:"\f0c1b"}.mdi-alpha-q-circle:before{content:"\f0c1c"}.mdi-alpha-q-circle-outline:before{content:"\f0c1d"}.mdi-alpha-r:before{content:"\f0aff"}.mdi-alpha-r-box:before{content:"\f0b19"}.mdi-alpha-r-box-outline:before{content:"\f0c1e"}.mdi-alpha-r-circle:before{content:"\f0c1f"}.mdi-alpha-r-circle-outline:before{content:"\f0c20"}.mdi-alpha-s:before{content:"\f0b00"}.mdi-alpha-s-box:before{content:"\f0b1a"}.mdi-alpha-s-box-outline:before{content:"\f0c21"}.mdi-alpha-s-circle:before{content:"\f0c22"}.mdi-alpha-s-circle-outline:before{content:"\f0c23"}.mdi-alpha-t:before{content:"\f0b01"}.mdi-alpha-t-box:before{content:"\f0b1b"}.mdi-alpha-t-box-outline:before{content:"\f0c24"}.mdi-alpha-t-circle:before{content:"\f0c25"}.mdi-alpha-t-circle-outline:before{content:"\f0c26"}.mdi-alpha-u:before{content:"\f0b02"}.mdi-alpha-u-box:before{content:"\f0b1c"}.mdi-alpha-u-box-outline:before{content:"\f0c27"}.mdi-alpha-u-circle:before{content:"\f0c28"}.mdi-alpha-u-circle-outline:before{content:"\f0c29"}.mdi-alpha-v:before{content:"\f0b03"}.mdi-alpha-v-box:before{content:"\f0b1d"}.mdi-alpha-v-box-outline:before{content:"\f0c2a"}.mdi-alpha-v-circle:before{content:"\f0c2b"}.mdi-alpha-v-circle-outline:before{content:"\f0c2c"}.mdi-alpha-w:before{content:"\f0b04"}.mdi-alpha-w-box:before{content:"\f0b1e"}.mdi-alpha-w-box-outline:before{content:"\f0c2d"}.mdi-alpha-w-circle:before{content:"\f0c2e"}.mdi-alpha-w-circle-outline:before{content:"\f0c2f"}.mdi-alpha-x:before{content:"\f0b05"}.mdi-alpha-x-box:before{content:"\f0b1f"}.mdi-alpha-x-box-outline:before{content:"\f0c30"}.mdi-alpha-x-circle:before{content:"\f0c31"}.mdi-alpha-x-circle-outline:before{content:"\f0c32"}.mdi-alpha-y:before{content:"\f0b06"}.mdi-alpha-y-box:before{content:"\f0b20"}.mdi-alpha-y-box-outline:before{content:"\f0c33"}.mdi-alpha-y-circle:before{content:"\f0c34"}.mdi-alpha-y-circle-outline:before{content:"\f0c35"}.mdi-alpha-z:before{content:"\f0b07"}.mdi-alpha-z-box:before{content:"\f0b21"}.mdi-alpha-z-box-outline:before{content:"\f0c36"}.mdi-alpha-z-circle:before{content:"\f0c37"}.mdi-alpha-z-circle-outline:before{content:"\f0c38"}.mdi-alphabet-aurebesh:before{content:"\f132c"}.mdi-alphabet-cyrillic:before{content:"\f132d"}.mdi-alphabet-greek:before{content:"\f132e"}.mdi-alphabet-latin:before{content:"\f132f"}.mdi-alphabet-piqad:before{content:"\f1330"}.mdi-alphabet-tengwar:before{content:"\f1337"}.mdi-alphabetical:before{content:"\f002c"}.mdi-alphabetical-off:before{content:"\f100c"}.mdi-alphabetical-variant:before{content:"\f100d"}.mdi-alphabetical-variant-off:before{content:"\f100e"}.mdi-altimeter:before{content:"\f05d7"}.mdi-ambulance:before{content:"\f002f"}.mdi-ammunition:before{content:"\f0ce8"}.mdi-ampersand:before{content:"\f0a8d"}.mdi-amplifier:before{content:"\f0030"}.mdi-amplifier-off:before{content:"\f11b5"}.mdi-anchor:before{content:"\f0031"}.mdi-android:before{content:"\f0032"}.mdi-android-studio:before{content:"\f0034"}.mdi-angle-acute:before{content:"\f0937"}.mdi-angle-obtuse:before{content:"\f0938"}.mdi-angle-right:before{content:"\f0939"}.mdi-angular:before{content:"\f06b2"}.mdi-angularjs:before{content:"\f06bf"}.mdi-animation:before{content:"\f05d8"}.mdi-animation-outline:before{content:"\f0a8f"}.mdi-animation-play:before{content:"\f093a"}.mdi-animation-play-outline:before{content:"\f0a90"}.mdi-ansible:before{content:"\f109a"}.mdi-antenna:before{content:"\f1119"}.mdi-anvil:before{content:"\f089b"}.mdi-apache-kafka:before{content:"\f100f"}.mdi-api:before{content:"\f109b"}.mdi-api-off:before{content:"\f1257"}.mdi-apple:before{content:"\f0035"}.mdi-apple-finder:before{content:"\f0036"}.mdi-apple-icloud:before{content:"\f0038"}.mdi-apple-ios:before{content:"\f0037"}.mdi-apple-keyboard-caps:before{content:"\f0632"}.mdi-apple-keyboard-command:before{content:"\f0633"}.mdi-apple-keyboard-control:before{content:"\f0634"}.mdi-apple-keyboard-option:before{content:"\f0635"}.mdi-apple-keyboard-shift:before{content:"\f0636"}.mdi-apple-safari:before{content:"\f0039"}.mdi-application:before{content:"\f08c6"}.mdi-application-array:before{content:"\f10f5"}.mdi-application-array-outline:before{content:"\f10f6"}.mdi-application-braces:before{content:"\f10f7"}.mdi-application-braces-outline:before{content:"\f10f8"}.mdi-application-brackets:before{content:"\f0c8b"}.mdi-application-brackets-outline:before{content:"\f0c8c"}.mdi-application-cog:before{content:"\f0675"}.mdi-application-cog-outline:before{content:"\f1577"}.mdi-application-edit:before{content:"\f00ae"}.mdi-application-edit-outline:before{content:"\f0619"}.mdi-application-export:before{content:"\f0dad"}.mdi-application-import:before{content:"\f0dae"}.mdi-application-outline:before{content:"\f0614"}.mdi-application-parentheses:before{content:"\f10f9"}.mdi-application-parentheses-outline:before{content:"\f10fa"}.mdi-application-settings:before{content:"\f0b60"}.mdi-application-settings-outline:before{content:"\f1555"}.mdi-application-variable:before{content:"\f10fb"}.mdi-application-variable-outline:before{content:"\f10fc"}.mdi-approximately-equal:before{content:"\f0f9e"}.mdi-approximately-equal-box:before{content:"\f0f9f"}.mdi-apps:before{content:"\f003b"}.mdi-apps-box:before{content:"\f0d46"}.mdi-arch:before{content:"\f08c7"}.mdi-archive:before{content:"\f003c"}.mdi-archive-alert:before{content:"\f14fd"}.mdi-archive-alert-outline:before{content:"\f14fe"}.mdi-archive-arrow-down:before{content:"\f1259"}.mdi-archive-arrow-down-outline:before{content:"\f125a"}.mdi-archive-arrow-up:before{content:"\f125b"}.mdi-archive-arrow-up-outline:before{content:"\f125c"}.mdi-archive-cancel:before{content:"\f174b"}.mdi-archive-cancel-outline:before{content:"\f174c"}.mdi-archive-check:before{content:"\f174d"}.mdi-archive-check-outline:before{content:"\f174e"}.mdi-archive-clock:before{content:"\f174f"}.mdi-archive-clock-outline:before{content:"\f1750"}.mdi-archive-cog:before{content:"\f1751"}.mdi-archive-cog-outline:before{content:"\f1752"}.mdi-archive-edit:before{content:"\f1753"}.mdi-archive-edit-outline:before{content:"\f1754"}.mdi-archive-eye:before{content:"\f1755"}.mdi-archive-eye-outline:before{content:"\f1756"}.mdi-archive-lock:before{content:"\f1757"}.mdi-archive-lock-open:before{content:"\f1758"}.mdi-archive-lock-open-outline:before{content:"\f1759"}.mdi-archive-lock-outline:before{content:"\f175a"}.mdi-archive-marker:before{content:"\f175b"}.mdi-archive-marker-outline:before{content:"\f175c"}.mdi-archive-minus:before{content:"\f175d"}.mdi-archive-minus-outline:before{content:"\f175e"}.mdi-archive-music:before{content:"\f175f"}.mdi-archive-music-outline:before{content:"\f1760"}.mdi-archive-off:before{content:"\f1761"}.mdi-archive-off-outline:before{content:"\f1762"}.mdi-archive-outline:before{content:"\f120e"}.mdi-archive-plus:before{content:"\f1763"}.mdi-archive-plus-outline:before{content:"\f1764"}.mdi-archive-refresh:before{content:"\f1765"}.mdi-archive-refresh-outline:before{content:"\f1766"}.mdi-archive-remove:before{content:"\f1767"}.mdi-archive-remove-outline:before{content:"\f1768"}.mdi-archive-search:before{content:"\f1769"}.mdi-archive-search-outline:before{content:"\f176a"}.mdi-archive-settings:before{content:"\f176b"}.mdi-archive-settings-outline:before{content:"\f176c"}.mdi-archive-star:before{content:"\f176d"}.mdi-archive-star-outline:before{content:"\f176e"}.mdi-archive-sync:before{content:"\f176f"}.mdi-archive-sync-outline:before{content:"\f1770"}.mdi-arm-flex:before{content:"\f0fd7"}.mdi-arm-flex-outline:before{content:"\f0fd6"}.mdi-arrange-bring-forward:before{content:"\f003d"}.mdi-arrange-bring-to-front:before{content:"\f003e"}.mdi-arrange-send-backward:before{content:"\f003f"}.mdi-arrange-send-to-back:before{content:"\f0040"}.mdi-arrow-all:before{content:"\f0041"}.mdi-arrow-bottom-left:before{content:"\f0042"}.mdi-arrow-bottom-left-bold-box:before{content:"\f1964"}.mdi-arrow-bottom-left-bold-box-outline:before{content:"\f1965"}.mdi-arrow-bottom-left-bold-outline:before{content:"\f09b7"}.mdi-arrow-bottom-left-thick:before{content:"\f09b8"}.mdi-arrow-bottom-left-thin:before{content:"\f19b6"}.mdi-arrow-bottom-left-thin-circle-outline:before{content:"\f1596"}.mdi-arrow-bottom-right:before{content:"\f0043"}.mdi-arrow-bottom-right-bold-box:before{content:"\f1966"}.mdi-arrow-bottom-right-bold-box-outline:before{content:"\f1967"}.mdi-arrow-bottom-right-bold-outline:before{content:"\f09b9"}.mdi-arrow-bottom-right-thick:before{content:"\f09ba"}.mdi-arrow-bottom-right-thin:before{content:"\f19b7"}.mdi-arrow-bottom-right-thin-circle-outline:before{content:"\f1595"}.mdi-arrow-collapse:before{content:"\f0615"}.mdi-arrow-collapse-all:before{content:"\f0044"}.mdi-arrow-collapse-down:before{content:"\f0792"}.mdi-arrow-collapse-horizontal:before{content:"\f084c"}.mdi-arrow-collapse-left:before{content:"\f0793"}.mdi-arrow-collapse-right:before{content:"\f0794"}.mdi-arrow-collapse-up:before{content:"\f0795"}.mdi-arrow-collapse-vertical:before{content:"\f084d"}.mdi-arrow-decision:before{content:"\f09bb"}.mdi-arrow-decision-auto:before{content:"\f09bc"}.mdi-arrow-decision-auto-outline:before{content:"\f09bd"}.mdi-arrow-decision-outline:before{content:"\f09be"}.mdi-arrow-down:before{content:"\f0045"}.mdi-arrow-down-bold:before{content:"\f072e"}.mdi-arrow-down-bold-box:before{content:"\f072f"}.mdi-arrow-down-bold-box-outline:before{content:"\f0730"}.mdi-arrow-down-bold-circle:before{content:"\f0047"}.mdi-arrow-down-bold-circle-outline:before{content:"\f0048"}.mdi-arrow-down-bold-hexagon-outline:before{content:"\f0049"}.mdi-arrow-down-bold-outline:before{content:"\f09bf"}.mdi-arrow-down-box:before{content:"\f06c0"}.mdi-arrow-down-circle:before{content:"\f0cdb"}.mdi-arrow-down-circle-outline:before{content:"\f0cdc"}.mdi-arrow-down-drop-circle:before{content:"\f004a"}.mdi-arrow-down-drop-circle-outline:before{content:"\f004b"}.mdi-arrow-down-left:before{content:"\f17a1"}.mdi-arrow-down-left-bold:before{content:"\f17a2"}.mdi-arrow-down-right:before{content:"\f17a3"}.mdi-arrow-down-right-bold:before{content:"\f17a4"}.mdi-arrow-down-thick:before{content:"\f0046"}.mdi-arrow-down-thin:before{content:"\f19b3"}.mdi-arrow-down-thin-circle-outline:before{content:"\f1599"}.mdi-arrow-expand:before{content:"\f0616"}.mdi-arrow-expand-all:before{content:"\f004c"}.mdi-arrow-expand-down:before{content:"\f0796"}.mdi-arrow-expand-horizontal:before{content:"\f084e"}.mdi-arrow-expand-left:before{content:"\f0797"}.mdi-arrow-expand-right:before{content:"\f0798"}.mdi-arrow-expand-up:before{content:"\f0799"}.mdi-arrow-expand-vertical:before{content:"\f084f"}.mdi-arrow-horizontal-lock:before{content:"\f115b"}.mdi-arrow-left:before{content:"\f004d"}.mdi-arrow-left-bold:before{content:"\f0731"}.mdi-arrow-left-bold-box:before{content:"\f0732"}.mdi-arrow-left-bold-box-outline:before{content:"\f0733"}.mdi-arrow-left-bold-circle:before{content:"\f004f"}.mdi-arrow-left-bold-circle-outline:before{content:"\f0050"}.mdi-arrow-left-bold-hexagon-outline:before{content:"\f0051"}.mdi-arrow-left-bold-outline:before{content:"\f09c0"}.mdi-arrow-left-bottom:before{content:"\f17a5"}.mdi-arrow-left-bottom-bold:before{content:"\f17a6"}.mdi-arrow-left-box:before{content:"\f06c1"}.mdi-arrow-left-circle:before{content:"\f0cdd"}.mdi-arrow-left-circle-outline:before{content:"\f0cde"}.mdi-arrow-left-drop-circle:before{content:"\f0052"}.mdi-arrow-left-drop-circle-outline:before{content:"\f0053"}.mdi-arrow-left-right:before{content:"\f0e73"}.mdi-arrow-left-right-bold:before{content:"\f0e74"}.mdi-arrow-left-right-bold-outline:before{content:"\f09c1"}.mdi-arrow-left-thick:before{content:"\f004e"}.mdi-arrow-left-thin:before{content:"\f19b1"}.mdi-arrow-left-thin-circle-outline:before{content:"\f159a"}.mdi-arrow-left-top:before{content:"\f17a7"}.mdi-arrow-left-top-bold:before{content:"\f17a8"}.mdi-arrow-oscillating:before{content:"\f1c91"}.mdi-arrow-oscillating-off:before{content:"\f1c92"}.mdi-arrow-projectile:before{content:"\f1840"}.mdi-arrow-projectile-multiple:before{content:"\f183f"}.mdi-arrow-right:before{content:"\f0054"}.mdi-arrow-right-bold:before{content:"\f0734"}.mdi-arrow-right-bold-box:before{content:"\f0735"}.mdi-arrow-right-bold-box-outline:before{content:"\f0736"}.mdi-arrow-right-bold-circle:before{content:"\f0056"}.mdi-arrow-right-bold-circle-outline:before{content:"\f0057"}.mdi-arrow-right-bold-hexagon-outline:before{content:"\f0058"}.mdi-arrow-right-bold-outline:before{content:"\f09c2"}.mdi-arrow-right-bottom:before{content:"\f17a9"}.mdi-arrow-right-bottom-bold:before{content:"\f17aa"}.mdi-arrow-right-box:before{content:"\f06c2"}.mdi-arrow-right-circle:before{content:"\f0cdf"}.mdi-arrow-right-circle-outline:before{content:"\f0ce0"}.mdi-arrow-right-drop-circle:before{content:"\f0059"}.mdi-arrow-right-drop-circle-outline:before{content:"\f005a"}.mdi-arrow-right-thick:before{content:"\f0055"}.mdi-arrow-right-thin:before{content:"\f19b0"}.mdi-arrow-right-thin-circle-outline:before{content:"\f1598"}.mdi-arrow-right-top:before{content:"\f17ab"}.mdi-arrow-right-top-bold:before{content:"\f17ac"}.mdi-arrow-split-horizontal:before{content:"\f093b"}.mdi-arrow-split-vertical:before{content:"\f093c"}.mdi-arrow-top-left:before{content:"\f005b"}.mdi-arrow-top-left-bold-box:before{content:"\f1968"}.mdi-arrow-top-left-bold-box-outline:before{content:"\f1969"}.mdi-arrow-top-left-bold-outline:before{content:"\f09c3"}.mdi-arrow-top-left-bottom-right:before{content:"\f0e75"}.mdi-arrow-top-left-bottom-right-bold:before{content:"\f0e76"}.mdi-arrow-top-left-thick:before{content:"\f09c4"}.mdi-arrow-top-left-thin:before{content:"\f19b5"}.mdi-arrow-top-left-thin-circle-outline:before{content:"\f1593"}.mdi-arrow-top-right:before{content:"\f005c"}.mdi-arrow-top-right-bold-box:before{content:"\f196a"}.mdi-arrow-top-right-bold-box-outline:before{content:"\f196b"}.mdi-arrow-top-right-bold-outline:before{content:"\f09c5"}.mdi-arrow-top-right-bottom-left:before{content:"\f0e77"}.mdi-arrow-top-right-bottom-left-bold:before{content:"\f0e78"}.mdi-arrow-top-right-thick:before{content:"\f09c6"}.mdi-arrow-top-right-thin:before{content:"\f19b4"}.mdi-arrow-top-right-thin-circle-outline:before{content:"\f1594"}.mdi-arrow-u-down-left:before{content:"\f17ad"}.mdi-arrow-u-down-left-bold:before{content:"\f17ae"}.mdi-arrow-u-down-right:before{content:"\f17af"}.mdi-arrow-u-down-right-bold:before{content:"\f17b0"}.mdi-arrow-u-left-bottom:before{content:"\f17b1"}.mdi-arrow-u-left-bottom-bold:before{content:"\f17b2"}.mdi-arrow-u-left-top:before{content:"\f17b3"}.mdi-arrow-u-left-top-bold:before{content:"\f17b4"}.mdi-arrow-u-right-bottom:before{content:"\f17b5"}.mdi-arrow-u-right-bottom-bold:before{content:"\f17b6"}.mdi-arrow-u-right-top:before{content:"\f17b7"}.mdi-arrow-u-right-top-bold:before{content:"\f17b8"}.mdi-arrow-u-up-left:before{content:"\f17b9"}.mdi-arrow-u-up-left-bold:before{content:"\f17ba"}.mdi-arrow-u-up-right:before{content:"\f17bb"}.mdi-arrow-u-up-right-bold:before{content:"\f17bc"}.mdi-arrow-up:before{content:"\f005d"}.mdi-arrow-up-bold:before{content:"\f0737"}.mdi-arrow-up-bold-box:before{content:"\f0738"}.mdi-arrow-up-bold-box-outline:before{content:"\f0739"}.mdi-arrow-up-bold-circle:before{content:"\f005f"}.mdi-arrow-up-bold-circle-outline:before{content:"\f0060"}.mdi-arrow-up-bold-hexagon-outline:before{content:"\f0061"}.mdi-arrow-up-bold-outline:before{content:"\f09c7"}.mdi-arrow-up-box:before{content:"\f06c3"}.mdi-arrow-up-circle:before{content:"\f0ce1"}.mdi-arrow-up-circle-outline:before{content:"\f0ce2"}.mdi-arrow-up-down:before{content:"\f0e79"}.mdi-arrow-up-down-bold:before{content:"\f0e7a"}.mdi-arrow-up-down-bold-outline:before{content:"\f09c8"}.mdi-arrow-up-drop-circle:before{content:"\f0062"}.mdi-arrow-up-drop-circle-outline:before{content:"\f0063"}.mdi-arrow-up-left:before{content:"\f17bd"}.mdi-arrow-up-left-bold:before{content:"\f17be"}.mdi-arrow-up-right:before{content:"\f17bf"}.mdi-arrow-up-right-bold:before{content:"\f17c0"}.mdi-arrow-up-thick:before{content:"\f005e"}.mdi-arrow-up-thin:before{content:"\f19b2"}.mdi-arrow-up-thin-circle-outline:before{content:"\f1597"}.mdi-arrow-vertical-lock:before{content:"\f115c"}.mdi-artboard:before{content:"\f1b9a"}.mdi-artstation:before{content:"\f0b5b"}.mdi-aspect-ratio:before{content:"\f0a24"}.mdi-assistant:before{content:"\f0064"}.mdi-asterisk:before{content:"\f06c4"}.mdi-asterisk-circle-outline:before{content:"\f1a27"}.mdi-at:before{content:"\f0065"}.mdi-atlassian:before{content:"\f0804"}.mdi-atm:before{content:"\f0d47"}.mdi-atom:before{content:"\f0768"}.mdi-atom-variant:before{content:"\f0e7b"}.mdi-attachment:before{content:"\f0066"}.mdi-attachment-check:before{content:"\f1ac1"}.mdi-attachment-lock:before{content:"\f19c4"}.mdi-attachment-minus:before{content:"\f1ac2"}.mdi-attachment-off:before{content:"\f1ac3"}.mdi-attachment-plus:before{content:"\f1ac4"}.mdi-attachment-remove:before{content:"\f1ac5"}.mdi-atv:before{content:"\f1b70"}.mdi-audio-input-rca:before{content:"\f186b"}.mdi-audio-input-stereo-minijack:before{content:"\f186c"}.mdi-audio-input-xlr:before{content:"\f186d"}.mdi-audio-video:before{content:"\f093d"}.mdi-audio-video-off:before{content:"\f11b6"}.mdi-augmented-reality:before{content:"\f0850"}.mdi-aurora:before{content:"\f1bb9"}.mdi-auto-download:before{content:"\f137e"}.mdi-auto-fix:before{content:"\f0068"}.mdi-auto-mode:before{content:"\f1c20"}.mdi-auto-upload:before{content:"\f0069"}.mdi-autorenew:before{content:"\f006a"}.mdi-autorenew-off:before{content:"\f19e7"}.mdi-av-timer:before{content:"\f006b"}.mdi-awning:before{content:"\f1b87"}.mdi-awning-outline:before{content:"\f1b88"}.mdi-aws:before{content:"\f0e0f"}.mdi-axe:before{content:"\f08c8"}.mdi-axe-battle:before{content:"\f1842"}.mdi-axis:before{content:"\f0d48"}.mdi-axis-arrow:before{content:"\f0d49"}.mdi-axis-arrow-info:before{content:"\f140e"}.mdi-axis-arrow-lock:before{content:"\f0d4a"}.mdi-axis-lock:before{content:"\f0d4b"}.mdi-axis-x-arrow:before{content:"\f0d4c"}.mdi-axis-x-arrow-lock:before{content:"\f0d4d"}.mdi-axis-x-rotate-clockwise:before{content:"\f0d4e"}.mdi-axis-x-rotate-counterclockwise:before{content:"\f0d4f"}.mdi-axis-x-y-arrow-lock:before{content:"\f0d50"}.mdi-axis-y-arrow:before{content:"\f0d51"}.mdi-axis-y-arrow-lock:before{content:"\f0d52"}.mdi-axis-y-rotate-clockwise:before{content:"\f0d53"}.mdi-axis-y-rotate-counterclockwise:before{content:"\f0d54"}.mdi-axis-z-arrow:before{content:"\f0d55"}.mdi-axis-z-arrow-lock:before{content:"\f0d56"}.mdi-axis-z-rotate-clockwise:before{content:"\f0d57"}.mdi-axis-z-rotate-counterclockwise:before{content:"\f0d58"}.mdi-babel:before{content:"\f0a25"}.mdi-baby:before{content:"\f006c"}.mdi-baby-bottle:before{content:"\f0f39"}.mdi-baby-bottle-outline:before{content:"\f0f3a"}.mdi-baby-buggy:before{content:"\f13e0"}.mdi-baby-buggy-off:before{content:"\f1af3"}.mdi-baby-carriage:before{content:"\f068f"}.mdi-baby-carriage-off:before{content:"\f0fa0"}.mdi-baby-face:before{content:"\f0e7c"}.mdi-baby-face-outline:before{content:"\f0e7d"}.mdi-backburger:before{content:"\f006d"}.mdi-backspace:before{content:"\f006e"}.mdi-backspace-outline:before{content:"\f0b5c"}.mdi-backspace-reverse:before{content:"\f0e7e"}.mdi-backspace-reverse-outline:before{content:"\f0e7f"}.mdi-backup-restore:before{content:"\f006f"}.mdi-bacteria:before{content:"\f0ed5"}.mdi-bacteria-outline:before{content:"\f0ed6"}.mdi-badge-account:before{content:"\f0da7"}.mdi-badge-account-alert:before{content:"\f0da8"}.mdi-badge-account-alert-outline:before{content:"\f0da9"}.mdi-badge-account-horizontal:before{content:"\f0e0d"}.mdi-badge-account-horizontal-outline:before{content:"\f0e0e"}.mdi-badge-account-outline:before{content:"\f0daa"}.mdi-badminton:before{content:"\f0851"}.mdi-bag-carry-on:before{content:"\f0f3b"}.mdi-bag-carry-on-check:before{content:"\f0d65"}.mdi-bag-carry-on-off:before{content:"\f0f3c"}.mdi-bag-checked:before{content:"\f0f3d"}.mdi-bag-personal:before{content:"\f0e10"}.mdi-bag-personal-off:before{content:"\f0e11"}.mdi-bag-personal-off-outline:before{content:"\f0e12"}.mdi-bag-personal-outline:before{content:"\f0e13"}.mdi-bag-personal-plus:before{content:"\f1ca4"}.mdi-bag-personal-plus-outline:before{content:"\f1ca5"}.mdi-bag-personal-tag:before{content:"\f1b0c"}.mdi-bag-personal-tag-outline:before{content:"\f1b0d"}.mdi-bag-suitcase:before{content:"\f158b"}.mdi-bag-suitcase-off:before{content:"\f158d"}.mdi-bag-suitcase-off-outline:before{content:"\f158e"}.mdi-bag-suitcase-outline:before{content:"\f158c"}.mdi-baguette:before{content:"\f0f3e"}.mdi-balcony:before{content:"\f1817"}.mdi-balloon:before{content:"\f0a26"}.mdi-ballot:before{content:"\f09c9"}.mdi-ballot-outline:before{content:"\f09ca"}.mdi-ballot-recount:before{content:"\f0c39"}.mdi-ballot-recount-outline:before{content:"\f0c3a"}.mdi-bandage:before{content:"\f0daf"}.mdi-bank:before{content:"\f0070"}.mdi-bank-check:before{content:"\f1655"}.mdi-bank-circle:before{content:"\f1c03"}.mdi-bank-circle-outline:before{content:"\f1c04"}.mdi-bank-minus:before{content:"\f0db0"}.mdi-bank-off:before{content:"\f1656"}.mdi-bank-off-outline:before{content:"\f1657"}.mdi-bank-outline:before{content:"\f0e80"}.mdi-bank-plus:before{content:"\f0db1"}.mdi-bank-remove:before{content:"\f0db2"}.mdi-bank-transfer:before{content:"\f0a27"}.mdi-bank-transfer-in:before{content:"\f0a28"}.mdi-bank-transfer-out:before{content:"\f0a29"}.mdi-barcode:before{content:"\f0071"}.mdi-barcode-off:before{content:"\f1236"}.mdi-barcode-scan:before{content:"\f0072"}.mdi-barley:before{content:"\f0073"}.mdi-barley-off:before{content:"\f0b5d"}.mdi-barn:before{content:"\f0b5e"}.mdi-barrel:before{content:"\f0074"}.mdi-barrel-outline:before{content:"\f1a28"}.mdi-baseball:before{content:"\f0852"}.mdi-baseball-bat:before{content:"\f0853"}.mdi-baseball-diamond:before{content:"\f15ec"}.mdi-baseball-diamond-outline:before{content:"\f15ed"}.mdi-baseball-outline:before{content:"\f1c5a"}.mdi-bash:before{content:"\f1183"}.mdi-basket:before{content:"\f0076"}.mdi-basket-check:before{content:"\f18e5"}.mdi-basket-check-outline:before{content:"\f18e6"}.mdi-basket-fill:before{content:"\f0077"}.mdi-basket-minus:before{content:"\f1523"}.mdi-basket-minus-outline:before{content:"\f1524"}.mdi-basket-off:before{content:"\f1525"}.mdi-basket-off-outline:before{content:"\f1526"}.mdi-basket-outline:before{content:"\f1181"}.mdi-basket-plus:before{content:"\f1527"}.mdi-basket-plus-outline:before{content:"\f1528"}.mdi-basket-remove:before{content:"\f1529"}.mdi-basket-remove-outline:before{content:"\f152a"}.mdi-basket-unfill:before{content:"\f0078"}.mdi-basketball:before{content:"\f0806"}.mdi-basketball-hoop:before{content:"\f0c3b"}.mdi-basketball-hoop-outline:before{content:"\f0c3c"}.mdi-bat:before{content:"\f0b5f"}.mdi-bathtub:before{content:"\f1818"}.mdi-bathtub-outline:before{content:"\f1819"}.mdi-battery:before{content:"\f0079"}.mdi-battery-10:before{content:"\f007a"}.mdi-battery-10-bluetooth:before{content:"\f093e"}.mdi-battery-20:before{content:"\f007b"}.mdi-battery-20-bluetooth:before{content:"\f093f"}.mdi-battery-30:before{content:"\f007c"}.mdi-battery-30-bluetooth:before{content:"\f0940"}.mdi-battery-40:before{content:"\f007d"}.mdi-battery-40-bluetooth:before{content:"\f0941"}.mdi-battery-50:before{content:"\f007e"}.mdi-battery-50-bluetooth:before{content:"\f0942"}.mdi-battery-60:before{content:"\f007f"}.mdi-battery-60-bluetooth:before{content:"\f0943"}.mdi-battery-70:before{content:"\f0080"}.mdi-battery-70-bluetooth:before{content:"\f0944"}.mdi-battery-80:before{content:"\f0081"}.mdi-battery-80-bluetooth:before{content:"\f0945"}.mdi-battery-90:before{content:"\f0082"}.mdi-battery-90-bluetooth:before{content:"\f0946"}.mdi-battery-alert:before{content:"\f0083"}.mdi-battery-alert-bluetooth:before{content:"\f0947"}.mdi-battery-alert-variant:before{content:"\f10cc"}.mdi-battery-alert-variant-outline:before{content:"\f10cd"}.mdi-battery-arrow-down:before{content:"\f17de"}.mdi-battery-arrow-down-outline:before{content:"\f17df"}.mdi-battery-arrow-up:before{content:"\f17e0"}.mdi-battery-arrow-up-outline:before{content:"\f17e1"}.mdi-battery-bluetooth:before{content:"\f0948"}.mdi-battery-bluetooth-variant:before{content:"\f0949"}.mdi-battery-charging:before{content:"\f0084"}.mdi-battery-charging-10:before{content:"\f089c"}.mdi-battery-charging-100:before{content:"\f0085"}.mdi-battery-charging-20:before{content:"\f0086"}.mdi-battery-charging-30:before{content:"\f0087"}.mdi-battery-charging-40:before{content:"\f0088"}.mdi-battery-charging-50:before{content:"\f089d"}.mdi-battery-charging-60:before{content:"\f0089"}.mdi-battery-charging-70:before{content:"\f089e"}.mdi-battery-charging-80:before{content:"\f008a"}.mdi-battery-charging-90:before{content:"\f008b"}.mdi-battery-charging-high:before{content:"\f12a6"}.mdi-battery-charging-low:before{content:"\f12a4"}.mdi-battery-charging-medium:before{content:"\f12a5"}.mdi-battery-charging-outline:before{content:"\f089f"}.mdi-battery-charging-wireless:before{content:"\f0807"}.mdi-battery-charging-wireless-10:before{content:"\f0808"}.mdi-battery-charging-wireless-20:before{content:"\f0809"}.mdi-battery-charging-wireless-30:before{content:"\f080a"}.mdi-battery-charging-wireless-40:before{content:"\f080b"}.mdi-battery-charging-wireless-50:before{content:"\f080c"}.mdi-battery-charging-wireless-60:before{content:"\f080d"}.mdi-battery-charging-wireless-70:before{content:"\f080e"}.mdi-battery-charging-wireless-80:before{content:"\f080f"}.mdi-battery-charging-wireless-90:before{content:"\f0810"}.mdi-battery-charging-wireless-alert:before{content:"\f0811"}.mdi-battery-charging-wireless-outline:before{content:"\f0812"}.mdi-battery-check:before{content:"\f17e2"}.mdi-battery-check-outline:before{content:"\f17e3"}.mdi-battery-clock:before{content:"\f19e5"}.mdi-battery-clock-outline:before{content:"\f19e6"}.mdi-battery-heart:before{content:"\f120f"}.mdi-battery-heart-outline:before{content:"\f1210"}.mdi-battery-heart-variant:before{content:"\f1211"}.mdi-battery-high:before{content:"\f12a3"}.mdi-battery-lock:before{content:"\f179c"}.mdi-battery-lock-open:before{content:"\f179d"}.mdi-battery-low:before{content:"\f12a1"}.mdi-battery-medium:before{content:"\f12a2"}.mdi-battery-minus:before{content:"\f17e4"}.mdi-battery-minus-outline:before{content:"\f17e5"}.mdi-battery-minus-variant:before{content:"\f008c"}.mdi-battery-negative:before{content:"\f008d"}.mdi-battery-off:before{content:"\f125d"}.mdi-battery-off-outline:before{content:"\f125e"}.mdi-battery-outline:before{content:"\f008e"}.mdi-battery-plus:before{content:"\f17e6"}.mdi-battery-plus-outline:before{content:"\f17e7"}.mdi-battery-plus-variant:before{content:"\f008f"}.mdi-battery-positive:before{content:"\f0090"}.mdi-battery-remove:before{content:"\f17e8"}.mdi-battery-remove-outline:before{content:"\f17e9"}.mdi-battery-sync:before{content:"\f1834"}.mdi-battery-sync-outline:before{content:"\f1835"}.mdi-battery-unknown:before{content:"\f0091"}.mdi-battery-unknown-bluetooth:before{content:"\f094a"}.mdi-beach:before{content:"\f0092"}.mdi-beaker:before{content:"\f0cea"}.mdi-beaker-alert:before{content:"\f1229"}.mdi-beaker-alert-outline:before{content:"\f122a"}.mdi-beaker-check:before{content:"\f122b"}.mdi-beaker-check-outline:before{content:"\f122c"}.mdi-beaker-minus:before{content:"\f122d"}.mdi-beaker-minus-outline:before{content:"\f122e"}.mdi-beaker-outline:before{content:"\f0690"}.mdi-beaker-plus:before{content:"\f122f"}.mdi-beaker-plus-outline:before{content:"\f1230"}.mdi-beaker-question:before{content:"\f1231"}.mdi-beaker-question-outline:before{content:"\f1232"}.mdi-beaker-remove:before{content:"\f1233"}.mdi-beaker-remove-outline:before{content:"\f1234"}.mdi-bed:before{content:"\f02e3"}.mdi-bed-clock:before{content:"\f1b94"}.mdi-bed-double:before{content:"\f0fd4"}.mdi-bed-double-outline:before{content:"\f0fd3"}.mdi-bed-empty:before{content:"\f08a0"}.mdi-bed-king:before{content:"\f0fd2"}.mdi-bed-king-outline:before{content:"\f0fd1"}.mdi-bed-outline:before{content:"\f0099"}.mdi-bed-queen:before{content:"\f0fd0"}.mdi-bed-queen-outline:before{content:"\f0fdb"}.mdi-bed-single:before{content:"\f106d"}.mdi-bed-single-outline:before{content:"\f106e"}.mdi-bee:before{content:"\f0fa1"}.mdi-bee-flower:before{content:"\f0fa2"}.mdi-beehive-off-outline:before{content:"\f13ed"}.mdi-beehive-outline:before{content:"\f10ce"}.mdi-beekeeper:before{content:"\f14e2"}.mdi-beer:before{content:"\f0098"}.mdi-beer-outline:before{content:"\f130c"}.mdi-bell:before{content:"\f009a"}.mdi-bell-alert:before{content:"\f0d59"}.mdi-bell-alert-outline:before{content:"\f0e81"}.mdi-bell-badge:before{content:"\f116b"}.mdi-bell-badge-outline:before{content:"\f0178"}.mdi-bell-cancel:before{content:"\f13e7"}.mdi-bell-cancel-outline:before{content:"\f13e8"}.mdi-bell-check:before{content:"\f11e5"}.mdi-bell-check-outline:before{content:"\f11e6"}.mdi-bell-circle:before{content:"\f0d5a"}.mdi-bell-circle-outline:before{content:"\f0d5b"}.mdi-bell-cog:before{content:"\f1a29"}.mdi-bell-cog-outline:before{content:"\f1a2a"}.mdi-bell-minus:before{content:"\f13e9"}.mdi-bell-minus-outline:before{content:"\f13ea"}.mdi-bell-off:before{content:"\f009b"}.mdi-bell-off-outline:before{content:"\f0a91"}.mdi-bell-outline:before{content:"\f009c"}.mdi-bell-plus:before{content:"\f009d"}.mdi-bell-plus-outline:before{content:"\f0a92"}.mdi-bell-remove:before{content:"\f13eb"}.mdi-bell-remove-outline:before{content:"\f13ec"}.mdi-bell-ring:before{content:"\f009e"}.mdi-bell-ring-outline:before{content:"\f009f"}.mdi-bell-sleep:before{content:"\f00a0"}.mdi-bell-sleep-outline:before{content:"\f0a93"}.mdi-bench:before{content:"\f1c21"}.mdi-bench-back:before{content:"\f1c22"}.mdi-beta:before{content:"\f00a1"}.mdi-betamax:before{content:"\f09cb"}.mdi-biathlon:before{content:"\f0e14"}.mdi-bicycle:before{content:"\f109c"}.mdi-bicycle-basket:before{content:"\f1235"}.mdi-bicycle-cargo:before{content:"\f189c"}.mdi-bicycle-electric:before{content:"\f15b4"}.mdi-bicycle-penny-farthing:before{content:"\f15e9"}.mdi-bike:before{content:"\f00a3"}.mdi-bike-fast:before{content:"\f111f"}.mdi-bike-pedal:before{content:"\f1c23"}.mdi-bike-pedal-clipless:before{content:"\f1c24"}.mdi-bike-pedal-mountain:before{content:"\f1c25"}.mdi-billboard:before{content:"\f1010"}.mdi-billiards:before{content:"\f0b61"}.mdi-billiards-rack:before{content:"\f0b62"}.mdi-binoculars:before{content:"\f00a5"}.mdi-bio:before{content:"\f00a6"}.mdi-biohazard:before{content:"\f00a7"}.mdi-bird:before{content:"\f15c6"}.mdi-bitbucket:before{content:"\f00a8"}.mdi-bitcoin:before{content:"\f0813"}.mdi-black-mesa:before{content:"\f00a9"}.mdi-blender:before{content:"\f0ceb"}.mdi-blender-outline:before{content:"\f181a"}.mdi-blender-software:before{content:"\f00ab"}.mdi-blinds:before{content:"\f00ac"}.mdi-blinds-horizontal:before{content:"\f1a2b"}.mdi-blinds-horizontal-closed:before{content:"\f1a2c"}.mdi-blinds-open:before{content:"\f1011"}.mdi-blinds-vertical:before{content:"\f1a2d"}.mdi-blinds-vertical-closed:before{content:"\f1a2e"}.mdi-block-helper:before{content:"\f00ad"}.mdi-blood-bag:before{content:"\f0cec"}.mdi-bluetooth:before{content:"\f00af"}.mdi-bluetooth-audio:before{content:"\f00b0"}.mdi-bluetooth-connect:before{content:"\f00b1"}.mdi-bluetooth-off:before{content:"\f00b2"}.mdi-bluetooth-settings:before{content:"\f00b3"}.mdi-bluetooth-transfer:before{content:"\f00b4"}.mdi-blur:before{content:"\f00b5"}.mdi-blur-linear:before{content:"\f00b6"}.mdi-blur-off:before{content:"\f00b7"}.mdi-blur-radial:before{content:"\f00b8"}.mdi-bolt:before{content:"\f0db3"}.mdi-bomb:before{content:"\f0691"}.mdi-bomb-off:before{content:"\f06c5"}.mdi-bone:before{content:"\f00b9"}.mdi-bone-off:before{content:"\f19e0"}.mdi-book:before{content:"\f00ba"}.mdi-book-account:before{content:"\f13ad"}.mdi-book-account-outline:before{content:"\f13ae"}.mdi-book-alert:before{content:"\f167c"}.mdi-book-alert-outline:before{content:"\f167d"}.mdi-book-alphabet:before{content:"\f061d"}.mdi-book-arrow-down:before{content:"\f167e"}.mdi-book-arrow-down-outline:before{content:"\f167f"}.mdi-book-arrow-left:before{content:"\f1680"}.mdi-book-arrow-left-outline:before{content:"\f1681"}.mdi-book-arrow-right:before{content:"\f1682"}.mdi-book-arrow-right-outline:before{content:"\f1683"}.mdi-book-arrow-up:before{content:"\f1684"}.mdi-book-arrow-up-outline:before{content:"\f1685"}.mdi-book-cancel:before{content:"\f1686"}.mdi-book-cancel-outline:before{content:"\f1687"}.mdi-book-check:before{content:"\f14f3"}.mdi-book-check-outline:before{content:"\f14f4"}.mdi-book-clock:before{content:"\f1688"}.mdi-book-clock-outline:before{content:"\f1689"}.mdi-book-cog:before{content:"\f168a"}.mdi-book-cog-outline:before{content:"\f168b"}.mdi-book-cross:before{content:"\f00a2"}.mdi-book-edit:before{content:"\f168c"}.mdi-book-edit-outline:before{content:"\f168d"}.mdi-book-education:before{content:"\f16c9"}.mdi-book-education-outline:before{content:"\f16ca"}.mdi-book-heart:before{content:"\f1a1d"}.mdi-book-heart-outline:before{content:"\f1a1e"}.mdi-book-information-variant:before{content:"\f106f"}.mdi-book-lock:before{content:"\f079a"}.mdi-book-lock-open:before{content:"\f079b"}.mdi-book-lock-open-outline:before{content:"\f168e"}.mdi-book-lock-outline:before{content:"\f168f"}.mdi-book-marker:before{content:"\f1690"}.mdi-book-marker-outline:before{content:"\f1691"}.mdi-book-minus:before{content:"\f05d9"}.mdi-book-minus-multiple:before{content:"\f0a94"}.mdi-book-minus-multiple-outline:before{content:"\f090b"}.mdi-book-minus-outline:before{content:"\f1692"}.mdi-book-multiple:before{content:"\f00bb"}.mdi-book-multiple-outline:before{content:"\f0436"}.mdi-book-music:before{content:"\f0067"}.mdi-book-music-outline:before{content:"\f1693"}.mdi-book-off:before{content:"\f1694"}.mdi-book-off-outline:before{content:"\f1695"}.mdi-book-open:before{content:"\f00bd"}.mdi-book-open-blank-variant:before{content:"\f00be"}.mdi-book-open-outline:before{content:"\f0b63"}.mdi-book-open-page-variant:before{content:"\f05da"}.mdi-book-open-page-variant-outline:before{content:"\f15d6"}.mdi-book-open-variant:before{content:"\f14f7"}.mdi-book-outline:before{content:"\f0b64"}.mdi-book-play:before{content:"\f0e82"}.mdi-book-play-outline:before{content:"\f0e83"}.mdi-book-plus:before{content:"\f05db"}.mdi-book-plus-multiple:before{content:"\f0a95"}.mdi-book-plus-multiple-outline:before{content:"\f0ade"}.mdi-book-plus-outline:before{content:"\f1696"}.mdi-book-refresh:before{content:"\f1697"}.mdi-book-refresh-outline:before{content:"\f1698"}.mdi-book-remove:before{content:"\f0a97"}.mdi-book-remove-multiple:before{content:"\f0a96"}.mdi-book-remove-multiple-outline:before{content:"\f04ca"}.mdi-book-remove-outline:before{content:"\f1699"}.mdi-book-search:before{content:"\f0e84"}.mdi-book-search-outline:before{content:"\f0e85"}.mdi-book-settings:before{content:"\f169a"}.mdi-book-settings-outline:before{content:"\f169b"}.mdi-book-sync:before{content:"\f169c"}.mdi-book-sync-outline:before{content:"\f16c8"}.mdi-book-variant:before{content:"\f00bf"}.mdi-bookmark:before{content:"\f00c0"}.mdi-bookmark-box:before{content:"\f1b75"}.mdi-bookmark-box-multiple:before{content:"\f196c"}.mdi-bookmark-box-multiple-outline:before{content:"\f196d"}.mdi-bookmark-box-outline:before{content:"\f1b76"}.mdi-bookmark-check:before{content:"\f00c1"}.mdi-bookmark-check-outline:before{content:"\f137b"}.mdi-bookmark-minus:before{content:"\f09cc"}.mdi-bookmark-minus-outline:before{content:"\f09cd"}.mdi-bookmark-multiple:before{content:"\f0e15"}.mdi-bookmark-multiple-outline:before{content:"\f0e16"}.mdi-bookmark-music:before{content:"\f00c2"}.mdi-bookmark-music-outline:before{content:"\f1379"}.mdi-bookmark-off:before{content:"\f09ce"}.mdi-bookmark-off-outline:before{content:"\f09cf"}.mdi-bookmark-outline:before{content:"\f00c3"}.mdi-bookmark-plus:before{content:"\f00c5"}.mdi-bookmark-plus-outline:before{content:"\f00c4"}.mdi-bookmark-remove:before{content:"\f00c6"}.mdi-bookmark-remove-outline:before{content:"\f137a"}.mdi-bookshelf:before{content:"\f125f"}.mdi-boom-gate:before{content:"\f0e86"}.mdi-boom-gate-alert:before{content:"\f0e87"}.mdi-boom-gate-alert-outline:before{content:"\f0e88"}.mdi-boom-gate-arrow-down:before{content:"\f0e89"}.mdi-boom-gate-arrow-down-outline:before{content:"\f0e8a"}.mdi-boom-gate-arrow-up:before{content:"\f0e8c"}.mdi-boom-gate-arrow-up-outline:before{content:"\f0e8d"}.mdi-boom-gate-outline:before{content:"\f0e8b"}.mdi-boom-gate-up:before{content:"\f17f9"}.mdi-boom-gate-up-outline:before{content:"\f17fa"}.mdi-boombox:before{content:"\f05dc"}.mdi-boomerang:before{content:"\f10cf"}.mdi-bootstrap:before{content:"\f06c6"}.mdi-border-all:before{content:"\f00c7"}.mdi-border-all-variant:before{content:"\f08a1"}.mdi-border-bottom:before{content:"\f00c8"}.mdi-border-bottom-variant:before{content:"\f08a2"}.mdi-border-color:before{content:"\f00c9"}.mdi-border-horizontal:before{content:"\f00ca"}.mdi-border-inside:before{content:"\f00cb"}.mdi-border-left:before{content:"\f00cc"}.mdi-border-left-variant:before{content:"\f08a3"}.mdi-border-none:before{content:"\f00cd"}.mdi-border-none-variant:before{content:"\f08a4"}.mdi-border-outside:before{content:"\f00ce"}.mdi-border-radius:before{content:"\f1af4"}.mdi-border-right:before{content:"\f00cf"}.mdi-border-right-variant:before{content:"\f08a5"}.mdi-border-style:before{content:"\f00d0"}.mdi-border-top:before{content:"\f00d1"}.mdi-border-top-variant:before{content:"\f08a6"}.mdi-border-vertical:before{content:"\f00d2"}.mdi-bottle-soda:before{content:"\f1070"}.mdi-bottle-soda-classic:before{content:"\f1071"}.mdi-bottle-soda-classic-outline:before{content:"\f1363"}.mdi-bottle-soda-outline:before{content:"\f1072"}.mdi-bottle-tonic:before{content:"\f112e"}.mdi-bottle-tonic-outline:before{content:"\f112f"}.mdi-bottle-tonic-plus:before{content:"\f1130"}.mdi-bottle-tonic-plus-outline:before{content:"\f1131"}.mdi-bottle-tonic-skull:before{content:"\f1132"}.mdi-bottle-tonic-skull-outline:before{content:"\f1133"}.mdi-bottle-wine:before{content:"\f0854"}.mdi-bottle-wine-outline:before{content:"\f1310"}.mdi-bow-arrow:before{content:"\f1841"}.mdi-bow-tie:before{content:"\f0678"}.mdi-bowl:before{content:"\f028e"}.mdi-bowl-mix:before{content:"\f0617"}.mdi-bowl-mix-outline:before{content:"\f02e4"}.mdi-bowl-outline:before{content:"\f02a9"}.mdi-bowling:before{content:"\f00d3"}.mdi-box:before{content:"\f00d4"}.mdi-box-cutter:before{content:"\f00d5"}.mdi-box-cutter-off:before{content:"\f0b4a"}.mdi-box-shadow:before{content:"\f0637"}.mdi-boxing-glove:before{content:"\f0b65"}.mdi-braille:before{content:"\f09d0"}.mdi-brain:before{content:"\f09d1"}.mdi-bread-slice:before{content:"\f0cee"}.mdi-bread-slice-outline:before{content:"\f0cef"}.mdi-bridge:before{content:"\f0618"}.mdi-briefcase:before{content:"\f00d6"}.mdi-briefcase-account:before{content:"\f0cf0"}.mdi-briefcase-account-outline:before{content:"\f0cf1"}.mdi-briefcase-arrow-left-right:before{content:"\f1a8d"}.mdi-briefcase-arrow-left-right-outline:before{content:"\f1a8e"}.mdi-briefcase-arrow-up-down:before{content:"\f1a8f"}.mdi-briefcase-arrow-up-down-outline:before{content:"\f1a90"}.mdi-briefcase-check:before{content:"\f00d7"}.mdi-briefcase-check-outline:before{content:"\f131e"}.mdi-briefcase-clock:before{content:"\f10d0"}.mdi-briefcase-clock-outline:before{content:"\f10d1"}.mdi-briefcase-download:before{content:"\f00d8"}.mdi-briefcase-download-outline:before{content:"\f0c3d"}.mdi-briefcase-edit:before{content:"\f0a98"}.mdi-briefcase-edit-outline:before{content:"\f0c3e"}.mdi-briefcase-eye:before{content:"\f17d9"}.mdi-briefcase-eye-outline:before{content:"\f17da"}.mdi-briefcase-minus:before{content:"\f0a2a"}.mdi-briefcase-minus-outline:before{content:"\f0c3f"}.mdi-briefcase-off:before{content:"\f1658"}.mdi-briefcase-off-outline:before{content:"\f1659"}.mdi-briefcase-outline:before{content:"\f0814"}.mdi-briefcase-plus:before{content:"\f0a2b"}.mdi-briefcase-plus-outline:before{content:"\f0c40"}.mdi-briefcase-remove:before{content:"\f0a2c"}.mdi-briefcase-remove-outline:before{content:"\f0c41"}.mdi-briefcase-search:before{content:"\f0a2d"}.mdi-briefcase-search-outline:before{content:"\f0c42"}.mdi-briefcase-upload:before{content:"\f00d9"}.mdi-briefcase-upload-outline:before{content:"\f0c43"}.mdi-briefcase-variant:before{content:"\f1494"}.mdi-briefcase-variant-off:before{content:"\f165a"}.mdi-briefcase-variant-off-outline:before{content:"\f165b"}.mdi-briefcase-variant-outline:before{content:"\f1495"}.mdi-brightness-1:before{content:"\f00da"}.mdi-brightness-2:before{content:"\f00db"}.mdi-brightness-3:before{content:"\f00dc"}.mdi-brightness-4:before{content:"\f00dd"}.mdi-brightness-5:before{content:"\f00de"}.mdi-brightness-6:before{content:"\f00df"}.mdi-brightness-7:before{content:"\f00e0"}.mdi-brightness-auto:before{content:"\f00e1"}.mdi-brightness-percent:before{content:"\f0cf2"}.mdi-broadcast:before{content:"\f1720"}.mdi-broadcast-off:before{content:"\f1721"}.mdi-broom:before{content:"\f00e2"}.mdi-brush:before{content:"\f00e3"}.mdi-brush-off:before{content:"\f1771"}.mdi-brush-outline:before{content:"\f1a0d"}.mdi-brush-variant:before{content:"\f1813"}.mdi-bucket:before{content:"\f1415"}.mdi-bucket-outline:before{content:"\f1416"}.mdi-buffet:before{content:"\f0578"}.mdi-bug:before{content:"\f00e4"}.mdi-bug-check:before{content:"\f0a2e"}.mdi-bug-check-outline:before{content:"\f0a2f"}.mdi-bug-outline:before{content:"\f0a30"}.mdi-bug-pause:before{content:"\f1af5"}.mdi-bug-pause-outline:before{content:"\f1af6"}.mdi-bug-play:before{content:"\f1af7"}.mdi-bug-play-outline:before{content:"\f1af8"}.mdi-bug-stop:before{content:"\f1af9"}.mdi-bug-stop-outline:before{content:"\f1afa"}.mdi-bugle:before{content:"\f0db4"}.mdi-bulkhead-light:before{content:"\f1a2f"}.mdi-bulldozer:before{content:"\f0b22"}.mdi-bullet:before{content:"\f0cf3"}.mdi-bulletin-board:before{content:"\f00e5"}.mdi-bullhorn:before{content:"\f00e6"}.mdi-bullhorn-outline:before{content:"\f0b23"}.mdi-bullhorn-variant:before{content:"\f196e"}.mdi-bullhorn-variant-outline:before{content:"\f196f"}.mdi-bullseye:before{content:"\f05dd"}.mdi-bullseye-arrow:before{content:"\f08c9"}.mdi-bulma:before{content:"\f12e7"}.mdi-bunk-bed:before{content:"\f1302"}.mdi-bunk-bed-outline:before{content:"\f0097"}.mdi-bus:before{content:"\f00e7"}.mdi-bus-alert:before{content:"\f0a99"}.mdi-bus-articulated-end:before{content:"\f079c"}.mdi-bus-articulated-front:before{content:"\f079d"}.mdi-bus-clock:before{content:"\f08ca"}.mdi-bus-double-decker:before{content:"\f079e"}.mdi-bus-electric:before{content:"\f191d"}.mdi-bus-marker:before{content:"\f1212"}.mdi-bus-multiple:before{content:"\f0f3f"}.mdi-bus-school:before{content:"\f079f"}.mdi-bus-side:before{content:"\f07a0"}.mdi-bus-sign:before{content:"\f1cc1"}.mdi-bus-stop:before{content:"\f1012"}.mdi-bus-stop-covered:before{content:"\f1013"}.mdi-bus-stop-uncovered:before{content:"\f1014"}.mdi-bus-wrench:before{content:"\f1cc2"}.mdi-butterfly:before{content:"\f1589"}.mdi-butterfly-outline:before{content:"\f158a"}.mdi-button-cursor:before{content:"\f1b4f"}.mdi-button-pointer:before{content:"\f1b50"}.mdi-cabin-a-frame:before{content:"\f188c"}.mdi-cable-data:before{content:"\f1394"}.mdi-cached:before{content:"\f00e8"}.mdi-cactus:before{content:"\f0db5"}.mdi-cake:before{content:"\f00e9"}.mdi-cake-layered:before{content:"\f00ea"}.mdi-cake-variant:before{content:"\f00eb"}.mdi-cake-variant-outline:before{content:"\f17f0"}.mdi-calculator:before{content:"\f00ec"}.mdi-calculator-variant:before{content:"\f0a9a"}.mdi-calculator-variant-outline:before{content:"\f15a6"}.mdi-calendar:before{content:"\f00ed"}.mdi-calendar-account:before{content:"\f0ed7"}.mdi-calendar-account-outline:before{content:"\f0ed8"}.mdi-calendar-alert:before{content:"\f0a31"}.mdi-calendar-alert-outline:before{content:"\f1b62"}.mdi-calendar-arrow-left:before{content:"\f1134"}.mdi-calendar-arrow-right:before{content:"\f1135"}.mdi-calendar-badge:before{content:"\f1b9d"}.mdi-calendar-badge-outline:before{content:"\f1b9e"}.mdi-calendar-blank:before{content:"\f00ee"}.mdi-calendar-blank-multiple:before{content:"\f1073"}.mdi-calendar-blank-outline:before{content:"\f0b66"}.mdi-calendar-check:before{content:"\f00ef"}.mdi-calendar-check-outline:before{content:"\f0c44"}.mdi-calendar-clock:before{content:"\f00f0"}.mdi-calendar-clock-outline:before{content:"\f16e1"}.mdi-calendar-collapse-horizontal:before{content:"\f189d"}.mdi-calendar-collapse-horizontal-outline:before{content:"\f1b63"}.mdi-calendar-cursor:before{content:"\f157b"}.mdi-calendar-cursor-outline:before{content:"\f1b64"}.mdi-calendar-edit:before{content:"\f08a7"}.mdi-calendar-edit-outline:before{content:"\f1b65"}.mdi-calendar-end:before{content:"\f166c"}.mdi-calendar-end-outline:before{content:"\f1b66"}.mdi-calendar-expand-horizontal:before{content:"\f189e"}.mdi-calendar-expand-horizontal-outline:before{content:"\f1b67"}.mdi-calendar-export:before{content:"\f0b24"}.mdi-calendar-export-outline:before{content:"\f1b68"}.mdi-calendar-filter:before{content:"\f1a32"}.mdi-calendar-filter-outline:before{content:"\f1a33"}.mdi-calendar-heart:before{content:"\f09d2"}.mdi-calendar-heart-outline:before{content:"\f1b69"}.mdi-calendar-import:before{content:"\f0b25"}.mdi-calendar-import-outline:before{content:"\f1b6a"}.mdi-calendar-lock:before{content:"\f1641"}.mdi-calendar-lock-open:before{content:"\f1b5b"}.mdi-calendar-lock-open-outline:before{content:"\f1b5c"}.mdi-calendar-lock-outline:before{content:"\f1642"}.mdi-calendar-minus:before{content:"\f0d5c"}.mdi-calendar-minus-outline:before{content:"\f1b6b"}.mdi-calendar-month:before{content:"\f0e17"}.mdi-calendar-month-outline:before{content:"\f0e18"}.mdi-calendar-multiple:before{content:"\f00f1"}.mdi-calendar-multiple-check:before{content:"\f00f2"}.mdi-calendar-multiselect:before{content:"\f0a32"}.mdi-calendar-multiselect-outline:before{content:"\f1b55"}.mdi-calendar-outline:before{content:"\f0b67"}.mdi-calendar-plus:before{content:"\f00f3"}.mdi-calendar-plus-outline:before{content:"\f1b6c"}.mdi-calendar-question:before{content:"\f0692"}.mdi-calendar-question-outline:before{content:"\f1b6d"}.mdi-calendar-range:before{content:"\f0679"}.mdi-calendar-range-outline:before{content:"\f0b68"}.mdi-calendar-refresh:before{content:"\f01e1"}.mdi-calendar-refresh-outline:before{content:"\f0203"}.mdi-calendar-remove:before{content:"\f00f4"}.mdi-calendar-remove-outline:before{content:"\f0c45"}.mdi-calendar-search:before{content:"\f094c"}.mdi-calendar-search-outline:before{content:"\f1b6e"}.mdi-calendar-star:before{content:"\f09d3"}.mdi-calendar-star-four-points:before{content:"\f1c1f"}.mdi-calendar-star-outline:before{content:"\f1b53"}.mdi-calendar-start:before{content:"\f166d"}.mdi-calendar-start-outline:before{content:"\f1b6f"}.mdi-calendar-sync:before{content:"\f0e8e"}.mdi-calendar-sync-outline:before{content:"\f0e8f"}.mdi-calendar-text:before{content:"\f00f5"}.mdi-calendar-text-outline:before{content:"\f0c46"}.mdi-calendar-today:before{content:"\f00f6"}.mdi-calendar-today-outline:before{content:"\f1a30"}.mdi-calendar-week:before{content:"\f0a33"}.mdi-calendar-week-begin:before{content:"\f0a34"}.mdi-calendar-week-begin-outline:before{content:"\f1a31"}.mdi-calendar-week-outline:before{content:"\f1a34"}.mdi-calendar-weekend:before{content:"\f0ed9"}.mdi-calendar-weekend-outline:before{content:"\f0eda"}.mdi-call-made:before{content:"\f00f7"}.mdi-call-merge:before{content:"\f00f8"}.mdi-call-missed:before{content:"\f00f9"}.mdi-call-received:before{content:"\f00fa"}.mdi-call-split:before{content:"\f00fb"}.mdi-camcorder:before{content:"\f00fc"}.mdi-camcorder-off:before{content:"\f00ff"}.mdi-camera:before{content:"\f0100"}.mdi-camera-account:before{content:"\f08cb"}.mdi-camera-burst:before{content:"\f0693"}.mdi-camera-control:before{content:"\f0b69"}.mdi-camera-document:before{content:"\f1871"}.mdi-camera-document-off:before{content:"\f1872"}.mdi-camera-enhance:before{content:"\f0101"}.mdi-camera-enhance-outline:before{content:"\f0b6a"}.mdi-camera-flip:before{content:"\f15d9"}.mdi-camera-flip-outline:before{content:"\f15da"}.mdi-camera-front:before{content:"\f0102"}.mdi-camera-front-variant:before{content:"\f0103"}.mdi-camera-gopro:before{content:"\f07a1"}.mdi-camera-image:before{content:"\f08cc"}.mdi-camera-iris:before{content:"\f0104"}.mdi-camera-lock:before{content:"\f1a14"}.mdi-camera-lock-open:before{content:"\f1c0d"}.mdi-camera-lock-open-outline:before{content:"\f1c0e"}.mdi-camera-lock-outline:before{content:"\f1a15"}.mdi-camera-marker:before{content:"\f19a7"}.mdi-camera-marker-outline:before{content:"\f19a8"}.mdi-camera-metering-center:before{content:"\f07a2"}.mdi-camera-metering-matrix:before{content:"\f07a3"}.mdi-camera-metering-partial:before{content:"\f07a4"}.mdi-camera-metering-spot:before{content:"\f07a5"}.mdi-camera-off:before{content:"\f05df"}.mdi-camera-off-outline:before{content:"\f19bf"}.mdi-camera-outline:before{content:"\f0d5d"}.mdi-camera-party-mode:before{content:"\f0105"}.mdi-camera-plus:before{content:"\f0edb"}.mdi-camera-plus-outline:before{content:"\f0edc"}.mdi-camera-rear:before{content:"\f0106"}.mdi-camera-rear-variant:before{content:"\f0107"}.mdi-camera-retake:before{content:"\f0e19"}.mdi-camera-retake-outline:before{content:"\f0e1a"}.mdi-camera-switch:before{content:"\f0108"}.mdi-camera-switch-outline:before{content:"\f084a"}.mdi-camera-timer:before{content:"\f0109"}.mdi-camera-wireless:before{content:"\f0db6"}.mdi-camera-wireless-outline:before{content:"\f0db7"}.mdi-campfire:before{content:"\f0edd"}.mdi-cancel:before{content:"\f073a"}.mdi-candelabra:before{content:"\f17d2"}.mdi-candelabra-fire:before{content:"\f17d3"}.mdi-candle:before{content:"\f05e2"}.mdi-candy:before{content:"\f1970"}.mdi-candy-off:before{content:"\f1971"}.mdi-candy-off-outline:before{content:"\f1972"}.mdi-candy-outline:before{content:"\f1973"}.mdi-candycane:before{content:"\f010a"}.mdi-cannabis:before{content:"\f07a6"}.mdi-cannabis-off:before{content:"\f166e"}.mdi-caps-lock:before{content:"\f0a9b"}.mdi-car:before{content:"\f010b"}.mdi-car-2-plus:before{content:"\f1015"}.mdi-car-3-plus:before{content:"\f1016"}.mdi-car-arrow-left:before{content:"\f13b2"}.mdi-car-arrow-right:before{content:"\f13b3"}.mdi-car-back:before{content:"\f0e1b"}.mdi-car-battery:before{content:"\f010c"}.mdi-car-brake-abs:before{content:"\f0c47"}.mdi-car-brake-alert:before{content:"\f0c48"}.mdi-car-brake-fluid-level:before{content:"\f1909"}.mdi-car-brake-hold:before{content:"\f0d5e"}.mdi-car-brake-low-pressure:before{content:"\f190a"}.mdi-car-brake-parking:before{content:"\f0d5f"}.mdi-car-brake-retarder:before{content:"\f1017"}.mdi-car-brake-temperature:before{content:"\f190b"}.mdi-car-brake-worn-linings:before{content:"\f190c"}.mdi-car-child-seat:before{content:"\f0fa3"}.mdi-car-clock:before{content:"\f1974"}.mdi-car-clutch:before{content:"\f1018"}.mdi-car-cog:before{content:"\f13cc"}.mdi-car-connected:before{content:"\f010d"}.mdi-car-convertible:before{content:"\f07a7"}.mdi-car-coolant-level:before{content:"\f1019"}.mdi-car-cruise-control:before{content:"\f0d60"}.mdi-car-defrost-front:before{content:"\f0d61"}.mdi-car-defrost-rear:before{content:"\f0d62"}.mdi-car-door:before{content:"\f0b6b"}.mdi-car-door-lock:before{content:"\f109d"}.mdi-car-door-lock-open:before{content:"\f1c81"}.mdi-car-electric:before{content:"\f0b6c"}.mdi-car-electric-outline:before{content:"\f15b5"}.mdi-car-emergency:before{content:"\f160f"}.mdi-car-esp:before{content:"\f0c49"}.mdi-car-estate:before{content:"\f07a8"}.mdi-car-hatchback:before{content:"\f07a9"}.mdi-car-info:before{content:"\f11be"}.mdi-car-key:before{content:"\f0b6d"}.mdi-car-lifted-pickup:before{content:"\f152d"}.mdi-car-light-alert:before{content:"\f190d"}.mdi-car-light-dimmed:before{content:"\f0c4a"}.mdi-car-light-fog:before{content:"\f0c4b"}.mdi-car-light-high:before{content:"\f0c4c"}.mdi-car-limousine:before{content:"\f08cd"}.mdi-car-multiple:before{content:"\f0b6e"}.mdi-car-off:before{content:"\f0e1c"}.mdi-car-outline:before{content:"\f14ed"}.mdi-car-parking-lights:before{content:"\f0d63"}.mdi-car-pickup:before{content:"\f07aa"}.mdi-car-search:before{content:"\f1b8d"}.mdi-car-search-outline:before{content:"\f1b8e"}.mdi-car-seat:before{content:"\f0fa4"}.mdi-car-seat-cooler:before{content:"\f0fa5"}.mdi-car-seat-heater:before{content:"\f0fa6"}.mdi-car-select:before{content:"\f1879"}.mdi-car-settings:before{content:"\f13cd"}.mdi-car-shift-pattern:before{content:"\f0f40"}.mdi-car-side:before{content:"\f07ab"}.mdi-car-speed-limiter:before{content:"\f190e"}.mdi-car-sports:before{content:"\f07ac"}.mdi-car-tire-alert:before{content:"\f0c4d"}.mdi-car-traction-control:before{content:"\f0d64"}.mdi-car-turbocharger:before{content:"\f101a"}.mdi-car-wash:before{content:"\f010e"}.mdi-car-windshield:before{content:"\f101b"}.mdi-car-windshield-outline:before{content:"\f101c"}.mdi-car-wireless:before{content:"\f1878"}.mdi-car-wrench:before{content:"\f1814"}.mdi-carabiner:before{content:"\f14c0"}.mdi-caravan:before{content:"\f07ad"}.mdi-card:before{content:"\f0b6f"}.mdi-card-account-details:before{content:"\f05d2"}.mdi-card-account-details-outline:before{content:"\f0dab"}.mdi-card-account-details-star:before{content:"\f02a3"}.mdi-card-account-details-star-outline:before{content:"\f06db"}.mdi-card-account-mail:before{content:"\f018e"}.mdi-card-account-mail-outline:before{content:"\f0e98"}.mdi-card-account-phone:before{content:"\f0e99"}.mdi-card-account-phone-outline:before{content:"\f0e9a"}.mdi-card-bulleted:before{content:"\f0b70"}.mdi-card-bulleted-off:before{content:"\f0b71"}.mdi-card-bulleted-off-outline:before{content:"\f0b72"}.mdi-card-bulleted-outline:before{content:"\f0b73"}.mdi-card-bulleted-settings:before{content:"\f0b74"}.mdi-card-bulleted-settings-outline:before{content:"\f0b75"}.mdi-card-minus:before{content:"\f1600"}.mdi-card-minus-outline:before{content:"\f1601"}.mdi-card-multiple:before{content:"\f17f1"}.mdi-card-multiple-outline:before{content:"\f17f2"}.mdi-card-off:before{content:"\f1602"}.mdi-card-off-outline:before{content:"\f1603"}.mdi-card-outline:before{content:"\f0b76"}.mdi-card-plus:before{content:"\f11ff"}.mdi-card-plus-outline:before{content:"\f1200"}.mdi-card-remove:before{content:"\f1604"}.mdi-card-remove-outline:before{content:"\f1605"}.mdi-card-search:before{content:"\f1074"}.mdi-card-search-outline:before{content:"\f1075"}.mdi-card-text:before{content:"\f0b77"}.mdi-card-text-outline:before{content:"\f0b78"}.mdi-cards:before{content:"\f0638"}.mdi-cards-club:before{content:"\f08ce"}.mdi-cards-club-outline:before{content:"\f189f"}.mdi-cards-diamond:before{content:"\f08cf"}.mdi-cards-diamond-outline:before{content:"\f101d"}.mdi-cards-heart:before{content:"\f08d0"}.mdi-cards-heart-outline:before{content:"\f18a0"}.mdi-cards-outline:before{content:"\f0639"}.mdi-cards-playing:before{content:"\f18a1"}.mdi-cards-playing-club:before{content:"\f18a2"}.mdi-cards-playing-club-multiple:before{content:"\f18a3"}.mdi-cards-playing-club-multiple-outline:before{content:"\f18a4"}.mdi-cards-playing-club-outline:before{content:"\f18a5"}.mdi-cards-playing-diamond:before{content:"\f18a6"}.mdi-cards-playing-diamond-multiple:before{content:"\f18a7"}.mdi-cards-playing-diamond-multiple-outline:before{content:"\f18a8"}.mdi-cards-playing-diamond-outline:before{content:"\f18a9"}.mdi-cards-playing-heart:before{content:"\f18aa"}.mdi-cards-playing-heart-multiple:before{content:"\f18ab"}.mdi-cards-playing-heart-multiple-outline:before{content:"\f18ac"}.mdi-cards-playing-heart-outline:before{content:"\f18ad"}.mdi-cards-playing-outline:before{content:"\f063a"}.mdi-cards-playing-spade:before{content:"\f18ae"}.mdi-cards-playing-spade-multiple:before{content:"\f18af"}.mdi-cards-playing-spade-multiple-outline:before{content:"\f18b0"}.mdi-cards-playing-spade-outline:before{content:"\f18b1"}.mdi-cards-spade:before{content:"\f08d1"}.mdi-cards-spade-outline:before{content:"\f18b2"}.mdi-cards-variant:before{content:"\f06c7"}.mdi-carrot:before{content:"\f010f"}.mdi-cart:before{content:"\f0110"}.mdi-cart-arrow-down:before{content:"\f0d66"}.mdi-cart-arrow-right:before{content:"\f0c4e"}.mdi-cart-arrow-up:before{content:"\f0d67"}.mdi-cart-check:before{content:"\f15ea"}.mdi-cart-heart:before{content:"\f18e0"}.mdi-cart-minus:before{content:"\f0d68"}.mdi-cart-off:before{content:"\f066b"}.mdi-cart-outline:before{content:"\f0111"}.mdi-cart-percent:before{content:"\f1bae"}.mdi-cart-plus:before{content:"\f0112"}.mdi-cart-remove:before{content:"\f0d69"}.mdi-cart-variant:before{content:"\f15eb"}.mdi-case-sensitive-alt:before{content:"\f0113"}.mdi-cash:before{content:"\f0114"}.mdi-cash-100:before{content:"\f0115"}.mdi-cash-check:before{content:"\f14ee"}.mdi-cash-clock:before{content:"\f1a91"}.mdi-cash-edit:before{content:"\f1cab"}.mdi-cash-fast:before{content:"\f185c"}.mdi-cash-lock:before{content:"\f14ea"}.mdi-cash-lock-open:before{content:"\f14eb"}.mdi-cash-marker:before{content:"\f0db8"}.mdi-cash-minus:before{content:"\f1260"}.mdi-cash-multiple:before{content:"\f0116"}.mdi-cash-off:before{content:"\f1c79"}.mdi-cash-plus:before{content:"\f1261"}.mdi-cash-refund:before{content:"\f0a9c"}.mdi-cash-register:before{content:"\f0cf4"}.mdi-cash-remove:before{content:"\f1262"}.mdi-cash-sync:before{content:"\f1a92"}.mdi-cassette:before{content:"\f09d4"}.mdi-cast:before{content:"\f0118"}.mdi-cast-audio:before{content:"\f101e"}.mdi-cast-audio-variant:before{content:"\f1749"}.mdi-cast-connected:before{content:"\f0119"}.mdi-cast-education:before{content:"\f0e1d"}.mdi-cast-off:before{content:"\f078a"}.mdi-cast-variant:before{content:"\f001f"}.mdi-castle:before{content:"\f011a"}.mdi-cat:before{content:"\f011b"}.mdi-cctv:before{content:"\f07ae"}.mdi-cctv-off:before{content:"\f185f"}.mdi-ceiling-fan:before{content:"\f1797"}.mdi-ceiling-fan-light:before{content:"\f1798"}.mdi-ceiling-light:before{content:"\f0769"}.mdi-ceiling-light-multiple:before{content:"\f18dd"}.mdi-ceiling-light-multiple-outline:before{content:"\f18de"}.mdi-ceiling-light-outline:before{content:"\f17c7"}.mdi-cellphone:before{content:"\f011c"}.mdi-cellphone-arrow-down:before{content:"\f09d5"}.mdi-cellphone-arrow-down-variant:before{content:"\f19c5"}.mdi-cellphone-basic:before{content:"\f011e"}.mdi-cellphone-charging:before{content:"\f1397"}.mdi-cellphone-check:before{content:"\f17fd"}.mdi-cellphone-cog:before{content:"\f0951"}.mdi-cellphone-dock:before{content:"\f011f"}.mdi-cellphone-information:before{content:"\f0f41"}.mdi-cellphone-key:before{content:"\f094e"}.mdi-cellphone-link:before{content:"\f0121"}.mdi-cellphone-link-off:before{content:"\f0122"}.mdi-cellphone-lock:before{content:"\f094f"}.mdi-cellphone-marker:before{content:"\f183a"}.mdi-cellphone-message:before{content:"\f08d3"}.mdi-cellphone-message-off:before{content:"\f10d2"}.mdi-cellphone-nfc:before{content:"\f0e90"}.mdi-cellphone-nfc-off:before{content:"\f12d8"}.mdi-cellphone-off:before{content:"\f0950"}.mdi-cellphone-play:before{content:"\f101f"}.mdi-cellphone-remove:before{content:"\f094d"}.mdi-cellphone-screenshot:before{content:"\f0a35"}.mdi-cellphone-settings:before{content:"\f0123"}.mdi-cellphone-sound:before{content:"\f0952"}.mdi-cellphone-text:before{content:"\f08d2"}.mdi-cellphone-wireless:before{content:"\f0815"}.mdi-centos:before{content:"\f111a"}.mdi-certificate:before{content:"\f0124"}.mdi-certificate-outline:before{content:"\f1188"}.mdi-chair-rolling:before{content:"\f0f48"}.mdi-chair-school:before{content:"\f0125"}.mdi-chandelier:before{content:"\f1793"}.mdi-charity:before{content:"\f0c4f"}.mdi-charity-search:before{content:"\f1c82"}.mdi-chart-arc:before{content:"\f0126"}.mdi-chart-areaspline:before{content:"\f0127"}.mdi-chart-areaspline-variant:before{content:"\f0e91"}.mdi-chart-bar:before{content:"\f0128"}.mdi-chart-bar-stacked:before{content:"\f076a"}.mdi-chart-bell-curve:before{content:"\f0c50"}.mdi-chart-bell-curve-cumulative:before{content:"\f0fa7"}.mdi-chart-box:before{content:"\f154d"}.mdi-chart-box-outline:before{content:"\f154e"}.mdi-chart-box-plus-outline:before{content:"\f154f"}.mdi-chart-bubble:before{content:"\f05e3"}.mdi-chart-donut:before{content:"\f07af"}.mdi-chart-donut-variant:before{content:"\f07b0"}.mdi-chart-gantt:before{content:"\f066c"}.mdi-chart-histogram:before{content:"\f0129"}.mdi-chart-line:before{content:"\f012a"}.mdi-chart-line-stacked:before{content:"\f076b"}.mdi-chart-line-variant:before{content:"\f07b1"}.mdi-chart-multiline:before{content:"\f08d4"}.mdi-chart-multiple:before{content:"\f1213"}.mdi-chart-pie:before{content:"\f012b"}.mdi-chart-pie-outline:before{content:"\f1bdf"}.mdi-chart-ppf:before{content:"\f1380"}.mdi-chart-sankey:before{content:"\f11df"}.mdi-chart-sankey-variant:before{content:"\f11e0"}.mdi-chart-scatter-plot:before{content:"\f0e92"}.mdi-chart-scatter-plot-hexbin:before{content:"\f066d"}.mdi-chart-timeline:before{content:"\f066e"}.mdi-chart-timeline-variant:before{content:"\f0e93"}.mdi-chart-timeline-variant-shimmer:before{content:"\f15b6"}.mdi-chart-tree:before{content:"\f0e94"}.mdi-chart-waterfall:before{content:"\f1918"}.mdi-chat:before{content:"\f0b79"}.mdi-chat-alert:before{content:"\f0b7a"}.mdi-chat-alert-outline:before{content:"\f12c9"}.mdi-chat-minus:before{content:"\f1410"}.mdi-chat-minus-outline:before{content:"\f1413"}.mdi-chat-outline:before{content:"\f0ede"}.mdi-chat-plus:before{content:"\f140f"}.mdi-chat-plus-outline:before{content:"\f1412"}.mdi-chat-processing:before{content:"\f0b7b"}.mdi-chat-processing-outline:before{content:"\f12ca"}.mdi-chat-question:before{content:"\f1738"}.mdi-chat-question-outline:before{content:"\f1739"}.mdi-chat-remove:before{content:"\f1411"}.mdi-chat-remove-outline:before{content:"\f1414"}.mdi-chat-sleep:before{content:"\f12d1"}.mdi-chat-sleep-outline:before{content:"\f12d2"}.mdi-check:before{content:"\f012c"}.mdi-check-all:before{content:"\f012d"}.mdi-check-bold:before{content:"\f0e1e"}.mdi-check-circle:before{content:"\f05e0"}.mdi-check-circle-outline:before{content:"\f05e1"}.mdi-check-decagram:before{content:"\f0791"}.mdi-check-decagram-outline:before{content:"\f1740"}.mdi-check-network:before{content:"\f0c53"}.mdi-check-network-outline:before{content:"\f0c54"}.mdi-check-outline:before{content:"\f0855"}.mdi-check-underline:before{content:"\f0e1f"}.mdi-check-underline-circle:before{content:"\f0e20"}.mdi-check-underline-circle-outline:before{content:"\f0e21"}.mdi-checkbook:before{content:"\f0a9d"}.mdi-checkbook-arrow-left:before{content:"\f1c1d"}.mdi-checkbook-arrow-right:before{content:"\f1c1e"}.mdi-checkbox-blank:before{content:"\f012e"}.mdi-checkbox-blank-badge:before{content:"\f1176"}.mdi-checkbox-blank-badge-outline:before{content:"\f0117"}.mdi-checkbox-blank-circle:before{content:"\f012f"}.mdi-checkbox-blank-circle-outline:before{content:"\f0130"}.mdi-checkbox-blank-off:before{content:"\f12ec"}.mdi-checkbox-blank-off-outline:before{content:"\f12ed"}.mdi-checkbox-blank-outline:before{content:"\f0131"}.mdi-checkbox-intermediate:before{content:"\f0856"}.mdi-checkbox-intermediate-variant:before{content:"\f1b54"}.mdi-checkbox-marked:before{content:"\f0132"}.mdi-checkbox-marked-circle:before{content:"\f0133"}.mdi-checkbox-marked-circle-auto-outline:before{content:"\f1c26"}.mdi-checkbox-marked-circle-minus-outline:before{content:"\f1c27"}.mdi-checkbox-marked-circle-outline:before{content:"\f0134"}.mdi-checkbox-marked-circle-plus-outline:before{content:"\f1927"}.mdi-checkbox-marked-outline:before{content:"\f0135"}.mdi-checkbox-multiple-blank:before{content:"\f0136"}.mdi-checkbox-multiple-blank-circle:before{content:"\f063b"}.mdi-checkbox-multiple-blank-circle-outline:before{content:"\f063c"}.mdi-checkbox-multiple-blank-outline:before{content:"\f0137"}.mdi-checkbox-multiple-marked:before{content:"\f0138"}.mdi-checkbox-multiple-marked-circle:before{content:"\f063d"}.mdi-checkbox-multiple-marked-circle-outline:before{content:"\f063e"}.mdi-checkbox-multiple-marked-outline:before{content:"\f0139"}.mdi-checkbox-multiple-outline:before{content:"\f0c51"}.mdi-checkbox-outline:before{content:"\f0c52"}.mdi-checkerboard:before{content:"\f013a"}.mdi-checkerboard-minus:before{content:"\f1202"}.mdi-checkerboard-plus:before{content:"\f1201"}.mdi-checkerboard-remove:before{content:"\f1203"}.mdi-cheese:before{content:"\f12b9"}.mdi-cheese-off:before{content:"\f13ee"}.mdi-chef-hat:before{content:"\f0b7c"}.mdi-chemical-weapon:before{content:"\f013b"}.mdi-chess-bishop:before{content:"\f085c"}.mdi-chess-king:before{content:"\f0857"}.mdi-chess-knight:before{content:"\f0858"}.mdi-chess-pawn:before{content:"\f0859"}.mdi-chess-queen:before{content:"\f085a"}.mdi-chess-rook:before{content:"\f085b"}.mdi-chevron-double-down:before{content:"\f013c"}.mdi-chevron-double-left:before{content:"\f013d"}.mdi-chevron-double-right:before{content:"\f013e"}.mdi-chevron-double-up:before{content:"\f013f"}.mdi-chevron-down:before{content:"\f0140"}.mdi-chevron-down-box:before{content:"\f09d6"}.mdi-chevron-down-box-outline:before{content:"\f09d7"}.mdi-chevron-down-circle:before{content:"\f0b26"}.mdi-chevron-down-circle-outline:before{content:"\f0b27"}.mdi-chevron-left:before{content:"\f0141"}.mdi-chevron-left-box:before{content:"\f09d8"}.mdi-chevron-left-box-outline:before{content:"\f09d9"}.mdi-chevron-left-circle:before{content:"\f0b28"}.mdi-chevron-left-circle-outline:before{content:"\f0b29"}.mdi-chevron-right:before{content:"\f0142"}.mdi-chevron-right-box:before{content:"\f09da"}.mdi-chevron-right-box-outline:before{content:"\f09db"}.mdi-chevron-right-circle:before{content:"\f0b2a"}.mdi-chevron-right-circle-outline:before{content:"\f0b2b"}.mdi-chevron-triple-down:before{content:"\f0db9"}.mdi-chevron-triple-left:before{content:"\f0dba"}.mdi-chevron-triple-right:before{content:"\f0dbb"}.mdi-chevron-triple-up:before{content:"\f0dbc"}.mdi-chevron-up:before{content:"\f0143"}.mdi-chevron-up-box:before{content:"\f09dc"}.mdi-chevron-up-box-outline:before{content:"\f09dd"}.mdi-chevron-up-circle:before{content:"\f0b2c"}.mdi-chevron-up-circle-outline:before{content:"\f0b2d"}.mdi-chili-alert:before{content:"\f17ea"}.mdi-chili-alert-outline:before{content:"\f17eb"}.mdi-chili-hot:before{content:"\f07b2"}.mdi-chili-hot-outline:before{content:"\f17ec"}.mdi-chili-medium:before{content:"\f07b3"}.mdi-chili-medium-outline:before{content:"\f17ed"}.mdi-chili-mild:before{content:"\f07b4"}.mdi-chili-mild-outline:before{content:"\f17ee"}.mdi-chili-off:before{content:"\f1467"}.mdi-chili-off-outline:before{content:"\f17ef"}.mdi-chip:before{content:"\f061a"}.mdi-church:before{content:"\f0144"}.mdi-church-outline:before{content:"\f1b02"}.mdi-cigar:before{content:"\f1189"}.mdi-cigar-off:before{content:"\f141b"}.mdi-circle:before{content:"\f0765"}.mdi-circle-box:before{content:"\f15dc"}.mdi-circle-box-outline:before{content:"\f15dd"}.mdi-circle-double:before{content:"\f0e95"}.mdi-circle-edit-outline:before{content:"\f08d5"}.mdi-circle-expand:before{content:"\f0e96"}.mdi-circle-half:before{content:"\f1395"}.mdi-circle-half-full:before{content:"\f1396"}.mdi-circle-medium:before{content:"\f09de"}.mdi-circle-multiple:before{content:"\f0b38"}.mdi-circle-multiple-outline:before{content:"\f0695"}.mdi-circle-off-outline:before{content:"\f10d3"}.mdi-circle-opacity:before{content:"\f1853"}.mdi-circle-outline:before{content:"\f0766"}.mdi-circle-slice-1:before{content:"\f0a9e"}.mdi-circle-slice-2:before{content:"\f0a9f"}.mdi-circle-slice-3:before{content:"\f0aa0"}.mdi-circle-slice-4:before{content:"\f0aa1"}.mdi-circle-slice-5:before{content:"\f0aa2"}.mdi-circle-slice-6:before{content:"\f0aa3"}.mdi-circle-slice-7:before{content:"\f0aa4"}.mdi-circle-slice-8:before{content:"\f0aa5"}.mdi-circle-small:before{content:"\f09df"}.mdi-circular-saw:before{content:"\f0e22"}.mdi-city:before{content:"\f0146"}.mdi-city-switch:before{content:"\f1c28"}.mdi-city-variant:before{content:"\f0a36"}.mdi-city-variant-outline:before{content:"\f0a37"}.mdi-clipboard:before{content:"\f0147"}.mdi-clipboard-account:before{content:"\f0148"}.mdi-clipboard-account-outline:before{content:"\f0c55"}.mdi-clipboard-alert:before{content:"\f0149"}.mdi-clipboard-alert-outline:before{content:"\f0cf7"}.mdi-clipboard-arrow-down:before{content:"\f014a"}.mdi-clipboard-arrow-down-outline:before{content:"\f0c56"}.mdi-clipboard-arrow-left:before{content:"\f014b"}.mdi-clipboard-arrow-left-outline:before{content:"\f0cf8"}.mdi-clipboard-arrow-right:before{content:"\f0cf9"}.mdi-clipboard-arrow-right-outline:before{content:"\f0cfa"}.mdi-clipboard-arrow-up:before{content:"\f0c57"}.mdi-clipboard-arrow-up-outline:before{content:"\f0c58"}.mdi-clipboard-check:before{content:"\f014e"}.mdi-clipboard-check-multiple:before{content:"\f1263"}.mdi-clipboard-check-multiple-outline:before{content:"\f1264"}.mdi-clipboard-check-outline:before{content:"\f08a8"}.mdi-clipboard-clock:before{content:"\f16e2"}.mdi-clipboard-clock-outline:before{content:"\f16e3"}.mdi-clipboard-edit:before{content:"\f14e5"}.mdi-clipboard-edit-outline:before{content:"\f14e6"}.mdi-clipboard-file:before{content:"\f1265"}.mdi-clipboard-file-outline:before{content:"\f1266"}.mdi-clipboard-flow:before{content:"\f06c8"}.mdi-clipboard-flow-outline:before{content:"\f1117"}.mdi-clipboard-list:before{content:"\f10d4"}.mdi-clipboard-list-outline:before{content:"\f10d5"}.mdi-clipboard-minus:before{content:"\f1618"}.mdi-clipboard-minus-outline:before{content:"\f1619"}.mdi-clipboard-multiple:before{content:"\f1267"}.mdi-clipboard-multiple-outline:before{content:"\f1268"}.mdi-clipboard-off:before{content:"\f161a"}.mdi-clipboard-off-outline:before{content:"\f161b"}.mdi-clipboard-outline:before{content:"\f014c"}.mdi-clipboard-play:before{content:"\f0c59"}.mdi-clipboard-play-multiple:before{content:"\f1269"}.mdi-clipboard-play-multiple-outline:before{content:"\f126a"}.mdi-clipboard-play-outline:before{content:"\f0c5a"}.mdi-clipboard-plus:before{content:"\f0751"}.mdi-clipboard-plus-outline:before{content:"\f131f"}.mdi-clipboard-pulse:before{content:"\f085d"}.mdi-clipboard-pulse-outline:before{content:"\f085e"}.mdi-clipboard-remove:before{content:"\f161c"}.mdi-clipboard-remove-outline:before{content:"\f161d"}.mdi-clipboard-search:before{content:"\f161e"}.mdi-clipboard-search-outline:before{content:"\f161f"}.mdi-clipboard-text:before{content:"\f014d"}.mdi-clipboard-text-clock:before{content:"\f18f9"}.mdi-clipboard-text-clock-outline:before{content:"\f18fa"}.mdi-clipboard-text-multiple:before{content:"\f126b"}.mdi-clipboard-text-multiple-outline:before{content:"\f126c"}.mdi-clipboard-text-off:before{content:"\f1620"}.mdi-clipboard-text-off-outline:before{content:"\f1621"}.mdi-clipboard-text-outline:before{content:"\f0a38"}.mdi-clipboard-text-play:before{content:"\f0c5b"}.mdi-clipboard-text-play-outline:before{content:"\f0c5c"}.mdi-clipboard-text-search:before{content:"\f1622"}.mdi-clipboard-text-search-outline:before{content:"\f1623"}.mdi-clippy:before{content:"\f014f"}.mdi-clock:before{content:"\f0954"}.mdi-clock-alert:before{content:"\f0955"}.mdi-clock-alert-outline:before{content:"\f05ce"}.mdi-clock-check:before{content:"\f0fa8"}.mdi-clock-check-outline:before{content:"\f0fa9"}.mdi-clock-digital:before{content:"\f0e97"}.mdi-clock-edit:before{content:"\f19ba"}.mdi-clock-edit-outline:before{content:"\f19bb"}.mdi-clock-end:before{content:"\f0151"}.mdi-clock-fast:before{content:"\f0152"}.mdi-clock-in:before{content:"\f0153"}.mdi-clock-minus:before{content:"\f1863"}.mdi-clock-minus-outline:before{content:"\f1864"}.mdi-clock-out:before{content:"\f0154"}.mdi-clock-outline:before{content:"\f0150"}.mdi-clock-plus:before{content:"\f1861"}.mdi-clock-plus-outline:before{content:"\f1862"}.mdi-clock-remove:before{content:"\f1865"}.mdi-clock-remove-outline:before{content:"\f1866"}.mdi-clock-star-four-points:before{content:"\f1c29"}.mdi-clock-star-four-points-outline:before{content:"\f1c2a"}.mdi-clock-start:before{content:"\f0155"}.mdi-clock-time-eight:before{content:"\f1446"}.mdi-clock-time-eight-outline:before{content:"\f1452"}.mdi-clock-time-eleven:before{content:"\f1449"}.mdi-clock-time-eleven-outline:before{content:"\f1455"}.mdi-clock-time-five:before{content:"\f1443"}.mdi-clock-time-five-outline:before{content:"\f144f"}.mdi-clock-time-four:before{content:"\f1442"}.mdi-clock-time-four-outline:before{content:"\f144e"}.mdi-clock-time-nine:before{content:"\f1447"}.mdi-clock-time-nine-outline:before{content:"\f1453"}.mdi-clock-time-one:before{content:"\f143f"}.mdi-clock-time-one-outline:before{content:"\f144b"}.mdi-clock-time-seven:before{content:"\f1445"}.mdi-clock-time-seven-outline:before{content:"\f1451"}.mdi-clock-time-six:before{content:"\f1444"}.mdi-clock-time-six-outline:before{content:"\f1450"}.mdi-clock-time-ten:before{content:"\f1448"}.mdi-clock-time-ten-outline:before{content:"\f1454"}.mdi-clock-time-three:before{content:"\f1441"}.mdi-clock-time-three-outline:before{content:"\f144d"}.mdi-clock-time-twelve:before{content:"\f144a"}.mdi-clock-time-twelve-outline:before{content:"\f1456"}.mdi-clock-time-two:before{content:"\f1440"}.mdi-clock-time-two-outline:before{content:"\f144c"}.mdi-close:before{content:"\f0156"}.mdi-close-box:before{content:"\f0157"}.mdi-close-box-multiple:before{content:"\f0c5d"}.mdi-close-box-multiple-outline:before{content:"\f0c5e"}.mdi-close-box-outline:before{content:"\f0158"}.mdi-close-circle:before{content:"\f0159"}.mdi-close-circle-multiple:before{content:"\f062a"}.mdi-close-circle-multiple-outline:before{content:"\f0883"}.mdi-close-circle-outline:before{content:"\f015a"}.mdi-close-network:before{content:"\f015b"}.mdi-close-network-outline:before{content:"\f0c5f"}.mdi-close-octagon:before{content:"\f015c"}.mdi-close-octagon-outline:before{content:"\f015d"}.mdi-close-outline:before{content:"\f06c9"}.mdi-close-thick:before{content:"\f1398"}.mdi-closed-caption:before{content:"\f015e"}.mdi-closed-caption-outline:before{content:"\f0dbd"}.mdi-cloud:before{content:"\f015f"}.mdi-cloud-alert:before{content:"\f09e0"}.mdi-cloud-alert-outline:before{content:"\f1be0"}.mdi-cloud-arrow-down:before{content:"\f1be1"}.mdi-cloud-arrow-down-outline:before{content:"\f1be2"}.mdi-cloud-arrow-left:before{content:"\f1be3"}.mdi-cloud-arrow-left-outline:before{content:"\f1be4"}.mdi-cloud-arrow-right:before{content:"\f1be5"}.mdi-cloud-arrow-right-outline:before{content:"\f1be6"}.mdi-cloud-arrow-up:before{content:"\f1be7"}.mdi-cloud-arrow-up-outline:before{content:"\f1be8"}.mdi-cloud-braces:before{content:"\f07b5"}.mdi-cloud-cancel:before{content:"\f1be9"}.mdi-cloud-cancel-outline:before{content:"\f1bea"}.mdi-cloud-check:before{content:"\f1beb"}.mdi-cloud-check-outline:before{content:"\f1bec"}.mdi-cloud-check-variant:before{content:"\f0160"}.mdi-cloud-check-variant-outline:before{content:"\f12cc"}.mdi-cloud-circle:before{content:"\f0161"}.mdi-cloud-circle-outline:before{content:"\f1bed"}.mdi-cloud-clock:before{content:"\f1bee"}.mdi-cloud-clock-outline:before{content:"\f1bef"}.mdi-cloud-cog:before{content:"\f1bf0"}.mdi-cloud-cog-outline:before{content:"\f1bf1"}.mdi-cloud-download:before{content:"\f0162"}.mdi-cloud-download-outline:before{content:"\f0b7d"}.mdi-cloud-key:before{content:"\f1ca1"}.mdi-cloud-key-outline:before{content:"\f1ca2"}.mdi-cloud-lock:before{content:"\f11f1"}.mdi-cloud-lock-open:before{content:"\f1bf2"}.mdi-cloud-lock-open-outline:before{content:"\f1bf3"}.mdi-cloud-lock-outline:before{content:"\f11f2"}.mdi-cloud-minus:before{content:"\f1bf4"}.mdi-cloud-minus-outline:before{content:"\f1bf5"}.mdi-cloud-off:before{content:"\f1bf6"}.mdi-cloud-off-outline:before{content:"\f0164"}.mdi-cloud-outline:before{content:"\f0163"}.mdi-cloud-percent:before{content:"\f1a35"}.mdi-cloud-percent-outline:before{content:"\f1a36"}.mdi-cloud-plus:before{content:"\f1bf7"}.mdi-cloud-plus-outline:before{content:"\f1bf8"}.mdi-cloud-print:before{content:"\f0165"}.mdi-cloud-print-outline:before{content:"\f0166"}.mdi-cloud-question:before{content:"\f0a39"}.mdi-cloud-question-outline:before{content:"\f1bf9"}.mdi-cloud-refresh:before{content:"\f1bfa"}.mdi-cloud-refresh-outline:before{content:"\f1bfb"}.mdi-cloud-refresh-variant:before{content:"\f052a"}.mdi-cloud-refresh-variant-outline:before{content:"\f1bfc"}.mdi-cloud-remove:before{content:"\f1bfd"}.mdi-cloud-remove-outline:before{content:"\f1bfe"}.mdi-cloud-search:before{content:"\f0956"}.mdi-cloud-search-outline:before{content:"\f0957"}.mdi-cloud-sync:before{content:"\f063f"}.mdi-cloud-sync-outline:before{content:"\f12d6"}.mdi-cloud-tags:before{content:"\f07b6"}.mdi-cloud-upload:before{content:"\f0167"}.mdi-cloud-upload-outline:before{content:"\f0b7e"}.mdi-clouds:before{content:"\f1b95"}.mdi-clover:before{content:"\f0816"}.mdi-clover-outline:before{content:"\f1c62"}.mdi-coach-lamp:before{content:"\f1020"}.mdi-coach-lamp-variant:before{content:"\f1a37"}.mdi-coat-rack:before{content:"\f109e"}.mdi-code-array:before{content:"\f0168"}.mdi-code-block-braces:before{content:"\f1c83"}.mdi-code-block-brackets:before{content:"\f1c84"}.mdi-code-block-parentheses:before{content:"\f1c85"}.mdi-code-block-tags:before{content:"\f1c86"}.mdi-code-braces:before{content:"\f0169"}.mdi-code-braces-box:before{content:"\f10d6"}.mdi-code-brackets:before{content:"\f016a"}.mdi-code-equal:before{content:"\f016b"}.mdi-code-greater-than:before{content:"\f016c"}.mdi-code-greater-than-or-equal:before{content:"\f016d"}.mdi-code-json:before{content:"\f0626"}.mdi-code-less-than:before{content:"\f016e"}.mdi-code-less-than-or-equal:before{content:"\f016f"}.mdi-code-not-equal:before{content:"\f0170"}.mdi-code-not-equal-variant:before{content:"\f0171"}.mdi-code-parentheses:before{content:"\f0172"}.mdi-code-parentheses-box:before{content:"\f10d7"}.mdi-code-string:before{content:"\f0173"}.mdi-code-tags:before{content:"\f0174"}.mdi-code-tags-check:before{content:"\f0694"}.mdi-codepen:before{content:"\f0175"}.mdi-coffee:before{content:"\f0176"}.mdi-coffee-maker:before{content:"\f109f"}.mdi-coffee-maker-check:before{content:"\f1931"}.mdi-coffee-maker-check-outline:before{content:"\f1932"}.mdi-coffee-maker-outline:before{content:"\f181b"}.mdi-coffee-off:before{content:"\f0faa"}.mdi-coffee-off-outline:before{content:"\f0fab"}.mdi-coffee-outline:before{content:"\f06ca"}.mdi-coffee-to-go:before{content:"\f0177"}.mdi-coffee-to-go-outline:before{content:"\f130e"}.mdi-coffin:before{content:"\f0b7f"}.mdi-cog:before{content:"\f0493"}.mdi-cog-box:before{content:"\f0494"}.mdi-cog-clockwise:before{content:"\f11dd"}.mdi-cog-counterclockwise:before{content:"\f11de"}.mdi-cog-off:before{content:"\f13ce"}.mdi-cog-off-outline:before{content:"\f13cf"}.mdi-cog-outline:before{content:"\f08bb"}.mdi-cog-pause:before{content:"\f1933"}.mdi-cog-pause-outline:before{content:"\f1934"}.mdi-cog-play:before{content:"\f1935"}.mdi-cog-play-outline:before{content:"\f1936"}.mdi-cog-refresh:before{content:"\f145e"}.mdi-cog-refresh-outline:before{content:"\f145f"}.mdi-cog-stop:before{content:"\f1937"}.mdi-cog-stop-outline:before{content:"\f1938"}.mdi-cog-sync:before{content:"\f1460"}.mdi-cog-sync-outline:before{content:"\f1461"}.mdi-cog-transfer:before{content:"\f105b"}.mdi-cog-transfer-outline:before{content:"\f105c"}.mdi-cogs:before{content:"\f08d6"}.mdi-collage:before{content:"\f0640"}.mdi-collapse-all:before{content:"\f0aa6"}.mdi-collapse-all-outline:before{content:"\f0aa7"}.mdi-color-helper:before{content:"\f0179"}.mdi-comma:before{content:"\f0e23"}.mdi-comma-box:before{content:"\f0e2b"}.mdi-comma-box-outline:before{content:"\f0e24"}.mdi-comma-circle:before{content:"\f0e25"}.mdi-comma-circle-outline:before{content:"\f0e26"}.mdi-comment:before{content:"\f017a"}.mdi-comment-account:before{content:"\f017b"}.mdi-comment-account-outline:before{content:"\f017c"}.mdi-comment-alert:before{content:"\f017d"}.mdi-comment-alert-outline:before{content:"\f017e"}.mdi-comment-arrow-left:before{content:"\f09e1"}.mdi-comment-arrow-left-outline:before{content:"\f09e2"}.mdi-comment-arrow-right:before{content:"\f09e3"}.mdi-comment-arrow-right-outline:before{content:"\f09e4"}.mdi-comment-bookmark:before{content:"\f15ae"}.mdi-comment-bookmark-outline:before{content:"\f15af"}.mdi-comment-check:before{content:"\f017f"}.mdi-comment-check-outline:before{content:"\f0180"}.mdi-comment-edit:before{content:"\f11bf"}.mdi-comment-edit-outline:before{content:"\f12c4"}.mdi-comment-eye:before{content:"\f0a3a"}.mdi-comment-eye-outline:before{content:"\f0a3b"}.mdi-comment-flash:before{content:"\f15b0"}.mdi-comment-flash-outline:before{content:"\f15b1"}.mdi-comment-minus:before{content:"\f15df"}.mdi-comment-minus-outline:before{content:"\f15e0"}.mdi-comment-multiple:before{content:"\f085f"}.mdi-comment-multiple-outline:before{content:"\f0181"}.mdi-comment-off:before{content:"\f15e1"}.mdi-comment-off-outline:before{content:"\f15e2"}.mdi-comment-outline:before{content:"\f0182"}.mdi-comment-plus:before{content:"\f09e5"}.mdi-comment-plus-outline:before{content:"\f0183"}.mdi-comment-processing:before{content:"\f0184"}.mdi-comment-processing-outline:before{content:"\f0185"}.mdi-comment-question:before{content:"\f0817"}.mdi-comment-question-outline:before{content:"\f0186"}.mdi-comment-quote:before{content:"\f1021"}.mdi-comment-quote-outline:before{content:"\f1022"}.mdi-comment-remove:before{content:"\f05de"}.mdi-comment-remove-outline:before{content:"\f0187"}.mdi-comment-search:before{content:"\f0a3c"}.mdi-comment-search-outline:before{content:"\f0a3d"}.mdi-comment-text:before{content:"\f0188"}.mdi-comment-text-multiple:before{content:"\f0860"}.mdi-comment-text-multiple-outline:before{content:"\f0861"}.mdi-comment-text-outline:before{content:"\f0189"}.mdi-compare:before{content:"\f018a"}.mdi-compare-horizontal:before{content:"\f1492"}.mdi-compare-remove:before{content:"\f18b3"}.mdi-compare-vertical:before{content:"\f1493"}.mdi-compass:before{content:"\f018b"}.mdi-compass-off:before{content:"\f0b80"}.mdi-compass-off-outline:before{content:"\f0b81"}.mdi-compass-outline:before{content:"\f018c"}.mdi-compass-rose:before{content:"\f1382"}.mdi-compost:before{content:"\f1a38"}.mdi-cone:before{content:"\f194c"}.mdi-cone-off:before{content:"\f194d"}.mdi-connection:before{content:"\f1616"}.mdi-console:before{content:"\f018d"}.mdi-console-line:before{content:"\f07b7"}.mdi-console-network:before{content:"\f08a9"}.mdi-console-network-outline:before{content:"\f0c60"}.mdi-consolidate:before{content:"\f10d8"}.mdi-contactless-payment:before{content:"\f0d6a"}.mdi-contactless-payment-circle:before{content:"\f0321"}.mdi-contactless-payment-circle-outline:before{content:"\f0408"}.mdi-contacts:before{content:"\f06cb"}.mdi-contacts-outline:before{content:"\f05b8"}.mdi-contain:before{content:"\f0a3e"}.mdi-contain-end:before{content:"\f0a3f"}.mdi-contain-start:before{content:"\f0a40"}.mdi-content-copy:before{content:"\f018f"}.mdi-content-cut:before{content:"\f0190"}.mdi-content-duplicate:before{content:"\f0191"}.mdi-content-paste:before{content:"\f0192"}.mdi-content-save:before{content:"\f0193"}.mdi-content-save-alert:before{content:"\f0f42"}.mdi-content-save-alert-outline:before{content:"\f0f43"}.mdi-content-save-all:before{content:"\f0194"}.mdi-content-save-all-outline:before{content:"\f0f44"}.mdi-content-save-check:before{content:"\f18ea"}.mdi-content-save-check-outline:before{content:"\f18eb"}.mdi-content-save-cog:before{content:"\f145b"}.mdi-content-save-cog-outline:before{content:"\f145c"}.mdi-content-save-edit:before{content:"\f0cfb"}.mdi-content-save-edit-outline:before{content:"\f0cfc"}.mdi-content-save-minus:before{content:"\f1b43"}.mdi-content-save-minus-outline:before{content:"\f1b44"}.mdi-content-save-move:before{content:"\f0e27"}.mdi-content-save-move-outline:before{content:"\f0e28"}.mdi-content-save-off:before{content:"\f1643"}.mdi-content-save-off-outline:before{content:"\f1644"}.mdi-content-save-outline:before{content:"\f0818"}.mdi-content-save-plus:before{content:"\f1b41"}.mdi-content-save-plus-outline:before{content:"\f1b42"}.mdi-content-save-settings:before{content:"\f061b"}.mdi-content-save-settings-outline:before{content:"\f0b2e"}.mdi-contrast:before{content:"\f0195"}.mdi-contrast-box:before{content:"\f0196"}.mdi-contrast-circle:before{content:"\f0197"}.mdi-controller:before{content:"\f02b4"}.mdi-controller-classic:before{content:"\f0b82"}.mdi-controller-classic-outline:before{content:"\f0b83"}.mdi-controller-off:before{content:"\f02b5"}.mdi-cookie:before{content:"\f0198"}.mdi-cookie-alert:before{content:"\f16d0"}.mdi-cookie-alert-outline:before{content:"\f16d1"}.mdi-cookie-check:before{content:"\f16d2"}.mdi-cookie-check-outline:before{content:"\f16d3"}.mdi-cookie-clock:before{content:"\f16e4"}.mdi-cookie-clock-outline:before{content:"\f16e5"}.mdi-cookie-cog:before{content:"\f16d4"}.mdi-cookie-cog-outline:before{content:"\f16d5"}.mdi-cookie-edit:before{content:"\f16e6"}.mdi-cookie-edit-outline:before{content:"\f16e7"}.mdi-cookie-lock:before{content:"\f16e8"}.mdi-cookie-lock-outline:before{content:"\f16e9"}.mdi-cookie-minus:before{content:"\f16da"}.mdi-cookie-minus-outline:before{content:"\f16db"}.mdi-cookie-off:before{content:"\f16ea"}.mdi-cookie-off-outline:before{content:"\f16eb"}.mdi-cookie-outline:before{content:"\f16de"}.mdi-cookie-plus:before{content:"\f16d6"}.mdi-cookie-plus-outline:before{content:"\f16d7"}.mdi-cookie-refresh:before{content:"\f16ec"}.mdi-cookie-refresh-outline:before{content:"\f16ed"}.mdi-cookie-remove:before{content:"\f16d8"}.mdi-cookie-remove-outline:before{content:"\f16d9"}.mdi-cookie-settings:before{content:"\f16dc"}.mdi-cookie-settings-outline:before{content:"\f16dd"}.mdi-coolant-temperature:before{content:"\f03c8"}.mdi-copyleft:before{content:"\f1939"}.mdi-copyright:before{content:"\f05e6"}.mdi-cordova:before{content:"\f0958"}.mdi-corn:before{content:"\f07b8"}.mdi-corn-off:before{content:"\f13ef"}.mdi-cosine-wave:before{content:"\f1479"}.mdi-counter:before{content:"\f0199"}.mdi-countertop:before{content:"\f181c"}.mdi-countertop-outline:before{content:"\f181d"}.mdi-cow:before{content:"\f019a"}.mdi-cow-off:before{content:"\f18fc"}.mdi-cpu-32-bit:before{content:"\f0edf"}.mdi-cpu-64-bit:before{content:"\f0ee0"}.mdi-cradle:before{content:"\f198b"}.mdi-cradle-outline:before{content:"\f1991"}.mdi-crane:before{content:"\f0862"}.mdi-creation:before{content:"\f0674"}.mdi-creation-outline:before{content:"\f1c2b"}.mdi-creative-commons:before{content:"\f0d6b"}.mdi-credit-card:before{content:"\f0fef"}.mdi-credit-card-check:before{content:"\f13d0"}.mdi-credit-card-check-outline:before{content:"\f13d1"}.mdi-credit-card-chip:before{content:"\f190f"}.mdi-credit-card-chip-outline:before{content:"\f1910"}.mdi-credit-card-clock:before{content:"\f0ee1"}.mdi-credit-card-clock-outline:before{content:"\f0ee2"}.mdi-credit-card-edit:before{content:"\f17d7"}.mdi-credit-card-edit-outline:before{content:"\f17d8"}.mdi-credit-card-fast:before{content:"\f1911"}.mdi-credit-card-fast-outline:before{content:"\f1912"}.mdi-credit-card-lock:before{content:"\f18e7"}.mdi-credit-card-lock-outline:before{content:"\f18e8"}.mdi-credit-card-marker:before{content:"\f06a8"}.mdi-credit-card-marker-outline:before{content:"\f0dbe"}.mdi-credit-card-minus:before{content:"\f0fac"}.mdi-credit-card-minus-outline:before{content:"\f0fad"}.mdi-credit-card-multiple:before{content:"\f0ff0"}.mdi-credit-card-multiple-outline:before{content:"\f019c"}.mdi-credit-card-off:before{content:"\f0ff1"}.mdi-credit-card-off-outline:before{content:"\f05e4"}.mdi-credit-card-outline:before{content:"\f019b"}.mdi-credit-card-plus:before{content:"\f0ff2"}.mdi-credit-card-plus-outline:before{content:"\f0676"}.mdi-credit-card-refresh:before{content:"\f1645"}.mdi-credit-card-refresh-outline:before{content:"\f1646"}.mdi-credit-card-refund:before{content:"\f0ff3"}.mdi-credit-card-refund-outline:before{content:"\f0aa8"}.mdi-credit-card-remove:before{content:"\f0fae"}.mdi-credit-card-remove-outline:before{content:"\f0faf"}.mdi-credit-card-scan:before{content:"\f0ff4"}.mdi-credit-card-scan-outline:before{content:"\f019d"}.mdi-credit-card-search:before{content:"\f1647"}.mdi-credit-card-search-outline:before{content:"\f1648"}.mdi-credit-card-settings:before{content:"\f0ff5"}.mdi-credit-card-settings-outline:before{content:"\f08d7"}.mdi-credit-card-sync:before{content:"\f1649"}.mdi-credit-card-sync-outline:before{content:"\f164a"}.mdi-credit-card-wireless:before{content:"\f0802"}.mdi-credit-card-wireless-off:before{content:"\f057a"}.mdi-credit-card-wireless-off-outline:before{content:"\f057b"}.mdi-credit-card-wireless-outline:before{content:"\f0d6c"}.mdi-cricket:before{content:"\f0d6d"}.mdi-crop:before{content:"\f019e"}.mdi-crop-free:before{content:"\f019f"}.mdi-crop-landscape:before{content:"\f01a0"}.mdi-crop-portrait:before{content:"\f01a1"}.mdi-crop-rotate:before{content:"\f0696"}.mdi-crop-square:before{content:"\f01a2"}.mdi-cross:before{content:"\f0953"}.mdi-cross-bolnisi:before{content:"\f0ced"}.mdi-cross-celtic:before{content:"\f0cf5"}.mdi-cross-outline:before{content:"\f0cf6"}.mdi-crosshairs:before{content:"\f01a3"}.mdi-crosshairs-gps:before{content:"\f01a4"}.mdi-crosshairs-off:before{content:"\f0f45"}.mdi-crosshairs-question:before{content:"\f1136"}.mdi-crowd:before{content:"\f1975"}.mdi-crown:before{content:"\f01a5"}.mdi-crown-circle:before{content:"\f17dc"}.mdi-crown-circle-outline:before{content:"\f17dd"}.mdi-crown-outline:before{content:"\f11d0"}.mdi-cryengine:before{content:"\f0959"}.mdi-crystal-ball:before{content:"\f0b2f"}.mdi-cube:before{content:"\f01a6"}.mdi-cube-off:before{content:"\f141c"}.mdi-cube-off-outline:before{content:"\f141d"}.mdi-cube-outline:before{content:"\f01a7"}.mdi-cube-scan:before{content:"\f0b84"}.mdi-cube-send:before{content:"\f01a8"}.mdi-cube-unfolded:before{content:"\f01a9"}.mdi-cup:before{content:"\f01aa"}.mdi-cup-off:before{content:"\f05e5"}.mdi-cup-off-outline:before{content:"\f137d"}.mdi-cup-outline:before{content:"\f130f"}.mdi-cup-water:before{content:"\f01ab"}.mdi-cupboard:before{content:"\f0f46"}.mdi-cupboard-outline:before{content:"\f0f47"}.mdi-cupcake:before{content:"\f095a"}.mdi-curling:before{content:"\f0863"}.mdi-currency-bdt:before{content:"\f0864"}.mdi-currency-brl:before{content:"\f0b85"}.mdi-currency-btc:before{content:"\f01ac"}.mdi-currency-cny:before{content:"\f07ba"}.mdi-currency-eth:before{content:"\f07bb"}.mdi-currency-eur:before{content:"\f01ad"}.mdi-currency-eur-off:before{content:"\f1315"}.mdi-currency-fra:before{content:"\f1a39"}.mdi-currency-gbp:before{content:"\f01ae"}.mdi-currency-ils:before{content:"\f0c61"}.mdi-currency-inr:before{content:"\f01af"}.mdi-currency-jpy:before{content:"\f07bc"}.mdi-currency-krw:before{content:"\f07bd"}.mdi-currency-kzt:before{content:"\f0865"}.mdi-currency-mnt:before{content:"\f1512"}.mdi-currency-ngn:before{content:"\f01b0"}.mdi-currency-php:before{content:"\f09e6"}.mdi-currency-rial:before{content:"\f0e9c"}.mdi-currency-rub:before{content:"\f01b1"}.mdi-currency-rupee:before{content:"\f1976"}.mdi-currency-sign:before{content:"\f07be"}.mdi-currency-thb:before{content:"\f1c05"}.mdi-currency-try:before{content:"\f01b2"}.mdi-currency-twd:before{content:"\f07bf"}.mdi-currency-uah:before{content:"\f1b9b"}.mdi-currency-usd:before{content:"\f01c1"}.mdi-currency-usd-off:before{content:"\f067a"}.mdi-current-ac:before{content:"\f1480"}.mdi-current-dc:before{content:"\f095c"}.mdi-cursor-default:before{content:"\f01c0"}.mdi-cursor-default-click:before{content:"\f0cfd"}.mdi-cursor-default-click-outline:before{content:"\f0cfe"}.mdi-cursor-default-gesture:before{content:"\f1127"}.mdi-cursor-default-gesture-outline:before{content:"\f1128"}.mdi-cursor-default-outline:before{content:"\f01bf"}.mdi-cursor-move:before{content:"\f01be"}.mdi-cursor-pointer:before{content:"\f01bd"}.mdi-cursor-text:before{content:"\f05e7"}.mdi-curtains:before{content:"\f1846"}.mdi-curtains-closed:before{content:"\f1847"}.mdi-cylinder:before{content:"\f194e"}.mdi-cylinder-off:before{content:"\f194f"}.mdi-dance-ballroom:before{content:"\f15fb"}.mdi-dance-pole:before{content:"\f1578"}.mdi-data-matrix:before{content:"\f153c"}.mdi-data-matrix-edit:before{content:"\f153d"}.mdi-data-matrix-minus:before{content:"\f153e"}.mdi-data-matrix-plus:before{content:"\f153f"}.mdi-data-matrix-remove:before{content:"\f1540"}.mdi-data-matrix-scan:before{content:"\f1541"}.mdi-database:before{content:"\f01bc"}.mdi-database-alert:before{content:"\f163a"}.mdi-database-alert-outline:before{content:"\f1624"}.mdi-database-arrow-down:before{content:"\f163b"}.mdi-database-arrow-down-outline:before{content:"\f1625"}.mdi-database-arrow-left:before{content:"\f163c"}.mdi-database-arrow-left-outline:before{content:"\f1626"}.mdi-database-arrow-right:before{content:"\f163d"}.mdi-database-arrow-right-outline:before{content:"\f1627"}.mdi-database-arrow-up:before{content:"\f163e"}.mdi-database-arrow-up-outline:before{content:"\f1628"}.mdi-database-check:before{content:"\f0aa9"}.mdi-database-check-outline:before{content:"\f1629"}.mdi-database-clock:before{content:"\f163f"}.mdi-database-clock-outline:before{content:"\f162a"}.mdi-database-cog:before{content:"\f164b"}.mdi-database-cog-outline:before{content:"\f164c"}.mdi-database-edit:before{content:"\f0b86"}.mdi-database-edit-outline:before{content:"\f162b"}.mdi-database-export:before{content:"\f095e"}.mdi-database-export-outline:before{content:"\f162c"}.mdi-database-eye:before{content:"\f191f"}.mdi-database-eye-off:before{content:"\f1920"}.mdi-database-eye-off-outline:before{content:"\f1921"}.mdi-database-eye-outline:before{content:"\f1922"}.mdi-database-import:before{content:"\f095d"}.mdi-database-import-outline:before{content:"\f162d"}.mdi-database-lock:before{content:"\f0aaa"}.mdi-database-lock-outline:before{content:"\f162e"}.mdi-database-marker:before{content:"\f12f6"}.mdi-database-marker-outline:before{content:"\f162f"}.mdi-database-minus:before{content:"\f01bb"}.mdi-database-minus-outline:before{content:"\f1630"}.mdi-database-off:before{content:"\f1640"}.mdi-database-off-outline:before{content:"\f1631"}.mdi-database-outline:before{content:"\f1632"}.mdi-database-plus:before{content:"\f01ba"}.mdi-database-plus-outline:before{content:"\f1633"}.mdi-database-refresh:before{content:"\f05c2"}.mdi-database-refresh-outline:before{content:"\f1634"}.mdi-database-remove:before{content:"\f0d00"}.mdi-database-remove-outline:before{content:"\f1635"}.mdi-database-search:before{content:"\f0866"}.mdi-database-search-outline:before{content:"\f1636"}.mdi-database-settings:before{content:"\f0d01"}.mdi-database-settings-outline:before{content:"\f1637"}.mdi-database-sync:before{content:"\f0cff"}.mdi-database-sync-outline:before{content:"\f1638"}.mdi-death-star:before{content:"\f08d8"}.mdi-death-star-variant:before{content:"\f08d9"}.mdi-deathly-hallows:before{content:"\f0b87"}.mdi-debian:before{content:"\f08da"}.mdi-debug-step-into:before{content:"\f01b9"}.mdi-debug-step-out:before{content:"\f01b8"}.mdi-debug-step-over:before{content:"\f01b7"}.mdi-decagram:before{content:"\f076c"}.mdi-decagram-outline:before{content:"\f076d"}.mdi-decimal:before{content:"\f10a1"}.mdi-decimal-comma:before{content:"\f10a2"}.mdi-decimal-comma-decrease:before{content:"\f10a3"}.mdi-decimal-comma-increase:before{content:"\f10a4"}.mdi-decimal-decrease:before{content:"\f01b6"}.mdi-decimal-increase:before{content:"\f01b5"}.mdi-delete:before{content:"\f01b4"}.mdi-delete-alert:before{content:"\f10a5"}.mdi-delete-alert-outline:before{content:"\f10a6"}.mdi-delete-circle:before{content:"\f0683"}.mdi-delete-circle-outline:before{content:"\f0b88"}.mdi-delete-clock:before{content:"\f1556"}.mdi-delete-clock-outline:before{content:"\f1557"}.mdi-delete-empty:before{content:"\f06cc"}.mdi-delete-empty-outline:before{content:"\f0e9d"}.mdi-delete-forever:before{content:"\f05e8"}.mdi-delete-forever-outline:before{content:"\f0b89"}.mdi-delete-off:before{content:"\f10a7"}.mdi-delete-off-outline:before{content:"\f10a8"}.mdi-delete-outline:before{content:"\f09e7"}.mdi-delete-restore:before{content:"\f0819"}.mdi-delete-sweep:before{content:"\f05e9"}.mdi-delete-sweep-outline:before{content:"\f0c62"}.mdi-delete-variant:before{content:"\f01b3"}.mdi-delta:before{content:"\f01c2"}.mdi-desk:before{content:"\f1239"}.mdi-desk-lamp:before{content:"\f095f"}.mdi-desk-lamp-off:before{content:"\f1b1f"}.mdi-desk-lamp-on:before{content:"\f1b20"}.mdi-deskphone:before{content:"\f01c3"}.mdi-desktop-classic:before{content:"\f07c0"}.mdi-desktop-tower:before{content:"\f01c5"}.mdi-desktop-tower-monitor:before{content:"\f0aab"}.mdi-details:before{content:"\f01c6"}.mdi-dev-to:before{content:"\f0d6e"}.mdi-developer-board:before{content:"\f0697"}.mdi-deviantart:before{content:"\f01c7"}.mdi-devices:before{content:"\f0fb0"}.mdi-dharmachakra:before{content:"\f094b"}.mdi-diabetes:before{content:"\f1126"}.mdi-dialpad:before{content:"\f061c"}.mdi-diameter:before{content:"\f0c63"}.mdi-diameter-outline:before{content:"\f0c64"}.mdi-diameter-variant:before{content:"\f0c65"}.mdi-diamond:before{content:"\f0b8a"}.mdi-diamond-outline:before{content:"\f0b8b"}.mdi-diamond-stone:before{content:"\f01c8"}.mdi-dice-1:before{content:"\f01ca"}.mdi-dice-1-outline:before{content:"\f114a"}.mdi-dice-2:before{content:"\f01cb"}.mdi-dice-2-outline:before{content:"\f114b"}.mdi-dice-3:before{content:"\f01cc"}.mdi-dice-3-outline:before{content:"\f114c"}.mdi-dice-4:before{content:"\f01cd"}.mdi-dice-4-outline:before{content:"\f114d"}.mdi-dice-5:before{content:"\f01ce"}.mdi-dice-5-outline:before{content:"\f114e"}.mdi-dice-6:before{content:"\f01cf"}.mdi-dice-6-outline:before{content:"\f114f"}.mdi-dice-d10:before{content:"\f1153"}.mdi-dice-d10-outline:before{content:"\f076f"}.mdi-dice-d12:before{content:"\f1154"}.mdi-dice-d12-outline:before{content:"\f0867"}.mdi-dice-d20:before{content:"\f1155"}.mdi-dice-d20-outline:before{content:"\f05ea"}.mdi-dice-d4:before{content:"\f1150"}.mdi-dice-d4-outline:before{content:"\f05eb"}.mdi-dice-d6:before{content:"\f1151"}.mdi-dice-d6-outline:before{content:"\f05ed"}.mdi-dice-d8:before{content:"\f1152"}.mdi-dice-d8-outline:before{content:"\f05ec"}.mdi-dice-multiple:before{content:"\f076e"}.mdi-dice-multiple-outline:before{content:"\f1156"}.mdi-digital-ocean:before{content:"\f1237"}.mdi-dip-switch:before{content:"\f07c1"}.mdi-directions:before{content:"\f01d0"}.mdi-directions-fork:before{content:"\f0641"}.mdi-disc:before{content:"\f05ee"}.mdi-disc-alert:before{content:"\f01d1"}.mdi-disc-player:before{content:"\f0960"}.mdi-dishwasher:before{content:"\f0aac"}.mdi-dishwasher-alert:before{content:"\f11b8"}.mdi-dishwasher-off:before{content:"\f11b9"}.mdi-disqus:before{content:"\f01d2"}.mdi-distribute-horizontal-center:before{content:"\f11c9"}.mdi-distribute-horizontal-left:before{content:"\f11c8"}.mdi-distribute-horizontal-right:before{content:"\f11ca"}.mdi-distribute-vertical-bottom:before{content:"\f11cb"}.mdi-distribute-vertical-center:before{content:"\f11cc"}.mdi-distribute-vertical-top:before{content:"\f11cd"}.mdi-diversify:before{content:"\f1877"}.mdi-diving:before{content:"\f1977"}.mdi-diving-flippers:before{content:"\f0dbf"}.mdi-diving-helmet:before{content:"\f0dc0"}.mdi-diving-scuba:before{content:"\f1b77"}.mdi-diving-scuba-flag:before{content:"\f0dc2"}.mdi-diving-scuba-mask:before{content:"\f0dc1"}.mdi-diving-scuba-tank:before{content:"\f0dc3"}.mdi-diving-scuba-tank-multiple:before{content:"\f0dc4"}.mdi-diving-snorkel:before{content:"\f0dc5"}.mdi-division:before{content:"\f01d4"}.mdi-division-box:before{content:"\f01d5"}.mdi-dlna:before{content:"\f0a41"}.mdi-dna:before{content:"\f0684"}.mdi-dns:before{content:"\f01d6"}.mdi-dns-outline:before{content:"\f0b8c"}.mdi-dock-bottom:before{content:"\f10a9"}.mdi-dock-left:before{content:"\f10aa"}.mdi-dock-right:before{content:"\f10ab"}.mdi-dock-top:before{content:"\f1513"}.mdi-dock-window:before{content:"\f10ac"}.mdi-docker:before{content:"\f0868"}.mdi-doctor:before{content:"\f0a42"}.mdi-dog:before{content:"\f0a43"}.mdi-dog-service:before{content:"\f0aad"}.mdi-dog-side:before{content:"\f0a44"}.mdi-dog-side-off:before{content:"\f16ee"}.mdi-dolby:before{content:"\f06b3"}.mdi-dolly:before{content:"\f0e9e"}.mdi-dolphin:before{content:"\f18b4"}.mdi-domain:before{content:"\f01d7"}.mdi-domain-off:before{content:"\f0d6f"}.mdi-domain-plus:before{content:"\f10ad"}.mdi-domain-remove:before{content:"\f10ae"}.mdi-domain-switch:before{content:"\f1c2c"}.mdi-dome-light:before{content:"\f141e"}.mdi-domino-mask:before{content:"\f1023"}.mdi-donkey:before{content:"\f07c2"}.mdi-door:before{content:"\f081a"}.mdi-door-closed:before{content:"\f081b"}.mdi-door-closed-cancel:before{content:"\f1c93"}.mdi-door-closed-lock:before{content:"\f10af"}.mdi-door-open:before{content:"\f081c"}.mdi-door-sliding:before{content:"\f181e"}.mdi-door-sliding-lock:before{content:"\f181f"}.mdi-door-sliding-open:before{content:"\f1820"}.mdi-doorbell:before{content:"\f12e6"}.mdi-doorbell-video:before{content:"\f0869"}.mdi-dot-net:before{content:"\f0aae"}.mdi-dots-circle:before{content:"\f1978"}.mdi-dots-grid:before{content:"\f15fc"}.mdi-dots-hexagon:before{content:"\f15ff"}.mdi-dots-horizontal:before{content:"\f01d8"}.mdi-dots-horizontal-circle:before{content:"\f07c3"}.mdi-dots-horizontal-circle-outline:before{content:"\f0b8d"}.mdi-dots-square:before{content:"\f15fd"}.mdi-dots-triangle:before{content:"\f15fe"}.mdi-dots-vertical:before{content:"\f01d9"}.mdi-dots-vertical-circle:before{content:"\f07c4"}.mdi-dots-vertical-circle-outline:before{content:"\f0b8e"}.mdi-download:before{content:"\f01da"}.mdi-download-box:before{content:"\f1462"}.mdi-download-box-outline:before{content:"\f1463"}.mdi-download-circle:before{content:"\f1464"}.mdi-download-circle-outline:before{content:"\f1465"}.mdi-download-lock:before{content:"\f1320"}.mdi-download-lock-outline:before{content:"\f1321"}.mdi-download-multiple:before{content:"\f09e9"}.mdi-download-network:before{content:"\f06f4"}.mdi-download-network-outline:before{content:"\f0c66"}.mdi-download-off:before{content:"\f10b0"}.mdi-download-off-outline:before{content:"\f10b1"}.mdi-download-outline:before{content:"\f0b8f"}.mdi-drag:before{content:"\f01db"}.mdi-drag-horizontal:before{content:"\f01dc"}.mdi-drag-horizontal-variant:before{content:"\f12f0"}.mdi-drag-variant:before{content:"\f0b90"}.mdi-drag-vertical:before{content:"\f01dd"}.mdi-drag-vertical-variant:before{content:"\f12f1"}.mdi-drama-masks:before{content:"\f0d02"}.mdi-draw:before{content:"\f0f49"}.mdi-draw-pen:before{content:"\f19b9"}.mdi-drawing:before{content:"\f01de"}.mdi-drawing-box:before{content:"\f01df"}.mdi-dresser:before{content:"\f0f4a"}.mdi-dresser-outline:before{content:"\f0f4b"}.mdi-drone:before{content:"\f01e2"}.mdi-dropbox:before{content:"\f01e3"}.mdi-drupal:before{content:"\f01e4"}.mdi-duck:before{content:"\f01e5"}.mdi-dumbbell:before{content:"\f01e6"}.mdi-dump-truck:before{content:"\f0c67"}.mdi-ear-hearing:before{content:"\f07c5"}.mdi-ear-hearing-loop:before{content:"\f1aee"}.mdi-ear-hearing-off:before{content:"\f0a45"}.mdi-earbuds:before{content:"\f184f"}.mdi-earbuds-off:before{content:"\f1850"}.mdi-earbuds-off-outline:before{content:"\f1851"}.mdi-earbuds-outline:before{content:"\f1852"}.mdi-earth:before{content:"\f01e7"}.mdi-earth-arrow-down:before{content:"\f1c87"}.mdi-earth-arrow-left:before{content:"\f1c88"}.mdi-earth-arrow-right:before{content:"\f1311"}.mdi-earth-arrow-up:before{content:"\f1c89"}.mdi-earth-box:before{content:"\f06cd"}.mdi-earth-box-minus:before{content:"\f1407"}.mdi-earth-box-off:before{content:"\f06ce"}.mdi-earth-box-plus:before{content:"\f1406"}.mdi-earth-box-remove:before{content:"\f1408"}.mdi-earth-minus:before{content:"\f1404"}.mdi-earth-off:before{content:"\f01e8"}.mdi-earth-plus:before{content:"\f1403"}.mdi-earth-remove:before{content:"\f1405"}.mdi-egg:before{content:"\f0aaf"}.mdi-egg-easter:before{content:"\f0ab0"}.mdi-egg-fried:before{content:"\f184a"}.mdi-egg-off:before{content:"\f13f0"}.mdi-egg-off-outline:before{content:"\f13f1"}.mdi-egg-outline:before{content:"\f13f2"}.mdi-eiffel-tower:before{content:"\f156b"}.mdi-eight-track:before{content:"\f09ea"}.mdi-eject:before{content:"\f01ea"}.mdi-eject-circle:before{content:"\f1b23"}.mdi-eject-circle-outline:before{content:"\f1b24"}.mdi-eject-outline:before{content:"\f0b91"}.mdi-electric-switch:before{content:"\f0e9f"}.mdi-electric-switch-closed:before{content:"\f10d9"}.mdi-electron-framework:before{content:"\f1024"}.mdi-elephant:before{content:"\f07c6"}.mdi-elevation-decline:before{content:"\f01eb"}.mdi-elevation-rise:before{content:"\f01ec"}.mdi-elevator:before{content:"\f01ed"}.mdi-elevator-down:before{content:"\f12c2"}.mdi-elevator-passenger:before{content:"\f1381"}.mdi-elevator-passenger-off:before{content:"\f1979"}.mdi-elevator-passenger-off-outline:before{content:"\f197a"}.mdi-elevator-passenger-outline:before{content:"\f197b"}.mdi-elevator-up:before{content:"\f12c1"}.mdi-ellipse:before{content:"\f0ea0"}.mdi-ellipse-outline:before{content:"\f0ea1"}.mdi-email:before{content:"\f01ee"}.mdi-email-alert:before{content:"\f06cf"}.mdi-email-alert-outline:before{content:"\f0d42"}.mdi-email-arrow-left:before{content:"\f10da"}.mdi-email-arrow-left-outline:before{content:"\f10db"}.mdi-email-arrow-right:before{content:"\f10dc"}.mdi-email-arrow-right-outline:before{content:"\f10dd"}.mdi-email-box:before{content:"\f0d03"}.mdi-email-check:before{content:"\f0ab1"}.mdi-email-check-outline:before{content:"\f0ab2"}.mdi-email-edit:before{content:"\f0ee3"}.mdi-email-edit-outline:before{content:"\f0ee4"}.mdi-email-fast:before{content:"\f186f"}.mdi-email-fast-outline:before{content:"\f1870"}.mdi-email-heart-outline:before{content:"\f1c5b"}.mdi-email-lock:before{content:"\f01f1"}.mdi-email-lock-outline:before{content:"\f1b61"}.mdi-email-mark-as-unread:before{content:"\f0b92"}.mdi-email-minus:before{content:"\f0ee5"}.mdi-email-minus-outline:before{content:"\f0ee6"}.mdi-email-multiple:before{content:"\f0ee7"}.mdi-email-multiple-outline:before{content:"\f0ee8"}.mdi-email-newsletter:before{content:"\f0fb1"}.mdi-email-off:before{content:"\f13e3"}.mdi-email-off-outline:before{content:"\f13e4"}.mdi-email-open:before{content:"\f01ef"}.mdi-email-open-heart-outline:before{content:"\f1c5c"}.mdi-email-open-multiple:before{content:"\f0ee9"}.mdi-email-open-multiple-outline:before{content:"\f0eea"}.mdi-email-open-outline:before{content:"\f05ef"}.mdi-email-outline:before{content:"\f01f0"}.mdi-email-plus:before{content:"\f09eb"}.mdi-email-plus-outline:before{content:"\f09ec"}.mdi-email-remove:before{content:"\f1661"}.mdi-email-remove-outline:before{content:"\f1662"}.mdi-email-seal:before{content:"\f195b"}.mdi-email-seal-outline:before{content:"\f195c"}.mdi-email-search:before{content:"\f0961"}.mdi-email-search-outline:before{content:"\f0962"}.mdi-email-sync:before{content:"\f12c7"}.mdi-email-sync-outline:before{content:"\f12c8"}.mdi-email-variant:before{content:"\f05f0"}.mdi-ember:before{content:"\f0b30"}.mdi-emby:before{content:"\f06b4"}.mdi-emoticon:before{content:"\f0c68"}.mdi-emoticon-angry:before{content:"\f0c69"}.mdi-emoticon-angry-outline:before{content:"\f0c6a"}.mdi-emoticon-confused:before{content:"\f10de"}.mdi-emoticon-confused-outline:before{content:"\f10df"}.mdi-emoticon-cool:before{content:"\f0c6b"}.mdi-emoticon-cool-outline:before{content:"\f01f3"}.mdi-emoticon-cry:before{content:"\f0c6c"}.mdi-emoticon-cry-outline:before{content:"\f0c6d"}.mdi-emoticon-dead:before{content:"\f0c6e"}.mdi-emoticon-dead-outline:before{content:"\f069b"}.mdi-emoticon-devil:before{content:"\f0c6f"}.mdi-emoticon-devil-outline:before{content:"\f01f4"}.mdi-emoticon-excited:before{content:"\f0c70"}.mdi-emoticon-excited-outline:before{content:"\f069c"}.mdi-emoticon-frown:before{content:"\f0f4c"}.mdi-emoticon-frown-outline:before{content:"\f0f4d"}.mdi-emoticon-happy:before{content:"\f0c71"}.mdi-emoticon-happy-outline:before{content:"\f01f5"}.mdi-emoticon-kiss:before{content:"\f0c72"}.mdi-emoticon-kiss-outline:before{content:"\f0c73"}.mdi-emoticon-lol:before{content:"\f1214"}.mdi-emoticon-lol-outline:before{content:"\f1215"}.mdi-emoticon-minus:before{content:"\f1cb2"}.mdi-emoticon-minus-outline:before{content:"\f1cb3"}.mdi-emoticon-neutral:before{content:"\f0c74"}.mdi-emoticon-neutral-outline:before{content:"\f01f6"}.mdi-emoticon-outline:before{content:"\f01f2"}.mdi-emoticon-plus:before{content:"\f1cb4"}.mdi-emoticon-plus-outline:before{content:"\f1cb5"}.mdi-emoticon-poop:before{content:"\f01f7"}.mdi-emoticon-poop-outline:before{content:"\f0c75"}.mdi-emoticon-remove:before{content:"\f1cb6"}.mdi-emoticon-remove-outline:before{content:"\f1cb7"}.mdi-emoticon-sad:before{content:"\f0c76"}.mdi-emoticon-sad-outline:before{content:"\f01f8"}.mdi-emoticon-sick:before{content:"\f157c"}.mdi-emoticon-sick-outline:before{content:"\f157d"}.mdi-emoticon-tongue:before{content:"\f01f9"}.mdi-emoticon-tongue-outline:before{content:"\f0c77"}.mdi-emoticon-wink:before{content:"\f0c78"}.mdi-emoticon-wink-outline:before{content:"\f0c79"}.mdi-engine:before{content:"\f01fa"}.mdi-engine-off:before{content:"\f0a46"}.mdi-engine-off-outline:before{content:"\f0a47"}.mdi-engine-outline:before{content:"\f01fb"}.mdi-epsilon:before{content:"\f10e0"}.mdi-equal:before{content:"\f01fc"}.mdi-equal-box:before{content:"\f01fd"}.mdi-equalizer:before{content:"\f0ea2"}.mdi-equalizer-outline:before{content:"\f0ea3"}.mdi-eraser:before{content:"\f01fe"}.mdi-eraser-variant:before{content:"\f0642"}.mdi-escalator:before{content:"\f01ff"}.mdi-escalator-box:before{content:"\f1399"}.mdi-escalator-down:before{content:"\f12c0"}.mdi-escalator-up:before{content:"\f12bf"}.mdi-eslint:before{content:"\f0c7a"}.mdi-et:before{content:"\f0ab3"}.mdi-ethereum:before{content:"\f086a"}.mdi-ethernet:before{content:"\f0200"}.mdi-ethernet-cable:before{content:"\f0201"}.mdi-ethernet-cable-off:before{content:"\f0202"}.mdi-ev-plug-ccs1:before{content:"\f1519"}.mdi-ev-plug-ccs2:before{content:"\f151a"}.mdi-ev-plug-chademo:before{content:"\f151b"}.mdi-ev-plug-tesla:before{content:"\f151c"}.mdi-ev-plug-type1:before{content:"\f151d"}.mdi-ev-plug-type2:before{content:"\f151e"}.mdi-ev-station:before{content:"\f05f1"}.mdi-evernote:before{content:"\f0204"}.mdi-excavator:before{content:"\f1025"}.mdi-exclamation:before{content:"\f0205"}.mdi-exclamation-thick:before{content:"\f1238"}.mdi-exit-run:before{content:"\f0a48"}.mdi-exit-to-app:before{content:"\f0206"}.mdi-expand-all:before{content:"\f0ab4"}.mdi-expand-all-outline:before{content:"\f0ab5"}.mdi-expansion-card:before{content:"\f08ae"}.mdi-expansion-card-variant:before{content:"\f0fb2"}.mdi-exponent:before{content:"\f0963"}.mdi-exponent-box:before{content:"\f0964"}.mdi-export:before{content:"\f0207"}.mdi-export-variant:before{content:"\f0b93"}.mdi-eye:before{content:"\f0208"}.mdi-eye-arrow-left:before{content:"\f18fd"}.mdi-eye-arrow-left-outline:before{content:"\f18fe"}.mdi-eye-arrow-right:before{content:"\f18ff"}.mdi-eye-arrow-right-outline:before{content:"\f1900"}.mdi-eye-check:before{content:"\f0d04"}.mdi-eye-check-outline:before{content:"\f0d05"}.mdi-eye-circle:before{content:"\f0b94"}.mdi-eye-circle-outline:before{content:"\f0b95"}.mdi-eye-closed:before{content:"\f1ca3"}.mdi-eye-lock:before{content:"\f1c06"}.mdi-eye-lock-open:before{content:"\f1c07"}.mdi-eye-lock-open-outline:before{content:"\f1c08"}.mdi-eye-lock-outline:before{content:"\f1c09"}.mdi-eye-minus:before{content:"\f1026"}.mdi-eye-minus-outline:before{content:"\f1027"}.mdi-eye-off:before{content:"\f0209"}.mdi-eye-off-outline:before{content:"\f06d1"}.mdi-eye-outline:before{content:"\f06d0"}.mdi-eye-plus:before{content:"\f086b"}.mdi-eye-plus-outline:before{content:"\f086c"}.mdi-eye-refresh:before{content:"\f197c"}.mdi-eye-refresh-outline:before{content:"\f197d"}.mdi-eye-remove:before{content:"\f15e3"}.mdi-eye-remove-outline:before{content:"\f15e4"}.mdi-eye-settings:before{content:"\f086d"}.mdi-eye-settings-outline:before{content:"\f086e"}.mdi-eyedropper:before{content:"\f020a"}.mdi-eyedropper-minus:before{content:"\f13dd"}.mdi-eyedropper-off:before{content:"\f13df"}.mdi-eyedropper-plus:before{content:"\f13dc"}.mdi-eyedropper-remove:before{content:"\f13de"}.mdi-eyedropper-variant:before{content:"\f020b"}.mdi-face-agent:before{content:"\f0d70"}.mdi-face-man:before{content:"\f0643"}.mdi-face-man-outline:before{content:"\f0b96"}.mdi-face-man-profile:before{content:"\f0644"}.mdi-face-man-shimmer:before{content:"\f15cc"}.mdi-face-man-shimmer-outline:before{content:"\f15cd"}.mdi-face-mask:before{content:"\f1586"}.mdi-face-mask-outline:before{content:"\f1587"}.mdi-face-recognition:before{content:"\f0c7b"}.mdi-face-woman:before{content:"\f1077"}.mdi-face-woman-outline:before{content:"\f1078"}.mdi-face-woman-profile:before{content:"\f1076"}.mdi-face-woman-shimmer:before{content:"\f15ce"}.mdi-face-woman-shimmer-outline:before{content:"\f15cf"}.mdi-facebook:before{content:"\f020c"}.mdi-facebook-gaming:before{content:"\f07dd"}.mdi-facebook-messenger:before{content:"\f020e"}.mdi-facebook-workplace:before{content:"\f0b31"}.mdi-factory:before{content:"\f020f"}.mdi-family-tree:before{content:"\f160e"}.mdi-fan:before{content:"\f0210"}.mdi-fan-alert:before{content:"\f146c"}.mdi-fan-auto:before{content:"\f171d"}.mdi-fan-chevron-down:before{content:"\f146d"}.mdi-fan-chevron-up:before{content:"\f146e"}.mdi-fan-clock:before{content:"\f1a3a"}.mdi-fan-minus:before{content:"\f1470"}.mdi-fan-off:before{content:"\f081d"}.mdi-fan-plus:before{content:"\f146f"}.mdi-fan-remove:before{content:"\f1471"}.mdi-fan-speed-1:before{content:"\f1472"}.mdi-fan-speed-2:before{content:"\f1473"}.mdi-fan-speed-3:before{content:"\f1474"}.mdi-fast-forward:before{content:"\f0211"}.mdi-fast-forward-10:before{content:"\f0d71"}.mdi-fast-forward-15:before{content:"\f193a"}.mdi-fast-forward-30:before{content:"\f0d06"}.mdi-fast-forward-45:before{content:"\f1b12"}.mdi-fast-forward-5:before{content:"\f11f8"}.mdi-fast-forward-60:before{content:"\f160b"}.mdi-fast-forward-outline:before{content:"\f06d2"}.mdi-faucet:before{content:"\f1b29"}.mdi-faucet-variant:before{content:"\f1b2a"}.mdi-fax:before{content:"\f0212"}.mdi-feather:before{content:"\f06d3"}.mdi-feature-search:before{content:"\f0a49"}.mdi-feature-search-outline:before{content:"\f0a4a"}.mdi-fedora:before{content:"\f08db"}.mdi-fence:before{content:"\f179a"}.mdi-fence-electric:before{content:"\f17f6"}.mdi-fencing:before{content:"\f14c1"}.mdi-ferris-wheel:before{content:"\f0ea4"}.mdi-ferry:before{content:"\f0213"}.mdi-file:before{content:"\f0214"}.mdi-file-account:before{content:"\f073b"}.mdi-file-account-outline:before{content:"\f1028"}.mdi-file-alert:before{content:"\f0a4b"}.mdi-file-alert-outline:before{content:"\f0a4c"}.mdi-file-arrow-left-right:before{content:"\f1a93"}.mdi-file-arrow-left-right-outline:before{content:"\f1a94"}.mdi-file-arrow-up-down:before{content:"\f1a95"}.mdi-file-arrow-up-down-outline:before{content:"\f1a96"}.mdi-file-cabinet:before{content:"\f0ab6"}.mdi-file-cad:before{content:"\f0eeb"}.mdi-file-cad-box:before{content:"\f0eec"}.mdi-file-cancel:before{content:"\f0dc6"}.mdi-file-cancel-outline:before{content:"\f0dc7"}.mdi-file-certificate:before{content:"\f1186"}.mdi-file-certificate-outline:before{content:"\f1187"}.mdi-file-chart:before{content:"\f0215"}.mdi-file-chart-check:before{content:"\f19c6"}.mdi-file-chart-check-outline:before{content:"\f19c7"}.mdi-file-chart-outline:before{content:"\f1029"}.mdi-file-check:before{content:"\f0216"}.mdi-file-check-outline:before{content:"\f0e29"}.mdi-file-clock:before{content:"\f12e1"}.mdi-file-clock-outline:before{content:"\f12e2"}.mdi-file-cloud:before{content:"\f0217"}.mdi-file-cloud-outline:before{content:"\f102a"}.mdi-file-code:before{content:"\f022e"}.mdi-file-code-outline:before{content:"\f102b"}.mdi-file-cog:before{content:"\f107b"}.mdi-file-cog-outline:before{content:"\f107c"}.mdi-file-compare:before{content:"\f08aa"}.mdi-file-delimited:before{content:"\f0218"}.mdi-file-delimited-outline:before{content:"\f0ea5"}.mdi-file-document:before{content:"\f0219"}.mdi-file-document-alert:before{content:"\f1a97"}.mdi-file-document-alert-outline:before{content:"\f1a98"}.mdi-file-document-arrow-right:before{content:"\f1c0f"}.mdi-file-document-arrow-right-outline:before{content:"\f1c10"}.mdi-file-document-check:before{content:"\f1a99"}.mdi-file-document-check-outline:before{content:"\f1a9a"}.mdi-file-document-edit:before{content:"\f0dc8"}.mdi-file-document-edit-outline:before{content:"\f0dc9"}.mdi-file-document-minus:before{content:"\f1a9b"}.mdi-file-document-minus-outline:before{content:"\f1a9c"}.mdi-file-document-multiple:before{content:"\f1517"}.mdi-file-document-multiple-outline:before{content:"\f1518"}.mdi-file-document-outline:before{content:"\f09ee"}.mdi-file-document-plus:before{content:"\f1a9d"}.mdi-file-document-plus-outline:before{content:"\f1a9e"}.mdi-file-document-refresh:before{content:"\f1c7a"}.mdi-file-document-refresh-outline:before{content:"\f1c7b"}.mdi-file-document-remove:before{content:"\f1a9f"}.mdi-file-document-remove-outline:before{content:"\f1aa0"}.mdi-file-download:before{content:"\f0965"}.mdi-file-download-outline:before{content:"\f0966"}.mdi-file-edit:before{content:"\f11e7"}.mdi-file-edit-outline:before{content:"\f11e8"}.mdi-file-excel:before{content:"\f021b"}.mdi-file-excel-box:before{content:"\f021c"}.mdi-file-excel-box-outline:before{content:"\f102c"}.mdi-file-excel-outline:before{content:"\f102d"}.mdi-file-export:before{content:"\f021d"}.mdi-file-export-outline:before{content:"\f102e"}.mdi-file-eye:before{content:"\f0dca"}.mdi-file-eye-outline:before{content:"\f0dcb"}.mdi-file-find:before{content:"\f021e"}.mdi-file-find-outline:before{content:"\f0b97"}.mdi-file-gif-box:before{content:"\f0d78"}.mdi-file-hidden:before{content:"\f0613"}.mdi-file-image:before{content:"\f021f"}.mdi-file-image-marker:before{content:"\f1772"}.mdi-file-image-marker-outline:before{content:"\f1773"}.mdi-file-image-minus:before{content:"\f193b"}.mdi-file-image-minus-outline:before{content:"\f193c"}.mdi-file-image-outline:before{content:"\f0eb0"}.mdi-file-image-plus:before{content:"\f193d"}.mdi-file-image-plus-outline:before{content:"\f193e"}.mdi-file-image-remove:before{content:"\f193f"}.mdi-file-image-remove-outline:before{content:"\f1940"}.mdi-file-import:before{content:"\f0220"}.mdi-file-import-outline:before{content:"\f102f"}.mdi-file-jpg-box:before{content:"\f0225"}.mdi-file-key:before{content:"\f1184"}.mdi-file-key-outline:before{content:"\f1185"}.mdi-file-link:before{content:"\f1177"}.mdi-file-link-outline:before{content:"\f1178"}.mdi-file-lock:before{content:"\f0221"}.mdi-file-lock-open:before{content:"\f19c8"}.mdi-file-lock-open-outline:before{content:"\f19c9"}.mdi-file-lock-outline:before{content:"\f1030"}.mdi-file-marker:before{content:"\f1774"}.mdi-file-marker-outline:before{content:"\f1775"}.mdi-file-minus:before{content:"\f1aa1"}.mdi-file-minus-outline:before{content:"\f1aa2"}.mdi-file-move:before{content:"\f0ab9"}.mdi-file-move-outline:before{content:"\f1031"}.mdi-file-multiple:before{content:"\f0222"}.mdi-file-multiple-outline:before{content:"\f1032"}.mdi-file-music:before{content:"\f0223"}.mdi-file-music-outline:before{content:"\f0e2a"}.mdi-file-outline:before{content:"\f0224"}.mdi-file-pdf-box:before{content:"\f0226"}.mdi-file-percent:before{content:"\f081e"}.mdi-file-percent-outline:before{content:"\f1033"}.mdi-file-phone:before{content:"\f1179"}.mdi-file-phone-outline:before{content:"\f117a"}.mdi-file-plus:before{content:"\f0752"}.mdi-file-plus-outline:before{content:"\f0eed"}.mdi-file-png-box:before{content:"\f0e2d"}.mdi-file-powerpoint:before{content:"\f0227"}.mdi-file-powerpoint-box:before{content:"\f0228"}.mdi-file-powerpoint-box-outline:before{content:"\f1034"}.mdi-file-powerpoint-outline:before{content:"\f1035"}.mdi-file-presentation-box:before{content:"\f0229"}.mdi-file-question:before{content:"\f086f"}.mdi-file-question-outline:before{content:"\f1036"}.mdi-file-refresh:before{content:"\f0918"}.mdi-file-refresh-outline:before{content:"\f0541"}.mdi-file-remove:before{content:"\f0b98"}.mdi-file-remove-outline:before{content:"\f1037"}.mdi-file-replace:before{content:"\f0b32"}.mdi-file-replace-outline:before{content:"\f0b33"}.mdi-file-restore:before{content:"\f0670"}.mdi-file-restore-outline:before{content:"\f1038"}.mdi-file-rotate-left:before{content:"\f1a3b"}.mdi-file-rotate-left-outline:before{content:"\f1a3c"}.mdi-file-rotate-right:before{content:"\f1a3d"}.mdi-file-rotate-right-outline:before{content:"\f1a3e"}.mdi-file-search:before{content:"\f0c7c"}.mdi-file-search-outline:before{content:"\f0c7d"}.mdi-file-send:before{content:"\f022a"}.mdi-file-send-outline:before{content:"\f1039"}.mdi-file-settings:before{content:"\f1079"}.mdi-file-settings-outline:before{content:"\f107a"}.mdi-file-sign:before{content:"\f19c3"}.mdi-file-star:before{content:"\f103a"}.mdi-file-star-four-points:before{content:"\f1c2d"}.mdi-file-star-four-points-outline:before{content:"\f1c2e"}.mdi-file-star-outline:before{content:"\f103b"}.mdi-file-swap:before{content:"\f0fb4"}.mdi-file-swap-outline:before{content:"\f0fb5"}.mdi-file-sync:before{content:"\f1216"}.mdi-file-sync-outline:before{content:"\f1217"}.mdi-file-table:before{content:"\f0c7e"}.mdi-file-table-box:before{content:"\f10e1"}.mdi-file-table-box-multiple:before{content:"\f10e2"}.mdi-file-table-box-multiple-outline:before{content:"\f10e3"}.mdi-file-table-box-outline:before{content:"\f10e4"}.mdi-file-table-outline:before{content:"\f0c7f"}.mdi-file-tree:before{content:"\f0645"}.mdi-file-tree-outline:before{content:"\f13d2"}.mdi-file-undo:before{content:"\f08dc"}.mdi-file-undo-outline:before{content:"\f103c"}.mdi-file-upload:before{content:"\f0a4d"}.mdi-file-upload-outline:before{content:"\f0a4e"}.mdi-file-video:before{content:"\f022b"}.mdi-file-video-outline:before{content:"\f0e2c"}.mdi-file-word:before{content:"\f022c"}.mdi-file-word-box:before{content:"\f022d"}.mdi-file-word-box-outline:before{content:"\f103d"}.mdi-file-word-outline:before{content:"\f103e"}.mdi-file-xml-box:before{content:"\f1b4b"}.mdi-film:before{content:"\f022f"}.mdi-filmstrip:before{content:"\f0230"}.mdi-filmstrip-box:before{content:"\f0332"}.mdi-filmstrip-box-multiple:before{content:"\f0d18"}.mdi-filmstrip-off:before{content:"\f0231"}.mdi-filter:before{content:"\f0232"}.mdi-filter-check:before{content:"\f18ec"}.mdi-filter-check-outline:before{content:"\f18ed"}.mdi-filter-cog:before{content:"\f1aa3"}.mdi-filter-cog-outline:before{content:"\f1aa4"}.mdi-filter-menu:before{content:"\f10e5"}.mdi-filter-menu-outline:before{content:"\f10e6"}.mdi-filter-minus:before{content:"\f0eee"}.mdi-filter-minus-outline:before{content:"\f0eef"}.mdi-filter-multiple:before{content:"\f1a3f"}.mdi-filter-multiple-outline:before{content:"\f1a40"}.mdi-filter-off:before{content:"\f14ef"}.mdi-filter-off-outline:before{content:"\f14f0"}.mdi-filter-outline:before{content:"\f0233"}.mdi-filter-plus:before{content:"\f0ef0"}.mdi-filter-plus-outline:before{content:"\f0ef1"}.mdi-filter-remove:before{content:"\f0234"}.mdi-filter-remove-outline:before{content:"\f0235"}.mdi-filter-settings:before{content:"\f1aa5"}.mdi-filter-settings-outline:before{content:"\f1aa6"}.mdi-filter-variant:before{content:"\f0236"}.mdi-filter-variant-minus:before{content:"\f1112"}.mdi-filter-variant-plus:before{content:"\f1113"}.mdi-filter-variant-remove:before{content:"\f103f"}.mdi-finance:before{content:"\f081f"}.mdi-find-replace:before{content:"\f06d4"}.mdi-fingerprint:before{content:"\f0237"}.mdi-fingerprint-off:before{content:"\f0eb1"}.mdi-fire:before{content:"\f0238"}.mdi-fire-alert:before{content:"\f15d7"}.mdi-fire-circle:before{content:"\f1807"}.mdi-fire-extinguisher:before{content:"\f0ef2"}.mdi-fire-hydrant:before{content:"\f1137"}.mdi-fire-hydrant-alert:before{content:"\f1138"}.mdi-fire-hydrant-off:before{content:"\f1139"}.mdi-fire-off:before{content:"\f1722"}.mdi-fire-station:before{content:"\f1cc3"}.mdi-fire-truck:before{content:"\f08ab"}.mdi-firebase:before{content:"\f0967"}.mdi-firefox:before{content:"\f0239"}.mdi-fireplace:before{content:"\f0e2e"}.mdi-fireplace-off:before{content:"\f0e2f"}.mdi-firewire:before{content:"\f05be"}.mdi-firework:before{content:"\f0e30"}.mdi-firework-off:before{content:"\f1723"}.mdi-fish:before{content:"\f023a"}.mdi-fish-off:before{content:"\f13f3"}.mdi-fishbowl:before{content:"\f0ef3"}.mdi-fishbowl-outline:before{content:"\f0ef4"}.mdi-fit-to-page:before{content:"\f0ef5"}.mdi-fit-to-page-outline:before{content:"\f0ef6"}.mdi-fit-to-screen:before{content:"\f18f4"}.mdi-fit-to-screen-outline:before{content:"\f18f5"}.mdi-flag:before{content:"\f023b"}.mdi-flag-checkered:before{content:"\f023c"}.mdi-flag-minus:before{content:"\f0b99"}.mdi-flag-minus-outline:before{content:"\f10b2"}.mdi-flag-off:before{content:"\f18ee"}.mdi-flag-off-outline:before{content:"\f18ef"}.mdi-flag-outline:before{content:"\f023d"}.mdi-flag-plus:before{content:"\f0b9a"}.mdi-flag-plus-outline:before{content:"\f10b3"}.mdi-flag-remove:before{content:"\f0b9b"}.mdi-flag-remove-outline:before{content:"\f10b4"}.mdi-flag-triangle:before{content:"\f023f"}.mdi-flag-variant:before{content:"\f0240"}.mdi-flag-variant-minus:before{content:"\f1bb4"}.mdi-flag-variant-minus-outline:before{content:"\f1bb5"}.mdi-flag-variant-off:before{content:"\f1bb0"}.mdi-flag-variant-off-outline:before{content:"\f1bb1"}.mdi-flag-variant-outline:before{content:"\f023e"}.mdi-flag-variant-plus:before{content:"\f1bb2"}.mdi-flag-variant-plus-outline:before{content:"\f1bb3"}.mdi-flag-variant-remove:before{content:"\f1bb6"}.mdi-flag-variant-remove-outline:before{content:"\f1bb7"}.mdi-flare:before{content:"\f0d72"}.mdi-flash:before{content:"\f0241"}.mdi-flash-alert:before{content:"\f0ef7"}.mdi-flash-alert-outline:before{content:"\f0ef8"}.mdi-flash-auto:before{content:"\f0242"}.mdi-flash-off:before{content:"\f0243"}.mdi-flash-off-outline:before{content:"\f1b45"}.mdi-flash-outline:before{content:"\f06d5"}.mdi-flash-red-eye:before{content:"\f067b"}.mdi-flash-triangle:before{content:"\f1b1d"}.mdi-flash-triangle-outline:before{content:"\f1b1e"}.mdi-flashlight:before{content:"\f0244"}.mdi-flashlight-off:before{content:"\f0245"}.mdi-flask:before{content:"\f0093"}.mdi-flask-empty:before{content:"\f0094"}.mdi-flask-empty-minus:before{content:"\f123a"}.mdi-flask-empty-minus-outline:before{content:"\f123b"}.mdi-flask-empty-off:before{content:"\f13f4"}.mdi-flask-empty-off-outline:before{content:"\f13f5"}.mdi-flask-empty-outline:before{content:"\f0095"}.mdi-flask-empty-plus:before{content:"\f123c"}.mdi-flask-empty-plus-outline:before{content:"\f123d"}.mdi-flask-empty-remove:before{content:"\f123e"}.mdi-flask-empty-remove-outline:before{content:"\f123f"}.mdi-flask-minus:before{content:"\f1240"}.mdi-flask-minus-outline:before{content:"\f1241"}.mdi-flask-off:before{content:"\f13f6"}.mdi-flask-off-outline:before{content:"\f13f7"}.mdi-flask-outline:before{content:"\f0096"}.mdi-flask-plus:before{content:"\f1242"}.mdi-flask-plus-outline:before{content:"\f1243"}.mdi-flask-remove:before{content:"\f1244"}.mdi-flask-remove-outline:before{content:"\f1245"}.mdi-flask-round-bottom:before{content:"\f124b"}.mdi-flask-round-bottom-empty:before{content:"\f124c"}.mdi-flask-round-bottom-empty-outline:before{content:"\f124d"}.mdi-flask-round-bottom-outline:before{content:"\f124e"}.mdi-fleur-de-lis:before{content:"\f1303"}.mdi-flip-horizontal:before{content:"\f10e7"}.mdi-flip-to-back:before{content:"\f0247"}.mdi-flip-to-front:before{content:"\f0248"}.mdi-flip-vertical:before{content:"\f10e8"}.mdi-floor-lamp:before{content:"\f08dd"}.mdi-floor-lamp-dual:before{content:"\f1040"}.mdi-floor-lamp-dual-outline:before{content:"\f17ce"}.mdi-floor-lamp-outline:before{content:"\f17c8"}.mdi-floor-lamp-torchiere:before{content:"\f1747"}.mdi-floor-lamp-torchiere-outline:before{content:"\f17d6"}.mdi-floor-lamp-torchiere-variant:before{content:"\f1041"}.mdi-floor-lamp-torchiere-variant-outline:before{content:"\f17cf"}.mdi-floor-plan:before{content:"\f0821"}.mdi-floppy:before{content:"\f0249"}.mdi-floppy-variant:before{content:"\f09ef"}.mdi-flower:before{content:"\f024a"}.mdi-flower-outline:before{content:"\f09f0"}.mdi-flower-pollen:before{content:"\f1885"}.mdi-flower-pollen-outline:before{content:"\f1886"}.mdi-flower-poppy:before{content:"\f0d08"}.mdi-flower-tulip:before{content:"\f09f1"}.mdi-flower-tulip-outline:before{content:"\f09f2"}.mdi-focus-auto:before{content:"\f0f4e"}.mdi-focus-field:before{content:"\f0f4f"}.mdi-focus-field-horizontal:before{content:"\f0f50"}.mdi-focus-field-vertical:before{content:"\f0f51"}.mdi-folder:before{content:"\f024b"}.mdi-folder-account:before{content:"\f024c"}.mdi-folder-account-outline:before{content:"\f0b9c"}.mdi-folder-alert:before{content:"\f0dcc"}.mdi-folder-alert-outline:before{content:"\f0dcd"}.mdi-folder-arrow-down:before{content:"\f19e8"}.mdi-folder-arrow-down-outline:before{content:"\f19e9"}.mdi-folder-arrow-left:before{content:"\f19ea"}.mdi-folder-arrow-left-outline:before{content:"\f19eb"}.mdi-folder-arrow-left-right:before{content:"\f19ec"}.mdi-folder-arrow-left-right-outline:before{content:"\f19ed"}.mdi-folder-arrow-right:before{content:"\f19ee"}.mdi-folder-arrow-right-outline:before{content:"\f19ef"}.mdi-folder-arrow-up:before{content:"\f19f0"}.mdi-folder-arrow-up-down:before{content:"\f19f1"}.mdi-folder-arrow-up-down-outline:before{content:"\f19f2"}.mdi-folder-arrow-up-outline:before{content:"\f19f3"}.mdi-folder-cancel:before{content:"\f19f4"}.mdi-folder-cancel-outline:before{content:"\f19f5"}.mdi-folder-check:before{content:"\f197e"}.mdi-folder-check-outline:before{content:"\f197f"}.mdi-folder-clock:before{content:"\f0aba"}.mdi-folder-clock-outline:before{content:"\f0abb"}.mdi-folder-cog:before{content:"\f107f"}.mdi-folder-cog-outline:before{content:"\f1080"}.mdi-folder-download:before{content:"\f024d"}.mdi-folder-download-outline:before{content:"\f10e9"}.mdi-folder-edit:before{content:"\f08de"}.mdi-folder-edit-outline:before{content:"\f0dce"}.mdi-folder-eye:before{content:"\f178a"}.mdi-folder-eye-outline:before{content:"\f178b"}.mdi-folder-file:before{content:"\f19f6"}.mdi-folder-file-outline:before{content:"\f19f7"}.mdi-folder-google-drive:before{content:"\f024e"}.mdi-folder-heart:before{content:"\f10ea"}.mdi-folder-heart-outline:before{content:"\f10eb"}.mdi-folder-hidden:before{content:"\f179e"}.mdi-folder-home:before{content:"\f10b5"}.mdi-folder-home-outline:before{content:"\f10b6"}.mdi-folder-image:before{content:"\f024f"}.mdi-folder-information:before{content:"\f10b7"}.mdi-folder-information-outline:before{content:"\f10b8"}.mdi-folder-key:before{content:"\f08ac"}.mdi-folder-key-network:before{content:"\f08ad"}.mdi-folder-key-network-outline:before{content:"\f0c80"}.mdi-folder-key-outline:before{content:"\f10ec"}.mdi-folder-lock:before{content:"\f0250"}.mdi-folder-lock-open:before{content:"\f0251"}.mdi-folder-lock-open-outline:before{content:"\f1aa7"}.mdi-folder-lock-outline:before{content:"\f1aa8"}.mdi-folder-marker:before{content:"\f126d"}.mdi-folder-marker-outline:before{content:"\f126e"}.mdi-folder-minus:before{content:"\f1b49"}.mdi-folder-minus-outline:before{content:"\f1b4a"}.mdi-folder-move:before{content:"\f0252"}.mdi-folder-move-outline:before{content:"\f1246"}.mdi-folder-multiple:before{content:"\f0253"}.mdi-folder-multiple-image:before{content:"\f0254"}.mdi-folder-multiple-outline:before{content:"\f0255"}.mdi-folder-multiple-plus:before{content:"\f147e"}.mdi-folder-multiple-plus-outline:before{content:"\f147f"}.mdi-folder-music:before{content:"\f1359"}.mdi-folder-music-outline:before{content:"\f135a"}.mdi-folder-network:before{content:"\f0870"}.mdi-folder-network-outline:before{content:"\f0c81"}.mdi-folder-off:before{content:"\f19f8"}.mdi-folder-off-outline:before{content:"\f19f9"}.mdi-folder-open:before{content:"\f0770"}.mdi-folder-open-outline:before{content:"\f0dcf"}.mdi-folder-outline:before{content:"\f0256"}.mdi-folder-play:before{content:"\f19fa"}.mdi-folder-play-outline:before{content:"\f19fb"}.mdi-folder-plus:before{content:"\f0257"}.mdi-folder-plus-outline:before{content:"\f0b9d"}.mdi-folder-pound:before{content:"\f0d09"}.mdi-folder-pound-outline:before{content:"\f0d0a"}.mdi-folder-question:before{content:"\f19ca"}.mdi-folder-question-outline:before{content:"\f19cb"}.mdi-folder-refresh:before{content:"\f0749"}.mdi-folder-refresh-outline:before{content:"\f0542"}.mdi-folder-remove:before{content:"\f0258"}.mdi-folder-remove-outline:before{content:"\f0b9e"}.mdi-folder-search:before{content:"\f0968"}.mdi-folder-search-outline:before{content:"\f0969"}.mdi-folder-settings:before{content:"\f107d"}.mdi-folder-settings-outline:before{content:"\f107e"}.mdi-folder-star:before{content:"\f069d"}.mdi-folder-star-multiple:before{content:"\f13d3"}.mdi-folder-star-multiple-outline:before{content:"\f13d4"}.mdi-folder-star-outline:before{content:"\f0b9f"}.mdi-folder-swap:before{content:"\f0fb6"}.mdi-folder-swap-outline:before{content:"\f0fb7"}.mdi-folder-sync:before{content:"\f0d0b"}.mdi-folder-sync-outline:before{content:"\f0d0c"}.mdi-folder-table:before{content:"\f12e3"}.mdi-folder-table-outline:before{content:"\f12e4"}.mdi-folder-text:before{content:"\f0c82"}.mdi-folder-text-outline:before{content:"\f0c83"}.mdi-folder-upload:before{content:"\f0259"}.mdi-folder-upload-outline:before{content:"\f10ed"}.mdi-folder-wrench:before{content:"\f19fc"}.mdi-folder-wrench-outline:before{content:"\f19fd"}.mdi-folder-zip:before{content:"\f06eb"}.mdi-folder-zip-outline:before{content:"\f07b9"}.mdi-font-awesome:before{content:"\f003a"}.mdi-food:before{content:"\f025a"}.mdi-food-apple:before{content:"\f025b"}.mdi-food-apple-outline:before{content:"\f0c84"}.mdi-food-croissant:before{content:"\f07c8"}.mdi-food-drumstick:before{content:"\f141f"}.mdi-food-drumstick-off:before{content:"\f1468"}.mdi-food-drumstick-off-outline:before{content:"\f1469"}.mdi-food-drumstick-outline:before{content:"\f1420"}.mdi-food-fork-drink:before{content:"\f05f2"}.mdi-food-halal:before{content:"\f1572"}.mdi-food-hot-dog:before{content:"\f184b"}.mdi-food-kosher:before{content:"\f1573"}.mdi-food-off:before{content:"\f05f3"}.mdi-food-off-outline:before{content:"\f1915"}.mdi-food-outline:before{content:"\f1916"}.mdi-food-steak:before{content:"\f146a"}.mdi-food-steak-off:before{content:"\f146b"}.mdi-food-takeout-box:before{content:"\f1836"}.mdi-food-takeout-box-outline:before{content:"\f1837"}.mdi-food-turkey:before{content:"\f171c"}.mdi-food-variant:before{content:"\f025c"}.mdi-food-variant-off:before{content:"\f13e5"}.mdi-foot-print:before{content:"\f0f52"}.mdi-football:before{content:"\f025d"}.mdi-football-australian:before{content:"\f025e"}.mdi-football-helmet:before{content:"\f025f"}.mdi-forest:before{content:"\f1897"}.mdi-forest-outline:before{content:"\f1c63"}.mdi-forklift:before{content:"\f07c9"}.mdi-form-dropdown:before{content:"\f1400"}.mdi-form-select:before{content:"\f1401"}.mdi-form-textarea:before{content:"\f1095"}.mdi-form-textbox:before{content:"\f060e"}.mdi-form-textbox-lock:before{content:"\f135d"}.mdi-form-textbox-password:before{content:"\f07f5"}.mdi-format-align-bottom:before{content:"\f0753"}.mdi-format-align-center:before{content:"\f0260"}.mdi-format-align-justify:before{content:"\f0261"}.mdi-format-align-left:before{content:"\f0262"}.mdi-format-align-middle:before{content:"\f0754"}.mdi-format-align-right:before{content:"\f0263"}.mdi-format-align-top:before{content:"\f0755"}.mdi-format-annotation-minus:before{content:"\f0abc"}.mdi-format-annotation-plus:before{content:"\f0646"}.mdi-format-bold:before{content:"\f0264"}.mdi-format-clear:before{content:"\f0265"}.mdi-format-color-fill:before{content:"\f0266"}.mdi-format-color-highlight:before{content:"\f0e31"}.mdi-format-color-marker-cancel:before{content:"\f1313"}.mdi-format-color-text:before{content:"\f069e"}.mdi-format-columns:before{content:"\f08df"}.mdi-format-float-center:before{content:"\f0267"}.mdi-format-float-left:before{content:"\f0268"}.mdi-format-float-none:before{content:"\f0269"}.mdi-format-float-right:before{content:"\f026a"}.mdi-format-font:before{content:"\f06d6"}.mdi-format-font-size-decrease:before{content:"\f09f3"}.mdi-format-font-size-increase:before{content:"\f09f4"}.mdi-format-header-1:before{content:"\f026b"}.mdi-format-header-2:before{content:"\f026c"}.mdi-format-header-3:before{content:"\f026d"}.mdi-format-header-4:before{content:"\f026e"}.mdi-format-header-5:before{content:"\f026f"}.mdi-format-header-6:before{content:"\f0270"}.mdi-format-header-decrease:before{content:"\f0271"}.mdi-format-header-equal:before{content:"\f0272"}.mdi-format-header-increase:before{content:"\f0273"}.mdi-format-header-pound:before{content:"\f0274"}.mdi-format-horizontal-align-center:before{content:"\f061e"}.mdi-format-horizontal-align-left:before{content:"\f061f"}.mdi-format-horizontal-align-right:before{content:"\f0620"}.mdi-format-indent-decrease:before{content:"\f0275"}.mdi-format-indent-increase:before{content:"\f0276"}.mdi-format-italic:before{content:"\f0277"}.mdi-format-letter-case:before{content:"\f0b34"}.mdi-format-letter-case-lower:before{content:"\f0b35"}.mdi-format-letter-case-upper:before{content:"\f0b36"}.mdi-format-letter-ends-with:before{content:"\f0fb8"}.mdi-format-letter-matches:before{content:"\f0fb9"}.mdi-format-letter-spacing:before{content:"\f1956"}.mdi-format-letter-spacing-variant:before{content:"\f1afb"}.mdi-format-letter-starts-with:before{content:"\f0fba"}.mdi-format-line-height:before{content:"\f1afc"}.mdi-format-line-spacing:before{content:"\f0278"}.mdi-format-line-style:before{content:"\f05c8"}.mdi-format-line-weight:before{content:"\f05c9"}.mdi-format-list-bulleted:before{content:"\f0279"}.mdi-format-list-bulleted-square:before{content:"\f0dd0"}.mdi-format-list-bulleted-triangle:before{content:"\f0eb2"}.mdi-format-list-bulleted-type:before{content:"\f027a"}.mdi-format-list-checkbox:before{content:"\f096a"}.mdi-format-list-checks:before{content:"\f0756"}.mdi-format-list-group:before{content:"\f1860"}.mdi-format-list-group-plus:before{content:"\f1b56"}.mdi-format-list-numbered:before{content:"\f027b"}.mdi-format-list-numbered-rtl:before{content:"\f0d0d"}.mdi-format-list-text:before{content:"\f126f"}.mdi-format-overline:before{content:"\f0eb3"}.mdi-format-page-break:before{content:"\f06d7"}.mdi-format-page-split:before{content:"\f1917"}.mdi-format-paint:before{content:"\f027c"}.mdi-format-paragraph:before{content:"\f027d"}.mdi-format-paragraph-spacing:before{content:"\f1afd"}.mdi-format-pilcrow:before{content:"\f06d8"}.mdi-format-pilcrow-arrow-left:before{content:"\f0286"}.mdi-format-pilcrow-arrow-right:before{content:"\f0285"}.mdi-format-quote-close:before{content:"\f027e"}.mdi-format-quote-close-outline:before{content:"\f11a8"}.mdi-format-quote-open:before{content:"\f0757"}.mdi-format-quote-open-outline:before{content:"\f11a7"}.mdi-format-rotate-90:before{content:"\f06aa"}.mdi-format-section:before{content:"\f069f"}.mdi-format-size:before{content:"\f027f"}.mdi-format-strikethrough:before{content:"\f0280"}.mdi-format-strikethrough-variant:before{content:"\f0281"}.mdi-format-subscript:before{content:"\f0282"}.mdi-format-superscript:before{content:"\f0283"}.mdi-format-text:before{content:"\f0284"}.mdi-format-text-rotation-angle-down:before{content:"\f0fbb"}.mdi-format-text-rotation-angle-up:before{content:"\f0fbc"}.mdi-format-text-rotation-down:before{content:"\f0d73"}.mdi-format-text-rotation-down-vertical:before{content:"\f0fbd"}.mdi-format-text-rotation-none:before{content:"\f0d74"}.mdi-format-text-rotation-up:before{content:"\f0fbe"}.mdi-format-text-rotation-vertical:before{content:"\f0fbf"}.mdi-format-text-variant:before{content:"\f0e32"}.mdi-format-text-variant-outline:before{content:"\f150f"}.mdi-format-text-wrapping-clip:before{content:"\f0d0e"}.mdi-format-text-wrapping-overflow:before{content:"\f0d0f"}.mdi-format-text-wrapping-wrap:before{content:"\f0d10"}.mdi-format-textbox:before{content:"\f0d11"}.mdi-format-title:before{content:"\f05f4"}.mdi-format-underline:before{content:"\f0287"}.mdi-format-underline-wavy:before{content:"\f18e9"}.mdi-format-vertical-align-bottom:before{content:"\f0621"}.mdi-format-vertical-align-center:before{content:"\f0622"}.mdi-format-vertical-align-top:before{content:"\f0623"}.mdi-format-wrap-inline:before{content:"\f0288"}.mdi-format-wrap-square:before{content:"\f0289"}.mdi-format-wrap-tight:before{content:"\f028a"}.mdi-format-wrap-top-bottom:before{content:"\f028b"}.mdi-forum:before{content:"\f028c"}.mdi-forum-minus:before{content:"\f1aa9"}.mdi-forum-minus-outline:before{content:"\f1aaa"}.mdi-forum-outline:before{content:"\f0822"}.mdi-forum-plus:before{content:"\f1aab"}.mdi-forum-plus-outline:before{content:"\f1aac"}.mdi-forum-remove:before{content:"\f1aad"}.mdi-forum-remove-outline:before{content:"\f1aae"}.mdi-forward:before{content:"\f028d"}.mdi-forwardburger:before{content:"\f0d75"}.mdi-fountain:before{content:"\f096b"}.mdi-fountain-pen:before{content:"\f0d12"}.mdi-fountain-pen-tip:before{content:"\f0d13"}.mdi-fraction-one-half:before{content:"\f1992"}.mdi-freebsd:before{content:"\f08e0"}.mdi-french-fries:before{content:"\f1957"}.mdi-frequently-asked-questions:before{content:"\f0eb4"}.mdi-fridge:before{content:"\f0290"}.mdi-fridge-alert:before{content:"\f11b1"}.mdi-fridge-alert-outline:before{content:"\f11b2"}.mdi-fridge-bottom:before{content:"\f0292"}.mdi-fridge-industrial:before{content:"\f15ee"}.mdi-fridge-industrial-alert:before{content:"\f15ef"}.mdi-fridge-industrial-alert-outline:before{content:"\f15f0"}.mdi-fridge-industrial-off:before{content:"\f15f1"}.mdi-fridge-industrial-off-outline:before{content:"\f15f2"}.mdi-fridge-industrial-outline:before{content:"\f15f3"}.mdi-fridge-off:before{content:"\f11af"}.mdi-fridge-off-outline:before{content:"\f11b0"}.mdi-fridge-outline:before{content:"\f028f"}.mdi-fridge-top:before{content:"\f0291"}.mdi-fridge-variant:before{content:"\f15f4"}.mdi-fridge-variant-alert:before{content:"\f15f5"}.mdi-fridge-variant-alert-outline:before{content:"\f15f6"}.mdi-fridge-variant-off:before{content:"\f15f7"}.mdi-fridge-variant-off-outline:before{content:"\f15f8"}.mdi-fridge-variant-outline:before{content:"\f15f9"}.mdi-fruit-cherries:before{content:"\f1042"}.mdi-fruit-cherries-off:before{content:"\f13f8"}.mdi-fruit-citrus:before{content:"\f1043"}.mdi-fruit-citrus-off:before{content:"\f13f9"}.mdi-fruit-grapes:before{content:"\f1044"}.mdi-fruit-grapes-outline:before{content:"\f1045"}.mdi-fruit-pear:before{content:"\f1a0e"}.mdi-fruit-pineapple:before{content:"\f1046"}.mdi-fruit-watermelon:before{content:"\f1047"}.mdi-fuel:before{content:"\f07ca"}.mdi-fuel-cell:before{content:"\f18b5"}.mdi-fullscreen:before{content:"\f0293"}.mdi-fullscreen-exit:before{content:"\f0294"}.mdi-function:before{content:"\f0295"}.mdi-function-variant:before{content:"\f0871"}.mdi-furigana-horizontal:before{content:"\f1081"}.mdi-furigana-vertical:before{content:"\f1082"}.mdi-fuse:before{content:"\f0c85"}.mdi-fuse-alert:before{content:"\f142d"}.mdi-fuse-blade:before{content:"\f0c86"}.mdi-fuse-off:before{content:"\f142c"}.mdi-gamepad:before{content:"\f0296"}.mdi-gamepad-circle:before{content:"\f0e33"}.mdi-gamepad-circle-down:before{content:"\f0e34"}.mdi-gamepad-circle-left:before{content:"\f0e35"}.mdi-gamepad-circle-outline:before{content:"\f0e36"}.mdi-gamepad-circle-right:before{content:"\f0e37"}.mdi-gamepad-circle-up:before{content:"\f0e38"}.mdi-gamepad-down:before{content:"\f0e39"}.mdi-gamepad-left:before{content:"\f0e3a"}.mdi-gamepad-outline:before{content:"\f1919"}.mdi-gamepad-right:before{content:"\f0e3b"}.mdi-gamepad-round:before{content:"\f0e3c"}.mdi-gamepad-round-down:before{content:"\f0e3d"}.mdi-gamepad-round-left:before{content:"\f0e3e"}.mdi-gamepad-round-outline:before{content:"\f0e3f"}.mdi-gamepad-round-right:before{content:"\f0e40"}.mdi-gamepad-round-up:before{content:"\f0e41"}.mdi-gamepad-square:before{content:"\f0eb5"}.mdi-gamepad-square-outline:before{content:"\f0eb6"}.mdi-gamepad-up:before{content:"\f0e42"}.mdi-gamepad-variant:before{content:"\f0297"}.mdi-gamepad-variant-outline:before{content:"\f0eb7"}.mdi-gamma:before{content:"\f10ee"}.mdi-gantry-crane:before{content:"\f0dd1"}.mdi-garage:before{content:"\f06d9"}.mdi-garage-alert:before{content:"\f0872"}.mdi-garage-alert-variant:before{content:"\f12d5"}.mdi-garage-lock:before{content:"\f17fb"}.mdi-garage-open:before{content:"\f06da"}.mdi-garage-open-variant:before{content:"\f12d4"}.mdi-garage-variant:before{content:"\f12d3"}.mdi-garage-variant-lock:before{content:"\f17fc"}.mdi-gas-burner:before{content:"\f1a1b"}.mdi-gas-cylinder:before{content:"\f0647"}.mdi-gas-station:before{content:"\f0298"}.mdi-gas-station-in-use:before{content:"\f1cc4"}.mdi-gas-station-in-use-outline:before{content:"\f1cc5"}.mdi-gas-station-off:before{content:"\f1409"}.mdi-gas-station-off-outline:before{content:"\f140a"}.mdi-gas-station-outline:before{content:"\f0eb8"}.mdi-gate:before{content:"\f0299"}.mdi-gate-alert:before{content:"\f17f8"}.mdi-gate-and:before{content:"\f08e1"}.mdi-gate-arrow-left:before{content:"\f17f7"}.mdi-gate-arrow-right:before{content:"\f1169"}.mdi-gate-buffer:before{content:"\f1afe"}.mdi-gate-nand:before{content:"\f08e2"}.mdi-gate-nor:before{content:"\f08e3"}.mdi-gate-not:before{content:"\f08e4"}.mdi-gate-open:before{content:"\f116a"}.mdi-gate-or:before{content:"\f08e5"}.mdi-gate-xnor:before{content:"\f08e6"}.mdi-gate-xor:before{content:"\f08e7"}.mdi-gatsby:before{content:"\f0e43"}.mdi-gauge:before{content:"\f029a"}.mdi-gauge-empty:before{content:"\f0873"}.mdi-gauge-full:before{content:"\f0874"}.mdi-gauge-low:before{content:"\f0875"}.mdi-gavel:before{content:"\f029b"}.mdi-gender-female:before{content:"\f029c"}.mdi-gender-male:before{content:"\f029d"}.mdi-gender-male-female:before{content:"\f029e"}.mdi-gender-male-female-variant:before{content:"\f113f"}.mdi-gender-non-binary:before{content:"\f1140"}.mdi-gender-transgender:before{content:"\f029f"}.mdi-generator-mobile:before{content:"\f1c8a"}.mdi-generator-portable:before{content:"\f1c8b"}.mdi-generator-stationary:before{content:"\f1c8c"}.mdi-gentoo:before{content:"\f08e8"}.mdi-gesture:before{content:"\f07cb"}.mdi-gesture-double-tap:before{content:"\f073c"}.mdi-gesture-pinch:before{content:"\f0abd"}.mdi-gesture-spread:before{content:"\f0abe"}.mdi-gesture-swipe:before{content:"\f0d76"}.mdi-gesture-swipe-down:before{content:"\f073d"}.mdi-gesture-swipe-horizontal:before{content:"\f0abf"}.mdi-gesture-swipe-left:before{content:"\f073e"}.mdi-gesture-swipe-right:before{content:"\f073f"}.mdi-gesture-swipe-up:before{content:"\f0740"}.mdi-gesture-swipe-vertical:before{content:"\f0ac0"}.mdi-gesture-tap:before{content:"\f0741"}.mdi-gesture-tap-box:before{content:"\f12a9"}.mdi-gesture-tap-button:before{content:"\f12a8"}.mdi-gesture-tap-hold:before{content:"\f0d77"}.mdi-gesture-two-double-tap:before{content:"\f0742"}.mdi-gesture-two-tap:before{content:"\f0743"}.mdi-ghost:before{content:"\f02a0"}.mdi-ghost-off:before{content:"\f09f5"}.mdi-ghost-off-outline:before{content:"\f165c"}.mdi-ghost-outline:before{content:"\f165d"}.mdi-gift:before{content:"\f0e44"}.mdi-gift-off:before{content:"\f16ef"}.mdi-gift-off-outline:before{content:"\f16f0"}.mdi-gift-open:before{content:"\f16f1"}.mdi-gift-open-outline:before{content:"\f16f2"}.mdi-gift-outline:before{content:"\f02a1"}.mdi-git:before{content:"\f02a2"}.mdi-github:before{content:"\f02a4"}.mdi-gitlab:before{content:"\f0ba0"}.mdi-glass-cocktail:before{content:"\f0356"}.mdi-glass-cocktail-off:before{content:"\f15e6"}.mdi-glass-flute:before{content:"\f02a5"}.mdi-glass-fragile:before{content:"\f1873"}.mdi-glass-mug:before{content:"\f02a6"}.mdi-glass-mug-off:before{content:"\f15e7"}.mdi-glass-mug-variant:before{content:"\f1116"}.mdi-glass-mug-variant-off:before{content:"\f15e8"}.mdi-glass-pint-outline:before{content:"\f130d"}.mdi-glass-stange:before{content:"\f02a7"}.mdi-glass-tulip:before{content:"\f02a8"}.mdi-glass-wine:before{content:"\f0876"}.mdi-glasses:before{content:"\f02aa"}.mdi-globe-light:before{content:"\f066f"}.mdi-globe-light-outline:before{content:"\f12d7"}.mdi-globe-model:before{content:"\f08e9"}.mdi-gmail:before{content:"\f02ab"}.mdi-gnome:before{content:"\f02ac"}.mdi-go-kart:before{content:"\f0d79"}.mdi-go-kart-track:before{content:"\f0d7a"}.mdi-gog:before{content:"\f0ba1"}.mdi-gold:before{content:"\f124f"}.mdi-golf:before{content:"\f0823"}.mdi-golf-cart:before{content:"\f11a4"}.mdi-golf-tee:before{content:"\f1083"}.mdi-gondola:before{content:"\f0686"}.mdi-goodreads:before{content:"\f0d7b"}.mdi-google:before{content:"\f02ad"}.mdi-google-ads:before{content:"\f0c87"}.mdi-google-analytics:before{content:"\f07cc"}.mdi-google-assistant:before{content:"\f07cd"}.mdi-google-cardboard:before{content:"\f02ae"}.mdi-google-chrome:before{content:"\f02af"}.mdi-google-circles:before{content:"\f02b0"}.mdi-google-circles-communities:before{content:"\f02b1"}.mdi-google-circles-extended:before{content:"\f02b2"}.mdi-google-circles-group:before{content:"\f02b3"}.mdi-google-classroom:before{content:"\f02c0"}.mdi-google-cloud:before{content:"\f11f6"}.mdi-google-downasaur:before{content:"\f1362"}.mdi-google-drive:before{content:"\f02b6"}.mdi-google-earth:before{content:"\f02b7"}.mdi-google-fit:before{content:"\f096c"}.mdi-google-glass:before{content:"\f02b8"}.mdi-google-hangouts:before{content:"\f02c9"}.mdi-google-keep:before{content:"\f06dc"}.mdi-google-lens:before{content:"\f09f6"}.mdi-google-maps:before{content:"\f05f5"}.mdi-google-my-business:before{content:"\f1048"}.mdi-google-nearby:before{content:"\f02b9"}.mdi-google-play:before{content:"\f02bc"}.mdi-google-plus:before{content:"\f02bd"}.mdi-google-podcast:before{content:"\f0eb9"}.mdi-google-spreadsheet:before{content:"\f09f7"}.mdi-google-street-view:before{content:"\f0c88"}.mdi-google-translate:before{content:"\f02bf"}.mdi-gradient-horizontal:before{content:"\f174a"}.mdi-gradient-vertical:before{content:"\f06a0"}.mdi-grain:before{content:"\f0d7c"}.mdi-graph:before{content:"\f1049"}.mdi-graph-outline:before{content:"\f104a"}.mdi-graphql:before{content:"\f0877"}.mdi-grass:before{content:"\f1510"}.mdi-grave-stone:before{content:"\f0ba2"}.mdi-grease-pencil:before{content:"\f0648"}.mdi-greater-than:before{content:"\f096d"}.mdi-greater-than-or-equal:before{content:"\f096e"}.mdi-greenhouse:before{content:"\f002d"}.mdi-grid:before{content:"\f02c1"}.mdi-grid-large:before{content:"\f0758"}.mdi-grid-off:before{content:"\f02c2"}.mdi-grill:before{content:"\f0e45"}.mdi-grill-outline:before{content:"\f118a"}.mdi-group:before{content:"\f02c3"}.mdi-guitar-acoustic:before{content:"\f0771"}.mdi-guitar-electric:before{content:"\f02c4"}.mdi-guitar-pick:before{content:"\f02c5"}.mdi-guitar-pick-outline:before{content:"\f02c6"}.mdi-guy-fawkes-mask:before{content:"\f0825"}.mdi-gymnastics:before{content:"\f1a41"}.mdi-hail:before{content:"\f0ac1"}.mdi-hair-dryer:before{content:"\f10ef"}.mdi-hair-dryer-outline:before{content:"\f10f0"}.mdi-halloween:before{content:"\f0ba3"}.mdi-hamburger:before{content:"\f0685"}.mdi-hamburger-check:before{content:"\f1776"}.mdi-hamburger-minus:before{content:"\f1777"}.mdi-hamburger-off:before{content:"\f1778"}.mdi-hamburger-plus:before{content:"\f1779"}.mdi-hamburger-remove:before{content:"\f177a"}.mdi-hammer:before{content:"\f08ea"}.mdi-hammer-screwdriver:before{content:"\f1322"}.mdi-hammer-sickle:before{content:"\f1887"}.mdi-hammer-wrench:before{content:"\f1323"}.mdi-hand-back-left:before{content:"\f0e46"}.mdi-hand-back-left-off:before{content:"\f1830"}.mdi-hand-back-left-off-outline:before{content:"\f1832"}.mdi-hand-back-left-outline:before{content:"\f182c"}.mdi-hand-back-right:before{content:"\f0e47"}.mdi-hand-back-right-off:before{content:"\f1831"}.mdi-hand-back-right-off-outline:before{content:"\f1833"}.mdi-hand-back-right-outline:before{content:"\f182d"}.mdi-hand-clap:before{content:"\f194b"}.mdi-hand-clap-off:before{content:"\f1a42"}.mdi-hand-coin:before{content:"\f188f"}.mdi-hand-coin-outline:before{content:"\f1890"}.mdi-hand-cycle:before{content:"\f1b9c"}.mdi-hand-extended:before{content:"\f18b6"}.mdi-hand-extended-outline:before{content:"\f18b7"}.mdi-hand-front-left:before{content:"\f182b"}.mdi-hand-front-left-outline:before{content:"\f182e"}.mdi-hand-front-right:before{content:"\f0a4f"}.mdi-hand-front-right-outline:before{content:"\f182f"}.mdi-hand-heart:before{content:"\f10f1"}.mdi-hand-heart-outline:before{content:"\f157e"}.mdi-hand-okay:before{content:"\f0a50"}.mdi-hand-peace:before{content:"\f0a51"}.mdi-hand-peace-variant:before{content:"\f0a52"}.mdi-hand-pointing-down:before{content:"\f0a53"}.mdi-hand-pointing-left:before{content:"\f0a54"}.mdi-hand-pointing-right:before{content:"\f02c7"}.mdi-hand-pointing-up:before{content:"\f0a55"}.mdi-hand-saw:before{content:"\f0e48"}.mdi-hand-wash:before{content:"\f157f"}.mdi-hand-wash-outline:before{content:"\f1580"}.mdi-hand-water:before{content:"\f139f"}.mdi-hand-wave:before{content:"\f1821"}.mdi-hand-wave-outline:before{content:"\f1822"}.mdi-handball:before{content:"\f0f53"}.mdi-handcuffs:before{content:"\f113e"}.mdi-hands-pray:before{content:"\f0579"}.mdi-handshake:before{content:"\f1218"}.mdi-handshake-outline:before{content:"\f15a1"}.mdi-hanger:before{content:"\f02c8"}.mdi-hard-hat:before{content:"\f096f"}.mdi-harddisk:before{content:"\f02ca"}.mdi-harddisk-plus:before{content:"\f104b"}.mdi-harddisk-remove:before{content:"\f104c"}.mdi-hat-fedora:before{content:"\f0ba4"}.mdi-hazard-lights:before{content:"\f0c89"}.mdi-hdmi-port:before{content:"\f1bb8"}.mdi-hdr:before{content:"\f0d7d"}.mdi-hdr-off:before{content:"\f0d7e"}.mdi-head:before{content:"\f135e"}.mdi-head-alert:before{content:"\f1338"}.mdi-head-alert-outline:before{content:"\f1339"}.mdi-head-check:before{content:"\f133a"}.mdi-head-check-outline:before{content:"\f133b"}.mdi-head-cog:before{content:"\f133c"}.mdi-head-cog-outline:before{content:"\f133d"}.mdi-head-dots-horizontal:before{content:"\f133e"}.mdi-head-dots-horizontal-outline:before{content:"\f133f"}.mdi-head-flash:before{content:"\f1340"}.mdi-head-flash-outline:before{content:"\f1341"}.mdi-head-heart:before{content:"\f1342"}.mdi-head-heart-outline:before{content:"\f1343"}.mdi-head-lightbulb:before{content:"\f1344"}.mdi-head-lightbulb-outline:before{content:"\f1345"}.mdi-head-minus:before{content:"\f1346"}.mdi-head-minus-outline:before{content:"\f1347"}.mdi-head-outline:before{content:"\f135f"}.mdi-head-plus:before{content:"\f1348"}.mdi-head-plus-outline:before{content:"\f1349"}.mdi-head-question:before{content:"\f134a"}.mdi-head-question-outline:before{content:"\f134b"}.mdi-head-remove:before{content:"\f134c"}.mdi-head-remove-outline:before{content:"\f134d"}.mdi-head-snowflake:before{content:"\f134e"}.mdi-head-snowflake-outline:before{content:"\f134f"}.mdi-head-sync:before{content:"\f1350"}.mdi-head-sync-outline:before{content:"\f1351"}.mdi-headphones:before{content:"\f02cb"}.mdi-headphones-bluetooth:before{content:"\f0970"}.mdi-headphones-box:before{content:"\f02cc"}.mdi-headphones-off:before{content:"\f07ce"}.mdi-headphones-settings:before{content:"\f02cd"}.mdi-headset:before{content:"\f02ce"}.mdi-headset-dock:before{content:"\f02cf"}.mdi-headset-off:before{content:"\f02d0"}.mdi-heart:before{content:"\f02d1"}.mdi-heart-box:before{content:"\f02d2"}.mdi-heart-box-outline:before{content:"\f02d3"}.mdi-heart-broken:before{content:"\f02d4"}.mdi-heart-broken-outline:before{content:"\f0d14"}.mdi-heart-circle:before{content:"\f0971"}.mdi-heart-circle-outline:before{content:"\f0972"}.mdi-heart-cog:before{content:"\f1663"}.mdi-heart-cog-outline:before{content:"\f1664"}.mdi-heart-flash:before{content:"\f0ef9"}.mdi-heart-half:before{content:"\f06df"}.mdi-heart-half-full:before{content:"\f06de"}.mdi-heart-half-outline:before{content:"\f06e0"}.mdi-heart-minus:before{content:"\f142f"}.mdi-heart-minus-outline:before{content:"\f1432"}.mdi-heart-multiple:before{content:"\f0a56"}.mdi-heart-multiple-outline:before{content:"\f0a57"}.mdi-heart-off:before{content:"\f0759"}.mdi-heart-off-outline:before{content:"\f1434"}.mdi-heart-outline:before{content:"\f02d5"}.mdi-heart-plus:before{content:"\f142e"}.mdi-heart-plus-outline:before{content:"\f1431"}.mdi-heart-pulse:before{content:"\f05f6"}.mdi-heart-remove:before{content:"\f1430"}.mdi-heart-remove-outline:before{content:"\f1433"}.mdi-heart-search:before{content:"\f1c8d"}.mdi-heart-settings:before{content:"\f1665"}.mdi-heart-settings-outline:before{content:"\f1666"}.mdi-heat-pump:before{content:"\f1a43"}.mdi-heat-pump-outline:before{content:"\f1a44"}.mdi-heat-wave:before{content:"\f1a45"}.mdi-heating-coil:before{content:"\f1aaf"}.mdi-helicopter:before{content:"\f0ac2"}.mdi-help:before{content:"\f02d6"}.mdi-help-box:before{content:"\f078b"}.mdi-help-box-multiple:before{content:"\f1c0a"}.mdi-help-box-multiple-outline:before{content:"\f1c0b"}.mdi-help-box-outline:before{content:"\f1c0c"}.mdi-help-circle:before{content:"\f02d7"}.mdi-help-circle-outline:before{content:"\f0625"}.mdi-help-network:before{content:"\f06f5"}.mdi-help-network-outline:before{content:"\f0c8a"}.mdi-help-rhombus:before{content:"\f0ba5"}.mdi-help-rhombus-outline:before{content:"\f0ba6"}.mdi-hexadecimal:before{content:"\f12a7"}.mdi-hexagon:before{content:"\f02d8"}.mdi-hexagon-multiple:before{content:"\f06e1"}.mdi-hexagon-multiple-outline:before{content:"\f10f2"}.mdi-hexagon-outline:before{content:"\f02d9"}.mdi-hexagon-slice-1:before{content:"\f0ac3"}.mdi-hexagon-slice-2:before{content:"\f0ac4"}.mdi-hexagon-slice-3:before{content:"\f0ac5"}.mdi-hexagon-slice-4:before{content:"\f0ac6"}.mdi-hexagon-slice-5:before{content:"\f0ac7"}.mdi-hexagon-slice-6:before{content:"\f0ac8"}.mdi-hexagram:before{content:"\f0ac9"}.mdi-hexagram-outline:before{content:"\f0aca"}.mdi-high-definition:before{content:"\f07cf"}.mdi-high-definition-box:before{content:"\f0878"}.mdi-highway:before{content:"\f05f7"}.mdi-hiking:before{content:"\f0d7f"}.mdi-history:before{content:"\f02da"}.mdi-hockey-puck:before{content:"\f0879"}.mdi-hockey-sticks:before{content:"\f087a"}.mdi-hololens:before{content:"\f02db"}.mdi-home:before{content:"\f02dc"}.mdi-home-account:before{content:"\f0826"}.mdi-home-alert:before{content:"\f087b"}.mdi-home-alert-outline:before{content:"\f15d0"}.mdi-home-analytics:before{content:"\f0eba"}.mdi-home-assistant:before{content:"\f07d0"}.mdi-home-automation:before{content:"\f07d1"}.mdi-home-battery:before{content:"\f1901"}.mdi-home-battery-outline:before{content:"\f1902"}.mdi-home-circle:before{content:"\f07d2"}.mdi-home-circle-outline:before{content:"\f104d"}.mdi-home-city:before{content:"\f0d15"}.mdi-home-city-outline:before{content:"\f0d16"}.mdi-home-clock:before{content:"\f1a12"}.mdi-home-clock-outline:before{content:"\f1a13"}.mdi-home-edit:before{content:"\f1159"}.mdi-home-edit-outline:before{content:"\f115a"}.mdi-home-export-outline:before{content:"\f0f9b"}.mdi-home-flood:before{content:"\f0efa"}.mdi-home-floor-0:before{content:"\f0dd2"}.mdi-home-floor-1:before{content:"\f0d80"}.mdi-home-floor-2:before{content:"\f0d81"}.mdi-home-floor-3:before{content:"\f0d82"}.mdi-home-floor-a:before{content:"\f0d83"}.mdi-home-floor-b:before{content:"\f0d84"}.mdi-home-floor-g:before{content:"\f0d85"}.mdi-home-floor-l:before{content:"\f0d86"}.mdi-home-floor-negative-1:before{content:"\f0dd3"}.mdi-home-group:before{content:"\f0dd4"}.mdi-home-group-minus:before{content:"\f19c1"}.mdi-home-group-plus:before{content:"\f19c0"}.mdi-home-group-remove:before{content:"\f19c2"}.mdi-home-heart:before{content:"\f0827"}.mdi-home-import-outline:before{content:"\f0f9c"}.mdi-home-lightbulb:before{content:"\f1251"}.mdi-home-lightbulb-outline:before{content:"\f1252"}.mdi-home-lightning-bolt:before{content:"\f1903"}.mdi-home-lightning-bolt-outline:before{content:"\f1904"}.mdi-home-lock:before{content:"\f08eb"}.mdi-home-lock-open:before{content:"\f08ec"}.mdi-home-map-marker:before{content:"\f05f8"}.mdi-home-minus:before{content:"\f0974"}.mdi-home-minus-outline:before{content:"\f13d5"}.mdi-home-modern:before{content:"\f02dd"}.mdi-home-off:before{content:"\f1a46"}.mdi-home-off-outline:before{content:"\f1a47"}.mdi-home-outline:before{content:"\f06a1"}.mdi-home-percent:before{content:"\f1c7c"}.mdi-home-percent-outline:before{content:"\f1c7d"}.mdi-home-plus:before{content:"\f0975"}.mdi-home-plus-outline:before{content:"\f13d6"}.mdi-home-remove:before{content:"\f1247"}.mdi-home-remove-outline:before{content:"\f13d7"}.mdi-home-roof:before{content:"\f112b"}.mdi-home-search:before{content:"\f13b0"}.mdi-home-search-outline:before{content:"\f13b1"}.mdi-home-silo:before{content:"\f1ba0"}.mdi-home-silo-outline:before{content:"\f1ba1"}.mdi-home-sound-in:before{content:"\f1c2f"}.mdi-home-sound-in-outline:before{content:"\f1c30"}.mdi-home-sound-out:before{content:"\f1c31"}.mdi-home-sound-out-outline:before{content:"\f1c32"}.mdi-home-switch:before{content:"\f1794"}.mdi-home-switch-outline:before{content:"\f1795"}.mdi-home-thermometer:before{content:"\f0f54"}.mdi-home-thermometer-outline:before{content:"\f0f55"}.mdi-home-variant:before{content:"\f02de"}.mdi-home-variant-outline:before{content:"\f0ba7"}.mdi-hook:before{content:"\f06e2"}.mdi-hook-off:before{content:"\f06e3"}.mdi-hoop-house:before{content:"\f0e56"}.mdi-hops:before{content:"\f02df"}.mdi-horizontal-rotate-clockwise:before{content:"\f10f3"}.mdi-horizontal-rotate-counterclockwise:before{content:"\f10f4"}.mdi-horse:before{content:"\f15bf"}.mdi-horse-human:before{content:"\f15c0"}.mdi-horse-variant:before{content:"\f15c1"}.mdi-horse-variant-fast:before{content:"\f186e"}.mdi-horseshoe:before{content:"\f0a58"}.mdi-hospital:before{content:"\f0ff6"}.mdi-hospital-box:before{content:"\f02e0"}.mdi-hospital-box-outline:before{content:"\f0ff7"}.mdi-hospital-building:before{content:"\f02e1"}.mdi-hospital-marker:before{content:"\f02e2"}.mdi-hot-tub:before{content:"\f0828"}.mdi-hours-12:before{content:"\f1c94"}.mdi-hours-24:before{content:"\f1478"}.mdi-hub:before{content:"\f1c95"}.mdi-hub-outline:before{content:"\f1c96"}.mdi-hubspot:before{content:"\f0d17"}.mdi-hulu:before{content:"\f0829"}.mdi-human:before{content:"\f02e6"}.mdi-human-baby-changing-table:before{content:"\f138b"}.mdi-human-cane:before{content:"\f1581"}.mdi-human-capacity-decrease:before{content:"\f159b"}.mdi-human-capacity-increase:before{content:"\f159c"}.mdi-human-child:before{content:"\f02e7"}.mdi-human-dolly:before{content:"\f1980"}.mdi-human-edit:before{content:"\f14e8"}.mdi-human-female:before{content:"\f0649"}.mdi-human-female-boy:before{content:"\f0a59"}.mdi-human-female-dance:before{content:"\f15c9"}.mdi-human-female-female:before{content:"\f0a5a"}.mdi-human-female-female-child:before{content:"\f1c8e"}.mdi-human-female-girl:before{content:"\f0a5b"}.mdi-human-greeting:before{content:"\f17c4"}.mdi-human-greeting-proximity:before{content:"\f159d"}.mdi-human-greeting-variant:before{content:"\f064a"}.mdi-human-handsdown:before{content:"\f064b"}.mdi-human-handsup:before{content:"\f064c"}.mdi-human-male:before{content:"\f064d"}.mdi-human-male-board:before{content:"\f0890"}.mdi-human-male-board-poll:before{content:"\f0846"}.mdi-human-male-boy:before{content:"\f0a5c"}.mdi-human-male-child:before{content:"\f138c"}.mdi-human-male-female:before{content:"\f02e8"}.mdi-human-male-female-child:before{content:"\f1823"}.mdi-human-male-girl:before{content:"\f0a5d"}.mdi-human-male-height:before{content:"\f0efb"}.mdi-human-male-height-variant:before{content:"\f0efc"}.mdi-human-male-male:before{content:"\f0a5e"}.mdi-human-male-male-child:before{content:"\f1c8f"}.mdi-human-non-binary:before{content:"\f1848"}.mdi-human-pregnant:before{content:"\f05cf"}.mdi-human-queue:before{content:"\f1571"}.mdi-human-scooter:before{content:"\f11e9"}.mdi-human-walker:before{content:"\f1b71"}.mdi-human-wheelchair:before{content:"\f138d"}.mdi-human-white-cane:before{content:"\f1981"}.mdi-humble-bundle:before{content:"\f0744"}.mdi-hvac:before{content:"\f1352"}.mdi-hvac-off:before{content:"\f159e"}.mdi-hydraulic-oil-level:before{content:"\f1324"}.mdi-hydraulic-oil-temperature:before{content:"\f1325"}.mdi-hydro-power:before{content:"\f12e5"}.mdi-hydrogen-station:before{content:"\f1894"}.mdi-ice-cream:before{content:"\f082a"}.mdi-ice-cream-off:before{content:"\f0e52"}.mdi-ice-pop:before{content:"\f0efd"}.mdi-id-card:before{content:"\f0fc0"}.mdi-identifier:before{content:"\f0efe"}.mdi-ideogram-cjk:before{content:"\f1331"}.mdi-ideogram-cjk-variant:before{content:"\f1332"}.mdi-image:before{content:"\f02e9"}.mdi-image-album:before{content:"\f02ea"}.mdi-image-area:before{content:"\f02eb"}.mdi-image-area-close:before{content:"\f02ec"}.mdi-image-auto-adjust:before{content:"\f0fc1"}.mdi-image-broken:before{content:"\f02ed"}.mdi-image-broken-variant:before{content:"\f02ee"}.mdi-image-check:before{content:"\f1b25"}.mdi-image-check-outline:before{content:"\f1b26"}.mdi-image-edit:before{content:"\f11e3"}.mdi-image-edit-outline:before{content:"\f11e4"}.mdi-image-filter-black-white:before{content:"\f02f0"}.mdi-image-filter-center-focus:before{content:"\f02f1"}.mdi-image-filter-center-focus-strong:before{content:"\f0eff"}.mdi-image-filter-center-focus-strong-outline:before{content:"\f0f00"}.mdi-image-filter-center-focus-weak:before{content:"\f02f2"}.mdi-image-filter-drama:before{content:"\f02f3"}.mdi-image-filter-drama-outline:before{content:"\f1bff"}.mdi-image-filter-frames:before{content:"\f02f4"}.mdi-image-filter-hdr:before{content:"\f02f5"}.mdi-image-filter-hdr-outline:before{content:"\f1c64"}.mdi-image-filter-none:before{content:"\f02f6"}.mdi-image-filter-tilt-shift:before{content:"\f02f7"}.mdi-image-filter-vintage:before{content:"\f02f8"}.mdi-image-frame:before{content:"\f0e49"}.mdi-image-lock:before{content:"\f1ab0"}.mdi-image-lock-outline:before{content:"\f1ab1"}.mdi-image-marker:before{content:"\f177b"}.mdi-image-marker-outline:before{content:"\f177c"}.mdi-image-minus:before{content:"\f1419"}.mdi-image-minus-outline:before{content:"\f1b47"}.mdi-image-move:before{content:"\f09f8"}.mdi-image-multiple:before{content:"\f02f9"}.mdi-image-multiple-outline:before{content:"\f02ef"}.mdi-image-off:before{content:"\f082b"}.mdi-image-off-outline:before{content:"\f11d1"}.mdi-image-outline:before{content:"\f0976"}.mdi-image-plus:before{content:"\f087c"}.mdi-image-plus-outline:before{content:"\f1b46"}.mdi-image-refresh:before{content:"\f19fe"}.mdi-image-refresh-outline:before{content:"\f19ff"}.mdi-image-remove:before{content:"\f1418"}.mdi-image-remove-outline:before{content:"\f1b48"}.mdi-image-search:before{content:"\f0977"}.mdi-image-search-outline:before{content:"\f0978"}.mdi-image-size-select-actual:before{content:"\f0c8d"}.mdi-image-size-select-large:before{content:"\f0c8e"}.mdi-image-size-select-small:before{content:"\f0c8f"}.mdi-image-sync:before{content:"\f1a00"}.mdi-image-sync-outline:before{content:"\f1a01"}.mdi-image-text:before{content:"\f160d"}.mdi-import:before{content:"\f02fa"}.mdi-inbox:before{content:"\f0687"}.mdi-inbox-arrow-down:before{content:"\f02fb"}.mdi-inbox-arrow-down-outline:before{content:"\f1270"}.mdi-inbox-arrow-up:before{content:"\f03d1"}.mdi-inbox-arrow-up-outline:before{content:"\f1271"}.mdi-inbox-full:before{content:"\f1272"}.mdi-inbox-full-outline:before{content:"\f1273"}.mdi-inbox-multiple:before{content:"\f08b0"}.mdi-inbox-multiple-outline:before{content:"\f0ba8"}.mdi-inbox-outline:before{content:"\f1274"}.mdi-inbox-remove:before{content:"\f159f"}.mdi-inbox-remove-outline:before{content:"\f15a0"}.mdi-incognito:before{content:"\f05f9"}.mdi-incognito-circle:before{content:"\f1421"}.mdi-incognito-circle-off:before{content:"\f1422"}.mdi-incognito-off:before{content:"\f0075"}.mdi-induction:before{content:"\f184c"}.mdi-infinity:before{content:"\f06e4"}.mdi-information:before{content:"\f02fc"}.mdi-information-box:before{content:"\f1c65"}.mdi-information-box-outline:before{content:"\f1c66"}.mdi-information-off:before{content:"\f178c"}.mdi-information-off-outline:before{content:"\f178d"}.mdi-information-outline:before{content:"\f02fd"}.mdi-information-slab-box:before{content:"\f1c67"}.mdi-information-slab-box-outline:before{content:"\f1c68"}.mdi-information-slab-circle:before{content:"\f1c69"}.mdi-information-slab-circle-outline:before{content:"\f1c6a"}.mdi-information-slab-symbol:before{content:"\f1c6b"}.mdi-information-symbol:before{content:"\f1c6c"}.mdi-information-variant:before{content:"\f064e"}.mdi-information-variant-box:before{content:"\f1c6d"}.mdi-information-variant-box-outline:before{content:"\f1c6e"}.mdi-information-variant-circle:before{content:"\f1c6f"}.mdi-information-variant-circle-outline:before{content:"\f1c70"}.mdi-instagram:before{content:"\f02fe"}.mdi-instrument-triangle:before{content:"\f104e"}.mdi-integrated-circuit-chip:before{content:"\f1913"}.mdi-invert-colors:before{content:"\f0301"}.mdi-invert-colors-off:before{content:"\f0e4a"}.mdi-iobroker:before{content:"\f12e8"}.mdi-ip:before{content:"\f0a5f"}.mdi-ip-network:before{content:"\f0a60"}.mdi-ip-network-outline:before{content:"\f0c90"}.mdi-ip-outline:before{content:"\f1982"}.mdi-ipod:before{content:"\f0c91"}.mdi-iron:before{content:"\f1824"}.mdi-iron-board:before{content:"\f1838"}.mdi-iron-outline:before{content:"\f1825"}.mdi-island:before{content:"\f104f"}.mdi-island-variant:before{content:"\f1cc6"}.mdi-iv-bag:before{content:"\f10b9"}.mdi-jabber:before{content:"\f0dd5"}.mdi-jeepney:before{content:"\f0302"}.mdi-jellyfish:before{content:"\f0f01"}.mdi-jellyfish-outline:before{content:"\f0f02"}.mdi-jira:before{content:"\f0303"}.mdi-jquery:before{content:"\f087d"}.mdi-jsfiddle:before{content:"\f0304"}.mdi-jump-rope:before{content:"\f12ff"}.mdi-kabaddi:before{content:"\f0d87"}.mdi-kangaroo:before{content:"\f1558"}.mdi-karate:before{content:"\f082c"}.mdi-kayaking:before{content:"\f08af"}.mdi-keg:before{content:"\f0305"}.mdi-kettle:before{content:"\f05fa"}.mdi-kettle-alert:before{content:"\f1317"}.mdi-kettle-alert-outline:before{content:"\f1318"}.mdi-kettle-off:before{content:"\f131b"}.mdi-kettle-off-outline:before{content:"\f131c"}.mdi-kettle-outline:before{content:"\f0f56"}.mdi-kettle-pour-over:before{content:"\f173c"}.mdi-kettle-steam:before{content:"\f1319"}.mdi-kettle-steam-outline:before{content:"\f131a"}.mdi-kettlebell:before{content:"\f1300"}.mdi-key:before{content:"\f0306"}.mdi-key-alert:before{content:"\f1983"}.mdi-key-alert-outline:before{content:"\f1984"}.mdi-key-arrow-right:before{content:"\f1312"}.mdi-key-chain:before{content:"\f1574"}.mdi-key-chain-variant:before{content:"\f1575"}.mdi-key-change:before{content:"\f0307"}.mdi-key-link:before{content:"\f119f"}.mdi-key-minus:before{content:"\f0308"}.mdi-key-outline:before{content:"\f0dd6"}.mdi-key-plus:before{content:"\f0309"}.mdi-key-remove:before{content:"\f030a"}.mdi-key-star:before{content:"\f119e"}.mdi-key-variant:before{content:"\f030b"}.mdi-key-wireless:before{content:"\f0fc2"}.mdi-keyboard:before{content:"\f030c"}.mdi-keyboard-backspace:before{content:"\f030d"}.mdi-keyboard-caps:before{content:"\f030e"}.mdi-keyboard-close:before{content:"\f030f"}.mdi-keyboard-close-outline:before{content:"\f1c00"}.mdi-keyboard-esc:before{content:"\f12b7"}.mdi-keyboard-f1:before{content:"\f12ab"}.mdi-keyboard-f10:before{content:"\f12b4"}.mdi-keyboard-f11:before{content:"\f12b5"}.mdi-keyboard-f12:before{content:"\f12b6"}.mdi-keyboard-f2:before{content:"\f12ac"}.mdi-keyboard-f3:before{content:"\f12ad"}.mdi-keyboard-f4:before{content:"\f12ae"}.mdi-keyboard-f5:before{content:"\f12af"}.mdi-keyboard-f6:before{content:"\f12b0"}.mdi-keyboard-f7:before{content:"\f12b1"}.mdi-keyboard-f8:before{content:"\f12b2"}.mdi-keyboard-f9:before{content:"\f12b3"}.mdi-keyboard-off:before{content:"\f0310"}.mdi-keyboard-off-outline:before{content:"\f0e4b"}.mdi-keyboard-outline:before{content:"\f097b"}.mdi-keyboard-return:before{content:"\f0311"}.mdi-keyboard-settings:before{content:"\f09f9"}.mdi-keyboard-settings-outline:before{content:"\f09fa"}.mdi-keyboard-space:before{content:"\f1050"}.mdi-keyboard-tab:before{content:"\f0312"}.mdi-keyboard-tab-reverse:before{content:"\f0325"}.mdi-keyboard-variant:before{content:"\f0313"}.mdi-khanda:before{content:"\f10fd"}.mdi-kickstarter:before{content:"\f0745"}.mdi-kite:before{content:"\f1985"}.mdi-kite-outline:before{content:"\f1986"}.mdi-kitesurfing:before{content:"\f1744"}.mdi-klingon:before{content:"\f135b"}.mdi-knife:before{content:"\f09fb"}.mdi-knife-military:before{content:"\f09fc"}.mdi-knob:before{content:"\f1b96"}.mdi-koala:before{content:"\f173f"}.mdi-kodi:before{content:"\f0314"}.mdi-kubernetes:before{content:"\f10fe"}.mdi-label:before{content:"\f0315"}.mdi-label-multiple:before{content:"\f1375"}.mdi-label-multiple-outline:before{content:"\f1376"}.mdi-label-off:before{content:"\f0acb"}.mdi-label-off-outline:before{content:"\f0acc"}.mdi-label-outline:before{content:"\f0316"}.mdi-label-percent:before{content:"\f12ea"}.mdi-label-percent-outline:before{content:"\f12eb"}.mdi-label-variant:before{content:"\f0acd"}.mdi-label-variant-outline:before{content:"\f0ace"}.mdi-ladder:before{content:"\f15a2"}.mdi-ladybug:before{content:"\f082d"}.mdi-lambda:before{content:"\f0627"}.mdi-lamp:before{content:"\f06b5"}.mdi-lamp-outline:before{content:"\f17d0"}.mdi-lamps:before{content:"\f1576"}.mdi-lamps-outline:before{content:"\f17d1"}.mdi-lan:before{content:"\f0317"}.mdi-lan-check:before{content:"\f12aa"}.mdi-lan-connect:before{content:"\f0318"}.mdi-lan-disconnect:before{content:"\f0319"}.mdi-lan-pending:before{content:"\f031a"}.mdi-land-fields:before{content:"\f1ab2"}.mdi-land-plots:before{content:"\f1ab3"}.mdi-land-plots-circle:before{content:"\f1ab4"}.mdi-land-plots-circle-variant:before{content:"\f1ab5"}.mdi-land-plots-marker:before{content:"\f1c5d"}.mdi-land-rows-horizontal:before{content:"\f1ab6"}.mdi-land-rows-vertical:before{content:"\f1ab7"}.mdi-landslide:before{content:"\f1a48"}.mdi-landslide-outline:before{content:"\f1a49"}.mdi-language-c:before{content:"\f0671"}.mdi-language-cpp:before{content:"\f0672"}.mdi-language-csharp:before{content:"\f031b"}.mdi-language-css3:before{content:"\f031c"}.mdi-language-fortran:before{content:"\f121a"}.mdi-language-go:before{content:"\f07d3"}.mdi-language-haskell:before{content:"\f0c92"}.mdi-language-html5:before{content:"\f031d"}.mdi-language-java:before{content:"\f0b37"}.mdi-language-javascript:before{content:"\f031e"}.mdi-language-kotlin:before{content:"\f1219"}.mdi-language-lua:before{content:"\f08b1"}.mdi-language-markdown:before{content:"\f0354"}.mdi-language-markdown-outline:before{content:"\f0f5b"}.mdi-language-php:before{content:"\f031f"}.mdi-language-python:before{content:"\f0320"}.mdi-language-r:before{content:"\f07d4"}.mdi-language-ruby:before{content:"\f0d2d"}.mdi-language-ruby-on-rails:before{content:"\f0acf"}.mdi-language-rust:before{content:"\f1617"}.mdi-language-swift:before{content:"\f06e5"}.mdi-language-typescript:before{content:"\f06e6"}.mdi-language-xaml:before{content:"\f0673"}.mdi-laptop:before{content:"\f0322"}.mdi-laptop-account:before{content:"\f1a4a"}.mdi-laptop-off:before{content:"\f06e7"}.mdi-laravel:before{content:"\f0ad0"}.mdi-laser-pointer:before{content:"\f1484"}.mdi-lasso:before{content:"\f0f03"}.mdi-lastpass:before{content:"\f0446"}.mdi-latitude:before{content:"\f0f57"}.mdi-launch:before{content:"\f0327"}.mdi-lava-lamp:before{content:"\f07d5"}.mdi-layers:before{content:"\f0328"}.mdi-layers-edit:before{content:"\f1892"}.mdi-layers-minus:before{content:"\f0e4c"}.mdi-layers-off:before{content:"\f0329"}.mdi-layers-off-outline:before{content:"\f09fd"}.mdi-layers-outline:before{content:"\f09fe"}.mdi-layers-plus:before{content:"\f0e4d"}.mdi-layers-remove:before{content:"\f0e4e"}.mdi-layers-search:before{content:"\f1206"}.mdi-layers-search-outline:before{content:"\f1207"}.mdi-layers-triple:before{content:"\f0f58"}.mdi-layers-triple-outline:before{content:"\f0f59"}.mdi-lead-pencil:before{content:"\f064f"}.mdi-leaf:before{content:"\f032a"}.mdi-leaf-circle:before{content:"\f1905"}.mdi-leaf-circle-outline:before{content:"\f1906"}.mdi-leaf-maple:before{content:"\f0c93"}.mdi-leaf-maple-off:before{content:"\f12da"}.mdi-leaf-off:before{content:"\f12d9"}.mdi-leak:before{content:"\f0dd7"}.mdi-leak-off:before{content:"\f0dd8"}.mdi-lectern:before{content:"\f1af0"}.mdi-led-off:before{content:"\f032b"}.mdi-led-on:before{content:"\f032c"}.mdi-led-outline:before{content:"\f032d"}.mdi-led-strip:before{content:"\f07d6"}.mdi-led-strip-variant:before{content:"\f1051"}.mdi-led-strip-variant-off:before{content:"\f1a4b"}.mdi-led-variant-off:before{content:"\f032e"}.mdi-led-variant-on:before{content:"\f032f"}.mdi-led-variant-outline:before{content:"\f0330"}.mdi-leek:before{content:"\f117d"}.mdi-less-than:before{content:"\f097c"}.mdi-less-than-or-equal:before{content:"\f097d"}.mdi-library:before{content:"\f0331"}.mdi-library-outline:before{content:"\f1a22"}.mdi-library-shelves:before{content:"\f0ba9"}.mdi-license:before{content:"\f0fc3"}.mdi-lifebuoy:before{content:"\f087e"}.mdi-light-flood-down:before{content:"\f1987"}.mdi-light-flood-up:before{content:"\f1988"}.mdi-light-recessed:before{content:"\f179b"}.mdi-light-switch:before{content:"\f097e"}.mdi-light-switch-off:before{content:"\f1a24"}.mdi-lightbulb:before{content:"\f0335"}.mdi-lightbulb-alert:before{content:"\f19e1"}.mdi-lightbulb-alert-outline:before{content:"\f19e2"}.mdi-lightbulb-auto:before{content:"\f1800"}.mdi-lightbulb-auto-outline:before{content:"\f1801"}.mdi-lightbulb-cfl:before{content:"\f1208"}.mdi-lightbulb-cfl-off:before{content:"\f1209"}.mdi-lightbulb-cfl-spiral:before{content:"\f1275"}.mdi-lightbulb-cfl-spiral-off:before{content:"\f12c3"}.mdi-lightbulb-fluorescent-tube:before{content:"\f1804"}.mdi-lightbulb-fluorescent-tube-outline:before{content:"\f1805"}.mdi-lightbulb-group:before{content:"\f1253"}.mdi-lightbulb-group-off:before{content:"\f12cd"}.mdi-lightbulb-group-off-outline:before{content:"\f12ce"}.mdi-lightbulb-group-outline:before{content:"\f1254"}.mdi-lightbulb-multiple:before{content:"\f1255"}.mdi-lightbulb-multiple-off:before{content:"\f12cf"}.mdi-lightbulb-multiple-off-outline:before{content:"\f12d0"}.mdi-lightbulb-multiple-outline:before{content:"\f1256"}.mdi-lightbulb-night:before{content:"\f1a4c"}.mdi-lightbulb-night-outline:before{content:"\f1a4d"}.mdi-lightbulb-off:before{content:"\f0e4f"}.mdi-lightbulb-off-outline:before{content:"\f0e50"}.mdi-lightbulb-on:before{content:"\f06e8"}.mdi-lightbulb-on-10:before{content:"\f1a4e"}.mdi-lightbulb-on-20:before{content:"\f1a4f"}.mdi-lightbulb-on-30:before{content:"\f1a50"}.mdi-lightbulb-on-40:before{content:"\f1a51"}.mdi-lightbulb-on-50:before{content:"\f1a52"}.mdi-lightbulb-on-60:before{content:"\f1a53"}.mdi-lightbulb-on-70:before{content:"\f1a54"}.mdi-lightbulb-on-80:before{content:"\f1a55"}.mdi-lightbulb-on-90:before{content:"\f1a56"}.mdi-lightbulb-on-outline:before{content:"\f06e9"}.mdi-lightbulb-outline:before{content:"\f0336"}.mdi-lightbulb-question:before{content:"\f19e3"}.mdi-lightbulb-question-outline:before{content:"\f19e4"}.mdi-lightbulb-spot:before{content:"\f17f4"}.mdi-lightbulb-spot-off:before{content:"\f17f5"}.mdi-lightbulb-variant:before{content:"\f1802"}.mdi-lightbulb-variant-outline:before{content:"\f1803"}.mdi-lighthouse:before{content:"\f09ff"}.mdi-lighthouse-on:before{content:"\f0a00"}.mdi-lightning-bolt:before{content:"\f140b"}.mdi-lightning-bolt-circle:before{content:"\f0820"}.mdi-lightning-bolt-outline:before{content:"\f140c"}.mdi-line-scan:before{content:"\f0624"}.mdi-lingerie:before{content:"\f1476"}.mdi-link:before{content:"\f0337"}.mdi-link-box:before{content:"\f0d1a"}.mdi-link-box-outline:before{content:"\f0d1b"}.mdi-link-box-variant:before{content:"\f0d1c"}.mdi-link-box-variant-outline:before{content:"\f0d1d"}.mdi-link-circle:before{content:"\f1cac"}.mdi-link-circle-outline:before{content:"\f1cad"}.mdi-link-edit:before{content:"\f1cae"}.mdi-link-lock:before{content:"\f10ba"}.mdi-link-off:before{content:"\f0338"}.mdi-link-plus:before{content:"\f0c94"}.mdi-link-variant:before{content:"\f0339"}.mdi-link-variant-minus:before{content:"\f10ff"}.mdi-link-variant-off:before{content:"\f033a"}.mdi-link-variant-plus:before{content:"\f1100"}.mdi-link-variant-remove:before{content:"\f1101"}.mdi-linkedin:before{content:"\f033b"}.mdi-linux:before{content:"\f033d"}.mdi-linux-mint:before{content:"\f08ed"}.mdi-lipstick:before{content:"\f13b5"}.mdi-liquid-spot:before{content:"\f1826"}.mdi-liquor:before{content:"\f191e"}.mdi-list-box:before{content:"\f1b7b"}.mdi-list-box-outline:before{content:"\f1b7c"}.mdi-list-status:before{content:"\f15ab"}.mdi-litecoin:before{content:"\f0a61"}.mdi-loading:before{content:"\f0772"}.mdi-location-enter:before{content:"\f0fc4"}.mdi-location-exit:before{content:"\f0fc5"}.mdi-lock:before{content:"\f033e"}.mdi-lock-alert:before{content:"\f08ee"}.mdi-lock-alert-outline:before{content:"\f15d1"}.mdi-lock-check:before{content:"\f139a"}.mdi-lock-check-outline:before{content:"\f16a8"}.mdi-lock-clock:before{content:"\f097f"}.mdi-lock-minus:before{content:"\f16a9"}.mdi-lock-minus-outline:before{content:"\f16aa"}.mdi-lock-off:before{content:"\f1671"}.mdi-lock-off-outline:before{content:"\f1672"}.mdi-lock-open:before{content:"\f033f"}.mdi-lock-open-alert:before{content:"\f139b"}.mdi-lock-open-alert-outline:before{content:"\f15d2"}.mdi-lock-open-check:before{content:"\f139c"}.mdi-lock-open-check-outline:before{content:"\f16ab"}.mdi-lock-open-minus:before{content:"\f16ac"}.mdi-lock-open-minus-outline:before{content:"\f16ad"}.mdi-lock-open-outline:before{content:"\f0340"}.mdi-lock-open-plus:before{content:"\f16ae"}.mdi-lock-open-plus-outline:before{content:"\f16af"}.mdi-lock-open-remove:before{content:"\f16b0"}.mdi-lock-open-remove-outline:before{content:"\f16b1"}.mdi-lock-open-variant:before{content:"\f0fc6"}.mdi-lock-open-variant-outline:before{content:"\f0fc7"}.mdi-lock-outline:before{content:"\f0341"}.mdi-lock-pattern:before{content:"\f06ea"}.mdi-lock-percent:before{content:"\f1c12"}.mdi-lock-percent-open:before{content:"\f1c13"}.mdi-lock-percent-open-outline:before{content:"\f1c14"}.mdi-lock-percent-open-variant:before{content:"\f1c15"}.mdi-lock-percent-open-variant-outline:before{content:"\f1c16"}.mdi-lock-percent-outline:before{content:"\f1c17"}.mdi-lock-plus:before{content:"\f05fb"}.mdi-lock-plus-outline:before{content:"\f16b2"}.mdi-lock-question:before{content:"\f08ef"}.mdi-lock-remove:before{content:"\f16b3"}.mdi-lock-remove-outline:before{content:"\f16b4"}.mdi-lock-reset:before{content:"\f0773"}.mdi-lock-smart:before{content:"\f08b2"}.mdi-locker:before{content:"\f07d7"}.mdi-locker-multiple:before{content:"\f07d8"}.mdi-login:before{content:"\f0342"}.mdi-login-variant:before{content:"\f05fc"}.mdi-logout:before{content:"\f0343"}.mdi-logout-variant:before{content:"\f05fd"}.mdi-longitude:before{content:"\f0f5a"}.mdi-looks:before{content:"\f0344"}.mdi-lotion:before{content:"\f1582"}.mdi-lotion-outline:before{content:"\f1583"}.mdi-lotion-plus:before{content:"\f1584"}.mdi-lotion-plus-outline:before{content:"\f1585"}.mdi-loupe:before{content:"\f0345"}.mdi-lumx:before{content:"\f0346"}.mdi-lungs:before{content:"\f1084"}.mdi-mace:before{content:"\f1843"}.mdi-magazine-pistol:before{content:"\f0324"}.mdi-magazine-rifle:before{content:"\f0323"}.mdi-magic-staff:before{content:"\f1844"}.mdi-magnet:before{content:"\f0347"}.mdi-magnet-on:before{content:"\f0348"}.mdi-magnify:before{content:"\f0349"}.mdi-magnify-close:before{content:"\f0980"}.mdi-magnify-expand:before{content:"\f1874"}.mdi-magnify-minus:before{content:"\f034a"}.mdi-magnify-minus-cursor:before{content:"\f0a62"}.mdi-magnify-minus-outline:before{content:"\f06ec"}.mdi-magnify-plus:before{content:"\f034b"}.mdi-magnify-plus-cursor:before{content:"\f0a63"}.mdi-magnify-plus-outline:before{content:"\f06ed"}.mdi-magnify-remove-cursor:before{content:"\f120c"}.mdi-magnify-remove-outline:before{content:"\f120d"}.mdi-magnify-scan:before{content:"\f1276"}.mdi-mail:before{content:"\f0ebb"}.mdi-mailbox:before{content:"\f06ee"}.mdi-mailbox-open:before{content:"\f0d88"}.mdi-mailbox-open-outline:before{content:"\f0d89"}.mdi-mailbox-open-up:before{content:"\f0d8a"}.mdi-mailbox-open-up-outline:before{content:"\f0d8b"}.mdi-mailbox-outline:before{content:"\f0d8c"}.mdi-mailbox-up:before{content:"\f0d8d"}.mdi-mailbox-up-outline:before{content:"\f0d8e"}.mdi-manjaro:before{content:"\f160a"}.mdi-map:before{content:"\f034d"}.mdi-map-check:before{content:"\f0ebc"}.mdi-map-check-outline:before{content:"\f0ebd"}.mdi-map-clock:before{content:"\f0d1e"}.mdi-map-clock-outline:before{content:"\f0d1f"}.mdi-map-legend:before{content:"\f0a01"}.mdi-map-marker:before{content:"\f034e"}.mdi-map-marker-account:before{content:"\f18e3"}.mdi-map-marker-account-outline:before{content:"\f18e4"}.mdi-map-marker-alert:before{content:"\f0f05"}.mdi-map-marker-alert-outline:before{content:"\f0f06"}.mdi-map-marker-check:before{content:"\f0c95"}.mdi-map-marker-check-outline:before{content:"\f12fb"}.mdi-map-marker-circle:before{content:"\f034f"}.mdi-map-marker-distance:before{content:"\f08f0"}.mdi-map-marker-down:before{content:"\f1102"}.mdi-map-marker-left:before{content:"\f12db"}.mdi-map-marker-left-outline:before{content:"\f12dd"}.mdi-map-marker-minus:before{content:"\f0650"}.mdi-map-marker-minus-outline:before{content:"\f12f9"}.mdi-map-marker-multiple:before{content:"\f0350"}.mdi-map-marker-multiple-outline:before{content:"\f1277"}.mdi-map-marker-off:before{content:"\f0351"}.mdi-map-marker-off-outline:before{content:"\f12fd"}.mdi-map-marker-outline:before{content:"\f07d9"}.mdi-map-marker-path:before{content:"\f0d20"}.mdi-map-marker-plus:before{content:"\f0651"}.mdi-map-marker-plus-outline:before{content:"\f12f8"}.mdi-map-marker-question:before{content:"\f0f07"}.mdi-map-marker-question-outline:before{content:"\f0f08"}.mdi-map-marker-radius:before{content:"\f0352"}.mdi-map-marker-radius-outline:before{content:"\f12fc"}.mdi-map-marker-remove:before{content:"\f0f09"}.mdi-map-marker-remove-outline:before{content:"\f12fa"}.mdi-map-marker-remove-variant:before{content:"\f0f0a"}.mdi-map-marker-right:before{content:"\f12dc"}.mdi-map-marker-right-outline:before{content:"\f12de"}.mdi-map-marker-star:before{content:"\f1608"}.mdi-map-marker-star-outline:before{content:"\f1609"}.mdi-map-marker-up:before{content:"\f1103"}.mdi-map-minus:before{content:"\f0981"}.mdi-map-outline:before{content:"\f0982"}.mdi-map-plus:before{content:"\f0983"}.mdi-map-search:before{content:"\f0984"}.mdi-map-search-outline:before{content:"\f0985"}.mdi-mapbox:before{content:"\f0baa"}.mdi-margin:before{content:"\f0353"}.mdi-marker:before{content:"\f0652"}.mdi-marker-cancel:before{content:"\f0dd9"}.mdi-marker-check:before{content:"\f0355"}.mdi-mastodon:before{content:"\f0ad1"}.mdi-material-design:before{content:"\f0986"}.mdi-material-ui:before{content:"\f0357"}.mdi-math-compass:before{content:"\f0358"}.mdi-math-cos:before{content:"\f0c96"}.mdi-math-integral:before{content:"\f0fc8"}.mdi-math-integral-box:before{content:"\f0fc9"}.mdi-math-log:before{content:"\f1085"}.mdi-math-norm:before{content:"\f0fca"}.mdi-math-norm-box:before{content:"\f0fcb"}.mdi-math-sin:before{content:"\f0c97"}.mdi-math-tan:before{content:"\f0c98"}.mdi-matrix:before{content:"\f0628"}.mdi-medal:before{content:"\f0987"}.mdi-medal-outline:before{content:"\f1326"}.mdi-medical-bag:before{content:"\f06ef"}.mdi-medical-cotton-swab:before{content:"\f1ab8"}.mdi-medication:before{content:"\f1b14"}.mdi-medication-outline:before{content:"\f1b15"}.mdi-meditation:before{content:"\f117b"}.mdi-memory:before{content:"\f035b"}.mdi-memory-arrow-down:before{content:"\f1ca6"}.mdi-menorah:before{content:"\f17d4"}.mdi-menorah-fire:before{content:"\f17d5"}.mdi-menu:before{content:"\f035c"}.mdi-menu-close:before{content:"\f1c90"}.mdi-menu-down:before{content:"\f035d"}.mdi-menu-down-outline:before{content:"\f06b6"}.mdi-menu-left:before{content:"\f035e"}.mdi-menu-left-outline:before{content:"\f0a02"}.mdi-menu-open:before{content:"\f0bab"}.mdi-menu-right:before{content:"\f035f"}.mdi-menu-right-outline:before{content:"\f0a03"}.mdi-menu-swap:before{content:"\f0a64"}.mdi-menu-swap-outline:before{content:"\f0a65"}.mdi-menu-up:before{content:"\f0360"}.mdi-menu-up-outline:before{content:"\f06b7"}.mdi-merge:before{content:"\f0f5c"}.mdi-message:before{content:"\f0361"}.mdi-message-alert:before{content:"\f0362"}.mdi-message-alert-outline:before{content:"\f0a04"}.mdi-message-arrow-left:before{content:"\f12f2"}.mdi-message-arrow-left-outline:before{content:"\f12f3"}.mdi-message-arrow-right:before{content:"\f12f4"}.mdi-message-arrow-right-outline:before{content:"\f12f5"}.mdi-message-badge:before{content:"\f1941"}.mdi-message-badge-outline:before{content:"\f1942"}.mdi-message-bookmark:before{content:"\f15ac"}.mdi-message-bookmark-outline:before{content:"\f15ad"}.mdi-message-bulleted:before{content:"\f06a2"}.mdi-message-bulleted-off:before{content:"\f06a3"}.mdi-message-check:before{content:"\f1b8a"}.mdi-message-check-outline:before{content:"\f1b8b"}.mdi-message-cog:before{content:"\f06f1"}.mdi-message-cog-outline:before{content:"\f1172"}.mdi-message-draw:before{content:"\f0363"}.mdi-message-fast:before{content:"\f19cc"}.mdi-message-fast-outline:before{content:"\f19cd"}.mdi-message-flash:before{content:"\f15a9"}.mdi-message-flash-outline:before{content:"\f15aa"}.mdi-message-image:before{content:"\f0364"}.mdi-message-image-outline:before{content:"\f116c"}.mdi-message-lock:before{content:"\f0fcc"}.mdi-message-lock-outline:before{content:"\f116d"}.mdi-message-minus:before{content:"\f116e"}.mdi-message-minus-outline:before{content:"\f116f"}.mdi-message-off:before{content:"\f164d"}.mdi-message-off-outline:before{content:"\f164e"}.mdi-message-outline:before{content:"\f0365"}.mdi-message-plus:before{content:"\f0653"}.mdi-message-plus-outline:before{content:"\f10bb"}.mdi-message-processing:before{content:"\f0366"}.mdi-message-processing-outline:before{content:"\f1170"}.mdi-message-question:before{content:"\f173a"}.mdi-message-question-outline:before{content:"\f173b"}.mdi-message-reply:before{content:"\f0367"}.mdi-message-reply-outline:before{content:"\f173d"}.mdi-message-reply-text:before{content:"\f0368"}.mdi-message-reply-text-outline:before{content:"\f173e"}.mdi-message-settings:before{content:"\f06f0"}.mdi-message-settings-outline:before{content:"\f1171"}.mdi-message-star:before{content:"\f069a"}.mdi-message-star-outline:before{content:"\f1250"}.mdi-message-text:before{content:"\f0369"}.mdi-message-text-clock:before{content:"\f1173"}.mdi-message-text-clock-outline:before{content:"\f1174"}.mdi-message-text-fast:before{content:"\f19ce"}.mdi-message-text-fast-outline:before{content:"\f19cf"}.mdi-message-text-lock:before{content:"\f0fcd"}.mdi-message-text-lock-outline:before{content:"\f1175"}.mdi-message-text-outline:before{content:"\f036a"}.mdi-message-video:before{content:"\f036b"}.mdi-meteor:before{content:"\f0629"}.mdi-meter-electric:before{content:"\f1a57"}.mdi-meter-electric-outline:before{content:"\f1a58"}.mdi-meter-gas:before{content:"\f1a59"}.mdi-meter-gas-outline:before{content:"\f1a5a"}.mdi-metronome:before{content:"\f07da"}.mdi-metronome-tick:before{content:"\f07db"}.mdi-micro-sd:before{content:"\f07dc"}.mdi-microphone:before{content:"\f036c"}.mdi-microphone-message:before{content:"\f050a"}.mdi-microphone-message-off:before{content:"\f050b"}.mdi-microphone-minus:before{content:"\f08b3"}.mdi-microphone-off:before{content:"\f036d"}.mdi-microphone-outline:before{content:"\f036e"}.mdi-microphone-plus:before{content:"\f08b4"}.mdi-microphone-question:before{content:"\f1989"}.mdi-microphone-question-outline:before{content:"\f198a"}.mdi-microphone-settings:before{content:"\f036f"}.mdi-microphone-variant:before{content:"\f0370"}.mdi-microphone-variant-off:before{content:"\f0371"}.mdi-microscope:before{content:"\f0654"}.mdi-microsoft:before{content:"\f0372"}.mdi-microsoft-access:before{content:"\f138e"}.mdi-microsoft-azure:before{content:"\f0805"}.mdi-microsoft-azure-devops:before{content:"\f0fd5"}.mdi-microsoft-bing:before{content:"\f00a4"}.mdi-microsoft-dynamics-365:before{content:"\f0988"}.mdi-microsoft-edge:before{content:"\f01e9"}.mdi-microsoft-excel:before{content:"\f138f"}.mdi-microsoft-internet-explorer:before{content:"\f0300"}.mdi-microsoft-office:before{content:"\f03c6"}.mdi-microsoft-onedrive:before{content:"\f03ca"}.mdi-microsoft-onenote:before{content:"\f0747"}.mdi-microsoft-outlook:before{content:"\f0d22"}.mdi-microsoft-powerpoint:before{content:"\f1390"}.mdi-microsoft-sharepoint:before{content:"\f1391"}.mdi-microsoft-teams:before{content:"\f02bb"}.mdi-microsoft-visual-studio:before{content:"\f0610"}.mdi-microsoft-visual-studio-code:before{content:"\f0a1e"}.mdi-microsoft-windows:before{content:"\f05b3"}.mdi-microsoft-windows-classic:before{content:"\f0a21"}.mdi-microsoft-word:before{content:"\f1392"}.mdi-microsoft-xbox:before{content:"\f05b9"}.mdi-microsoft-xbox-controller:before{content:"\f05ba"}.mdi-microsoft-xbox-controller-battery-alert:before{content:"\f074b"}.mdi-microsoft-xbox-controller-battery-charging:before{content:"\f0a22"}.mdi-microsoft-xbox-controller-battery-empty:before{content:"\f074c"}.mdi-microsoft-xbox-controller-battery-full:before{content:"\f074d"}.mdi-microsoft-xbox-controller-battery-low:before{content:"\f074e"}.mdi-microsoft-xbox-controller-battery-medium:before{content:"\f074f"}.mdi-microsoft-xbox-controller-battery-unknown:before{content:"\f0750"}.mdi-microsoft-xbox-controller-menu:before{content:"\f0e6f"}.mdi-microsoft-xbox-controller-off:before{content:"\f05bb"}.mdi-microsoft-xbox-controller-view:before{content:"\f0e70"}.mdi-microwave:before{content:"\f0c99"}.mdi-microwave-off:before{content:"\f1423"}.mdi-middleware:before{content:"\f0f5d"}.mdi-middleware-outline:before{content:"\f0f5e"}.mdi-midi:before{content:"\f08f1"}.mdi-midi-port:before{content:"\f08f2"}.mdi-mine:before{content:"\f0dda"}.mdi-minecraft:before{content:"\f0373"}.mdi-mini-sd:before{content:"\f0a05"}.mdi-minidisc:before{content:"\f0a06"}.mdi-minus:before{content:"\f0374"}.mdi-minus-box:before{content:"\f0375"}.mdi-minus-box-multiple:before{content:"\f1141"}.mdi-minus-box-multiple-outline:before{content:"\f1142"}.mdi-minus-box-outline:before{content:"\f06f2"}.mdi-minus-circle:before{content:"\f0376"}.mdi-minus-circle-multiple:before{content:"\f035a"}.mdi-minus-circle-multiple-outline:before{content:"\f0ad3"}.mdi-minus-circle-off:before{content:"\f1459"}.mdi-minus-circle-off-outline:before{content:"\f145a"}.mdi-minus-circle-outline:before{content:"\f0377"}.mdi-minus-network:before{content:"\f0378"}.mdi-minus-network-outline:before{content:"\f0c9a"}.mdi-minus-thick:before{content:"\f1639"}.mdi-mirror:before{content:"\f11fd"}.mdi-mirror-rectangle:before{content:"\f179f"}.mdi-mirror-variant:before{content:"\f17a0"}.mdi-mixed-martial-arts:before{content:"\f0d8f"}.mdi-mixed-reality:before{content:"\f087f"}.mdi-molecule:before{content:"\f0bac"}.mdi-molecule-co:before{content:"\f12fe"}.mdi-molecule-co2:before{content:"\f07e4"}.mdi-monitor:before{content:"\f0379"}.mdi-monitor-account:before{content:"\f1a5b"}.mdi-monitor-arrow-down:before{content:"\f19d0"}.mdi-monitor-arrow-down-variant:before{content:"\f19d1"}.mdi-monitor-cellphone:before{content:"\f0989"}.mdi-monitor-cellphone-star:before{content:"\f098a"}.mdi-monitor-dashboard:before{content:"\f0a07"}.mdi-monitor-edit:before{content:"\f12c6"}.mdi-monitor-eye:before{content:"\f13b4"}.mdi-monitor-lock:before{content:"\f0ddb"}.mdi-monitor-multiple:before{content:"\f037a"}.mdi-monitor-off:before{content:"\f0d90"}.mdi-monitor-screenshot:before{content:"\f0e51"}.mdi-monitor-share:before{content:"\f1483"}.mdi-monitor-shimmer:before{content:"\f1104"}.mdi-monitor-small:before{content:"\f1876"}.mdi-monitor-speaker:before{content:"\f0f5f"}.mdi-monitor-speaker-off:before{content:"\f0f60"}.mdi-monitor-star:before{content:"\f0ddc"}.mdi-monitor-vertical:before{content:"\f1c33"}.mdi-moon-first-quarter:before{content:"\f0f61"}.mdi-moon-full:before{content:"\f0f62"}.mdi-moon-last-quarter:before{content:"\f0f63"}.mdi-moon-new:before{content:"\f0f64"}.mdi-moon-waning-crescent:before{content:"\f0f65"}.mdi-moon-waning-gibbous:before{content:"\f0f66"}.mdi-moon-waxing-crescent:before{content:"\f0f67"}.mdi-moon-waxing-gibbous:before{content:"\f0f68"}.mdi-moped:before{content:"\f1086"}.mdi-moped-electric:before{content:"\f15b7"}.mdi-moped-electric-outline:before{content:"\f15b8"}.mdi-moped-outline:before{content:"\f15b9"}.mdi-more:before{content:"\f037b"}.mdi-mortar-pestle:before{content:"\f1748"}.mdi-mortar-pestle-plus:before{content:"\f03f1"}.mdi-mosque:before{content:"\f0d45"}.mdi-mosque-outline:before{content:"\f1827"}.mdi-mother-heart:before{content:"\f1314"}.mdi-mother-nurse:before{content:"\f0d21"}.mdi-motion:before{content:"\f15b2"}.mdi-motion-outline:before{content:"\f15b3"}.mdi-motion-pause:before{content:"\f1590"}.mdi-motion-pause-outline:before{content:"\f1592"}.mdi-motion-play:before{content:"\f158f"}.mdi-motion-play-outline:before{content:"\f1591"}.mdi-motion-sensor:before{content:"\f0d91"}.mdi-motion-sensor-off:before{content:"\f1435"}.mdi-motorbike:before{content:"\f037c"}.mdi-motorbike-electric:before{content:"\f15ba"}.mdi-motorbike-off:before{content:"\f1b16"}.mdi-mouse:before{content:"\f037d"}.mdi-mouse-bluetooth:before{content:"\f098b"}.mdi-mouse-move-down:before{content:"\f1550"}.mdi-mouse-move-up:before{content:"\f1551"}.mdi-mouse-move-vertical:before{content:"\f1552"}.mdi-mouse-off:before{content:"\f037e"}.mdi-mouse-variant:before{content:"\f037f"}.mdi-mouse-variant-off:before{content:"\f0380"}.mdi-move-resize:before{content:"\f0655"}.mdi-move-resize-variant:before{content:"\f0656"}.mdi-movie:before{content:"\f0381"}.mdi-movie-check:before{content:"\f16f3"}.mdi-movie-check-outline:before{content:"\f16f4"}.mdi-movie-cog:before{content:"\f16f5"}.mdi-movie-cog-outline:before{content:"\f16f6"}.mdi-movie-edit:before{content:"\f1122"}.mdi-movie-edit-outline:before{content:"\f1123"}.mdi-movie-filter:before{content:"\f1124"}.mdi-movie-filter-outline:before{content:"\f1125"}.mdi-movie-minus:before{content:"\f16f7"}.mdi-movie-minus-outline:before{content:"\f16f8"}.mdi-movie-off:before{content:"\f16f9"}.mdi-movie-off-outline:before{content:"\f16fa"}.mdi-movie-open:before{content:"\f0fce"}.mdi-movie-open-check:before{content:"\f16fb"}.mdi-movie-open-check-outline:before{content:"\f16fc"}.mdi-movie-open-cog:before{content:"\f16fd"}.mdi-movie-open-cog-outline:before{content:"\f16fe"}.mdi-movie-open-edit:before{content:"\f16ff"}.mdi-movie-open-edit-outline:before{content:"\f1700"}.mdi-movie-open-minus:before{content:"\f1701"}.mdi-movie-open-minus-outline:before{content:"\f1702"}.mdi-movie-open-off:before{content:"\f1703"}.mdi-movie-open-off-outline:before{content:"\f1704"}.mdi-movie-open-outline:before{content:"\f0fcf"}.mdi-movie-open-play:before{content:"\f1705"}.mdi-movie-open-play-outline:before{content:"\f1706"}.mdi-movie-open-plus:before{content:"\f1707"}.mdi-movie-open-plus-outline:before{content:"\f1708"}.mdi-movie-open-remove:before{content:"\f1709"}.mdi-movie-open-remove-outline:before{content:"\f170a"}.mdi-movie-open-settings:before{content:"\f170b"}.mdi-movie-open-settings-outline:before{content:"\f170c"}.mdi-movie-open-star:before{content:"\f170d"}.mdi-movie-open-star-outline:before{content:"\f170e"}.mdi-movie-outline:before{content:"\f0ddd"}.mdi-movie-play:before{content:"\f170f"}.mdi-movie-play-outline:before{content:"\f1710"}.mdi-movie-plus:before{content:"\f1711"}.mdi-movie-plus-outline:before{content:"\f1712"}.mdi-movie-remove:before{content:"\f1713"}.mdi-movie-remove-outline:before{content:"\f1714"}.mdi-movie-roll:before{content:"\f07de"}.mdi-movie-search:before{content:"\f11d2"}.mdi-movie-search-outline:before{content:"\f11d3"}.mdi-movie-settings:before{content:"\f1715"}.mdi-movie-settings-outline:before{content:"\f1716"}.mdi-movie-star:before{content:"\f1717"}.mdi-movie-star-outline:before{content:"\f1718"}.mdi-mower:before{content:"\f166f"}.mdi-mower-bag:before{content:"\f1670"}.mdi-mower-bag-on:before{content:"\f1b60"}.mdi-mower-on:before{content:"\f1b5f"}.mdi-muffin:before{content:"\f098c"}.mdi-multicast:before{content:"\f1893"}.mdi-multimedia:before{content:"\f1b97"}.mdi-multiplication:before{content:"\f0382"}.mdi-multiplication-box:before{content:"\f0383"}.mdi-mushroom:before{content:"\f07df"}.mdi-mushroom-off:before{content:"\f13fa"}.mdi-mushroom-off-outline:before{content:"\f13fb"}.mdi-mushroom-outline:before{content:"\f07e0"}.mdi-music:before{content:"\f075a"}.mdi-music-accidental-double-flat:before{content:"\f0f69"}.mdi-music-accidental-double-sharp:before{content:"\f0f6a"}.mdi-music-accidental-flat:before{content:"\f0f6b"}.mdi-music-accidental-natural:before{content:"\f0f6c"}.mdi-music-accidental-sharp:before{content:"\f0f6d"}.mdi-music-box:before{content:"\f0384"}.mdi-music-box-multiple:before{content:"\f0333"}.mdi-music-box-multiple-outline:before{content:"\f0f04"}.mdi-music-box-outline:before{content:"\f0385"}.mdi-music-circle:before{content:"\f0386"}.mdi-music-circle-outline:before{content:"\f0ad4"}.mdi-music-clef-alto:before{content:"\f0f6e"}.mdi-music-clef-bass:before{content:"\f0f6f"}.mdi-music-clef-treble:before{content:"\f0f70"}.mdi-music-note:before{content:"\f0387"}.mdi-music-note-bluetooth:before{content:"\f05fe"}.mdi-music-note-bluetooth-off:before{content:"\f05ff"}.mdi-music-note-eighth:before{content:"\f0388"}.mdi-music-note-eighth-dotted:before{content:"\f0f71"}.mdi-music-note-half:before{content:"\f0389"}.mdi-music-note-half-dotted:before{content:"\f0f72"}.mdi-music-note-minus:before{content:"\f1b89"}.mdi-music-note-off:before{content:"\f038a"}.mdi-music-note-off-outline:before{content:"\f0f73"}.mdi-music-note-outline:before{content:"\f0f74"}.mdi-music-note-plus:before{content:"\f0dde"}.mdi-music-note-quarter:before{content:"\f038b"}.mdi-music-note-quarter-dotted:before{content:"\f0f75"}.mdi-music-note-sixteenth:before{content:"\f038c"}.mdi-music-note-sixteenth-dotted:before{content:"\f0f76"}.mdi-music-note-whole:before{content:"\f038d"}.mdi-music-note-whole-dotted:before{content:"\f0f77"}.mdi-music-off:before{content:"\f075b"}.mdi-music-rest-eighth:before{content:"\f0f78"}.mdi-music-rest-half:before{content:"\f0f79"}.mdi-music-rest-quarter:before{content:"\f0f7a"}.mdi-music-rest-sixteenth:before{content:"\f0f7b"}.mdi-music-rest-whole:before{content:"\f0f7c"}.mdi-mustache:before{content:"\f15de"}.mdi-nail:before{content:"\f0ddf"}.mdi-nas:before{content:"\f08f3"}.mdi-nativescript:before{content:"\f0880"}.mdi-nature:before{content:"\f038e"}.mdi-nature-outline:before{content:"\f1c71"}.mdi-nature-people:before{content:"\f038f"}.mdi-nature-people-outline:before{content:"\f1c72"}.mdi-navigation:before{content:"\f0390"}.mdi-navigation-outline:before{content:"\f1607"}.mdi-navigation-variant:before{content:"\f18f0"}.mdi-navigation-variant-outline:before{content:"\f18f1"}.mdi-near-me:before{content:"\f05cd"}.mdi-necklace:before{content:"\f0f0b"}.mdi-needle:before{content:"\f0391"}.mdi-needle-off:before{content:"\f19d2"}.mdi-netflix:before{content:"\f0746"}.mdi-network:before{content:"\f06f3"}.mdi-network-off:before{content:"\f0c9b"}.mdi-network-off-outline:before{content:"\f0c9c"}.mdi-network-outline:before{content:"\f0c9d"}.mdi-network-pos:before{content:"\f1acb"}.mdi-network-strength-1:before{content:"\f08f4"}.mdi-network-strength-1-alert:before{content:"\f08f5"}.mdi-network-strength-2:before{content:"\f08f6"}.mdi-network-strength-2-alert:before{content:"\f08f7"}.mdi-network-strength-3:before{content:"\f08f8"}.mdi-network-strength-3-alert:before{content:"\f08f9"}.mdi-network-strength-4:before{content:"\f08fa"}.mdi-network-strength-4-alert:before{content:"\f08fb"}.mdi-network-strength-4-cog:before{content:"\f191a"}.mdi-network-strength-off:before{content:"\f08fc"}.mdi-network-strength-off-outline:before{content:"\f08fd"}.mdi-network-strength-outline:before{content:"\f08fe"}.mdi-new-box:before{content:"\f0394"}.mdi-newspaper:before{content:"\f0395"}.mdi-newspaper-check:before{content:"\f1943"}.mdi-newspaper-minus:before{content:"\f0f0c"}.mdi-newspaper-plus:before{content:"\f0f0d"}.mdi-newspaper-remove:before{content:"\f1944"}.mdi-newspaper-variant:before{content:"\f1001"}.mdi-newspaper-variant-multiple:before{content:"\f1002"}.mdi-newspaper-variant-multiple-outline:before{content:"\f1003"}.mdi-newspaper-variant-outline:before{content:"\f1004"}.mdi-nfc:before{content:"\f0396"}.mdi-nfc-search-variant:before{content:"\f0e53"}.mdi-nfc-tap:before{content:"\f0397"}.mdi-nfc-variant:before{content:"\f0398"}.mdi-nfc-variant-off:before{content:"\f0e54"}.mdi-ninja:before{content:"\f0774"}.mdi-nintendo-game-boy:before{content:"\f1393"}.mdi-nintendo-switch:before{content:"\f07e1"}.mdi-nintendo-wii:before{content:"\f05ab"}.mdi-nintendo-wiiu:before{content:"\f072d"}.mdi-nix:before{content:"\f1105"}.mdi-nodejs:before{content:"\f0399"}.mdi-noodles:before{content:"\f117e"}.mdi-not-equal:before{content:"\f098d"}.mdi-not-equal-variant:before{content:"\f098e"}.mdi-note:before{content:"\f039a"}.mdi-note-alert:before{content:"\f177d"}.mdi-note-alert-outline:before{content:"\f177e"}.mdi-note-check:before{content:"\f177f"}.mdi-note-check-outline:before{content:"\f1780"}.mdi-note-edit:before{content:"\f1781"}.mdi-note-edit-outline:before{content:"\f1782"}.mdi-note-minus:before{content:"\f164f"}.mdi-note-minus-outline:before{content:"\f1650"}.mdi-note-multiple:before{content:"\f06b8"}.mdi-note-multiple-outline:before{content:"\f06b9"}.mdi-note-off:before{content:"\f1783"}.mdi-note-off-outline:before{content:"\f1784"}.mdi-note-outline:before{content:"\f039b"}.mdi-note-plus:before{content:"\f039c"}.mdi-note-plus-outline:before{content:"\f039d"}.mdi-note-remove:before{content:"\f1651"}.mdi-note-remove-outline:before{content:"\f1652"}.mdi-note-search:before{content:"\f1653"}.mdi-note-search-outline:before{content:"\f1654"}.mdi-note-text:before{content:"\f039e"}.mdi-note-text-outline:before{content:"\f11d7"}.mdi-notebook:before{content:"\f082e"}.mdi-notebook-check:before{content:"\f14f5"}.mdi-notebook-check-outline:before{content:"\f14f6"}.mdi-notebook-edit:before{content:"\f14e7"}.mdi-notebook-edit-outline:before{content:"\f14e9"}.mdi-notebook-heart:before{content:"\f1a0b"}.mdi-notebook-heart-outline:before{content:"\f1a0c"}.mdi-notebook-minus:before{content:"\f1610"}.mdi-notebook-minus-outline:before{content:"\f1611"}.mdi-notebook-multiple:before{content:"\f0e55"}.mdi-notebook-outline:before{content:"\f0ebf"}.mdi-notebook-plus:before{content:"\f1612"}.mdi-notebook-plus-outline:before{content:"\f1613"}.mdi-notebook-remove:before{content:"\f1614"}.mdi-notebook-remove-outline:before{content:"\f1615"}.mdi-notification-clear-all:before{content:"\f039f"}.mdi-npm:before{content:"\f06f7"}.mdi-nuke:before{content:"\f06a4"}.mdi-null:before{content:"\f07e2"}.mdi-numeric:before{content:"\f03a0"}.mdi-numeric-0:before{content:"\f0b39"}.mdi-numeric-0-box:before{content:"\f03a1"}.mdi-numeric-0-box-multiple:before{content:"\f0f0e"}.mdi-numeric-0-box-multiple-outline:before{content:"\f03a2"}.mdi-numeric-0-box-outline:before{content:"\f03a3"}.mdi-numeric-0-circle:before{content:"\f0c9e"}.mdi-numeric-0-circle-outline:before{content:"\f0c9f"}.mdi-numeric-1:before{content:"\f0b3a"}.mdi-numeric-1-box:before{content:"\f03a4"}.mdi-numeric-1-box-multiple:before{content:"\f0f0f"}.mdi-numeric-1-box-multiple-outline:before{content:"\f03a5"}.mdi-numeric-1-box-outline:before{content:"\f03a6"}.mdi-numeric-1-circle:before{content:"\f0ca0"}.mdi-numeric-1-circle-outline:before{content:"\f0ca1"}.mdi-numeric-10:before{content:"\f0fe9"}.mdi-numeric-10-box:before{content:"\f0f7d"}.mdi-numeric-10-box-multiple:before{content:"\f0fea"}.mdi-numeric-10-box-multiple-outline:before{content:"\f0feb"}.mdi-numeric-10-box-outline:before{content:"\f0f7e"}.mdi-numeric-10-circle:before{content:"\f0fec"}.mdi-numeric-10-circle-outline:before{content:"\f0fed"}.mdi-numeric-2:before{content:"\f0b3b"}.mdi-numeric-2-box:before{content:"\f03a7"}.mdi-numeric-2-box-multiple:before{content:"\f0f10"}.mdi-numeric-2-box-multiple-outline:before{content:"\f03a8"}.mdi-numeric-2-box-outline:before{content:"\f03a9"}.mdi-numeric-2-circle:before{content:"\f0ca2"}.mdi-numeric-2-circle-outline:before{content:"\f0ca3"}.mdi-numeric-3:before{content:"\f0b3c"}.mdi-numeric-3-box:before{content:"\f03aa"}.mdi-numeric-3-box-multiple:before{content:"\f0f11"}.mdi-numeric-3-box-multiple-outline:before{content:"\f03ab"}.mdi-numeric-3-box-outline:before{content:"\f03ac"}.mdi-numeric-3-circle:before{content:"\f0ca4"}.mdi-numeric-3-circle-outline:before{content:"\f0ca5"}.mdi-numeric-4:before{content:"\f0b3d"}.mdi-numeric-4-box:before{content:"\f03ad"}.mdi-numeric-4-box-multiple:before{content:"\f0f12"}.mdi-numeric-4-box-multiple-outline:before{content:"\f03b2"}.mdi-numeric-4-box-outline:before{content:"\f03ae"}.mdi-numeric-4-circle:before{content:"\f0ca6"}.mdi-numeric-4-circle-outline:before{content:"\f0ca7"}.mdi-numeric-5:before{content:"\f0b3e"}.mdi-numeric-5-box:before{content:"\f03b1"}.mdi-numeric-5-box-multiple:before{content:"\f0f13"}.mdi-numeric-5-box-multiple-outline:before{content:"\f03af"}.mdi-numeric-5-box-outline:before{content:"\f03b0"}.mdi-numeric-5-circle:before{content:"\f0ca8"}.mdi-numeric-5-circle-outline:before{content:"\f0ca9"}.mdi-numeric-6:before{content:"\f0b3f"}.mdi-numeric-6-box:before{content:"\f03b3"}.mdi-numeric-6-box-multiple:before{content:"\f0f14"}.mdi-numeric-6-box-multiple-outline:before{content:"\f03b4"}.mdi-numeric-6-box-outline:before{content:"\f03b5"}.mdi-numeric-6-circle:before{content:"\f0caa"}.mdi-numeric-6-circle-outline:before{content:"\f0cab"}.mdi-numeric-7:before{content:"\f0b40"}.mdi-numeric-7-box:before{content:"\f03b6"}.mdi-numeric-7-box-multiple:before{content:"\f0f15"}.mdi-numeric-7-box-multiple-outline:before{content:"\f03b7"}.mdi-numeric-7-box-outline:before{content:"\f03b8"}.mdi-numeric-7-circle:before{content:"\f0cac"}.mdi-numeric-7-circle-outline:before{content:"\f0cad"}.mdi-numeric-8:before{content:"\f0b41"}.mdi-numeric-8-box:before{content:"\f03b9"}.mdi-numeric-8-box-multiple:before{content:"\f0f16"}.mdi-numeric-8-box-multiple-outline:before{content:"\f03ba"}.mdi-numeric-8-box-outline:before{content:"\f03bb"}.mdi-numeric-8-circle:before{content:"\f0cae"}.mdi-numeric-8-circle-outline:before{content:"\f0caf"}.mdi-numeric-9:before{content:"\f0b42"}.mdi-numeric-9-box:before{content:"\f03bc"}.mdi-numeric-9-box-multiple:before{content:"\f0f17"}.mdi-numeric-9-box-multiple-outline:before{content:"\f03bd"}.mdi-numeric-9-box-outline:before{content:"\f03be"}.mdi-numeric-9-circle:before{content:"\f0cb0"}.mdi-numeric-9-circle-outline:before{content:"\f0cb1"}.mdi-numeric-9-plus:before{content:"\f0fee"}.mdi-numeric-9-plus-box:before{content:"\f03bf"}.mdi-numeric-9-plus-box-multiple:before{content:"\f0f18"}.mdi-numeric-9-plus-box-multiple-outline:before{content:"\f03c0"}.mdi-numeric-9-plus-box-outline:before{content:"\f03c1"}.mdi-numeric-9-plus-circle:before{content:"\f0cb2"}.mdi-numeric-9-plus-circle-outline:before{content:"\f0cb3"}.mdi-numeric-negative-1:before{content:"\f1052"}.mdi-numeric-off:before{content:"\f19d3"}.mdi-numeric-positive-1:before{content:"\f15cb"}.mdi-nut:before{content:"\f06f8"}.mdi-nutrition:before{content:"\f03c2"}.mdi-nuxt:before{content:"\f1106"}.mdi-oar:before{content:"\f067c"}.mdi-ocarina:before{content:"\f0de0"}.mdi-oci:before{content:"\f12e9"}.mdi-ocr:before{content:"\f113a"}.mdi-octagon:before{content:"\f03c3"}.mdi-octagon-outline:before{content:"\f03c4"}.mdi-octagram:before{content:"\f06f9"}.mdi-octagram-edit:before{content:"\f1c34"}.mdi-octagram-edit-outline:before{content:"\f1c35"}.mdi-octagram-minus:before{content:"\f1c36"}.mdi-octagram-minus-outline:before{content:"\f1c37"}.mdi-octagram-outline:before{content:"\f0775"}.mdi-octagram-plus:before{content:"\f1c38"}.mdi-octagram-plus-outline:before{content:"\f1c39"}.mdi-octahedron:before{content:"\f1950"}.mdi-octahedron-off:before{content:"\f1951"}.mdi-odnoklassniki:before{content:"\f03c5"}.mdi-offer:before{content:"\f121b"}.mdi-office-building:before{content:"\f0991"}.mdi-office-building-cog:before{content:"\f1949"}.mdi-office-building-cog-outline:before{content:"\f194a"}.mdi-office-building-marker:before{content:"\f1520"}.mdi-office-building-marker-outline:before{content:"\f1521"}.mdi-office-building-minus:before{content:"\f1baa"}.mdi-office-building-minus-outline:before{content:"\f1bab"}.mdi-office-building-outline:before{content:"\f151f"}.mdi-office-building-plus:before{content:"\f1ba8"}.mdi-office-building-plus-outline:before{content:"\f1ba9"}.mdi-office-building-remove:before{content:"\f1bac"}.mdi-office-building-remove-outline:before{content:"\f1bad"}.mdi-oil:before{content:"\f03c7"}.mdi-oil-lamp:before{content:"\f0f19"}.mdi-oil-level:before{content:"\f1053"}.mdi-oil-temperature:before{content:"\f0ff8"}.mdi-om:before{content:"\f0973"}.mdi-omega:before{content:"\f03c9"}.mdi-one-up:before{content:"\f0bad"}.mdi-onepassword:before{content:"\f0881"}.mdi-opacity:before{content:"\f05cc"}.mdi-open-in-app:before{content:"\f03cb"}.mdi-open-in-new:before{content:"\f03cc"}.mdi-open-source-initiative:before{content:"\f0bae"}.mdi-openid:before{content:"\f03cd"}.mdi-opera:before{content:"\f03ce"}.mdi-orbit:before{content:"\f0018"}.mdi-orbit-variant:before{content:"\f15db"}.mdi-order-alphabetical-ascending:before{content:"\f020d"}.mdi-order-alphabetical-descending:before{content:"\f0d07"}.mdi-order-bool-ascending:before{content:"\f02be"}.mdi-order-bool-ascending-variant:before{content:"\f098f"}.mdi-order-bool-descending:before{content:"\f1384"}.mdi-order-bool-descending-variant:before{content:"\f0990"}.mdi-order-numeric-ascending:before{content:"\f0545"}.mdi-order-numeric-descending:before{content:"\f0546"}.mdi-origin:before{content:"\f0b43"}.mdi-ornament:before{content:"\f03cf"}.mdi-ornament-variant:before{content:"\f03d0"}.mdi-outdoor-lamp:before{content:"\f1054"}.mdi-overscan:before{content:"\f1005"}.mdi-owl:before{content:"\f03d2"}.mdi-pac-man:before{content:"\f0baf"}.mdi-package:before{content:"\f03d3"}.mdi-package-check:before{content:"\f1b51"}.mdi-package-down:before{content:"\f03d4"}.mdi-package-up:before{content:"\f03d5"}.mdi-package-variant:before{content:"\f03d6"}.mdi-package-variant-closed:before{content:"\f03d7"}.mdi-package-variant-closed-check:before{content:"\f1b52"}.mdi-package-variant-closed-minus:before{content:"\f19d4"}.mdi-package-variant-closed-plus:before{content:"\f19d5"}.mdi-package-variant-closed-remove:before{content:"\f19d6"}.mdi-package-variant-minus:before{content:"\f19d7"}.mdi-package-variant-plus:before{content:"\f19d8"}.mdi-package-variant-remove:before{content:"\f19d9"}.mdi-page-first:before{content:"\f0600"}.mdi-page-last:before{content:"\f0601"}.mdi-page-layout-body:before{content:"\f06fa"}.mdi-page-layout-footer:before{content:"\f06fb"}.mdi-page-layout-header:before{content:"\f06fc"}.mdi-page-layout-header-footer:before{content:"\f0f7f"}.mdi-page-layout-sidebar-left:before{content:"\f06fd"}.mdi-page-layout-sidebar-right:before{content:"\f06fe"}.mdi-page-next:before{content:"\f0bb0"}.mdi-page-next-outline:before{content:"\f0bb1"}.mdi-page-previous:before{content:"\f0bb2"}.mdi-page-previous-outline:before{content:"\f0bb3"}.mdi-pail:before{content:"\f1417"}.mdi-pail-minus:before{content:"\f1437"}.mdi-pail-minus-outline:before{content:"\f143c"}.mdi-pail-off:before{content:"\f1439"}.mdi-pail-off-outline:before{content:"\f143e"}.mdi-pail-outline:before{content:"\f143a"}.mdi-pail-plus:before{content:"\f1436"}.mdi-pail-plus-outline:before{content:"\f143b"}.mdi-pail-remove:before{content:"\f1438"}.mdi-pail-remove-outline:before{content:"\f143d"}.mdi-palette:before{content:"\f03d8"}.mdi-palette-advanced:before{content:"\f03d9"}.mdi-palette-outline:before{content:"\f0e0c"}.mdi-palette-swatch:before{content:"\f08b5"}.mdi-palette-swatch-outline:before{content:"\f135c"}.mdi-palette-swatch-variant:before{content:"\f195a"}.mdi-palm-tree:before{content:"\f1055"}.mdi-pan:before{content:"\f0bb4"}.mdi-pan-bottom-left:before{content:"\f0bb5"}.mdi-pan-bottom-right:before{content:"\f0bb6"}.mdi-pan-down:before{content:"\f0bb7"}.mdi-pan-horizontal:before{content:"\f0bb8"}.mdi-pan-left:before{content:"\f0bb9"}.mdi-pan-right:before{content:"\f0bba"}.mdi-pan-top-left:before{content:"\f0bbb"}.mdi-pan-top-right:before{content:"\f0bbc"}.mdi-pan-up:before{content:"\f0bbd"}.mdi-pan-vertical:before{content:"\f0bbe"}.mdi-panda:before{content:"\f03da"}.mdi-pandora:before{content:"\f03db"}.mdi-panorama:before{content:"\f03dc"}.mdi-panorama-fisheye:before{content:"\f03dd"}.mdi-panorama-horizontal:before{content:"\f1928"}.mdi-panorama-horizontal-outline:before{content:"\f03de"}.mdi-panorama-outline:before{content:"\f198c"}.mdi-panorama-sphere:before{content:"\f198d"}.mdi-panorama-sphere-outline:before{content:"\f198e"}.mdi-panorama-variant:before{content:"\f198f"}.mdi-panorama-variant-outline:before{content:"\f1990"}.mdi-panorama-vertical:before{content:"\f1929"}.mdi-panorama-vertical-outline:before{content:"\f03df"}.mdi-panorama-wide-angle:before{content:"\f195f"}.mdi-panorama-wide-angle-outline:before{content:"\f03e0"}.mdi-paper-cut-vertical:before{content:"\f03e1"}.mdi-paper-roll:before{content:"\f1157"}.mdi-paper-roll-outline:before{content:"\f1158"}.mdi-paperclip:before{content:"\f03e2"}.mdi-paperclip-check:before{content:"\f1ac6"}.mdi-paperclip-lock:before{content:"\f19da"}.mdi-paperclip-minus:before{content:"\f1ac7"}.mdi-paperclip-off:before{content:"\f1ac8"}.mdi-paperclip-plus:before{content:"\f1ac9"}.mdi-paperclip-remove:before{content:"\f1aca"}.mdi-parachute:before{content:"\f0cb4"}.mdi-parachute-outline:before{content:"\f0cb5"}.mdi-paragliding:before{content:"\f1745"}.mdi-parking:before{content:"\f03e3"}.mdi-party-popper:before{content:"\f1056"}.mdi-passport:before{content:"\f07e3"}.mdi-passport-alert:before{content:"\f1cb8"}.mdi-passport-biometric:before{content:"\f0de1"}.mdi-passport-cancel:before{content:"\f1cb9"}.mdi-passport-check:before{content:"\f1cba"}.mdi-passport-minus:before{content:"\f1cbb"}.mdi-passport-plus:before{content:"\f1cbc"}.mdi-passport-remove:before{content:"\f1cbd"}.mdi-pasta:before{content:"\f1160"}.mdi-patio-heater:before{content:"\f0f80"}.mdi-patreon:before{content:"\f0882"}.mdi-pause:before{content:"\f03e4"}.mdi-pause-box:before{content:"\f00bc"}.mdi-pause-box-outline:before{content:"\f1b7a"}.mdi-pause-circle:before{content:"\f03e5"}.mdi-pause-circle-outline:before{content:"\f03e6"}.mdi-pause-octagon:before{content:"\f03e7"}.mdi-pause-octagon-outline:before{content:"\f03e8"}.mdi-paw:before{content:"\f03e9"}.mdi-paw-off:before{content:"\f0657"}.mdi-paw-off-outline:before{content:"\f1676"}.mdi-paw-outline:before{content:"\f1675"}.mdi-peace:before{content:"\f0884"}.mdi-peanut:before{content:"\f0ffc"}.mdi-peanut-off:before{content:"\f0ffd"}.mdi-peanut-off-outline:before{content:"\f0fff"}.mdi-peanut-outline:before{content:"\f0ffe"}.mdi-pen:before{content:"\f03ea"}.mdi-pen-lock:before{content:"\f0de2"}.mdi-pen-minus:before{content:"\f0de3"}.mdi-pen-off:before{content:"\f0de4"}.mdi-pen-plus:before{content:"\f0de5"}.mdi-pen-remove:before{content:"\f0de6"}.mdi-pencil:before{content:"\f03eb"}.mdi-pencil-box:before{content:"\f03ec"}.mdi-pencil-box-multiple:before{content:"\f1144"}.mdi-pencil-box-multiple-outline:before{content:"\f1145"}.mdi-pencil-box-outline:before{content:"\f03ed"}.mdi-pencil-circle:before{content:"\f06ff"}.mdi-pencil-circle-outline:before{content:"\f0776"}.mdi-pencil-lock:before{content:"\f03ee"}.mdi-pencil-lock-outline:before{content:"\f0de7"}.mdi-pencil-minus:before{content:"\f0de8"}.mdi-pencil-minus-outline:before{content:"\f0de9"}.mdi-pencil-off:before{content:"\f03ef"}.mdi-pencil-off-outline:before{content:"\f0dea"}.mdi-pencil-outline:before{content:"\f0cb6"}.mdi-pencil-plus:before{content:"\f0deb"}.mdi-pencil-plus-outline:before{content:"\f0dec"}.mdi-pencil-remove:before{content:"\f0ded"}.mdi-pencil-remove-outline:before{content:"\f0dee"}.mdi-pencil-ruler:before{content:"\f1353"}.mdi-pencil-ruler-outline:before{content:"\f1c11"}.mdi-penguin:before{content:"\f0ec0"}.mdi-pentagon:before{content:"\f0701"}.mdi-pentagon-outline:before{content:"\f0700"}.mdi-pentagram:before{content:"\f1667"}.mdi-percent:before{content:"\f03f0"}.mdi-percent-box:before{content:"\f1a02"}.mdi-percent-box-outline:before{content:"\f1a03"}.mdi-percent-circle:before{content:"\f1a04"}.mdi-percent-circle-outline:before{content:"\f1a05"}.mdi-percent-outline:before{content:"\f1278"}.mdi-periodic-table:before{content:"\f08b6"}.mdi-perspective-less:before{content:"\f0d23"}.mdi-perspective-more:before{content:"\f0d24"}.mdi-ph:before{content:"\f17c5"}.mdi-phone:before{content:"\f03f2"}.mdi-phone-alert:before{content:"\f0f1a"}.mdi-phone-alert-outline:before{content:"\f118e"}.mdi-phone-bluetooth:before{content:"\f03f3"}.mdi-phone-bluetooth-outline:before{content:"\f118f"}.mdi-phone-cancel:before{content:"\f10bc"}.mdi-phone-cancel-outline:before{content:"\f1190"}.mdi-phone-check:before{content:"\f11a9"}.mdi-phone-check-outline:before{content:"\f11aa"}.mdi-phone-classic:before{content:"\f0602"}.mdi-phone-classic-off:before{content:"\f1279"}.mdi-phone-clock:before{content:"\f19db"}.mdi-phone-dial:before{content:"\f1559"}.mdi-phone-dial-outline:before{content:"\f155a"}.mdi-phone-forward:before{content:"\f03f4"}.mdi-phone-forward-outline:before{content:"\f1191"}.mdi-phone-hangup:before{content:"\f03f5"}.mdi-phone-hangup-outline:before{content:"\f1192"}.mdi-phone-in-talk:before{content:"\f03f6"}.mdi-phone-in-talk-outline:before{content:"\f1182"}.mdi-phone-incoming:before{content:"\f03f7"}.mdi-phone-incoming-outgoing:before{content:"\f1b3f"}.mdi-phone-incoming-outgoing-outline:before{content:"\f1b40"}.mdi-phone-incoming-outline:before{content:"\f1193"}.mdi-phone-lock:before{content:"\f03f8"}.mdi-phone-lock-outline:before{content:"\f1194"}.mdi-phone-log:before{content:"\f03f9"}.mdi-phone-log-outline:before{content:"\f1195"}.mdi-phone-message:before{content:"\f1196"}.mdi-phone-message-outline:before{content:"\f1197"}.mdi-phone-minus:before{content:"\f0658"}.mdi-phone-minus-outline:before{content:"\f1198"}.mdi-phone-missed:before{content:"\f03fa"}.mdi-phone-missed-outline:before{content:"\f11a5"}.mdi-phone-off:before{content:"\f0def"}.mdi-phone-off-outline:before{content:"\f11a6"}.mdi-phone-outgoing:before{content:"\f03fb"}.mdi-phone-outgoing-outline:before{content:"\f1199"}.mdi-phone-outline:before{content:"\f0df0"}.mdi-phone-paused:before{content:"\f03fc"}.mdi-phone-paused-outline:before{content:"\f119a"}.mdi-phone-plus:before{content:"\f0659"}.mdi-phone-plus-outline:before{content:"\f119b"}.mdi-phone-refresh:before{content:"\f1993"}.mdi-phone-refresh-outline:before{content:"\f1994"}.mdi-phone-remove:before{content:"\f152f"}.mdi-phone-remove-outline:before{content:"\f1530"}.mdi-phone-return:before{content:"\f082f"}.mdi-phone-return-outline:before{content:"\f119c"}.mdi-phone-ring:before{content:"\f11ab"}.mdi-phone-ring-outline:before{content:"\f11ac"}.mdi-phone-rotate-landscape:before{content:"\f0885"}.mdi-phone-rotate-portrait:before{content:"\f0886"}.mdi-phone-settings:before{content:"\f03fd"}.mdi-phone-settings-outline:before{content:"\f119d"}.mdi-phone-sync:before{content:"\f1995"}.mdi-phone-sync-outline:before{content:"\f1996"}.mdi-phone-voip:before{content:"\f03fe"}.mdi-pi:before{content:"\f03ff"}.mdi-pi-box:before{content:"\f0400"}.mdi-pi-hole:before{content:"\f0df1"}.mdi-piano:before{content:"\f067d"}.mdi-piano-off:before{content:"\f0698"}.mdi-pickaxe:before{content:"\f08b7"}.mdi-picture-in-picture-bottom-right:before{content:"\f0e57"}.mdi-picture-in-picture-bottom-right-outline:before{content:"\f0e58"}.mdi-picture-in-picture-top-right:before{content:"\f0e59"}.mdi-picture-in-picture-top-right-outline:before{content:"\f0e5a"}.mdi-pier:before{content:"\f0887"}.mdi-pier-crane:before{content:"\f0888"}.mdi-pig:before{content:"\f0401"}.mdi-pig-variant:before{content:"\f1006"}.mdi-pig-variant-outline:before{content:"\f1678"}.mdi-piggy-bank:before{content:"\f1007"}.mdi-piggy-bank-outline:before{content:"\f1679"}.mdi-pill:before{content:"\f0402"}.mdi-pill-multiple:before{content:"\f1b4c"}.mdi-pill-off:before{content:"\f1a5c"}.mdi-pillar:before{content:"\f0702"}.mdi-pin:before{content:"\f0403"}.mdi-pin-off:before{content:"\f0404"}.mdi-pin-off-outline:before{content:"\f0930"}.mdi-pin-outline:before{content:"\f0931"}.mdi-pine-tree:before{content:"\f0405"}.mdi-pine-tree-box:before{content:"\f0406"}.mdi-pine-tree-fire:before{content:"\f141a"}.mdi-pine-tree-variant:before{content:"\f1c73"}.mdi-pine-tree-variant-outline:before{content:"\f1c74"}.mdi-pinterest:before{content:"\f0407"}.mdi-pinwheel:before{content:"\f0ad5"}.mdi-pinwheel-outline:before{content:"\f0ad6"}.mdi-pipe:before{content:"\f07e5"}.mdi-pipe-disconnected:before{content:"\f07e6"}.mdi-pipe-leak:before{content:"\f0889"}.mdi-pipe-valve:before{content:"\f184d"}.mdi-pipe-wrench:before{content:"\f1354"}.mdi-pirate:before{content:"\f0a08"}.mdi-pistol:before{content:"\f0703"}.mdi-piston:before{content:"\f088a"}.mdi-pitchfork:before{content:"\f1553"}.mdi-pizza:before{content:"\f0409"}.mdi-plane-car:before{content:"\f1aff"}.mdi-plane-train:before{content:"\f1b00"}.mdi-play:before{content:"\f040a"}.mdi-play-box:before{content:"\f127a"}.mdi-play-box-edit-outline:before{content:"\f1c3a"}.mdi-play-box-lock:before{content:"\f1a16"}.mdi-play-box-lock-open:before{content:"\f1a17"}.mdi-play-box-lock-open-outline:before{content:"\f1a18"}.mdi-play-box-lock-outline:before{content:"\f1a19"}.mdi-play-box-multiple:before{content:"\f0d19"}.mdi-play-box-multiple-outline:before{content:"\f13e6"}.mdi-play-box-outline:before{content:"\f040b"}.mdi-play-circle:before{content:"\f040c"}.mdi-play-circle-outline:before{content:"\f040d"}.mdi-play-network:before{content:"\f088b"}.mdi-play-network-outline:before{content:"\f0cb7"}.mdi-play-outline:before{content:"\f0f1b"}.mdi-play-pause:before{content:"\f040e"}.mdi-play-protected-content:before{content:"\f040f"}.mdi-play-speed:before{content:"\f08ff"}.mdi-playlist-check:before{content:"\f05c7"}.mdi-playlist-edit:before{content:"\f0900"}.mdi-playlist-minus:before{content:"\f0410"}.mdi-playlist-music:before{content:"\f0cb8"}.mdi-playlist-music-outline:before{content:"\f0cb9"}.mdi-playlist-play:before{content:"\f0411"}.mdi-playlist-plus:before{content:"\f0412"}.mdi-playlist-remove:before{content:"\f0413"}.mdi-playlist-star:before{content:"\f0df2"}.mdi-plex:before{content:"\f06ba"}.mdi-pliers:before{content:"\f19a4"}.mdi-plus:before{content:"\f0415"}.mdi-plus-box:before{content:"\f0416"}.mdi-plus-box-multiple:before{content:"\f0334"}.mdi-plus-box-multiple-outline:before{content:"\f1143"}.mdi-plus-box-outline:before{content:"\f0704"}.mdi-plus-circle:before{content:"\f0417"}.mdi-plus-circle-multiple:before{content:"\f034c"}.mdi-plus-circle-multiple-outline:before{content:"\f0418"}.mdi-plus-circle-outline:before{content:"\f0419"}.mdi-plus-lock:before{content:"\f1a5d"}.mdi-plus-lock-open:before{content:"\f1a5e"}.mdi-plus-minus:before{content:"\f0992"}.mdi-plus-minus-box:before{content:"\f0993"}.mdi-plus-minus-variant:before{content:"\f14c9"}.mdi-plus-network:before{content:"\f041a"}.mdi-plus-network-outline:before{content:"\f0cba"}.mdi-plus-outline:before{content:"\f0705"}.mdi-plus-thick:before{content:"\f11ec"}.mdi-pocket:before{content:"\f1cbe"}.mdi-podcast:before{content:"\f0994"}.mdi-podium:before{content:"\f0d25"}.mdi-podium-bronze:before{content:"\f0d26"}.mdi-podium-gold:before{content:"\f0d27"}.mdi-podium-silver:before{content:"\f0d28"}.mdi-point-of-sale:before{content:"\f0d92"}.mdi-pokeball:before{content:"\f041d"}.mdi-pokemon-go:before{content:"\f0a09"}.mdi-poker-chip:before{content:"\f0830"}.mdi-polaroid:before{content:"\f041e"}.mdi-police-badge:before{content:"\f1167"}.mdi-police-badge-outline:before{content:"\f1168"}.mdi-police-station:before{content:"\f1839"}.mdi-poll:before{content:"\f041f"}.mdi-polo:before{content:"\f14c3"}.mdi-polymer:before{content:"\f0421"}.mdi-pool:before{content:"\f0606"}.mdi-pool-thermometer:before{content:"\f1a5f"}.mdi-popcorn:before{content:"\f0422"}.mdi-post:before{content:"\f1008"}.mdi-post-lamp:before{content:"\f1a60"}.mdi-post-outline:before{content:"\f1009"}.mdi-postage-stamp:before{content:"\f0cbb"}.mdi-pot:before{content:"\f02e5"}.mdi-pot-mix:before{content:"\f065b"}.mdi-pot-mix-outline:before{content:"\f0677"}.mdi-pot-outline:before{content:"\f02ff"}.mdi-pot-steam:before{content:"\f065a"}.mdi-pot-steam-outline:before{content:"\f0326"}.mdi-pound:before{content:"\f0423"}.mdi-pound-box:before{content:"\f0424"}.mdi-pound-box-outline:before{content:"\f117f"}.mdi-power:before{content:"\f0425"}.mdi-power-cycle:before{content:"\f0901"}.mdi-power-off:before{content:"\f0902"}.mdi-power-on:before{content:"\f0903"}.mdi-power-plug:before{content:"\f06a5"}.mdi-power-plug-battery:before{content:"\f1c3b"}.mdi-power-plug-battery-outline:before{content:"\f1c3c"}.mdi-power-plug-off:before{content:"\f06a6"}.mdi-power-plug-off-outline:before{content:"\f1424"}.mdi-power-plug-outline:before{content:"\f1425"}.mdi-power-settings:before{content:"\f0426"}.mdi-power-sleep:before{content:"\f0904"}.mdi-power-socket:before{content:"\f0427"}.mdi-power-socket-au:before{content:"\f0905"}.mdi-power-socket-ch:before{content:"\f0fb3"}.mdi-power-socket-de:before{content:"\f1107"}.mdi-power-socket-eu:before{content:"\f07e7"}.mdi-power-socket-fr:before{content:"\f1108"}.mdi-power-socket-it:before{content:"\f14ff"}.mdi-power-socket-jp:before{content:"\f1109"}.mdi-power-socket-uk:before{content:"\f07e8"}.mdi-power-socket-us:before{content:"\f07e9"}.mdi-power-standby:before{content:"\f0906"}.mdi-powershell:before{content:"\f0a0a"}.mdi-prescription:before{content:"\f0706"}.mdi-presentation:before{content:"\f0428"}.mdi-presentation-play:before{content:"\f0429"}.mdi-pretzel:before{content:"\f1562"}.mdi-printer:before{content:"\f042a"}.mdi-printer-3d:before{content:"\f042b"}.mdi-printer-3d-nozzle:before{content:"\f0e5b"}.mdi-printer-3d-nozzle-alert:before{content:"\f11c0"}.mdi-printer-3d-nozzle-alert-outline:before{content:"\f11c1"}.mdi-printer-3d-nozzle-heat:before{content:"\f18b8"}.mdi-printer-3d-nozzle-heat-outline:before{content:"\f18b9"}.mdi-printer-3d-nozzle-off:before{content:"\f1b19"}.mdi-printer-3d-nozzle-off-outline:before{content:"\f1b1a"}.mdi-printer-3d-nozzle-outline:before{content:"\f0e5c"}.mdi-printer-3d-off:before{content:"\f1b0e"}.mdi-printer-alert:before{content:"\f042c"}.mdi-printer-check:before{content:"\f1146"}.mdi-printer-eye:before{content:"\f1458"}.mdi-printer-off:before{content:"\f0e5d"}.mdi-printer-off-outline:before{content:"\f1785"}.mdi-printer-outline:before{content:"\f1786"}.mdi-printer-pos:before{content:"\f1057"}.mdi-printer-pos-alert:before{content:"\f1bbc"}.mdi-printer-pos-alert-outline:before{content:"\f1bbd"}.mdi-printer-pos-cancel:before{content:"\f1bbe"}.mdi-printer-pos-cancel-outline:before{content:"\f1bbf"}.mdi-printer-pos-check:before{content:"\f1bc0"}.mdi-printer-pos-check-outline:before{content:"\f1bc1"}.mdi-printer-pos-cog:before{content:"\f1bc2"}.mdi-printer-pos-cog-outline:before{content:"\f1bc3"}.mdi-printer-pos-edit:before{content:"\f1bc4"}.mdi-printer-pos-edit-outline:before{content:"\f1bc5"}.mdi-printer-pos-minus:before{content:"\f1bc6"}.mdi-printer-pos-minus-outline:before{content:"\f1bc7"}.mdi-printer-pos-network:before{content:"\f1bc8"}.mdi-printer-pos-network-outline:before{content:"\f1bc9"}.mdi-printer-pos-off:before{content:"\f1bca"}.mdi-printer-pos-off-outline:before{content:"\f1bcb"}.mdi-printer-pos-outline:before{content:"\f1bcc"}.mdi-printer-pos-pause:before{content:"\f1bcd"}.mdi-printer-pos-pause-outline:before{content:"\f1bce"}.mdi-printer-pos-play:before{content:"\f1bcf"}.mdi-printer-pos-play-outline:before{content:"\f1bd0"}.mdi-printer-pos-plus:before{content:"\f1bd1"}.mdi-printer-pos-plus-outline:before{content:"\f1bd2"}.mdi-printer-pos-refresh:before{content:"\f1bd3"}.mdi-printer-pos-refresh-outline:before{content:"\f1bd4"}.mdi-printer-pos-remove:before{content:"\f1bd5"}.mdi-printer-pos-remove-outline:before{content:"\f1bd6"}.mdi-printer-pos-star:before{content:"\f1bd7"}.mdi-printer-pos-star-outline:before{content:"\f1bd8"}.mdi-printer-pos-stop:before{content:"\f1bd9"}.mdi-printer-pos-stop-outline:before{content:"\f1bda"}.mdi-printer-pos-sync:before{content:"\f1bdb"}.mdi-printer-pos-sync-outline:before{content:"\f1bdc"}.mdi-printer-pos-wrench:before{content:"\f1bdd"}.mdi-printer-pos-wrench-outline:before{content:"\f1bde"}.mdi-printer-search:before{content:"\f1457"}.mdi-printer-settings:before{content:"\f0707"}.mdi-printer-wireless:before{content:"\f0a0b"}.mdi-priority-high:before{content:"\f0603"}.mdi-priority-low:before{content:"\f0604"}.mdi-professional-hexagon:before{content:"\f042d"}.mdi-progress-alert:before{content:"\f0cbc"}.mdi-progress-check:before{content:"\f0995"}.mdi-progress-clock:before{content:"\f0996"}.mdi-progress-close:before{content:"\f110a"}.mdi-progress-download:before{content:"\f0997"}.mdi-progress-helper:before{content:"\f1ba2"}.mdi-progress-pencil:before{content:"\f1787"}.mdi-progress-question:before{content:"\f1522"}.mdi-progress-star:before{content:"\f1788"}.mdi-progress-star-four-points:before{content:"\f1c3d"}.mdi-progress-upload:before{content:"\f0998"}.mdi-progress-wrench:before{content:"\f0cbd"}.mdi-projector:before{content:"\f042e"}.mdi-projector-off:before{content:"\f1a23"}.mdi-projector-screen:before{content:"\f042f"}.mdi-projector-screen-off:before{content:"\f180d"}.mdi-projector-screen-off-outline:before{content:"\f180e"}.mdi-projector-screen-outline:before{content:"\f1724"}.mdi-projector-screen-variant:before{content:"\f180f"}.mdi-projector-screen-variant-off:before{content:"\f1810"}.mdi-projector-screen-variant-off-outline:before{content:"\f1811"}.mdi-projector-screen-variant-outline:before{content:"\f1812"}.mdi-propane-tank:before{content:"\f1357"}.mdi-propane-tank-outline:before{content:"\f1358"}.mdi-protocol:before{content:"\f0fd8"}.mdi-publish:before{content:"\f06a7"}.mdi-publish-off:before{content:"\f1945"}.mdi-pulse:before{content:"\f0430"}.mdi-pump:before{content:"\f1402"}.mdi-pump-off:before{content:"\f1b22"}.mdi-pumpkin:before{content:"\f0bbf"}.mdi-purse:before{content:"\f0f1c"}.mdi-purse-outline:before{content:"\f0f1d"}.mdi-puzzle:before{content:"\f0431"}.mdi-puzzle-check:before{content:"\f1426"}.mdi-puzzle-check-outline:before{content:"\f1427"}.mdi-puzzle-edit:before{content:"\f14d3"}.mdi-puzzle-edit-outline:before{content:"\f14d9"}.mdi-puzzle-heart:before{content:"\f14d4"}.mdi-puzzle-heart-outline:before{content:"\f14da"}.mdi-puzzle-minus:before{content:"\f14d1"}.mdi-puzzle-minus-outline:before{content:"\f14d7"}.mdi-puzzle-outline:before{content:"\f0a66"}.mdi-puzzle-plus:before{content:"\f14d0"}.mdi-puzzle-plus-outline:before{content:"\f14d6"}.mdi-puzzle-remove:before{content:"\f14d2"}.mdi-puzzle-remove-outline:before{content:"\f14d8"}.mdi-puzzle-star:before{content:"\f14d5"}.mdi-puzzle-star-outline:before{content:"\f14db"}.mdi-pyramid:before{content:"\f1952"}.mdi-pyramid-off:before{content:"\f1953"}.mdi-qi:before{content:"\f0999"}.mdi-qqchat:before{content:"\f0605"}.mdi-qrcode:before{content:"\f0432"}.mdi-qrcode-edit:before{content:"\f08b8"}.mdi-qrcode-minus:before{content:"\f118c"}.mdi-qrcode-plus:before{content:"\f118b"}.mdi-qrcode-remove:before{content:"\f118d"}.mdi-qrcode-scan:before{content:"\f0433"}.mdi-quadcopter:before{content:"\f0434"}.mdi-quality-high:before{content:"\f0435"}.mdi-quality-low:before{content:"\f0a0c"}.mdi-quality-medium:before{content:"\f0a0d"}.mdi-queue-first-in-last-out:before{content:"\f1caf"}.mdi-quora:before{content:"\f0d29"}.mdi-rabbit:before{content:"\f0907"}.mdi-rabbit-variant:before{content:"\f1a61"}.mdi-rabbit-variant-outline:before{content:"\f1a62"}.mdi-racing-helmet:before{content:"\f0d93"}.mdi-racquetball:before{content:"\f0d94"}.mdi-radar:before{content:"\f0437"}.mdi-radiator:before{content:"\f0438"}.mdi-radiator-disabled:before{content:"\f0ad7"}.mdi-radiator-off:before{content:"\f0ad8"}.mdi-radio:before{content:"\f0439"}.mdi-radio-am:before{content:"\f0cbe"}.mdi-radio-fm:before{content:"\f0cbf"}.mdi-radio-handheld:before{content:"\f043a"}.mdi-radio-off:before{content:"\f121c"}.mdi-radio-tower:before{content:"\f043b"}.mdi-radioactive:before{content:"\f043c"}.mdi-radioactive-circle:before{content:"\f185d"}.mdi-radioactive-circle-outline:before{content:"\f185e"}.mdi-radioactive-off:before{content:"\f0ec1"}.mdi-radiobox-blank:before{content:"\f043d"}.mdi-radiobox-indeterminate-variant:before{content:"\f1c5e"}.mdi-radiobox-marked:before{content:"\f043e"}.mdi-radiology-box:before{content:"\f14c5"}.mdi-radiology-box-outline:before{content:"\f14c6"}.mdi-radius:before{content:"\f0cc0"}.mdi-radius-outline:before{content:"\f0cc1"}.mdi-railroad-light:before{content:"\f0f1e"}.mdi-rake:before{content:"\f1544"}.mdi-raspberry-pi:before{content:"\f043f"}.mdi-raw:before{content:"\f1a0f"}.mdi-raw-off:before{content:"\f1a10"}.mdi-ray-end:before{content:"\f0440"}.mdi-ray-end-arrow:before{content:"\f0441"}.mdi-ray-start:before{content:"\f0442"}.mdi-ray-start-arrow:before{content:"\f0443"}.mdi-ray-start-end:before{content:"\f0444"}.mdi-ray-start-vertex-end:before{content:"\f15d8"}.mdi-ray-vertex:before{content:"\f0445"}.mdi-razor-double-edge:before{content:"\f1997"}.mdi-razor-single-edge:before{content:"\f1998"}.mdi-react:before{content:"\f0708"}.mdi-read:before{content:"\f0447"}.mdi-receipt:before{content:"\f0824"}.mdi-receipt-clock:before{content:"\f1c3e"}.mdi-receipt-clock-outline:before{content:"\f1c3f"}.mdi-receipt-outline:before{content:"\f04f7"}.mdi-receipt-send:before{content:"\f1c40"}.mdi-receipt-send-outline:before{content:"\f1c41"}.mdi-receipt-text:before{content:"\f0449"}.mdi-receipt-text-arrow-left:before{content:"\f1c42"}.mdi-receipt-text-arrow-left-outline:before{content:"\f1c43"}.mdi-receipt-text-arrow-right:before{content:"\f1c44"}.mdi-receipt-text-arrow-right-outline:before{content:"\f1c45"}.mdi-receipt-text-check:before{content:"\f1a63"}.mdi-receipt-text-check-outline:before{content:"\f1a64"}.mdi-receipt-text-clock:before{content:"\f1c46"}.mdi-receipt-text-clock-outline:before{content:"\f1c47"}.mdi-receipt-text-edit:before{content:"\f1c48"}.mdi-receipt-text-edit-outline:before{content:"\f1c49"}.mdi-receipt-text-minus:before{content:"\f1a65"}.mdi-receipt-text-minus-outline:before{content:"\f1a66"}.mdi-receipt-text-outline:before{content:"\f19dc"}.mdi-receipt-text-plus:before{content:"\f1a67"}.mdi-receipt-text-plus-outline:before{content:"\f1a68"}.mdi-receipt-text-remove:before{content:"\f1a69"}.mdi-receipt-text-remove-outline:before{content:"\f1a6a"}.mdi-receipt-text-send:before{content:"\f1c4a"}.mdi-receipt-text-send-outline:before{content:"\f1c4b"}.mdi-record:before{content:"\f044a"}.mdi-record-circle:before{content:"\f0ec2"}.mdi-record-circle-outline:before{content:"\f0ec3"}.mdi-record-player:before{content:"\f099a"}.mdi-record-rec:before{content:"\f044b"}.mdi-rectangle:before{content:"\f0e5e"}.mdi-rectangle-outline:before{content:"\f0e5f"}.mdi-recycle:before{content:"\f044c"}.mdi-recycle-variant:before{content:"\f139d"}.mdi-reddit:before{content:"\f044d"}.mdi-redhat:before{content:"\f111b"}.mdi-redo:before{content:"\f044e"}.mdi-redo-variant:before{content:"\f044f"}.mdi-reflect-horizontal:before{content:"\f0a0e"}.mdi-reflect-vertical:before{content:"\f0a0f"}.mdi-refresh:before{content:"\f0450"}.mdi-refresh-auto:before{content:"\f18f2"}.mdi-refresh-circle:before{content:"\f1377"}.mdi-regex:before{content:"\f0451"}.mdi-registered-trademark:before{content:"\f0a67"}.mdi-reiterate:before{content:"\f1588"}.mdi-relation-many-to-many:before{content:"\f1496"}.mdi-relation-many-to-one:before{content:"\f1497"}.mdi-relation-many-to-one-or-many:before{content:"\f1498"}.mdi-relation-many-to-only-one:before{content:"\f1499"}.mdi-relation-many-to-zero-or-many:before{content:"\f149a"}.mdi-relation-many-to-zero-or-one:before{content:"\f149b"}.mdi-relation-one-or-many-to-many:before{content:"\f149c"}.mdi-relation-one-or-many-to-one:before{content:"\f149d"}.mdi-relation-one-or-many-to-one-or-many:before{content:"\f149e"}.mdi-relation-one-or-many-to-only-one:before{content:"\f149f"}.mdi-relation-one-or-many-to-zero-or-many:before{content:"\f14a0"}.mdi-relation-one-or-many-to-zero-or-one:before{content:"\f14a1"}.mdi-relation-one-to-many:before{content:"\f14a2"}.mdi-relation-one-to-one:before{content:"\f14a3"}.mdi-relation-one-to-one-or-many:before{content:"\f14a4"}.mdi-relation-one-to-only-one:before{content:"\f14a5"}.mdi-relation-one-to-zero-or-many:before{content:"\f14a6"}.mdi-relation-one-to-zero-or-one:before{content:"\f14a7"}.mdi-relation-only-one-to-many:before{content:"\f14a8"}.mdi-relation-only-one-to-one:before{content:"\f14a9"}.mdi-relation-only-one-to-one-or-many:before{content:"\f14aa"}.mdi-relation-only-one-to-only-one:before{content:"\f14ab"}.mdi-relation-only-one-to-zero-or-many:before{content:"\f14ac"}.mdi-relation-only-one-to-zero-or-one:before{content:"\f14ad"}.mdi-relation-zero-or-many-to-many:before{content:"\f14ae"}.mdi-relation-zero-or-many-to-one:before{content:"\f14af"}.mdi-relation-zero-or-many-to-one-or-many:before{content:"\f14b0"}.mdi-relation-zero-or-many-to-only-one:before{content:"\f14b1"}.mdi-relation-zero-or-many-to-zero-or-many:before{content:"\f14b2"}.mdi-relation-zero-or-many-to-zero-or-one:before{content:"\f14b3"}.mdi-relation-zero-or-one-to-many:before{content:"\f14b4"}.mdi-relation-zero-or-one-to-one:before{content:"\f14b5"}.mdi-relation-zero-or-one-to-one-or-many:before{content:"\f14b6"}.mdi-relation-zero-or-one-to-only-one:before{content:"\f14b7"}.mdi-relation-zero-or-one-to-zero-or-many:before{content:"\f14b8"}.mdi-relation-zero-or-one-to-zero-or-one:before{content:"\f14b9"}.mdi-relative-scale:before{content:"\f0452"}.mdi-reload:before{content:"\f0453"}.mdi-reload-alert:before{content:"\f110b"}.mdi-reminder:before{content:"\f088c"}.mdi-remote:before{content:"\f0454"}.mdi-remote-desktop:before{content:"\f08b9"}.mdi-remote-off:before{content:"\f0ec4"}.mdi-remote-tv:before{content:"\f0ec5"}.mdi-remote-tv-off:before{content:"\f0ec6"}.mdi-rename:before{content:"\f1c18"}.mdi-rename-box:before{content:"\f0455"}.mdi-rename-box-outline:before{content:"\f1c19"}.mdi-rename-outline:before{content:"\f1c1a"}.mdi-reorder-horizontal:before{content:"\f0688"}.mdi-reorder-vertical:before{content:"\f0689"}.mdi-repeat:before{content:"\f0456"}.mdi-repeat-off:before{content:"\f0457"}.mdi-repeat-once:before{content:"\f0458"}.mdi-repeat-variant:before{content:"\f0547"}.mdi-replay:before{content:"\f0459"}.mdi-reply:before{content:"\f045a"}.mdi-reply-all:before{content:"\f045b"}.mdi-reply-all-outline:before{content:"\f0f1f"}.mdi-reply-circle:before{content:"\f11ae"}.mdi-reply-outline:before{content:"\f0f20"}.mdi-reproduction:before{content:"\f045c"}.mdi-resistor:before{content:"\f0b44"}.mdi-resistor-nodes:before{content:"\f0b45"}.mdi-resize:before{content:"\f0a68"}.mdi-resize-bottom-right:before{content:"\f045d"}.mdi-responsive:before{content:"\f045e"}.mdi-restart:before{content:"\f0709"}.mdi-restart-alert:before{content:"\f110c"}.mdi-restart-off:before{content:"\f0d95"}.mdi-restore:before{content:"\f099b"}.mdi-restore-alert:before{content:"\f110d"}.mdi-rewind:before{content:"\f045f"}.mdi-rewind-10:before{content:"\f0d2a"}.mdi-rewind-15:before{content:"\f1946"}.mdi-rewind-30:before{content:"\f0d96"}.mdi-rewind-45:before{content:"\f1b13"}.mdi-rewind-5:before{content:"\f11f9"}.mdi-rewind-60:before{content:"\f160c"}.mdi-rewind-outline:before{content:"\f070a"}.mdi-rhombus:before{content:"\f070b"}.mdi-rhombus-medium:before{content:"\f0a10"}.mdi-rhombus-medium-outline:before{content:"\f14dc"}.mdi-rhombus-outline:before{content:"\f070c"}.mdi-rhombus-split:before{content:"\f0a11"}.mdi-rhombus-split-outline:before{content:"\f14dd"}.mdi-ribbon:before{content:"\f0460"}.mdi-rice:before{content:"\f07ea"}.mdi-rickshaw:before{content:"\f15bb"}.mdi-rickshaw-electric:before{content:"\f15bc"}.mdi-ring:before{content:"\f07eb"}.mdi-rivet:before{content:"\f0e60"}.mdi-road:before{content:"\f0461"}.mdi-road-variant:before{content:"\f0462"}.mdi-robber:before{content:"\f1058"}.mdi-robot:before{content:"\f06a9"}.mdi-robot-angry:before{content:"\f169d"}.mdi-robot-angry-outline:before{content:"\f169e"}.mdi-robot-confused:before{content:"\f169f"}.mdi-robot-confused-outline:before{content:"\f16a0"}.mdi-robot-dead:before{content:"\f16a1"}.mdi-robot-dead-outline:before{content:"\f16a2"}.mdi-robot-excited:before{content:"\f16a3"}.mdi-robot-excited-outline:before{content:"\f16a4"}.mdi-robot-happy:before{content:"\f1719"}.mdi-robot-happy-outline:before{content:"\f171a"}.mdi-robot-industrial:before{content:"\f0b46"}.mdi-robot-industrial-outline:before{content:"\f1a1a"}.mdi-robot-love:before{content:"\f16a5"}.mdi-robot-love-outline:before{content:"\f16a6"}.mdi-robot-mower:before{content:"\f11f7"}.mdi-robot-mower-outline:before{content:"\f11f3"}.mdi-robot-off:before{content:"\f16a7"}.mdi-robot-off-outline:before{content:"\f167b"}.mdi-robot-outline:before{content:"\f167a"}.mdi-robot-vacuum:before{content:"\f070d"}.mdi-robot-vacuum-alert:before{content:"\f1b5d"}.mdi-robot-vacuum-off:before{content:"\f1c01"}.mdi-robot-vacuum-variant:before{content:"\f0908"}.mdi-robot-vacuum-variant-alert:before{content:"\f1b5e"}.mdi-robot-vacuum-variant-off:before{content:"\f1c02"}.mdi-rocket:before{content:"\f0463"}.mdi-rocket-launch:before{content:"\f14de"}.mdi-rocket-launch-outline:before{content:"\f14df"}.mdi-rocket-outline:before{content:"\f13af"}.mdi-rodent:before{content:"\f1327"}.mdi-roller-shade:before{content:"\f1a6b"}.mdi-roller-shade-closed:before{content:"\f1a6c"}.mdi-roller-skate:before{content:"\f0d2b"}.mdi-roller-skate-off:before{content:"\f0145"}.mdi-rollerblade:before{content:"\f0d2c"}.mdi-rollerblade-off:before{content:"\f002e"}.mdi-rollupjs:before{content:"\f0bc0"}.mdi-rolodex:before{content:"\f1ab9"}.mdi-rolodex-outline:before{content:"\f1aba"}.mdi-roman-numeral-1:before{content:"\f1088"}.mdi-roman-numeral-10:before{content:"\f1091"}.mdi-roman-numeral-2:before{content:"\f1089"}.mdi-roman-numeral-3:before{content:"\f108a"}.mdi-roman-numeral-4:before{content:"\f108b"}.mdi-roman-numeral-5:before{content:"\f108c"}.mdi-roman-numeral-6:before{content:"\f108d"}.mdi-roman-numeral-7:before{content:"\f108e"}.mdi-roman-numeral-8:before{content:"\f108f"}.mdi-roman-numeral-9:before{content:"\f1090"}.mdi-room-service:before{content:"\f088d"}.mdi-room-service-outline:before{content:"\f0d97"}.mdi-rotate-360:before{content:"\f1999"}.mdi-rotate-3d:before{content:"\f0ec7"}.mdi-rotate-3d-variant:before{content:"\f0464"}.mdi-rotate-left:before{content:"\f0465"}.mdi-rotate-left-variant:before{content:"\f0466"}.mdi-rotate-orbit:before{content:"\f0d98"}.mdi-rotate-right:before{content:"\f0467"}.mdi-rotate-right-variant:before{content:"\f0468"}.mdi-rounded-corner:before{content:"\f0607"}.mdi-router:before{content:"\f11e2"}.mdi-router-network:before{content:"\f1087"}.mdi-router-network-wireless:before{content:"\f1c97"}.mdi-router-wireless:before{content:"\f0469"}.mdi-router-wireless-off:before{content:"\f15a3"}.mdi-router-wireless-settings:before{content:"\f0a69"}.mdi-routes:before{content:"\f046a"}.mdi-routes-clock:before{content:"\f1059"}.mdi-rowing:before{content:"\f0608"}.mdi-rss:before{content:"\f046b"}.mdi-rss-box:before{content:"\f046c"}.mdi-rss-off:before{content:"\f0f21"}.mdi-rug:before{content:"\f1475"}.mdi-rugby:before{content:"\f0d99"}.mdi-ruler:before{content:"\f046d"}.mdi-ruler-square:before{content:"\f0cc2"}.mdi-ruler-square-compass:before{content:"\f0ebe"}.mdi-run:before{content:"\f070e"}.mdi-run-fast:before{content:"\f046e"}.mdi-rv-truck:before{content:"\f11d4"}.mdi-sack:before{content:"\f0d2e"}.mdi-sack-outline:before{content:"\f1c4c"}.mdi-sack-percent:before{content:"\f0d2f"}.mdi-safe:before{content:"\f0a6a"}.mdi-safe-square:before{content:"\f127c"}.mdi-safe-square-outline:before{content:"\f127d"}.mdi-safety-goggles:before{content:"\f0d30"}.mdi-sail-boat:before{content:"\f0ec8"}.mdi-sail-boat-sink:before{content:"\f1aef"}.mdi-sale:before{content:"\f046f"}.mdi-sale-outline:before{content:"\f1a06"}.mdi-salesforce:before{content:"\f088e"}.mdi-sass:before{content:"\f07ec"}.mdi-satellite:before{content:"\f0470"}.mdi-satellite-uplink:before{content:"\f0909"}.mdi-satellite-variant:before{content:"\f0471"}.mdi-sausage:before{content:"\f08ba"}.mdi-sausage-off:before{content:"\f1789"}.mdi-saw-blade:before{content:"\f0e61"}.mdi-sawtooth-wave:before{content:"\f147a"}.mdi-saxophone:before{content:"\f0609"}.mdi-scale:before{content:"\f0472"}.mdi-scale-balance:before{content:"\f05d1"}.mdi-scale-bathroom:before{content:"\f0473"}.mdi-scale-off:before{content:"\f105a"}.mdi-scale-unbalanced:before{content:"\f19b8"}.mdi-scan-helper:before{content:"\f13d8"}.mdi-scanner:before{content:"\f06ab"}.mdi-scanner-off:before{content:"\f090a"}.mdi-scatter-plot:before{content:"\f0ec9"}.mdi-scatter-plot-outline:before{content:"\f0eca"}.mdi-scent:before{content:"\f1958"}.mdi-scent-off:before{content:"\f1959"}.mdi-school:before{content:"\f0474"}.mdi-school-outline:before{content:"\f1180"}.mdi-scissors-cutting:before{content:"\f0a6b"}.mdi-scooter:before{content:"\f15bd"}.mdi-scooter-electric:before{content:"\f15be"}.mdi-scoreboard:before{content:"\f127e"}.mdi-scoreboard-outline:before{content:"\f127f"}.mdi-screen-rotation:before{content:"\f0475"}.mdi-screen-rotation-lock:before{content:"\f0478"}.mdi-screw-flat-top:before{content:"\f0df3"}.mdi-screw-lag:before{content:"\f0df4"}.mdi-screw-machine-flat-top:before{content:"\f0df5"}.mdi-screw-machine-round-top:before{content:"\f0df6"}.mdi-screw-round-top:before{content:"\f0df7"}.mdi-screwdriver:before{content:"\f0476"}.mdi-script:before{content:"\f0bc1"}.mdi-script-outline:before{content:"\f0477"}.mdi-script-text:before{content:"\f0bc2"}.mdi-script-text-key:before{content:"\f1725"}.mdi-script-text-key-outline:before{content:"\f1726"}.mdi-script-text-outline:before{content:"\f0bc3"}.mdi-script-text-play:before{content:"\f1727"}.mdi-script-text-play-outline:before{content:"\f1728"}.mdi-sd:before{content:"\f0479"}.mdi-seal:before{content:"\f047a"}.mdi-seal-variant:before{content:"\f0fd9"}.mdi-search-web:before{content:"\f070f"}.mdi-seat:before{content:"\f0cc3"}.mdi-seat-flat:before{content:"\f047b"}.mdi-seat-flat-angled:before{content:"\f047c"}.mdi-seat-individual-suite:before{content:"\f047d"}.mdi-seat-legroom-extra:before{content:"\f047e"}.mdi-seat-legroom-normal:before{content:"\f047f"}.mdi-seat-legroom-reduced:before{content:"\f0480"}.mdi-seat-outline:before{content:"\f0cc4"}.mdi-seat-passenger:before{content:"\f1249"}.mdi-seat-recline-extra:before{content:"\f0481"}.mdi-seat-recline-normal:before{content:"\f0482"}.mdi-seatbelt:before{content:"\f0cc5"}.mdi-security:before{content:"\f0483"}.mdi-security-network:before{content:"\f0484"}.mdi-seed:before{content:"\f0e62"}.mdi-seed-off:before{content:"\f13fd"}.mdi-seed-off-outline:before{content:"\f13fe"}.mdi-seed-outline:before{content:"\f0e63"}.mdi-seed-plus:before{content:"\f1a6d"}.mdi-seed-plus-outline:before{content:"\f1a6e"}.mdi-seesaw:before{content:"\f15a4"}.mdi-segment:before{content:"\f0ecb"}.mdi-select:before{content:"\f0485"}.mdi-select-all:before{content:"\f0486"}.mdi-select-arrow-down:before{content:"\f1b59"}.mdi-select-arrow-up:before{content:"\f1b58"}.mdi-select-color:before{content:"\f0d31"}.mdi-select-compare:before{content:"\f0ad9"}.mdi-select-drag:before{content:"\f0a6c"}.mdi-select-group:before{content:"\f0f82"}.mdi-select-inverse:before{content:"\f0487"}.mdi-select-marker:before{content:"\f1280"}.mdi-select-multiple:before{content:"\f1281"}.mdi-select-multiple-marker:before{content:"\f1282"}.mdi-select-off:before{content:"\f0488"}.mdi-select-place:before{content:"\f0fda"}.mdi-select-remove:before{content:"\f17c1"}.mdi-select-search:before{content:"\f1204"}.mdi-selection:before{content:"\f0489"}.mdi-selection-drag:before{content:"\f0a6d"}.mdi-selection-ellipse:before{content:"\f0d32"}.mdi-selection-ellipse-arrow-inside:before{content:"\f0f22"}.mdi-selection-ellipse-remove:before{content:"\f17c2"}.mdi-selection-marker:before{content:"\f1283"}.mdi-selection-multiple:before{content:"\f1285"}.mdi-selection-multiple-marker:before{content:"\f1284"}.mdi-selection-off:before{content:"\f0777"}.mdi-selection-remove:before{content:"\f17c3"}.mdi-selection-search:before{content:"\f1205"}.mdi-semantic-web:before{content:"\f1316"}.mdi-send:before{content:"\f048a"}.mdi-send-check:before{content:"\f1161"}.mdi-send-check-outline:before{content:"\f1162"}.mdi-send-circle:before{content:"\f0df8"}.mdi-send-circle-outline:before{content:"\f0df9"}.mdi-send-clock:before{content:"\f1163"}.mdi-send-clock-outline:before{content:"\f1164"}.mdi-send-lock:before{content:"\f07ed"}.mdi-send-lock-outline:before{content:"\f1166"}.mdi-send-outline:before{content:"\f1165"}.mdi-send-variant:before{content:"\f1c4d"}.mdi-send-variant-clock:before{content:"\f1c7e"}.mdi-send-variant-clock-outline:before{content:"\f1c7f"}.mdi-send-variant-outline:before{content:"\f1c4e"}.mdi-serial-port:before{content:"\f065c"}.mdi-server:before{content:"\f048b"}.mdi-server-minus:before{content:"\f048c"}.mdi-server-minus-outline:before{content:"\f1c98"}.mdi-server-network:before{content:"\f048d"}.mdi-server-network-off:before{content:"\f048e"}.mdi-server-network-outline:before{content:"\f1c99"}.mdi-server-off:before{content:"\f048f"}.mdi-server-outline:before{content:"\f1c9a"}.mdi-server-plus:before{content:"\f0490"}.mdi-server-plus-outline:before{content:"\f1c9b"}.mdi-server-remove:before{content:"\f0491"}.mdi-server-security:before{content:"\f0492"}.mdi-set-all:before{content:"\f0778"}.mdi-set-center:before{content:"\f0779"}.mdi-set-center-right:before{content:"\f077a"}.mdi-set-left:before{content:"\f077b"}.mdi-set-left-center:before{content:"\f077c"}.mdi-set-left-right:before{content:"\f077d"}.mdi-set-merge:before{content:"\f14e0"}.mdi-set-none:before{content:"\f077e"}.mdi-set-right:before{content:"\f077f"}.mdi-set-split:before{content:"\f14e1"}.mdi-set-square:before{content:"\f145d"}.mdi-set-top-box:before{content:"\f099f"}.mdi-settings-helper:before{content:"\f0a6e"}.mdi-shaker:before{content:"\f110e"}.mdi-shaker-outline:before{content:"\f110f"}.mdi-shape:before{content:"\f0831"}.mdi-shape-circle-plus:before{content:"\f065d"}.mdi-shape-outline:before{content:"\f0832"}.mdi-shape-oval-plus:before{content:"\f11fa"}.mdi-shape-plus:before{content:"\f0495"}.mdi-shape-plus-outline:before{content:"\f1c4f"}.mdi-shape-polygon-plus:before{content:"\f065e"}.mdi-shape-rectangle-plus:before{content:"\f065f"}.mdi-shape-square-plus:before{content:"\f0660"}.mdi-shape-square-rounded-plus:before{content:"\f14fa"}.mdi-share:before{content:"\f0496"}.mdi-share-all:before{content:"\f11f4"}.mdi-share-all-outline:before{content:"\f11f5"}.mdi-share-circle:before{content:"\f11ad"}.mdi-share-off:before{content:"\f0f23"}.mdi-share-off-outline:before{content:"\f0f24"}.mdi-share-outline:before{content:"\f0932"}.mdi-share-variant:before{content:"\f0497"}.mdi-share-variant-outline:before{content:"\f1514"}.mdi-shark:before{content:"\f18ba"}.mdi-shark-fin:before{content:"\f1673"}.mdi-shark-fin-outline:before{content:"\f1674"}.mdi-shark-off:before{content:"\f18bb"}.mdi-sheep:before{content:"\f0cc6"}.mdi-shield:before{content:"\f0498"}.mdi-shield-account:before{content:"\f088f"}.mdi-shield-account-outline:before{content:"\f0a12"}.mdi-shield-account-variant:before{content:"\f15a7"}.mdi-shield-account-variant-outline:before{content:"\f15a8"}.mdi-shield-airplane:before{content:"\f06bb"}.mdi-shield-airplane-outline:before{content:"\f0cc7"}.mdi-shield-alert:before{content:"\f0ecc"}.mdi-shield-alert-outline:before{content:"\f0ecd"}.mdi-shield-bug:before{content:"\f13da"}.mdi-shield-bug-outline:before{content:"\f13db"}.mdi-shield-car:before{content:"\f0f83"}.mdi-shield-check:before{content:"\f0565"}.mdi-shield-check-outline:before{content:"\f0cc8"}.mdi-shield-cross:before{content:"\f0cc9"}.mdi-shield-cross-outline:before{content:"\f0cca"}.mdi-shield-crown:before{content:"\f18bc"}.mdi-shield-crown-outline:before{content:"\f18bd"}.mdi-shield-edit:before{content:"\f11a0"}.mdi-shield-edit-outline:before{content:"\f11a1"}.mdi-shield-half:before{content:"\f1360"}.mdi-shield-half-full:before{content:"\f0780"}.mdi-shield-home:before{content:"\f068a"}.mdi-shield-home-outline:before{content:"\f0ccb"}.mdi-shield-key:before{content:"\f0bc4"}.mdi-shield-key-outline:before{content:"\f0bc5"}.mdi-shield-link-variant:before{content:"\f0d33"}.mdi-shield-link-variant-outline:before{content:"\f0d34"}.mdi-shield-lock:before{content:"\f099d"}.mdi-shield-lock-open:before{content:"\f199a"}.mdi-shield-lock-open-outline:before{content:"\f199b"}.mdi-shield-lock-outline:before{content:"\f0ccc"}.mdi-shield-moon:before{content:"\f1828"}.mdi-shield-moon-outline:before{content:"\f1829"}.mdi-shield-off:before{content:"\f099e"}.mdi-shield-off-outline:before{content:"\f099c"}.mdi-shield-outline:before{content:"\f0499"}.mdi-shield-plus:before{content:"\f0ada"}.mdi-shield-plus-outline:before{content:"\f0adb"}.mdi-shield-refresh:before{content:"\f00aa"}.mdi-shield-refresh-outline:before{content:"\f01e0"}.mdi-shield-remove:before{content:"\f0adc"}.mdi-shield-remove-outline:before{content:"\f0add"}.mdi-shield-search:before{content:"\f0d9a"}.mdi-shield-star:before{content:"\f113b"}.mdi-shield-star-outline:before{content:"\f113c"}.mdi-shield-sun:before{content:"\f105d"}.mdi-shield-sun-outline:before{content:"\f105e"}.mdi-shield-sword:before{content:"\f18be"}.mdi-shield-sword-outline:before{content:"\f18bf"}.mdi-shield-sync:before{content:"\f11a2"}.mdi-shield-sync-outline:before{content:"\f11a3"}.mdi-shimmer:before{content:"\f1545"}.mdi-ship-wheel:before{content:"\f0833"}.mdi-shipping-pallet:before{content:"\f184e"}.mdi-shoe-ballet:before{content:"\f15ca"}.mdi-shoe-cleat:before{content:"\f15c7"}.mdi-shoe-formal:before{content:"\f0b47"}.mdi-shoe-heel:before{content:"\f0b48"}.mdi-shoe-print:before{content:"\f0dfa"}.mdi-shoe-sneaker:before{content:"\f15c8"}.mdi-shopping:before{content:"\f049a"}.mdi-shopping-music:before{content:"\f049b"}.mdi-shopping-outline:before{content:"\f11d5"}.mdi-shopping-search:before{content:"\f0f84"}.mdi-shopping-search-outline:before{content:"\f1a6f"}.mdi-shore:before{content:"\f14f9"}.mdi-shovel:before{content:"\f0710"}.mdi-shovel-off:before{content:"\f0711"}.mdi-shower:before{content:"\f09a0"}.mdi-shower-head:before{content:"\f09a1"}.mdi-shredder:before{content:"\f049c"}.mdi-shuffle:before{content:"\f049d"}.mdi-shuffle-disabled:before{content:"\f049e"}.mdi-shuffle-variant:before{content:"\f049f"}.mdi-shuriken:before{content:"\f137f"}.mdi-sickle:before{content:"\f18c0"}.mdi-sigma:before{content:"\f04a0"}.mdi-sigma-lower:before{content:"\f062b"}.mdi-sign-caution:before{content:"\f04a1"}.mdi-sign-direction:before{content:"\f0781"}.mdi-sign-direction-minus:before{content:"\f1000"}.mdi-sign-direction-plus:before{content:"\f0fdc"}.mdi-sign-direction-remove:before{content:"\f0fdd"}.mdi-sign-language:before{content:"\f1b4d"}.mdi-sign-language-outline:before{content:"\f1b4e"}.mdi-sign-pole:before{content:"\f14f8"}.mdi-sign-real-estate:before{content:"\f1118"}.mdi-sign-text:before{content:"\f0782"}.mdi-sign-yield:before{content:"\f1baf"}.mdi-signal:before{content:"\f04a2"}.mdi-signal-2g:before{content:"\f0712"}.mdi-signal-3g:before{content:"\f0713"}.mdi-signal-4g:before{content:"\f0714"}.mdi-signal-5g:before{content:"\f0a6f"}.mdi-signal-cellular-1:before{content:"\f08bc"}.mdi-signal-cellular-2:before{content:"\f08bd"}.mdi-signal-cellular-3:before{content:"\f08be"}.mdi-signal-cellular-outline:before{content:"\f08bf"}.mdi-signal-distance-variant:before{content:"\f0e64"}.mdi-signal-hspa:before{content:"\f0715"}.mdi-signal-hspa-plus:before{content:"\f0716"}.mdi-signal-off:before{content:"\f0783"}.mdi-signal-variant:before{content:"\f060a"}.mdi-signature:before{content:"\f0dfb"}.mdi-signature-freehand:before{content:"\f0dfc"}.mdi-signature-image:before{content:"\f0dfd"}.mdi-signature-text:before{content:"\f0dfe"}.mdi-silo:before{content:"\f1b9f"}.mdi-silo-outline:before{content:"\f0b49"}.mdi-silverware:before{content:"\f04a3"}.mdi-silverware-clean:before{content:"\f0fde"}.mdi-silverware-fork:before{content:"\f04a4"}.mdi-silverware-fork-knife:before{content:"\f0a70"}.mdi-silverware-spoon:before{content:"\f04a5"}.mdi-silverware-variant:before{content:"\f04a6"}.mdi-sim:before{content:"\f04a7"}.mdi-sim-alert:before{content:"\f04a8"}.mdi-sim-alert-outline:before{content:"\f15d3"}.mdi-sim-off:before{content:"\f04a9"}.mdi-sim-off-outline:before{content:"\f15d4"}.mdi-sim-outline:before{content:"\f15d5"}.mdi-simple-icons:before{content:"\f131d"}.mdi-sina-weibo:before{content:"\f0adf"}.mdi-sine-wave:before{content:"\f095b"}.mdi-sitemap:before{content:"\f04aa"}.mdi-sitemap-outline:before{content:"\f199c"}.mdi-size-l:before{content:"\f13a6"}.mdi-size-m:before{content:"\f13a5"}.mdi-size-s:before{content:"\f13a4"}.mdi-size-xl:before{content:"\f13a7"}.mdi-size-xs:before{content:"\f13a3"}.mdi-size-xxl:before{content:"\f13a8"}.mdi-size-xxs:before{content:"\f13a2"}.mdi-size-xxxl:before{content:"\f13a9"}.mdi-skate:before{content:"\f0d35"}.mdi-skate-off:before{content:"\f0699"}.mdi-skateboard:before{content:"\f14c2"}.mdi-skateboarding:before{content:"\f0501"}.mdi-skew-less:before{content:"\f0d36"}.mdi-skew-more:before{content:"\f0d37"}.mdi-ski:before{content:"\f1304"}.mdi-ski-cross-country:before{content:"\f1305"}.mdi-ski-water:before{content:"\f1306"}.mdi-skip-backward:before{content:"\f04ab"}.mdi-skip-backward-outline:before{content:"\f0f25"}.mdi-skip-forward:before{content:"\f04ac"}.mdi-skip-forward-outline:before{content:"\f0f26"}.mdi-skip-next:before{content:"\f04ad"}.mdi-skip-next-circle:before{content:"\f0661"}.mdi-skip-next-circle-outline:before{content:"\f0662"}.mdi-skip-next-outline:before{content:"\f0f27"}.mdi-skip-previous:before{content:"\f04ae"}.mdi-skip-previous-circle:before{content:"\f0663"}.mdi-skip-previous-circle-outline:before{content:"\f0664"}.mdi-skip-previous-outline:before{content:"\f0f28"}.mdi-skull:before{content:"\f068c"}.mdi-skull-crossbones:before{content:"\f0bc6"}.mdi-skull-crossbones-outline:before{content:"\f0bc7"}.mdi-skull-outline:before{content:"\f0bc8"}.mdi-skull-scan:before{content:"\f14c7"}.mdi-skull-scan-outline:before{content:"\f14c8"}.mdi-skype:before{content:"\f04af"}.mdi-skype-business:before{content:"\f04b0"}.mdi-slack:before{content:"\f04b1"}.mdi-slash-forward:before{content:"\f0fdf"}.mdi-slash-forward-box:before{content:"\f0fe0"}.mdi-sledding:before{content:"\f041b"}.mdi-sleep:before{content:"\f04b2"}.mdi-sleep-off:before{content:"\f04b3"}.mdi-slide:before{content:"\f15a5"}.mdi-slope-downhill:before{content:"\f0dff"}.mdi-slope-uphill:before{content:"\f0e00"}.mdi-slot-machine:before{content:"\f1114"}.mdi-slot-machine-outline:before{content:"\f1115"}.mdi-smart-card:before{content:"\f10bd"}.mdi-smart-card-off:before{content:"\f18f7"}.mdi-smart-card-off-outline:before{content:"\f18f8"}.mdi-smart-card-outline:before{content:"\f10be"}.mdi-smart-card-reader:before{content:"\f10bf"}.mdi-smart-card-reader-outline:before{content:"\f10c0"}.mdi-smog:before{content:"\f0a71"}.mdi-smoke:before{content:"\f1799"}.mdi-smoke-detector:before{content:"\f0392"}.mdi-smoke-detector-alert:before{content:"\f192e"}.mdi-smoke-detector-alert-outline:before{content:"\f192f"}.mdi-smoke-detector-off:before{content:"\f1809"}.mdi-smoke-detector-off-outline:before{content:"\f180a"}.mdi-smoke-detector-outline:before{content:"\f1808"}.mdi-smoke-detector-variant:before{content:"\f180b"}.mdi-smoke-detector-variant-alert:before{content:"\f1930"}.mdi-smoke-detector-variant-off:before{content:"\f180c"}.mdi-smoking:before{content:"\f04b4"}.mdi-smoking-off:before{content:"\f04b5"}.mdi-smoking-pipe:before{content:"\f140d"}.mdi-smoking-pipe-off:before{content:"\f1428"}.mdi-snail:before{content:"\f1677"}.mdi-snake:before{content:"\f150e"}.mdi-snapchat:before{content:"\f04b6"}.mdi-snowboard:before{content:"\f1307"}.mdi-snowflake:before{content:"\f0717"}.mdi-snowflake-alert:before{content:"\f0f29"}.mdi-snowflake-check:before{content:"\f1a70"}.mdi-snowflake-melt:before{content:"\f12cb"}.mdi-snowflake-off:before{content:"\f14e3"}.mdi-snowflake-thermometer:before{content:"\f1a71"}.mdi-snowflake-variant:before{content:"\f0f2a"}.mdi-snowman:before{content:"\f04b7"}.mdi-snowmobile:before{content:"\f06dd"}.mdi-snowshoeing:before{content:"\f1a72"}.mdi-soccer:before{content:"\f04b8"}.mdi-soccer-field:before{content:"\f0834"}.mdi-social-distance-2-meters:before{content:"\f1579"}.mdi-social-distance-6-feet:before{content:"\f157a"}.mdi-sofa:before{content:"\f04b9"}.mdi-sofa-outline:before{content:"\f156d"}.mdi-sofa-single:before{content:"\f156e"}.mdi-sofa-single-outline:before{content:"\f156f"}.mdi-solar-panel:before{content:"\f0d9b"}.mdi-solar-panel-large:before{content:"\f0d9c"}.mdi-solar-power:before{content:"\f0a72"}.mdi-solar-power-variant:before{content:"\f1a73"}.mdi-solar-power-variant-outline:before{content:"\f1a74"}.mdi-soldering-iron:before{content:"\f1092"}.mdi-solid:before{content:"\f068d"}.mdi-sony-playstation:before{content:"\f0414"}.mdi-sort:before{content:"\f04ba"}.mdi-sort-alphabetical-ascending:before{content:"\f05bd"}.mdi-sort-alphabetical-ascending-variant:before{content:"\f1148"}.mdi-sort-alphabetical-descending:before{content:"\f05bf"}.mdi-sort-alphabetical-descending-variant:before{content:"\f1149"}.mdi-sort-alphabetical-variant:before{content:"\f04bb"}.mdi-sort-ascending:before{content:"\f04bc"}.mdi-sort-bool-ascending:before{content:"\f1385"}.mdi-sort-bool-ascending-variant:before{content:"\f1386"}.mdi-sort-bool-descending:before{content:"\f1387"}.mdi-sort-bool-descending-variant:before{content:"\f1388"}.mdi-sort-calendar-ascending:before{content:"\f1547"}.mdi-sort-calendar-descending:before{content:"\f1548"}.mdi-sort-clock-ascending:before{content:"\f1549"}.mdi-sort-clock-ascending-outline:before{content:"\f154a"}.mdi-sort-clock-descending:before{content:"\f154b"}.mdi-sort-clock-descending-outline:before{content:"\f154c"}.mdi-sort-descending:before{content:"\f04bd"}.mdi-sort-numeric-ascending:before{content:"\f1389"}.mdi-sort-numeric-ascending-variant:before{content:"\f090d"}.mdi-sort-numeric-descending:before{content:"\f138a"}.mdi-sort-numeric-descending-variant:before{content:"\f0ad2"}.mdi-sort-numeric-variant:before{content:"\f04be"}.mdi-sort-reverse-variant:before{content:"\f033c"}.mdi-sort-variant:before{content:"\f04bf"}.mdi-sort-variant-lock:before{content:"\f0ccd"}.mdi-sort-variant-lock-open:before{content:"\f0cce"}.mdi-sort-variant-off:before{content:"\f1abb"}.mdi-sort-variant-remove:before{content:"\f1147"}.mdi-soundbar:before{content:"\f17db"}.mdi-soundcloud:before{content:"\f04c0"}.mdi-source-branch:before{content:"\f062c"}.mdi-source-branch-check:before{content:"\f14cf"}.mdi-source-branch-minus:before{content:"\f14cb"}.mdi-source-branch-plus:before{content:"\f14ca"}.mdi-source-branch-refresh:before{content:"\f14cd"}.mdi-source-branch-remove:before{content:"\f14cc"}.mdi-source-branch-sync:before{content:"\f14ce"}.mdi-source-commit:before{content:"\f0718"}.mdi-source-commit-end:before{content:"\f0719"}.mdi-source-commit-end-local:before{content:"\f071a"}.mdi-source-commit-local:before{content:"\f071b"}.mdi-source-commit-next-local:before{content:"\f071c"}.mdi-source-commit-start:before{content:"\f071d"}.mdi-source-commit-start-next-local:before{content:"\f071e"}.mdi-source-fork:before{content:"\f04c1"}.mdi-source-merge:before{content:"\f062d"}.mdi-source-pull:before{content:"\f04c2"}.mdi-source-repository:before{content:"\f0ccf"}.mdi-source-repository-multiple:before{content:"\f0cd0"}.mdi-soy-sauce:before{content:"\f07ee"}.mdi-soy-sauce-off:before{content:"\f13fc"}.mdi-spa:before{content:"\f0cd1"}.mdi-spa-outline:before{content:"\f0cd2"}.mdi-space-invaders:before{content:"\f0bc9"}.mdi-space-station:before{content:"\f1383"}.mdi-spade:before{content:"\f0e65"}.mdi-speaker:before{content:"\f04c3"}.mdi-speaker-bluetooth:before{content:"\f09a2"}.mdi-speaker-message:before{content:"\f1b11"}.mdi-speaker-multiple:before{content:"\f0d38"}.mdi-speaker-off:before{content:"\f04c4"}.mdi-speaker-pause:before{content:"\f1b73"}.mdi-speaker-play:before{content:"\f1b72"}.mdi-speaker-stop:before{content:"\f1b74"}.mdi-speaker-wireless:before{content:"\f071f"}.mdi-spear:before{content:"\f1845"}.mdi-speedometer:before{content:"\f04c5"}.mdi-speedometer-medium:before{content:"\f0f85"}.mdi-speedometer-slow:before{content:"\f0f86"}.mdi-spellcheck:before{content:"\f04c6"}.mdi-sphere:before{content:"\f1954"}.mdi-sphere-off:before{content:"\f1955"}.mdi-spider:before{content:"\f11ea"}.mdi-spider-outline:before{content:"\f1c75"}.mdi-spider-thread:before{content:"\f11eb"}.mdi-spider-web:before{content:"\f0bca"}.mdi-spirit-level:before{content:"\f14f1"}.mdi-spoon-sugar:before{content:"\f1429"}.mdi-spotify:before{content:"\f04c7"}.mdi-spotlight:before{content:"\f04c8"}.mdi-spotlight-beam:before{content:"\f04c9"}.mdi-spray:before{content:"\f0665"}.mdi-spray-bottle:before{content:"\f0ae0"}.mdi-sprinkler:before{content:"\f105f"}.mdi-sprinkler-fire:before{content:"\f199d"}.mdi-sprinkler-variant:before{content:"\f1060"}.mdi-sprout:before{content:"\f0e66"}.mdi-sprout-outline:before{content:"\f0e67"}.mdi-square:before{content:"\f0764"}.mdi-square-circle:before{content:"\f1500"}.mdi-square-circle-outline:before{content:"\f1c50"}.mdi-square-edit-outline:before{content:"\f090c"}.mdi-square-medium:before{content:"\f0a13"}.mdi-square-medium-outline:before{content:"\f0a14"}.mdi-square-off:before{content:"\f12ee"}.mdi-square-off-outline:before{content:"\f12ef"}.mdi-square-opacity:before{content:"\f1854"}.mdi-square-outline:before{content:"\f0763"}.mdi-square-root:before{content:"\f0784"}.mdi-square-root-box:before{content:"\f09a3"}.mdi-square-rounded:before{content:"\f14fb"}.mdi-square-rounded-badge:before{content:"\f1a07"}.mdi-square-rounded-badge-outline:before{content:"\f1a08"}.mdi-square-rounded-outline:before{content:"\f14fc"}.mdi-square-small:before{content:"\f0a15"}.mdi-square-wave:before{content:"\f147b"}.mdi-squeegee:before{content:"\f0ae1"}.mdi-ssh:before{content:"\f08c0"}.mdi-stack-exchange:before{content:"\f060b"}.mdi-stack-overflow:before{content:"\f04cc"}.mdi-stackpath:before{content:"\f0359"}.mdi-stadium:before{content:"\f0ff9"}.mdi-stadium-outline:before{content:"\f1b03"}.mdi-stadium-variant:before{content:"\f0720"}.mdi-stairs:before{content:"\f04cd"}.mdi-stairs-box:before{content:"\f139e"}.mdi-stairs-down:before{content:"\f12be"}.mdi-stairs-up:before{content:"\f12bd"}.mdi-stamper:before{content:"\f0d39"}.mdi-standard-definition:before{content:"\f07ef"}.mdi-star:before{content:"\f04ce"}.mdi-star-box:before{content:"\f0a73"}.mdi-star-box-multiple:before{content:"\f1286"}.mdi-star-box-multiple-outline:before{content:"\f1287"}.mdi-star-box-outline:before{content:"\f0a74"}.mdi-star-check:before{content:"\f1566"}.mdi-star-check-outline:before{content:"\f156a"}.mdi-star-circle:before{content:"\f04cf"}.mdi-star-circle-outline:before{content:"\f09a4"}.mdi-star-cog:before{content:"\f1668"}.mdi-star-cog-outline:before{content:"\f1669"}.mdi-star-crescent:before{content:"\f0979"}.mdi-star-david:before{content:"\f097a"}.mdi-star-face:before{content:"\f09a5"}.mdi-star-four-points:before{content:"\f0ae2"}.mdi-star-four-points-box:before{content:"\f1c51"}.mdi-star-four-points-box-outline:before{content:"\f1c52"}.mdi-star-four-points-circle:before{content:"\f1c53"}.mdi-star-four-points-circle-outline:before{content:"\f1c54"}.mdi-star-four-points-outline:before{content:"\f0ae3"}.mdi-star-four-points-small:before{content:"\f1c55"}.mdi-star-half:before{content:"\f0246"}.mdi-star-half-full:before{content:"\f04d0"}.mdi-star-minus:before{content:"\f1564"}.mdi-star-minus-outline:before{content:"\f1568"}.mdi-star-off:before{content:"\f04d1"}.mdi-star-off-outline:before{content:"\f155b"}.mdi-star-outline:before{content:"\f04d2"}.mdi-star-plus:before{content:"\f1563"}.mdi-star-plus-outline:before{content:"\f1567"}.mdi-star-remove:before{content:"\f1565"}.mdi-star-remove-outline:before{content:"\f1569"}.mdi-star-settings:before{content:"\f166a"}.mdi-star-settings-outline:before{content:"\f166b"}.mdi-star-shooting:before{content:"\f1741"}.mdi-star-shooting-outline:before{content:"\f1742"}.mdi-star-three-points:before{content:"\f0ae4"}.mdi-star-three-points-outline:before{content:"\f0ae5"}.mdi-state-machine:before{content:"\f11ef"}.mdi-steam:before{content:"\f04d3"}.mdi-steering:before{content:"\f04d4"}.mdi-steering-off:before{content:"\f090e"}.mdi-step-backward:before{content:"\f04d5"}.mdi-step-backward-2:before{content:"\f04d6"}.mdi-step-forward:before{content:"\f04d7"}.mdi-step-forward-2:before{content:"\f04d8"}.mdi-stethoscope:before{content:"\f04d9"}.mdi-sticker:before{content:"\f1364"}.mdi-sticker-alert:before{content:"\f1365"}.mdi-sticker-alert-outline:before{content:"\f1366"}.mdi-sticker-check:before{content:"\f1367"}.mdi-sticker-check-outline:before{content:"\f1368"}.mdi-sticker-circle-outline:before{content:"\f05d0"}.mdi-sticker-emoji:before{content:"\f0785"}.mdi-sticker-minus:before{content:"\f1369"}.mdi-sticker-minus-outline:before{content:"\f136a"}.mdi-sticker-outline:before{content:"\f136b"}.mdi-sticker-plus:before{content:"\f136c"}.mdi-sticker-plus-outline:before{content:"\f136d"}.mdi-sticker-remove:before{content:"\f136e"}.mdi-sticker-remove-outline:before{content:"\f136f"}.mdi-sticker-text:before{content:"\f178e"}.mdi-sticker-text-outline:before{content:"\f178f"}.mdi-stocking:before{content:"\f04da"}.mdi-stomach:before{content:"\f1093"}.mdi-stool:before{content:"\f195d"}.mdi-stool-outline:before{content:"\f195e"}.mdi-stop:before{content:"\f04db"}.mdi-stop-circle:before{content:"\f0666"}.mdi-stop-circle-outline:before{content:"\f0667"}.mdi-storage-tank:before{content:"\f1a75"}.mdi-storage-tank-outline:before{content:"\f1a76"}.mdi-store:before{content:"\f04dc"}.mdi-store-24-hour:before{content:"\f04dd"}.mdi-store-alert:before{content:"\f18c1"}.mdi-store-alert-outline:before{content:"\f18c2"}.mdi-store-check:before{content:"\f18c3"}.mdi-store-check-outline:before{content:"\f18c4"}.mdi-store-clock:before{content:"\f18c5"}.mdi-store-clock-outline:before{content:"\f18c6"}.mdi-store-cog:before{content:"\f18c7"}.mdi-store-cog-outline:before{content:"\f18c8"}.mdi-store-edit:before{content:"\f18c9"}.mdi-store-edit-outline:before{content:"\f18ca"}.mdi-store-marker:before{content:"\f18cb"}.mdi-store-marker-outline:before{content:"\f18cc"}.mdi-store-minus:before{content:"\f165e"}.mdi-store-minus-outline:before{content:"\f18cd"}.mdi-store-off:before{content:"\f18ce"}.mdi-store-off-outline:before{content:"\f18cf"}.mdi-store-outline:before{content:"\f1361"}.mdi-store-plus:before{content:"\f165f"}.mdi-store-plus-outline:before{content:"\f18d0"}.mdi-store-remove:before{content:"\f1660"}.mdi-store-remove-outline:before{content:"\f18d1"}.mdi-store-search:before{content:"\f18d2"}.mdi-store-search-outline:before{content:"\f18d3"}.mdi-store-settings:before{content:"\f18d4"}.mdi-store-settings-outline:before{content:"\f18d5"}.mdi-storefront:before{content:"\f07c7"}.mdi-storefront-check:before{content:"\f1b7d"}.mdi-storefront-check-outline:before{content:"\f1b7e"}.mdi-storefront-edit:before{content:"\f1b7f"}.mdi-storefront-edit-outline:before{content:"\f1b80"}.mdi-storefront-minus:before{content:"\f1b83"}.mdi-storefront-minus-outline:before{content:"\f1b84"}.mdi-storefront-outline:before{content:"\f10c1"}.mdi-storefront-plus:before{content:"\f1b81"}.mdi-storefront-plus-outline:before{content:"\f1b82"}.mdi-storefront-remove:before{content:"\f1b85"}.mdi-storefront-remove-outline:before{content:"\f1b86"}.mdi-stove:before{content:"\f04de"}.mdi-strategy:before{content:"\f11d6"}.mdi-stretch-to-page:before{content:"\f0f2b"}.mdi-stretch-to-page-outline:before{content:"\f0f2c"}.mdi-string-lights:before{content:"\f12ba"}.mdi-string-lights-off:before{content:"\f12bb"}.mdi-subdirectory-arrow-left:before{content:"\f060c"}.mdi-subdirectory-arrow-right:before{content:"\f060d"}.mdi-submarine:before{content:"\f156c"}.mdi-subtitles:before{content:"\f0a16"}.mdi-subtitles-outline:before{content:"\f0a17"}.mdi-subway:before{content:"\f06ac"}.mdi-subway-alert-variant:before{content:"\f0d9d"}.mdi-subway-variant:before{content:"\f04df"}.mdi-summit:before{content:"\f0786"}.mdi-sun-angle:before{content:"\f1b27"}.mdi-sun-angle-outline:before{content:"\f1b28"}.mdi-sun-clock:before{content:"\f1a77"}.mdi-sun-clock-outline:before{content:"\f1a78"}.mdi-sun-compass:before{content:"\f19a5"}.mdi-sun-snowflake:before{content:"\f1796"}.mdi-sun-snowflake-variant:before{content:"\f1a79"}.mdi-sun-thermometer:before{content:"\f18d6"}.mdi-sun-thermometer-outline:before{content:"\f18d7"}.mdi-sun-wireless:before{content:"\f17fe"}.mdi-sun-wireless-outline:before{content:"\f17ff"}.mdi-sunglasses:before{content:"\f04e0"}.mdi-surfing:before{content:"\f1746"}.mdi-surround-sound:before{content:"\f05c5"}.mdi-surround-sound-2-0:before{content:"\f07f0"}.mdi-surround-sound-2-1:before{content:"\f1729"}.mdi-surround-sound-3-1:before{content:"\f07f1"}.mdi-surround-sound-5-1:before{content:"\f07f2"}.mdi-surround-sound-5-1-2:before{content:"\f172a"}.mdi-surround-sound-7-1:before{content:"\f07f3"}.mdi-svg:before{content:"\f0721"}.mdi-swap-horizontal:before{content:"\f04e1"}.mdi-swap-horizontal-bold:before{content:"\f0bcd"}.mdi-swap-horizontal-circle:before{content:"\f0fe1"}.mdi-swap-horizontal-circle-outline:before{content:"\f0fe2"}.mdi-swap-horizontal-variant:before{content:"\f08c1"}.mdi-swap-vertical:before{content:"\f04e2"}.mdi-swap-vertical-bold:before{content:"\f0bce"}.mdi-swap-vertical-circle:before{content:"\f0fe3"}.mdi-swap-vertical-circle-outline:before{content:"\f0fe4"}.mdi-swap-vertical-variant:before{content:"\f08c2"}.mdi-swim:before{content:"\f04e3"}.mdi-switch:before{content:"\f04e4"}.mdi-sword:before{content:"\f04e5"}.mdi-sword-cross:before{content:"\f0787"}.mdi-syllabary-hangul:before{content:"\f1333"}.mdi-syllabary-hiragana:before{content:"\f1334"}.mdi-syllabary-katakana:before{content:"\f1335"}.mdi-syllabary-katakana-halfwidth:before{content:"\f1336"}.mdi-symbol:before{content:"\f1501"}.mdi-symfony:before{content:"\f0ae6"}.mdi-synagogue:before{content:"\f1b04"}.mdi-synagogue-outline:before{content:"\f1b05"}.mdi-sync:before{content:"\f04e6"}.mdi-sync-alert:before{content:"\f04e7"}.mdi-sync-circle:before{content:"\f1378"}.mdi-sync-off:before{content:"\f04e8"}.mdi-tab:before{content:"\f04e9"}.mdi-tab-minus:before{content:"\f0b4b"}.mdi-tab-plus:before{content:"\f075c"}.mdi-tab-remove:before{content:"\f0b4c"}.mdi-tab-search:before{content:"\f199e"}.mdi-tab-unselected:before{content:"\f04ea"}.mdi-table:before{content:"\f04eb"}.mdi-table-account:before{content:"\f13b9"}.mdi-table-alert:before{content:"\f13ba"}.mdi-table-arrow-down:before{content:"\f13bb"}.mdi-table-arrow-left:before{content:"\f13bc"}.mdi-table-arrow-right:before{content:"\f13bd"}.mdi-table-arrow-up:before{content:"\f13be"}.mdi-table-border:before{content:"\f0a18"}.mdi-table-cancel:before{content:"\f13bf"}.mdi-table-chair:before{content:"\f1061"}.mdi-table-check:before{content:"\f13c0"}.mdi-table-clock:before{content:"\f13c1"}.mdi-table-cog:before{content:"\f13c2"}.mdi-table-column:before{content:"\f0835"}.mdi-table-column-plus-after:before{content:"\f04ec"}.mdi-table-column-plus-before:before{content:"\f04ed"}.mdi-table-column-remove:before{content:"\f04ee"}.mdi-table-column-width:before{content:"\f04ef"}.mdi-table-edit:before{content:"\f04f0"}.mdi-table-eye:before{content:"\f1094"}.mdi-table-eye-off:before{content:"\f13c3"}.mdi-table-filter:before{content:"\f1b8c"}.mdi-table-furniture:before{content:"\f05bc"}.mdi-table-headers-eye:before{content:"\f121d"}.mdi-table-headers-eye-off:before{content:"\f121e"}.mdi-table-heart:before{content:"\f13c4"}.mdi-table-key:before{content:"\f13c5"}.mdi-table-large:before{content:"\f04f1"}.mdi-table-large-plus:before{content:"\f0f87"}.mdi-table-large-remove:before{content:"\f0f88"}.mdi-table-lock:before{content:"\f13c6"}.mdi-table-merge-cells:before{content:"\f09a6"}.mdi-table-minus:before{content:"\f13c7"}.mdi-table-multiple:before{content:"\f13c8"}.mdi-table-network:before{content:"\f13c9"}.mdi-table-of-contents:before{content:"\f0836"}.mdi-table-off:before{content:"\f13ca"}.mdi-table-picnic:before{content:"\f1743"}.mdi-table-pivot:before{content:"\f183c"}.mdi-table-plus:before{content:"\f0a75"}.mdi-table-question:before{content:"\f1b21"}.mdi-table-refresh:before{content:"\f13a0"}.mdi-table-remove:before{content:"\f0a76"}.mdi-table-row:before{content:"\f0837"}.mdi-table-row-height:before{content:"\f04f2"}.mdi-table-row-plus-after:before{content:"\f04f3"}.mdi-table-row-plus-before:before{content:"\f04f4"}.mdi-table-row-remove:before{content:"\f04f5"}.mdi-table-search:before{content:"\f090f"}.mdi-table-settings:before{content:"\f0838"}.mdi-table-split-cell:before{content:"\f142a"}.mdi-table-star:before{content:"\f13cb"}.mdi-table-sync:before{content:"\f13a1"}.mdi-table-tennis:before{content:"\f0e68"}.mdi-tablet:before{content:"\f04f6"}.mdi-tablet-cellphone:before{content:"\f09a7"}.mdi-tablet-dashboard:before{content:"\f0ece"}.mdi-taco:before{content:"\f0762"}.mdi-tag:before{content:"\f04f9"}.mdi-tag-arrow-down:before{content:"\f172b"}.mdi-tag-arrow-down-outline:before{content:"\f172c"}.mdi-tag-arrow-left:before{content:"\f172d"}.mdi-tag-arrow-left-outline:before{content:"\f172e"}.mdi-tag-arrow-right:before{content:"\f172f"}.mdi-tag-arrow-right-outline:before{content:"\f1730"}.mdi-tag-arrow-up:before{content:"\f1731"}.mdi-tag-arrow-up-outline:before{content:"\f1732"}.mdi-tag-check:before{content:"\f1a7a"}.mdi-tag-check-outline:before{content:"\f1a7b"}.mdi-tag-edit:before{content:"\f1c9c"}.mdi-tag-edit-outline:before{content:"\f1c9d"}.mdi-tag-faces:before{content:"\f04fa"}.mdi-tag-heart:before{content:"\f068b"}.mdi-tag-heart-outline:before{content:"\f0bcf"}.mdi-tag-hidden:before{content:"\f1c76"}.mdi-tag-minus:before{content:"\f0910"}.mdi-tag-minus-outline:before{content:"\f121f"}.mdi-tag-multiple:before{content:"\f04fb"}.mdi-tag-multiple-outline:before{content:"\f12f7"}.mdi-tag-off:before{content:"\f1220"}.mdi-tag-off-outline:before{content:"\f1221"}.mdi-tag-outline:before{content:"\f04fc"}.mdi-tag-plus:before{content:"\f0722"}.mdi-tag-plus-outline:before{content:"\f1222"}.mdi-tag-remove:before{content:"\f0723"}.mdi-tag-remove-outline:before{content:"\f1223"}.mdi-tag-search:before{content:"\f1907"}.mdi-tag-search-outline:before{content:"\f1908"}.mdi-tag-text:before{content:"\f1224"}.mdi-tag-text-outline:before{content:"\f04fd"}.mdi-tailwind:before{content:"\f13ff"}.mdi-tally-mark-1:before{content:"\f1abc"}.mdi-tally-mark-2:before{content:"\f1abd"}.mdi-tally-mark-3:before{content:"\f1abe"}.mdi-tally-mark-4:before{content:"\f1abf"}.mdi-tally-mark-5:before{content:"\f1ac0"}.mdi-tangram:before{content:"\f04f8"}.mdi-tank:before{content:"\f0d3a"}.mdi-tanker-truck:before{content:"\f0fe5"}.mdi-tape-drive:before{content:"\f16df"}.mdi-tape-measure:before{content:"\f0b4d"}.mdi-target:before{content:"\f04fe"}.mdi-target-account:before{content:"\f0bd0"}.mdi-target-variant:before{content:"\f0a77"}.mdi-taxi:before{content:"\f04ff"}.mdi-tea:before{content:"\f0d9e"}.mdi-tea-outline:before{content:"\f0d9f"}.mdi-teamviewer:before{content:"\f0500"}.mdi-teddy-bear:before{content:"\f18fb"}.mdi-telescope:before{content:"\f0b4e"}.mdi-television:before{content:"\f0502"}.mdi-television-ambient-light:before{content:"\f1356"}.mdi-television-box:before{content:"\f0839"}.mdi-television-classic:before{content:"\f07f4"}.mdi-television-classic-off:before{content:"\f083a"}.mdi-television-guide:before{content:"\f0503"}.mdi-television-off:before{content:"\f083b"}.mdi-television-pause:before{content:"\f0f89"}.mdi-television-play:before{content:"\f0ecf"}.mdi-television-shimmer:before{content:"\f1110"}.mdi-television-speaker:before{content:"\f1b1b"}.mdi-television-speaker-off:before{content:"\f1b1c"}.mdi-television-stop:before{content:"\f0f8a"}.mdi-temperature-celsius:before{content:"\f0504"}.mdi-temperature-fahrenheit:before{content:"\f0505"}.mdi-temperature-kelvin:before{content:"\f0506"}.mdi-temple-buddhist:before{content:"\f1b06"}.mdi-temple-buddhist-outline:before{content:"\f1b07"}.mdi-temple-hindu:before{content:"\f1b08"}.mdi-temple-hindu-outline:before{content:"\f1b09"}.mdi-tennis:before{content:"\f0da0"}.mdi-tennis-ball:before{content:"\f0507"}.mdi-tennis-ball-outline:before{content:"\f1c5f"}.mdi-tent:before{content:"\f0508"}.mdi-terraform:before{content:"\f1062"}.mdi-terrain:before{content:"\f0509"}.mdi-test-tube:before{content:"\f0668"}.mdi-test-tube-empty:before{content:"\f0911"}.mdi-test-tube-off:before{content:"\f0912"}.mdi-text:before{content:"\f09a8"}.mdi-text-account:before{content:"\f1570"}.mdi-text-box:before{content:"\f021a"}.mdi-text-box-check:before{content:"\f0ea6"}.mdi-text-box-check-outline:before{content:"\f0ea7"}.mdi-text-box-edit:before{content:"\f1a7c"}.mdi-text-box-edit-outline:before{content:"\f1a7d"}.mdi-text-box-minus:before{content:"\f0ea8"}.mdi-text-box-minus-outline:before{content:"\f0ea9"}.mdi-text-box-multiple:before{content:"\f0ab7"}.mdi-text-box-multiple-outline:before{content:"\f0ab8"}.mdi-text-box-outline:before{content:"\f09ed"}.mdi-text-box-plus:before{content:"\f0eaa"}.mdi-text-box-plus-outline:before{content:"\f0eab"}.mdi-text-box-remove:before{content:"\f0eac"}.mdi-text-box-remove-outline:before{content:"\f0ead"}.mdi-text-box-search:before{content:"\f0eae"}.mdi-text-box-search-outline:before{content:"\f0eaf"}.mdi-text-long:before{content:"\f09aa"}.mdi-text-recognition:before{content:"\f113d"}.mdi-text-search:before{content:"\f13b8"}.mdi-text-search-variant:before{content:"\f1a7e"}.mdi-text-shadow:before{content:"\f0669"}.mdi-text-short:before{content:"\f09a9"}.mdi-texture:before{content:"\f050c"}.mdi-texture-box:before{content:"\f0fe6"}.mdi-theater:before{content:"\f050d"}.mdi-theme-light-dark:before{content:"\f050e"}.mdi-thermometer:before{content:"\f050f"}.mdi-thermometer-alert:before{content:"\f0e01"}.mdi-thermometer-auto:before{content:"\f1b0f"}.mdi-thermometer-bluetooth:before{content:"\f1895"}.mdi-thermometer-check:before{content:"\f1a7f"}.mdi-thermometer-chevron-down:before{content:"\f0e02"}.mdi-thermometer-chevron-up:before{content:"\f0e03"}.mdi-thermometer-high:before{content:"\f10c2"}.mdi-thermometer-lines:before{content:"\f0510"}.mdi-thermometer-low:before{content:"\f10c3"}.mdi-thermometer-minus:before{content:"\f0e04"}.mdi-thermometer-off:before{content:"\f1531"}.mdi-thermometer-plus:before{content:"\f0e05"}.mdi-thermometer-probe:before{content:"\f1b2b"}.mdi-thermometer-probe-off:before{content:"\f1b2c"}.mdi-thermometer-water:before{content:"\f1a80"}.mdi-thermostat:before{content:"\f0393"}.mdi-thermostat-auto:before{content:"\f1b17"}.mdi-thermostat-box:before{content:"\f0891"}.mdi-thermostat-box-auto:before{content:"\f1b18"}.mdi-thermostat-cog:before{content:"\f1c80"}.mdi-thought-bubble:before{content:"\f07f6"}.mdi-thought-bubble-outline:before{content:"\f07f7"}.mdi-thumb-down:before{content:"\f0511"}.mdi-thumb-down-outline:before{content:"\f0512"}.mdi-thumb-up:before{content:"\f0513"}.mdi-thumb-up-outline:before{content:"\f0514"}.mdi-thumbs-up-down:before{content:"\f0515"}.mdi-thumbs-up-down-outline:before{content:"\f1914"}.mdi-ticket:before{content:"\f0516"}.mdi-ticket-account:before{content:"\f0517"}.mdi-ticket-confirmation:before{content:"\f0518"}.mdi-ticket-confirmation-outline:before{content:"\f13aa"}.mdi-ticket-outline:before{content:"\f0913"}.mdi-ticket-percent:before{content:"\f0724"}.mdi-ticket-percent-outline:before{content:"\f142b"}.mdi-tie:before{content:"\f0519"}.mdi-tilde:before{content:"\f0725"}.mdi-tilde-off:before{content:"\f18f3"}.mdi-timelapse:before{content:"\f051a"}.mdi-timeline:before{content:"\f0bd1"}.mdi-timeline-alert:before{content:"\f0f95"}.mdi-timeline-alert-outline:before{content:"\f0f98"}.mdi-timeline-check:before{content:"\f1532"}.mdi-timeline-check-outline:before{content:"\f1533"}.mdi-timeline-clock:before{content:"\f11fb"}.mdi-timeline-clock-outline:before{content:"\f11fc"}.mdi-timeline-minus:before{content:"\f1534"}.mdi-timeline-minus-outline:before{content:"\f1535"}.mdi-timeline-outline:before{content:"\f0bd2"}.mdi-timeline-plus:before{content:"\f0f96"}.mdi-timeline-plus-outline:before{content:"\f0f97"}.mdi-timeline-question:before{content:"\f0f99"}.mdi-timeline-question-outline:before{content:"\f0f9a"}.mdi-timeline-remove:before{content:"\f1536"}.mdi-timeline-remove-outline:before{content:"\f1537"}.mdi-timeline-text:before{content:"\f0bd3"}.mdi-timeline-text-outline:before{content:"\f0bd4"}.mdi-timer:before{content:"\f13ab"}.mdi-timer-10:before{content:"\f051c"}.mdi-timer-3:before{content:"\f051d"}.mdi-timer-alert:before{content:"\f1acc"}.mdi-timer-alert-outline:before{content:"\f1acd"}.mdi-timer-cancel:before{content:"\f1ace"}.mdi-timer-cancel-outline:before{content:"\f1acf"}.mdi-timer-check:before{content:"\f1ad0"}.mdi-timer-check-outline:before{content:"\f1ad1"}.mdi-timer-cog:before{content:"\f1925"}.mdi-timer-cog-outline:before{content:"\f1926"}.mdi-timer-edit:before{content:"\f1ad2"}.mdi-timer-edit-outline:before{content:"\f1ad3"}.mdi-timer-lock:before{content:"\f1ad4"}.mdi-timer-lock-open:before{content:"\f1ad5"}.mdi-timer-lock-open-outline:before{content:"\f1ad6"}.mdi-timer-lock-outline:before{content:"\f1ad7"}.mdi-timer-marker:before{content:"\f1ad8"}.mdi-timer-marker-outline:before{content:"\f1ad9"}.mdi-timer-minus:before{content:"\f1ada"}.mdi-timer-minus-outline:before{content:"\f1adb"}.mdi-timer-music:before{content:"\f1adc"}.mdi-timer-music-outline:before{content:"\f1add"}.mdi-timer-off:before{content:"\f13ac"}.mdi-timer-off-outline:before{content:"\f051e"}.mdi-timer-outline:before{content:"\f051b"}.mdi-timer-pause:before{content:"\f1ade"}.mdi-timer-pause-outline:before{content:"\f1adf"}.mdi-timer-play:before{content:"\f1ae0"}.mdi-timer-play-outline:before{content:"\f1ae1"}.mdi-timer-plus:before{content:"\f1ae2"}.mdi-timer-plus-outline:before{content:"\f1ae3"}.mdi-timer-refresh:before{content:"\f1ae4"}.mdi-timer-refresh-outline:before{content:"\f1ae5"}.mdi-timer-remove:before{content:"\f1ae6"}.mdi-timer-remove-outline:before{content:"\f1ae7"}.mdi-timer-sand:before{content:"\f051f"}.mdi-timer-sand-complete:before{content:"\f199f"}.mdi-timer-sand-empty:before{content:"\f06ad"}.mdi-timer-sand-full:before{content:"\f078c"}.mdi-timer-sand-paused:before{content:"\f19a0"}.mdi-timer-settings:before{content:"\f1923"}.mdi-timer-settings-outline:before{content:"\f1924"}.mdi-timer-star:before{content:"\f1ae8"}.mdi-timer-star-outline:before{content:"\f1ae9"}.mdi-timer-stop:before{content:"\f1aea"}.mdi-timer-stop-outline:before{content:"\f1aeb"}.mdi-timer-sync:before{content:"\f1aec"}.mdi-timer-sync-outline:before{content:"\f1aed"}.mdi-timetable:before{content:"\f0520"}.mdi-tire:before{content:"\f1896"}.mdi-toaster:before{content:"\f1063"}.mdi-toaster-off:before{content:"\f11b7"}.mdi-toaster-oven:before{content:"\f0cd3"}.mdi-toggle-switch:before{content:"\f0521"}.mdi-toggle-switch-off:before{content:"\f0522"}.mdi-toggle-switch-off-outline:before{content:"\f0a19"}.mdi-toggle-switch-outline:before{content:"\f0a1a"}.mdi-toggle-switch-variant:before{content:"\f1a25"}.mdi-toggle-switch-variant-off:before{content:"\f1a26"}.mdi-toilet:before{content:"\f09ab"}.mdi-toolbox:before{content:"\f09ac"}.mdi-toolbox-outline:before{content:"\f09ad"}.mdi-tools:before{content:"\f1064"}.mdi-tooltip:before{content:"\f0523"}.mdi-tooltip-account:before{content:"\f000c"}.mdi-tooltip-cellphone:before{content:"\f183b"}.mdi-tooltip-check:before{content:"\f155c"}.mdi-tooltip-check-outline:before{content:"\f155d"}.mdi-tooltip-edit:before{content:"\f0524"}.mdi-tooltip-edit-outline:before{content:"\f12c5"}.mdi-tooltip-image:before{content:"\f0525"}.mdi-tooltip-image-outline:before{content:"\f0bd5"}.mdi-tooltip-minus:before{content:"\f155e"}.mdi-tooltip-minus-outline:before{content:"\f155f"}.mdi-tooltip-outline:before{content:"\f0526"}.mdi-tooltip-plus:before{content:"\f0bd6"}.mdi-tooltip-plus-outline:before{content:"\f0527"}.mdi-tooltip-question:before{content:"\f1bba"}.mdi-tooltip-question-outline:before{content:"\f1bbb"}.mdi-tooltip-remove:before{content:"\f1560"}.mdi-tooltip-remove-outline:before{content:"\f1561"}.mdi-tooltip-text:before{content:"\f0528"}.mdi-tooltip-text-outline:before{content:"\f0bd7"}.mdi-tooth:before{content:"\f08c3"}.mdi-tooth-outline:before{content:"\f0529"}.mdi-toothbrush:before{content:"\f1129"}.mdi-toothbrush-electric:before{content:"\f112c"}.mdi-toothbrush-paste:before{content:"\f112a"}.mdi-torch:before{content:"\f1606"}.mdi-tortoise:before{content:"\f0d3b"}.mdi-toslink:before{content:"\f12b8"}.mdi-touch-text-outline:before{content:"\f1c60"}.mdi-tournament:before{content:"\f09ae"}.mdi-tow-truck:before{content:"\f083c"}.mdi-tower-beach:before{content:"\f0681"}.mdi-tower-fire:before{content:"\f0682"}.mdi-town-hall:before{content:"\f1875"}.mdi-toy-brick:before{content:"\f1288"}.mdi-toy-brick-marker:before{content:"\f1289"}.mdi-toy-brick-marker-outline:before{content:"\f128a"}.mdi-toy-brick-minus:before{content:"\f128b"}.mdi-toy-brick-minus-outline:before{content:"\f128c"}.mdi-toy-brick-outline:before{content:"\f128d"}.mdi-toy-brick-plus:before{content:"\f128e"}.mdi-toy-brick-plus-outline:before{content:"\f128f"}.mdi-toy-brick-remove:before{content:"\f1290"}.mdi-toy-brick-remove-outline:before{content:"\f1291"}.mdi-toy-brick-search:before{content:"\f1292"}.mdi-toy-brick-search-outline:before{content:"\f1293"}.mdi-track-light:before{content:"\f0914"}.mdi-track-light-off:before{content:"\f1b01"}.mdi-trackpad:before{content:"\f07f8"}.mdi-trackpad-lock:before{content:"\f0933"}.mdi-tractor:before{content:"\f0892"}.mdi-tractor-variant:before{content:"\f14c4"}.mdi-trademark:before{content:"\f0a78"}.mdi-traffic-cone:before{content:"\f137c"}.mdi-traffic-light:before{content:"\f052b"}.mdi-traffic-light-outline:before{content:"\f182a"}.mdi-train:before{content:"\f052c"}.mdi-train-bus:before{content:"\f1cc7"}.mdi-train-car:before{content:"\f0bd8"}.mdi-train-car-autorack:before{content:"\f1b2d"}.mdi-train-car-box:before{content:"\f1b2e"}.mdi-train-car-box-full:before{content:"\f1b2f"}.mdi-train-car-box-open:before{content:"\f1b30"}.mdi-train-car-caboose:before{content:"\f1b31"}.mdi-train-car-centerbeam:before{content:"\f1b32"}.mdi-train-car-centerbeam-full:before{content:"\f1b33"}.mdi-train-car-container:before{content:"\f1b34"}.mdi-train-car-flatbed:before{content:"\f1b35"}.mdi-train-car-flatbed-car:before{content:"\f1b36"}.mdi-train-car-flatbed-tank:before{content:"\f1b37"}.mdi-train-car-gondola:before{content:"\f1b38"}.mdi-train-car-gondola-full:before{content:"\f1b39"}.mdi-train-car-hopper:before{content:"\f1b3a"}.mdi-train-car-hopper-covered:before{content:"\f1b3b"}.mdi-train-car-hopper-full:before{content:"\f1b3c"}.mdi-train-car-intermodal:before{content:"\f1b3d"}.mdi-train-car-passenger:before{content:"\f1733"}.mdi-train-car-passenger-door:before{content:"\f1734"}.mdi-train-car-passenger-door-open:before{content:"\f1735"}.mdi-train-car-passenger-variant:before{content:"\f1736"}.mdi-train-car-tank:before{content:"\f1b3e"}.mdi-train-variant:before{content:"\f08c4"}.mdi-tram:before{content:"\f052d"}.mdi-tram-side:before{content:"\f0fe7"}.mdi-transcribe:before{content:"\f052e"}.mdi-transcribe-close:before{content:"\f052f"}.mdi-transfer:before{content:"\f1065"}.mdi-transfer-down:before{content:"\f0da1"}.mdi-transfer-left:before{content:"\f0da2"}.mdi-transfer-right:before{content:"\f0530"}.mdi-transfer-up:before{content:"\f0da3"}.mdi-transit-connection:before{content:"\f0d3c"}.mdi-transit-connection-horizontal:before{content:"\f1546"}.mdi-transit-connection-variant:before{content:"\f0d3d"}.mdi-transit-detour:before{content:"\f0f8b"}.mdi-transit-skip:before{content:"\f1515"}.mdi-transit-transfer:before{content:"\f06ae"}.mdi-transition:before{content:"\f0915"}.mdi-transition-masked:before{content:"\f0916"}.mdi-translate:before{content:"\f05ca"}.mdi-translate-off:before{content:"\f0e06"}.mdi-translate-variant:before{content:"\f1b99"}.mdi-transmission-tower:before{content:"\f0d3e"}.mdi-transmission-tower-export:before{content:"\f192c"}.mdi-transmission-tower-import:before{content:"\f192d"}.mdi-transmission-tower-off:before{content:"\f19dd"}.mdi-trash-can:before{content:"\f0a79"}.mdi-trash-can-outline:before{content:"\f0a7a"}.mdi-tray:before{content:"\f1294"}.mdi-tray-alert:before{content:"\f1295"}.mdi-tray-arrow-down:before{content:"\f0120"}.mdi-tray-arrow-up:before{content:"\f011d"}.mdi-tray-full:before{content:"\f1296"}.mdi-tray-minus:before{content:"\f1297"}.mdi-tray-plus:before{content:"\f1298"}.mdi-tray-remove:before{content:"\f1299"}.mdi-treasure-chest:before{content:"\f0726"}.mdi-treasure-chest-outline:before{content:"\f1c77"}.mdi-tree:before{content:"\f0531"}.mdi-tree-outline:before{content:"\f0e69"}.mdi-trello:before{content:"\f0532"}.mdi-trending-down:before{content:"\f0533"}.mdi-trending-neutral:before{content:"\f0534"}.mdi-trending-up:before{content:"\f0535"}.mdi-triangle:before{content:"\f0536"}.mdi-triangle-down:before{content:"\f1c56"}.mdi-triangle-down-outline:before{content:"\f1c57"}.mdi-triangle-outline:before{content:"\f0537"}.mdi-triangle-small-down:before{content:"\f1a09"}.mdi-triangle-small-up:before{content:"\f1a0a"}.mdi-triangle-wave:before{content:"\f147c"}.mdi-triforce:before{content:"\f0bd9"}.mdi-trophy:before{content:"\f0538"}.mdi-trophy-award:before{content:"\f0539"}.mdi-trophy-broken:before{content:"\f0da4"}.mdi-trophy-outline:before{content:"\f053a"}.mdi-trophy-variant:before{content:"\f053b"}.mdi-trophy-variant-outline:before{content:"\f053c"}.mdi-truck:before{content:"\f053d"}.mdi-truck-alert:before{content:"\f19de"}.mdi-truck-alert-outline:before{content:"\f19df"}.mdi-truck-cargo-container:before{content:"\f18d8"}.mdi-truck-check:before{content:"\f0cd4"}.mdi-truck-check-outline:before{content:"\f129a"}.mdi-truck-delivery:before{content:"\f053e"}.mdi-truck-delivery-outline:before{content:"\f129b"}.mdi-truck-fast:before{content:"\f0788"}.mdi-truck-fast-outline:before{content:"\f129c"}.mdi-truck-flatbed:before{content:"\f1891"}.mdi-truck-minus:before{content:"\f19ae"}.mdi-truck-minus-outline:before{content:"\f19bd"}.mdi-truck-off-road:before{content:"\f1c9e"}.mdi-truck-off-road-off:before{content:"\f1c9f"}.mdi-truck-outline:before{content:"\f129d"}.mdi-truck-plus:before{content:"\f19ad"}.mdi-truck-plus-outline:before{content:"\f19bc"}.mdi-truck-remove:before{content:"\f19af"}.mdi-truck-remove-outline:before{content:"\f19be"}.mdi-truck-snowflake:before{content:"\f19a6"}.mdi-truck-trailer:before{content:"\f0727"}.mdi-trumpet:before{content:"\f1096"}.mdi-tshirt-crew:before{content:"\f0a7b"}.mdi-tshirt-crew-outline:before{content:"\f053f"}.mdi-tshirt-v:before{content:"\f0a7c"}.mdi-tshirt-v-outline:before{content:"\f0540"}.mdi-tsunami:before{content:"\f1a81"}.mdi-tumble-dryer:before{content:"\f0917"}.mdi-tumble-dryer-alert:before{content:"\f11ba"}.mdi-tumble-dryer-off:before{content:"\f11bb"}.mdi-tune:before{content:"\f062e"}.mdi-tune-variant:before{content:"\f1542"}.mdi-tune-vertical:before{content:"\f066a"}.mdi-tune-vertical-variant:before{content:"\f1543"}.mdi-tunnel:before{content:"\f183d"}.mdi-tunnel-outline:before{content:"\f183e"}.mdi-turbine:before{content:"\f1a82"}.mdi-turkey:before{content:"\f171b"}.mdi-turnstile:before{content:"\f0cd5"}.mdi-turnstile-outline:before{content:"\f0cd6"}.mdi-turtle:before{content:"\f0cd7"}.mdi-twitch:before{content:"\f0543"}.mdi-twitter:before{content:"\f0544"}.mdi-two-factor-authentication:before{content:"\f09af"}.mdi-typewriter:before{content:"\f0f2d"}.mdi-ubisoft:before{content:"\f0bda"}.mdi-ubuntu:before{content:"\f0548"}.mdi-ufo:before{content:"\f10c4"}.mdi-ufo-outline:before{content:"\f10c5"}.mdi-ultra-high-definition:before{content:"\f07f9"}.mdi-umbraco:before{content:"\f0549"}.mdi-umbrella:before{content:"\f054a"}.mdi-umbrella-beach:before{content:"\f188a"}.mdi-umbrella-beach-outline:before{content:"\f188b"}.mdi-umbrella-closed:before{content:"\f09b0"}.mdi-umbrella-closed-outline:before{content:"\f13e2"}.mdi-umbrella-closed-variant:before{content:"\f13e1"}.mdi-umbrella-outline:before{content:"\f054b"}.mdi-undo:before{content:"\f054c"}.mdi-undo-variant:before{content:"\f054d"}.mdi-unfold-less-horizontal:before{content:"\f054e"}.mdi-unfold-less-vertical:before{content:"\f0760"}.mdi-unfold-more-horizontal:before{content:"\f054f"}.mdi-unfold-more-vertical:before{content:"\f0761"}.mdi-ungroup:before{content:"\f0550"}.mdi-unicode:before{content:"\f0ed0"}.mdi-unicorn:before{content:"\f15c2"}.mdi-unicorn-variant:before{content:"\f15c3"}.mdi-unicycle:before{content:"\f15e5"}.mdi-unity:before{content:"\f06af"}.mdi-unreal:before{content:"\f09b1"}.mdi-update:before{content:"\f06b0"}.mdi-upload:before{content:"\f0552"}.mdi-upload-lock:before{content:"\f1373"}.mdi-upload-lock-outline:before{content:"\f1374"}.mdi-upload-multiple:before{content:"\f083d"}.mdi-upload-network:before{content:"\f06f6"}.mdi-upload-network-outline:before{content:"\f0cd8"}.mdi-upload-off:before{content:"\f10c6"}.mdi-upload-off-outline:before{content:"\f10c7"}.mdi-upload-outline:before{content:"\f0e07"}.mdi-usb:before{content:"\f0553"}.mdi-usb-c-port:before{content:"\f1cbf"}.mdi-usb-flash-drive:before{content:"\f129e"}.mdi-usb-flash-drive-outline:before{content:"\f129f"}.mdi-usb-port:before{content:"\f11f0"}.mdi-vacuum:before{content:"\f19a1"}.mdi-vacuum-outline:before{content:"\f19a2"}.mdi-valve:before{content:"\f1066"}.mdi-valve-closed:before{content:"\f1067"}.mdi-valve-open:before{content:"\f1068"}.mdi-van-passenger:before{content:"\f07fa"}.mdi-van-utility:before{content:"\f07fb"}.mdi-vanish:before{content:"\f07fc"}.mdi-vanish-quarter:before{content:"\f1554"}.mdi-vanity-light:before{content:"\f11e1"}.mdi-variable:before{content:"\f0ae7"}.mdi-variable-box:before{content:"\f1111"}.mdi-vector-arrange-above:before{content:"\f0554"}.mdi-vector-arrange-below:before{content:"\f0555"}.mdi-vector-bezier:before{content:"\f0ae8"}.mdi-vector-circle:before{content:"\f0556"}.mdi-vector-circle-variant:before{content:"\f0557"}.mdi-vector-combine:before{content:"\f0558"}.mdi-vector-curve:before{content:"\f0559"}.mdi-vector-difference:before{content:"\f055a"}.mdi-vector-difference-ab:before{content:"\f055b"}.mdi-vector-difference-ba:before{content:"\f055c"}.mdi-vector-ellipse:before{content:"\f0893"}.mdi-vector-intersection:before{content:"\f055d"}.mdi-vector-line:before{content:"\f055e"}.mdi-vector-link:before{content:"\f0fe8"}.mdi-vector-point:before{content:"\f01c4"}.mdi-vector-point-edit:before{content:"\f09e8"}.mdi-vector-point-minus:before{content:"\f1b78"}.mdi-vector-point-plus:before{content:"\f1b79"}.mdi-vector-point-select:before{content:"\f055f"}.mdi-vector-polygon:before{content:"\f0560"}.mdi-vector-polygon-variant:before{content:"\f1856"}.mdi-vector-polyline:before{content:"\f0561"}.mdi-vector-polyline-edit:before{content:"\f1225"}.mdi-vector-polyline-minus:before{content:"\f1226"}.mdi-vector-polyline-plus:before{content:"\f1227"}.mdi-vector-polyline-remove:before{content:"\f1228"}.mdi-vector-radius:before{content:"\f074a"}.mdi-vector-rectangle:before{content:"\f05c6"}.mdi-vector-selection:before{content:"\f0562"}.mdi-vector-square:before{content:"\f0001"}.mdi-vector-square-close:before{content:"\f1857"}.mdi-vector-square-edit:before{content:"\f18d9"}.mdi-vector-square-minus:before{content:"\f18da"}.mdi-vector-square-open:before{content:"\f1858"}.mdi-vector-square-plus:before{content:"\f18db"}.mdi-vector-square-remove:before{content:"\f18dc"}.mdi-vector-triangle:before{content:"\f0563"}.mdi-vector-union:before{content:"\f0564"}.mdi-vhs:before{content:"\f0a1b"}.mdi-vibrate:before{content:"\f0566"}.mdi-vibrate-off:before{content:"\f0cd9"}.mdi-video:before{content:"\f0567"}.mdi-video-2d:before{content:"\f1a1c"}.mdi-video-3d:before{content:"\f07fd"}.mdi-video-3d-off:before{content:"\f13d9"}.mdi-video-3d-variant:before{content:"\f0ed1"}.mdi-video-4k-box:before{content:"\f083e"}.mdi-video-account:before{content:"\f0919"}.mdi-video-box:before{content:"\f00fd"}.mdi-video-box-off:before{content:"\f00fe"}.mdi-video-check:before{content:"\f1069"}.mdi-video-check-outline:before{content:"\f106a"}.mdi-video-high-definition:before{content:"\f152e"}.mdi-video-image:before{content:"\f091a"}.mdi-video-input-antenna:before{content:"\f083f"}.mdi-video-input-component:before{content:"\f0840"}.mdi-video-input-hdmi:before{content:"\f0841"}.mdi-video-input-scart:before{content:"\f0f8c"}.mdi-video-input-svideo:before{content:"\f0842"}.mdi-video-marker:before{content:"\f19a9"}.mdi-video-marker-outline:before{content:"\f19aa"}.mdi-video-minus:before{content:"\f09b2"}.mdi-video-minus-outline:before{content:"\f02ba"}.mdi-video-off:before{content:"\f0568"}.mdi-video-off-outline:before{content:"\f0bdb"}.mdi-video-outline:before{content:"\f0bdc"}.mdi-video-plus:before{content:"\f09b3"}.mdi-video-plus-outline:before{content:"\f01d3"}.mdi-video-stabilization:before{content:"\f091b"}.mdi-video-standard-definition:before{content:"\f1ca0"}.mdi-video-switch:before{content:"\f0569"}.mdi-video-switch-outline:before{content:"\f0790"}.mdi-video-vintage:before{content:"\f0a1c"}.mdi-video-wireless:before{content:"\f0ed2"}.mdi-video-wireless-outline:before{content:"\f0ed3"}.mdi-view-agenda:before{content:"\f056a"}.mdi-view-agenda-outline:before{content:"\f11d8"}.mdi-view-array:before{content:"\f056b"}.mdi-view-array-outline:before{content:"\f1485"}.mdi-view-carousel:before{content:"\f056c"}.mdi-view-carousel-outline:before{content:"\f1486"}.mdi-view-column:before{content:"\f056d"}.mdi-view-column-outline:before{content:"\f1487"}.mdi-view-comfy:before{content:"\f0e6a"}.mdi-view-comfy-outline:before{content:"\f1488"}.mdi-view-compact:before{content:"\f0e6b"}.mdi-view-compact-outline:before{content:"\f0e6c"}.mdi-view-dashboard:before{content:"\f056e"}.mdi-view-dashboard-edit:before{content:"\f1947"}.mdi-view-dashboard-edit-outline:before{content:"\f1948"}.mdi-view-dashboard-outline:before{content:"\f0a1d"}.mdi-view-dashboard-variant:before{content:"\f0843"}.mdi-view-dashboard-variant-outline:before{content:"\f1489"}.mdi-view-day:before{content:"\f056f"}.mdi-view-day-outline:before{content:"\f148a"}.mdi-view-gallery:before{content:"\f1888"}.mdi-view-gallery-outline:before{content:"\f1889"}.mdi-view-grid:before{content:"\f0570"}.mdi-view-grid-compact:before{content:"\f1c61"}.mdi-view-grid-outline:before{content:"\f11d9"}.mdi-view-grid-plus:before{content:"\f0f8d"}.mdi-view-grid-plus-outline:before{content:"\f11da"}.mdi-view-headline:before{content:"\f0571"}.mdi-view-list:before{content:"\f0572"}.mdi-view-list-outline:before{content:"\f148b"}.mdi-view-module:before{content:"\f0573"}.mdi-view-module-outline:before{content:"\f148c"}.mdi-view-parallel:before{content:"\f0728"}.mdi-view-parallel-outline:before{content:"\f148d"}.mdi-view-quilt:before{content:"\f0574"}.mdi-view-quilt-outline:before{content:"\f148e"}.mdi-view-sequential:before{content:"\f0729"}.mdi-view-sequential-outline:before{content:"\f148f"}.mdi-view-split-horizontal:before{content:"\f0bcb"}.mdi-view-split-vertical:before{content:"\f0bcc"}.mdi-view-stream:before{content:"\f0575"}.mdi-view-stream-outline:before{content:"\f1490"}.mdi-view-week:before{content:"\f0576"}.mdi-view-week-outline:before{content:"\f1491"}.mdi-vimeo:before{content:"\f0577"}.mdi-violin:before{content:"\f060f"}.mdi-virtual-reality:before{content:"\f0894"}.mdi-virus:before{content:"\f13b6"}.mdi-virus-off:before{content:"\f18e1"}.mdi-virus-off-outline:before{content:"\f18e2"}.mdi-virus-outline:before{content:"\f13b7"}.mdi-vlc:before{content:"\f057c"}.mdi-voicemail:before{content:"\f057d"}.mdi-volcano:before{content:"\f1a83"}.mdi-volcano-outline:before{content:"\f1a84"}.mdi-volleyball:before{content:"\f09b4"}.mdi-volume-equal:before{content:"\f1b10"}.mdi-volume-high:before{content:"\f057e"}.mdi-volume-low:before{content:"\f057f"}.mdi-volume-medium:before{content:"\f0580"}.mdi-volume-minus:before{content:"\f075e"}.mdi-volume-mute:before{content:"\f075f"}.mdi-volume-off:before{content:"\f0581"}.mdi-volume-plus:before{content:"\f075d"}.mdi-volume-source:before{content:"\f1120"}.mdi-volume-variant-off:before{content:"\f0e08"}.mdi-volume-vibrate:before{content:"\f1121"}.mdi-vote:before{content:"\f0a1f"}.mdi-vote-outline:before{content:"\f0a20"}.mdi-vpn:before{content:"\f0582"}.mdi-vuejs:before{content:"\f0844"}.mdi-vuetify:before{content:"\f0e6d"}.mdi-walk:before{content:"\f0583"}.mdi-wall:before{content:"\f07fe"}.mdi-wall-fire:before{content:"\f1a11"}.mdi-wall-sconce:before{content:"\f091c"}.mdi-wall-sconce-flat:before{content:"\f091d"}.mdi-wall-sconce-flat-outline:before{content:"\f17c9"}.mdi-wall-sconce-flat-variant:before{content:"\f041c"}.mdi-wall-sconce-flat-variant-outline:before{content:"\f17ca"}.mdi-wall-sconce-outline:before{content:"\f17cb"}.mdi-wall-sconce-round:before{content:"\f0748"}.mdi-wall-sconce-round-outline:before{content:"\f17cc"}.mdi-wall-sconce-round-variant:before{content:"\f091e"}.mdi-wall-sconce-round-variant-outline:before{content:"\f17cd"}.mdi-wallet:before{content:"\f0584"}.mdi-wallet-bifold:before{content:"\f1c58"}.mdi-wallet-bifold-outline:before{content:"\f1c59"}.mdi-wallet-giftcard:before{content:"\f0585"}.mdi-wallet-membership:before{content:"\f0586"}.mdi-wallet-outline:before{content:"\f0bdd"}.mdi-wallet-plus:before{content:"\f0f8e"}.mdi-wallet-plus-outline:before{content:"\f0f8f"}.mdi-wallet-travel:before{content:"\f0587"}.mdi-wallpaper:before{content:"\f0e09"}.mdi-wan:before{content:"\f0588"}.mdi-wardrobe:before{content:"\f0f90"}.mdi-wardrobe-outline:before{content:"\f0f91"}.mdi-warehouse:before{content:"\f0f81"}.mdi-washing-machine:before{content:"\f072a"}.mdi-washing-machine-alert:before{content:"\f11bc"}.mdi-washing-machine-off:before{content:"\f11bd"}.mdi-watch:before{content:"\f0589"}.mdi-watch-export:before{content:"\f058a"}.mdi-watch-export-variant:before{content:"\f0895"}.mdi-watch-import:before{content:"\f058b"}.mdi-watch-import-variant:before{content:"\f0896"}.mdi-watch-variant:before{content:"\f0897"}.mdi-watch-vibrate:before{content:"\f06b1"}.mdi-watch-vibrate-off:before{content:"\f0cda"}.mdi-water:before{content:"\f058c"}.mdi-water-alert:before{content:"\f1502"}.mdi-water-alert-outline:before{content:"\f1503"}.mdi-water-boiler:before{content:"\f0f92"}.mdi-water-boiler-alert:before{content:"\f11b3"}.mdi-water-boiler-auto:before{content:"\f1b98"}.mdi-water-boiler-off:before{content:"\f11b4"}.mdi-water-check:before{content:"\f1504"}.mdi-water-check-outline:before{content:"\f1505"}.mdi-water-circle:before{content:"\f1806"}.mdi-water-minus:before{content:"\f1506"}.mdi-water-minus-outline:before{content:"\f1507"}.mdi-water-off:before{content:"\f058d"}.mdi-water-off-outline:before{content:"\f1508"}.mdi-water-opacity:before{content:"\f1855"}.mdi-water-outline:before{content:"\f0e0a"}.mdi-water-percent:before{content:"\f058e"}.mdi-water-percent-alert:before{content:"\f1509"}.mdi-water-plus:before{content:"\f150a"}.mdi-water-plus-outline:before{content:"\f150b"}.mdi-water-polo:before{content:"\f12a0"}.mdi-water-pump:before{content:"\f058f"}.mdi-water-pump-off:before{content:"\f0f93"}.mdi-water-remove:before{content:"\f150c"}.mdi-water-remove-outline:before{content:"\f150d"}.mdi-water-sync:before{content:"\f17c6"}.mdi-water-thermometer:before{content:"\f1a85"}.mdi-water-thermometer-outline:before{content:"\f1a86"}.mdi-water-well:before{content:"\f106b"}.mdi-water-well-outline:before{content:"\f106c"}.mdi-waterfall:before{content:"\f1849"}.mdi-watering-can:before{content:"\f1481"}.mdi-watering-can-outline:before{content:"\f1482"}.mdi-watermark:before{content:"\f0612"}.mdi-wave:before{content:"\f0f2e"}.mdi-wave-arrow-down:before{content:"\f1cb0"}.mdi-wave-arrow-up:before{content:"\f1cb1"}.mdi-wave-undercurrent:before{content:"\f1cc0"}.mdi-waveform:before{content:"\f147d"}.mdi-waves:before{content:"\f078d"}.mdi-waves-arrow-left:before{content:"\f1859"}.mdi-waves-arrow-right:before{content:"\f185a"}.mdi-waves-arrow-up:before{content:"\f185b"}.mdi-waze:before{content:"\f0bde"}.mdi-weather-cloudy:before{content:"\f0590"}.mdi-weather-cloudy-alert:before{content:"\f0f2f"}.mdi-weather-cloudy-arrow-right:before{content:"\f0e6e"}.mdi-weather-cloudy-clock:before{content:"\f18f6"}.mdi-weather-dust:before{content:"\f1b5a"}.mdi-weather-fog:before{content:"\f0591"}.mdi-weather-hail:before{content:"\f0592"}.mdi-weather-hazy:before{content:"\f0f30"}.mdi-weather-hurricane:before{content:"\f0898"}.mdi-weather-hurricane-outline:before{content:"\f1c78"}.mdi-weather-lightning:before{content:"\f0593"}.mdi-weather-lightning-rainy:before{content:"\f067e"}.mdi-weather-night:before{content:"\f0594"}.mdi-weather-night-partly-cloudy:before{content:"\f0f31"}.mdi-weather-partly-cloudy:before{content:"\f0595"}.mdi-weather-partly-lightning:before{content:"\f0f32"}.mdi-weather-partly-rainy:before{content:"\f0f33"}.mdi-weather-partly-snowy:before{content:"\f0f34"}.mdi-weather-partly-snowy-rainy:before{content:"\f0f35"}.mdi-weather-pouring:before{content:"\f0596"}.mdi-weather-rainy:before{content:"\f0597"}.mdi-weather-snowy:before{content:"\f0598"}.mdi-weather-snowy-heavy:before{content:"\f0f36"}.mdi-weather-snowy-rainy:before{content:"\f067f"}.mdi-weather-sunny:before{content:"\f0599"}.mdi-weather-sunny-alert:before{content:"\f0f37"}.mdi-weather-sunny-off:before{content:"\f14e4"}.mdi-weather-sunset:before{content:"\f059a"}.mdi-weather-sunset-down:before{content:"\f059b"}.mdi-weather-sunset-up:before{content:"\f059c"}.mdi-weather-tornado:before{content:"\f0f38"}.mdi-weather-windy:before{content:"\f059d"}.mdi-weather-windy-variant:before{content:"\f059e"}.mdi-web:before{content:"\f059f"}.mdi-web-box:before{content:"\f0f94"}.mdi-web-cancel:before{content:"\f1790"}.mdi-web-check:before{content:"\f0789"}.mdi-web-clock:before{content:"\f124a"}.mdi-web-minus:before{content:"\f10a0"}.mdi-web-off:before{content:"\f0a8e"}.mdi-web-plus:before{content:"\f0033"}.mdi-web-refresh:before{content:"\f1791"}.mdi-web-remove:before{content:"\f0551"}.mdi-web-sync:before{content:"\f1792"}.mdi-webcam:before{content:"\f05a0"}.mdi-webcam-off:before{content:"\f1737"}.mdi-webhook:before{content:"\f062f"}.mdi-webpack:before{content:"\f072b"}.mdi-webrtc:before{content:"\f1248"}.mdi-wechat:before{content:"\f0611"}.mdi-weight:before{content:"\f05a1"}.mdi-weight-gram:before{content:"\f0d3f"}.mdi-weight-kilogram:before{content:"\f05a2"}.mdi-weight-lifter:before{content:"\f115d"}.mdi-weight-pound:before{content:"\f09b5"}.mdi-whatsapp:before{content:"\f05a3"}.mdi-wheel-barrow:before{content:"\f14f2"}.mdi-wheelchair:before{content:"\f1a87"}.mdi-wheelchair-accessibility:before{content:"\f05a4"}.mdi-whistle:before{content:"\f09b6"}.mdi-whistle-outline:before{content:"\f12bc"}.mdi-white-balance-auto:before{content:"\f05a5"}.mdi-white-balance-incandescent:before{content:"\f05a6"}.mdi-white-balance-iridescent:before{content:"\f05a7"}.mdi-white-balance-sunny:before{content:"\f05a8"}.mdi-widgets:before{content:"\f072c"}.mdi-widgets-outline:before{content:"\f1355"}.mdi-wifi:before{content:"\f05a9"}.mdi-wifi-alert:before{content:"\f16b5"}.mdi-wifi-arrow-down:before{content:"\f16b6"}.mdi-wifi-arrow-left:before{content:"\f16b7"}.mdi-wifi-arrow-left-right:before{content:"\f16b8"}.mdi-wifi-arrow-right:before{content:"\f16b9"}.mdi-wifi-arrow-up:before{content:"\f16ba"}.mdi-wifi-arrow-up-down:before{content:"\f16bb"}.mdi-wifi-cancel:before{content:"\f16bc"}.mdi-wifi-check:before{content:"\f16bd"}.mdi-wifi-cog:before{content:"\f16be"}.mdi-wifi-lock:before{content:"\f16bf"}.mdi-wifi-lock-open:before{content:"\f16c0"}.mdi-wifi-marker:before{content:"\f16c1"}.mdi-wifi-minus:before{content:"\f16c2"}.mdi-wifi-off:before{content:"\f05aa"}.mdi-wifi-plus:before{content:"\f16c3"}.mdi-wifi-refresh:before{content:"\f16c4"}.mdi-wifi-remove:before{content:"\f16c5"}.mdi-wifi-settings:before{content:"\f16c6"}.mdi-wifi-star:before{content:"\f0e0b"}.mdi-wifi-strength-1:before{content:"\f091f"}.mdi-wifi-strength-1-alert:before{content:"\f0920"}.mdi-wifi-strength-1-lock:before{content:"\f0921"}.mdi-wifi-strength-1-lock-open:before{content:"\f16cb"}.mdi-wifi-strength-2:before{content:"\f0922"}.mdi-wifi-strength-2-alert:before{content:"\f0923"}.mdi-wifi-strength-2-lock:before{content:"\f0924"}.mdi-wifi-strength-2-lock-open:before{content:"\f16cc"}.mdi-wifi-strength-3:before{content:"\f0925"}.mdi-wifi-strength-3-alert:before{content:"\f0926"}.mdi-wifi-strength-3-lock:before{content:"\f0927"}.mdi-wifi-strength-3-lock-open:before{content:"\f16cd"}.mdi-wifi-strength-4:before{content:"\f0928"}.mdi-wifi-strength-4-alert:before{content:"\f0929"}.mdi-wifi-strength-4-lock:before{content:"\f092a"}.mdi-wifi-strength-4-lock-open:before{content:"\f16ce"}.mdi-wifi-strength-alert-outline:before{content:"\f092b"}.mdi-wifi-strength-lock-open-outline:before{content:"\f16cf"}.mdi-wifi-strength-lock-outline:before{content:"\f092c"}.mdi-wifi-strength-off:before{content:"\f092d"}.mdi-wifi-strength-off-outline:before{content:"\f092e"}.mdi-wifi-strength-outline:before{content:"\f092f"}.mdi-wifi-sync:before{content:"\f16c7"}.mdi-wikipedia:before{content:"\f05ac"}.mdi-wind-power:before{content:"\f1a88"}.mdi-wind-power-outline:before{content:"\f1a89"}.mdi-wind-turbine:before{content:"\f0da5"}.mdi-wind-turbine-alert:before{content:"\f19ab"}.mdi-wind-turbine-check:before{content:"\f19ac"}.mdi-window-close:before{content:"\f05ad"}.mdi-window-closed:before{content:"\f05ae"}.mdi-window-closed-variant:before{content:"\f11db"}.mdi-window-maximize:before{content:"\f05af"}.mdi-window-minimize:before{content:"\f05b0"}.mdi-window-open:before{content:"\f05b1"}.mdi-window-open-variant:before{content:"\f11dc"}.mdi-window-restore:before{content:"\f05b2"}.mdi-window-shutter:before{content:"\f111c"}.mdi-window-shutter-alert:before{content:"\f111d"}.mdi-window-shutter-auto:before{content:"\f1ba3"}.mdi-window-shutter-cog:before{content:"\f1a8a"}.mdi-window-shutter-open:before{content:"\f111e"}.mdi-window-shutter-settings:before{content:"\f1a8b"}.mdi-windsock:before{content:"\f15fa"}.mdi-wiper:before{content:"\f0ae9"}.mdi-wiper-wash:before{content:"\f0da6"}.mdi-wiper-wash-alert:before{content:"\f18df"}.mdi-wizard-hat:before{content:"\f1477"}.mdi-wordpress:before{content:"\f05b4"}.mdi-wrap:before{content:"\f05b6"}.mdi-wrap-disabled:before{content:"\f0bdf"}.mdi-wrench:before{content:"\f05b7"}.mdi-wrench-check:before{content:"\f1b8f"}.mdi-wrench-check-outline:before{content:"\f1b90"}.mdi-wrench-clock:before{content:"\f19a3"}.mdi-wrench-clock-outline:before{content:"\f1b93"}.mdi-wrench-cog:before{content:"\f1b91"}.mdi-wrench-cog-outline:before{content:"\f1b92"}.mdi-wrench-outline:before{content:"\f0be0"}.mdi-xamarin:before{content:"\f0845"}.mdi-xml:before{content:"\f05c0"}.mdi-xmpp:before{content:"\f07ff"}.mdi-yahoo:before{content:"\f0b4f"}.mdi-yeast:before{content:"\f05c1"}.mdi-yin-yang:before{content:"\f0680"}.mdi-yoga:before{content:"\f117c"}.mdi-youtube:before{content:"\f05c3"}.mdi-youtube-gaming:before{content:"\f0848"}.mdi-youtube-studio:before{content:"\f0847"}.mdi-youtube-subscription:before{content:"\f0d40"}.mdi-youtube-tv:before{content:"\f0448"}.mdi-yurt:before{content:"\f1516"}.mdi-z-wave:before{content:"\f0aea"}.mdi-zend:before{content:"\f0aeb"}.mdi-zigbee:before{content:"\f0d41"}.mdi-zip-box:before{content:"\f05c4"}.mdi-zip-box-outline:before{content:"\f0ffa"}.mdi-zip-disk:before{content:"\f0a23"}.mdi-zodiac-aquarius:before{content:"\f0a7d"}.mdi-zodiac-aries:before{content:"\f0a7e"}.mdi-zodiac-cancer:before{content:"\f0a7f"}.mdi-zodiac-capricorn:before{content:"\f0a80"}.mdi-zodiac-gemini:before{content:"\f0a81"}.mdi-zodiac-leo:before{content:"\f0a82"}.mdi-zodiac-libra:before{content:"\f0a83"}.mdi-zodiac-pisces:before{content:"\f0a84"}.mdi-zodiac-sagittarius:before{content:"\f0a85"}.mdi-zodiac-scorpio:before{content:"\f0a86"}.mdi-zodiac-taurus:before{content:"\f0a87"}.mdi-zodiac-virgo:before{content:"\f0a88"}.mdi-blank:before{content:"\f68c";visibility:hidden}.mdi-18px.mdi-set,.mdi-18px.mdi:before{font-size:18px}.mdi-24px.mdi-set,.mdi-24px.mdi:before{font-size:24px}.mdi-36px.mdi-set,.mdi-36px.mdi:before{font-size:36px}.mdi-48px.mdi-set,.mdi-48px.mdi:before{font-size:48px}.mdi-dark:before{color:#0000008a}.mdi-dark.mdi-inactive:before{color:#00000042}.mdi-light:before{color:#fff}.mdi-light.mdi-inactive:before{color:#ffffff4d}.mdi-rotate-45:before{transform:rotate(45deg)}.mdi-rotate-90:before{transform:rotate(90deg)}.mdi-rotate-135:before{transform:rotate(135deg)}.mdi-rotate-180:before{transform:rotate(180deg)}.mdi-rotate-225:before{transform:rotate(225deg)}.mdi-rotate-270:before{transform:rotate(270deg)}.mdi-rotate-315:before{transform:rotate(315deg)}.mdi-flip-h:before{transform:scaleX(-1);filter:FlipH;-ms-filter:"FlipH"}.mdi-flip-v:before{transform:scaleY(-1);filter:FlipV;-ms-filter:"FlipV"}.mdi-spin:before{animation:mdi-spin 2s infinite linear}@keyframes mdi-spin{0%{transform:rotate(0)}to{transform:rotate(359deg)}}@keyframes v-shake{59%{margin-left:0}60%,80%{margin-left:2px}70%,90%{margin-left:-2px}}.bg-black{background-color:#000!important;color:#fff!important}.bg-white{background-color:#fff!important;color:#000!important}.bg-transparent{background-color:transparent!important;color:currentColor!important}.bg-red{background-color:#f44336!important;color:#fff!important}.bg-red-lighten-5{background-color:#ffebee!important;color:#000!important}.bg-red-lighten-4{background-color:#ffcdd2!important;color:#000!important}.bg-red-lighten-3{background-color:#ef9a9a!important;color:#000!important}.bg-red-lighten-2{background-color:#e57373!important;color:#fff!important}.bg-red-lighten-1{background-color:#ef5350!important;color:#fff!important}.bg-red-darken-1{background-color:#e53935!important;color:#fff!important}.bg-red-darken-2{background-color:#d32f2f!important;color:#fff!important}.bg-red-darken-3{background-color:#c62828!important;color:#fff!important}.bg-red-darken-4{background-color:#b71c1c!important;color:#fff!important}.bg-red-accent-1{background-color:#ff8a80!important;color:#000!important}.bg-red-accent-2{background-color:#ff5252!important;color:#fff!important}.bg-red-accent-3{background-color:#ff1744!important;color:#fff!important}.bg-red-accent-4{background-color:#d50000!important;color:#fff!important}.bg-pink{background-color:#e91e63!important;color:#fff!important}.bg-pink-lighten-5{background-color:#fce4ec!important;color:#000!important}.bg-pink-lighten-4{background-color:#f8bbd0!important;color:#000!important}.bg-pink-lighten-3{background-color:#f48fb1!important;color:#000!important}.bg-pink-lighten-2{background-color:#f06292!important;color:#fff!important}.bg-pink-lighten-1{background-color:#ec407a!important;color:#fff!important}.bg-pink-darken-1{background-color:#d81b60!important;color:#fff!important}.bg-pink-darken-2{background-color:#c2185b!important;color:#fff!important}.bg-pink-darken-3{background-color:#ad1457!important;color:#fff!important}.bg-pink-darken-4{background-color:#880e4f!important;color:#fff!important}.bg-pink-accent-1{background-color:#ff80ab!important;color:#fff!important}.bg-pink-accent-2{background-color:#ff4081!important;color:#fff!important}.bg-pink-accent-3{background-color:#f50057!important;color:#fff!important}.bg-pink-accent-4{background-color:#c51162!important;color:#fff!important}.bg-purple{background-color:#9c27b0!important;color:#fff!important}.bg-purple-lighten-5{background-color:#f3e5f5!important;color:#000!important}.bg-purple-lighten-4{background-color:#e1bee7!important;color:#000!important}.bg-purple-lighten-3{background-color:#ce93d8!important;color:#fff!important}.bg-purple-lighten-2{background-color:#ba68c8!important;color:#fff!important}.bg-purple-lighten-1{background-color:#ab47bc!important;color:#fff!important}.bg-purple-darken-1{background-color:#8e24aa!important;color:#fff!important}.bg-purple-darken-2{background-color:#7b1fa2!important;color:#fff!important}.bg-purple-darken-3{background-color:#6a1b9a!important;color:#fff!important}.bg-purple-darken-4{background-color:#4a148c!important;color:#fff!important}.bg-purple-accent-1{background-color:#ea80fc!important;color:#fff!important}.bg-purple-accent-2{background-color:#e040fb!important;color:#fff!important}.bg-purple-accent-3{background-color:#d500f9!important;color:#fff!important}.bg-purple-accent-4{background-color:#a0f!important;color:#fff!important}.bg-deep-purple{background-color:#673ab7!important;color:#fff!important}.bg-deep-purple-lighten-5{background-color:#ede7f6!important;color:#000!important}.bg-deep-purple-lighten-4{background-color:#d1c4e9!important;color:#000!important}.bg-deep-purple-lighten-3{background-color:#b39ddb!important;color:#fff!important}.bg-deep-purple-lighten-2{background-color:#9575cd!important;color:#fff!important}.bg-deep-purple-lighten-1{background-color:#7e57c2!important;color:#fff!important}.bg-deep-purple-darken-1{background-color:#5e35b1!important;color:#fff!important}.bg-deep-purple-darken-2{background-color:#512da8!important;color:#fff!important}.bg-deep-purple-darken-3{background-color:#4527a0!important;color:#fff!important}.bg-deep-purple-darken-4{background-color:#311b92!important;color:#fff!important}.bg-deep-purple-accent-1{background-color:#b388ff!important;color:#fff!important}.bg-deep-purple-accent-2{background-color:#7c4dff!important;color:#fff!important}.bg-deep-purple-accent-3{background-color:#651fff!important;color:#fff!important}.bg-deep-purple-accent-4{background-color:#6200ea!important;color:#fff!important}.bg-indigo{background-color:#3f51b5!important;color:#fff!important}.bg-indigo-lighten-5{background-color:#e8eaf6!important;color:#000!important}.bg-indigo-lighten-4{background-color:#c5cae9!important;color:#000!important}.bg-indigo-lighten-3{background-color:#9fa8da!important;color:#fff!important}.bg-indigo-lighten-2{background-color:#7986cb!important;color:#fff!important}.bg-indigo-lighten-1{background-color:#5c6bc0!important;color:#fff!important}.bg-indigo-darken-1{background-color:#3949ab!important;color:#fff!important}.bg-indigo-darken-2{background-color:#303f9f!important;color:#fff!important}.bg-indigo-darken-3{background-color:#283593!important;color:#fff!important}.bg-indigo-darken-4{background-color:#1a237e!important;color:#fff!important}.bg-indigo-accent-1{background-color:#8c9eff!important;color:#fff!important}.bg-indigo-accent-2{background-color:#536dfe!important;color:#fff!important}.bg-indigo-accent-3{background-color:#3d5afe!important;color:#fff!important}.bg-indigo-accent-4{background-color:#304ffe!important;color:#fff!important}.bg-blue{background-color:#2196f3!important;color:#fff!important}.bg-blue-lighten-5{background-color:#e3f2fd!important;color:#000!important}.bg-blue-lighten-4{background-color:#bbdefb!important;color:#000!important}.bg-blue-lighten-3{background-color:#90caf9!important;color:#000!important}.bg-blue-lighten-2{background-color:#64b5f6!important;color:#000!important}.bg-blue-lighten-1{background-color:#42a5f5!important;color:#fff!important}.bg-blue-darken-1{background-color:#1e88e5!important;color:#fff!important}.bg-blue-darken-2{background-color:#1976d2!important;color:#fff!important}.bg-blue-darken-3{background-color:#1565c0!important;color:#fff!important}.bg-blue-darken-4{background-color:#0d47a1!important;color:#fff!important}.bg-blue-accent-1{background-color:#82b1ff!important;color:#000!important}.bg-blue-accent-2{background-color:#448aff!important;color:#fff!important}.bg-blue-accent-3{background-color:#2979ff!important;color:#fff!important}.bg-blue-accent-4{background-color:#2962ff!important;color:#fff!important}.bg-light-blue{background-color:#03a9f4!important;color:#fff!important}.bg-light-blue-lighten-5{background-color:#e1f5fe!important;color:#000!important}.bg-light-blue-lighten-4{background-color:#b3e5fc!important;color:#000!important}.bg-light-blue-lighten-3{background-color:#81d4fa!important;color:#000!important}.bg-light-blue-lighten-2{background-color:#4fc3f7!important;color:#000!important}.bg-light-blue-lighten-1{background-color:#29b6f6!important;color:#000!important}.bg-light-blue-darken-1{background-color:#039be5!important;color:#fff!important}.bg-light-blue-darken-2{background-color:#0288d1!important;color:#fff!important}.bg-light-blue-darken-3{background-color:#0277bd!important;color:#fff!important}.bg-light-blue-darken-4{background-color:#01579b!important;color:#fff!important}.bg-light-blue-accent-1{background-color:#80d8ff!important;color:#000!important}.bg-light-blue-accent-2{background-color:#40c4ff!important;color:#000!important}.bg-light-blue-accent-3{background-color:#00b0ff!important;color:#fff!important}.bg-light-blue-accent-4{background-color:#0091ea!important;color:#fff!important}.bg-cyan{background-color:#00bcd4!important;color:#000!important}.bg-cyan-lighten-5{background-color:#e0f7fa!important;color:#000!important}.bg-cyan-lighten-4{background-color:#b2ebf2!important;color:#000!important}.bg-cyan-lighten-3{background-color:#80deea!important;color:#000!important}.bg-cyan-lighten-2{background-color:#4dd0e1!important;color:#000!important}.bg-cyan-lighten-1{background-color:#26c6da!important;color:#000!important}.bg-cyan-darken-1{background-color:#00acc1!important;color:#fff!important}.bg-cyan-darken-2{background-color:#0097a7!important;color:#fff!important}.bg-cyan-darken-3{background-color:#00838f!important;color:#fff!important}.bg-cyan-darken-4{background-color:#006064!important;color:#fff!important}.bg-cyan-accent-1{background-color:#84ffff!important;color:#000!important}.bg-cyan-accent-2{background-color:#18ffff!important;color:#000!important}.bg-cyan-accent-3{background-color:#00e5ff!important;color:#000!important}.bg-cyan-accent-4{background-color:#00b8d4!important;color:#fff!important}.bg-teal{background-color:#009688!important;color:#fff!important}.bg-teal-lighten-5{background-color:#e0f2f1!important;color:#000!important}.bg-teal-lighten-4{background-color:#b2dfdb!important;color:#000!important}.bg-teal-lighten-3{background-color:#80cbc4!important;color:#000!important}.bg-teal-lighten-2{background-color:#4db6ac!important;color:#fff!important}.bg-teal-lighten-1{background-color:#26a69a!important;color:#fff!important}.bg-teal-darken-1{background-color:#00897b!important;color:#fff!important}.bg-teal-darken-2{background-color:#00796b!important;color:#fff!important}.bg-teal-darken-3{background-color:#00695c!important;color:#fff!important}.bg-teal-darken-4{background-color:#004d40!important;color:#fff!important}.bg-teal-accent-1{background-color:#a7ffeb!important;color:#000!important}.bg-teal-accent-2{background-color:#64ffda!important;color:#000!important}.bg-teal-accent-3{background-color:#1de9b6!important;color:#000!important}.bg-teal-accent-4{background-color:#00bfa5!important;color:#fff!important}.bg-green{background-color:#4caf50!important;color:#fff!important}.bg-green-lighten-5{background-color:#e8f5e9!important;color:#000!important}.bg-green-lighten-4{background-color:#c8e6c9!important;color:#000!important}.bg-green-lighten-3{background-color:#a5d6a7!important;color:#000!important}.bg-green-lighten-2{background-color:#81c784!important;color:#000!important}.bg-green-lighten-1{background-color:#66bb6a!important;color:#fff!important}.bg-green-darken-1{background-color:#43a047!important;color:#fff!important}.bg-green-darken-2{background-color:#388e3c!important;color:#fff!important}.bg-green-darken-3{background-color:#2e7d32!important;color:#fff!important}.bg-green-darken-4{background-color:#1b5e20!important;color:#fff!important}.bg-green-accent-1{background-color:#b9f6ca!important;color:#000!important}.bg-green-accent-2{background-color:#69f0ae!important;color:#000!important}.bg-green-accent-3{background-color:#00e676!important;color:#000!important}.bg-green-accent-4{background-color:#00c853!important;color:#000!important}.bg-light-green{background-color:#8bc34a!important;color:#000!important}.bg-light-green-lighten-5{background-color:#f1f8e9!important;color:#000!important}.bg-light-green-lighten-4{background-color:#dcedc8!important;color:#000!important}.bg-light-green-lighten-3{background-color:#c5e1a5!important;color:#000!important}.bg-light-green-lighten-2{background-color:#aed581!important;color:#000!important}.bg-light-green-lighten-1{background-color:#9ccc65!important;color:#000!important}.bg-light-green-darken-1{background-color:#7cb342!important;color:#fff!important}.bg-light-green-darken-2{background-color:#689f38!important;color:#fff!important}.bg-light-green-darken-3{background-color:#558b2f!important;color:#fff!important}.bg-light-green-darken-4{background-color:#33691e!important;color:#fff!important}.bg-light-green-accent-1{background-color:#ccff90!important;color:#000!important}.bg-light-green-accent-2{background-color:#b2ff59!important;color:#000!important}.bg-light-green-accent-3{background-color:#76ff03!important;color:#000!important}.bg-light-green-accent-4{background-color:#64dd17!important;color:#000!important}.bg-lime{background-color:#cddc39!important;color:#000!important}.bg-lime-lighten-5{background-color:#f9fbe7!important;color:#000!important}.bg-lime-lighten-4{background-color:#f0f4c3!important;color:#000!important}.bg-lime-lighten-3{background-color:#e6ee9c!important;color:#000!important}.bg-lime-lighten-2{background-color:#dce775!important;color:#000!important}.bg-lime-lighten-1{background-color:#d4e157!important;color:#000!important}.bg-lime-darken-1{background-color:#c0ca33!important;color:#000!important}.bg-lime-darken-2{background-color:#afb42b!important;color:#000!important}.bg-lime-darken-3{background-color:#9e9d24!important;color:#fff!important}.bg-lime-darken-4{background-color:#827717!important;color:#fff!important}.bg-lime-accent-1{background-color:#f4ff81!important;color:#000!important}.bg-lime-accent-2{background-color:#eeff41!important;color:#000!important}.bg-lime-accent-3{background-color:#c6ff00!important;color:#000!important}.bg-lime-accent-4{background-color:#aeea00!important;color:#000!important}.bg-yellow{background-color:#ffeb3b!important;color:#000!important}.bg-yellow-lighten-5{background-color:#fffde7!important;color:#000!important}.bg-yellow-lighten-4{background-color:#fff9c4!important;color:#000!important}.bg-yellow-lighten-3{background-color:#fff59d!important;color:#000!important}.bg-yellow-lighten-2{background-color:#fff176!important;color:#000!important}.bg-yellow-lighten-1{background-color:#ffee58!important;color:#000!important}.bg-yellow-darken-1{background-color:#fdd835!important;color:#000!important}.bg-yellow-darken-2{background-color:#fbc02d!important;color:#000!important}.bg-yellow-darken-3{background-color:#f9a825!important;color:#000!important}.bg-yellow-darken-4{background-color:#f57f17!important;color:#fff!important}.bg-yellow-accent-1{background-color:#ffff8d!important;color:#000!important}.bg-yellow-accent-2{background-color:#ff0!important;color:#000!important}.bg-yellow-accent-3{background-color:#ffea00!important;color:#000!important}.bg-yellow-accent-4{background-color:#ffd600!important;color:#000!important}.bg-amber{background-color:#ffc107!important;color:#000!important}.bg-amber-lighten-5{background-color:#fff8e1!important;color:#000!important}.bg-amber-lighten-4{background-color:#ffecb3!important;color:#000!important}.bg-amber-lighten-3{background-color:#ffe082!important;color:#000!important}.bg-amber-lighten-2{background-color:#ffd54f!important;color:#000!important}.bg-amber-lighten-1{background-color:#ffca28!important;color:#000!important}.bg-amber-darken-1{background-color:#ffb300!important;color:#000!important}.bg-amber-darken-2{background-color:#ffa000!important;color:#000!important}.bg-amber-darken-3{background-color:#ff8f00!important;color:#000!important}.bg-amber-darken-4{background-color:#ff6f00!important;color:#fff!important}.bg-amber-accent-1{background-color:#ffe57f!important;color:#000!important}.bg-amber-accent-2{background-color:#ffd740!important;color:#000!important}.bg-amber-accent-3{background-color:#ffc400!important;color:#000!important}.bg-amber-accent-4{background-color:#ffab00!important;color:#000!important}.bg-orange{background-color:#ff9800!important;color:#000!important}.bg-orange-lighten-5{background-color:#fff3e0!important;color:#000!important}.bg-orange-lighten-4{background-color:#ffe0b2!important;color:#000!important}.bg-orange-lighten-3{background-color:#ffcc80!important;color:#000!important}.bg-orange-lighten-2{background-color:#ffb74d!important;color:#000!important}.bg-orange-lighten-1{background-color:#ffa726!important;color:#000!important}.bg-orange-darken-1{background-color:#fb8c00!important;color:#fff!important}.bg-orange-darken-2{background-color:#f57c00!important;color:#fff!important}.bg-orange-darken-3{background-color:#ef6c00!important;color:#fff!important}.bg-orange-darken-4{background-color:#e65100!important;color:#fff!important}.bg-orange-accent-1{background-color:#ffd180!important;color:#000!important}.bg-orange-accent-2{background-color:#ffab40!important;color:#000!important}.bg-orange-accent-3{background-color:#ff9100!important;color:#000!important}.bg-orange-accent-4{background-color:#ff6d00!important;color:#fff!important}.bg-deep-orange{background-color:#ff5722!important;color:#fff!important}.bg-deep-orange-lighten-5{background-color:#fbe9e7!important;color:#000!important}.bg-deep-orange-lighten-4{background-color:#ffccbc!important;color:#000!important}.bg-deep-orange-lighten-3{background-color:#ffab91!important;color:#000!important}.bg-deep-orange-lighten-2{background-color:#ff8a65!important;color:#000!important}.bg-deep-orange-lighten-1{background-color:#ff7043!important;color:#fff!important}.bg-deep-orange-darken-1{background-color:#f4511e!important;color:#fff!important}.bg-deep-orange-darken-2{background-color:#e64a19!important;color:#fff!important}.bg-deep-orange-darken-3{background-color:#d84315!important;color:#fff!important}.bg-deep-orange-darken-4{background-color:#bf360c!important;color:#fff!important}.bg-deep-orange-accent-1{background-color:#ff9e80!important;color:#000!important}.bg-deep-orange-accent-2{background-color:#ff6e40!important;color:#fff!important}.bg-deep-orange-accent-3{background-color:#ff3d00!important;color:#fff!important}.bg-deep-orange-accent-4{background-color:#dd2c00!important;color:#fff!important}.bg-brown{background-color:#795548!important;color:#fff!important}.bg-brown-lighten-5{background-color:#efebe9!important;color:#000!important}.bg-brown-lighten-4{background-color:#d7ccc8!important;color:#000!important}.bg-brown-lighten-3{background-color:#bcaaa4!important;color:#000!important}.bg-brown-lighten-2{background-color:#a1887f!important;color:#fff!important}.bg-brown-lighten-1{background-color:#8d6e63!important;color:#fff!important}.bg-brown-darken-1{background-color:#6d4c41!important;color:#fff!important}.bg-brown-darken-2{background-color:#5d4037!important;color:#fff!important}.bg-brown-darken-3{background-color:#4e342e!important;color:#fff!important}.bg-brown-darken-4{background-color:#3e2723!important;color:#fff!important}.bg-blue-grey{background-color:#607d8b!important;color:#fff!important}.bg-blue-grey-lighten-5{background-color:#eceff1!important;color:#000!important}.bg-blue-grey-lighten-4{background-color:#cfd8dc!important;color:#000!important}.bg-blue-grey-lighten-3{background-color:#b0bec5!important;color:#000!important}.bg-blue-grey-lighten-2{background-color:#90a4ae!important;color:#fff!important}.bg-blue-grey-lighten-1{background-color:#78909c!important;color:#fff!important}.bg-blue-grey-darken-1{background-color:#546e7a!important;color:#fff!important}.bg-blue-grey-darken-2{background-color:#455a64!important;color:#fff!important}.bg-blue-grey-darken-3{background-color:#37474f!important;color:#fff!important}.bg-blue-grey-darken-4{background-color:#263238!important;color:#fff!important}.bg-grey{background-color:#9e9e9e!important;color:#fff!important}.bg-grey-lighten-5{background-color:#fafafa!important;color:#000!important}.bg-grey-lighten-4{background-color:#f5f5f5!important;color:#000!important}.bg-grey-lighten-3{background-color:#eee!important;color:#000!important}.bg-grey-lighten-2{background-color:#e0e0e0!important;color:#000!important}.bg-grey-lighten-1{background-color:#bdbdbd!important;color:#000!important}.bg-grey-darken-1{background-color:#757575!important;color:#fff!important}.bg-grey-darken-2{background-color:#616161!important;color:#fff!important}.bg-grey-darken-3{background-color:#424242!important;color:#fff!important}.bg-grey-darken-4{background-color:#212121!important;color:#fff!important}.bg-shades-black{background-color:#000!important;color:#fff!important}.bg-shades-white{background-color:#fff!important;color:#000!important}.bg-shades-transparent{background-color:transparent!important;color:currentColor!important}.text-black{color:#000!important}.text-white{color:#fff!important}.text-transparent{color:transparent!important}.text-red{color:#f44336!important}.text-red-lighten-5{color:#ffebee!important}.text-red-lighten-4{color:#ffcdd2!important}.text-red-lighten-3{color:#ef9a9a!important}.text-red-lighten-2{color:#e57373!important}.text-red-lighten-1{color:#ef5350!important}.text-red-darken-1{color:#e53935!important}.text-red-darken-2{color:#d32f2f!important}.text-red-darken-3{color:#c62828!important}.text-red-darken-4{color:#b71c1c!important}.text-red-accent-1{color:#ff8a80!important}.text-red-accent-2{color:#ff5252!important}.text-red-accent-3{color:#ff1744!important}.text-red-accent-4{color:#d50000!important}.text-pink{color:#e91e63!important}.text-pink-lighten-5{color:#fce4ec!important}.text-pink-lighten-4{color:#f8bbd0!important}.text-pink-lighten-3{color:#f48fb1!important}.text-pink-lighten-2{color:#f06292!important}.text-pink-lighten-1{color:#ec407a!important}.text-pink-darken-1{color:#d81b60!important}.text-pink-darken-2{color:#c2185b!important}.text-pink-darken-3{color:#ad1457!important}.text-pink-darken-4{color:#880e4f!important}.text-pink-accent-1{color:#ff80ab!important}.text-pink-accent-2{color:#ff4081!important}.text-pink-accent-3{color:#f50057!important}.text-pink-accent-4{color:#c51162!important}.text-purple{color:#9c27b0!important}.text-purple-lighten-5{color:#f3e5f5!important}.text-purple-lighten-4{color:#e1bee7!important}.text-purple-lighten-3{color:#ce93d8!important}.text-purple-lighten-2{color:#ba68c8!important}.text-purple-lighten-1{color:#ab47bc!important}.text-purple-darken-1{color:#8e24aa!important}.text-purple-darken-2{color:#7b1fa2!important}.text-purple-darken-3{color:#6a1b9a!important}.text-purple-darken-4{color:#4a148c!important}.text-purple-accent-1{color:#ea80fc!important}.text-purple-accent-2{color:#e040fb!important}.text-purple-accent-3{color:#d500f9!important}.text-purple-accent-4{color:#a0f!important}.text-deep-purple{color:#673ab7!important}.text-deep-purple-lighten-5{color:#ede7f6!important}.text-deep-purple-lighten-4{color:#d1c4e9!important}.text-deep-purple-lighten-3{color:#b39ddb!important}.text-deep-purple-lighten-2{color:#9575cd!important}.text-deep-purple-lighten-1{color:#7e57c2!important}.text-deep-purple-darken-1{color:#5e35b1!important}.text-deep-purple-darken-2{color:#512da8!important}.text-deep-purple-darken-3{color:#4527a0!important}.text-deep-purple-darken-4{color:#311b92!important}.text-deep-purple-accent-1{color:#b388ff!important}.text-deep-purple-accent-2{color:#7c4dff!important}.text-deep-purple-accent-3{color:#651fff!important}.text-deep-purple-accent-4{color:#6200ea!important}.text-indigo{color:#3f51b5!important}.text-indigo-lighten-5{color:#e8eaf6!important}.text-indigo-lighten-4{color:#c5cae9!important}.text-indigo-lighten-3{color:#9fa8da!important}.text-indigo-lighten-2{color:#7986cb!important}.text-indigo-lighten-1{color:#5c6bc0!important}.text-indigo-darken-1{color:#3949ab!important}.text-indigo-darken-2{color:#303f9f!important}.text-indigo-darken-3{color:#283593!important}.text-indigo-darken-4{color:#1a237e!important}.text-indigo-accent-1{color:#8c9eff!important}.text-indigo-accent-2{color:#536dfe!important}.text-indigo-accent-3{color:#3d5afe!important}.text-indigo-accent-4{color:#304ffe!important}.text-blue{color:#2196f3!important}.text-blue-lighten-5{color:#e3f2fd!important}.text-blue-lighten-4{color:#bbdefb!important}.text-blue-lighten-3{color:#90caf9!important}.text-blue-lighten-2{color:#64b5f6!important}.text-blue-lighten-1{color:#42a5f5!important}.text-blue-darken-1{color:#1e88e5!important}.text-blue-darken-2{color:#1976d2!important}.text-blue-darken-3{color:#1565c0!important}.text-blue-darken-4{color:#0d47a1!important}.text-blue-accent-1{color:#82b1ff!important}.text-blue-accent-2{color:#448aff!important}.text-blue-accent-3{color:#2979ff!important}.text-blue-accent-4{color:#2962ff!important}.text-light-blue{color:#03a9f4!important}.text-light-blue-lighten-5{color:#e1f5fe!important}.text-light-blue-lighten-4{color:#b3e5fc!important}.text-light-blue-lighten-3{color:#81d4fa!important}.text-light-blue-lighten-2{color:#4fc3f7!important}.text-light-blue-lighten-1{color:#29b6f6!important}.text-light-blue-darken-1{color:#039be5!important}.text-light-blue-darken-2{color:#0288d1!important}.text-light-blue-darken-3{color:#0277bd!important}.text-light-blue-darken-4{color:#01579b!important}.text-light-blue-accent-1{color:#80d8ff!important}.text-light-blue-accent-2{color:#40c4ff!important}.text-light-blue-accent-3{color:#00b0ff!important}.text-light-blue-accent-4{color:#0091ea!important}.text-cyan{color:#00bcd4!important}.text-cyan-lighten-5{color:#e0f7fa!important}.text-cyan-lighten-4{color:#b2ebf2!important}.text-cyan-lighten-3{color:#80deea!important}.text-cyan-lighten-2{color:#4dd0e1!important}.text-cyan-lighten-1{color:#26c6da!important}.text-cyan-darken-1{color:#00acc1!important}.text-cyan-darken-2{color:#0097a7!important}.text-cyan-darken-3{color:#00838f!important}.text-cyan-darken-4{color:#006064!important}.text-cyan-accent-1{color:#84ffff!important}.text-cyan-accent-2{color:#18ffff!important}.text-cyan-accent-3{color:#00e5ff!important}.text-cyan-accent-4{color:#00b8d4!important}.text-teal{color:#009688!important}.text-teal-lighten-5{color:#e0f2f1!important}.text-teal-lighten-4{color:#b2dfdb!important}.text-teal-lighten-3{color:#80cbc4!important}.text-teal-lighten-2{color:#4db6ac!important}.text-teal-lighten-1{color:#26a69a!important}.text-teal-darken-1{color:#00897b!important}.text-teal-darken-2{color:#00796b!important}.text-teal-darken-3{color:#00695c!important}.text-teal-darken-4{color:#004d40!important}.text-teal-accent-1{color:#a7ffeb!important}.text-teal-accent-2{color:#64ffda!important}.text-teal-accent-3{color:#1de9b6!important}.text-teal-accent-4{color:#00bfa5!important}.text-green{color:#4caf50!important}.text-green-lighten-5{color:#e8f5e9!important}.text-green-lighten-4{color:#c8e6c9!important}.text-green-lighten-3{color:#a5d6a7!important}.text-green-lighten-2{color:#81c784!important}.text-green-lighten-1{color:#66bb6a!important}.text-green-darken-1{color:#43a047!important}.text-green-darken-2{color:#388e3c!important}.text-green-darken-3{color:#2e7d32!important}.text-green-darken-4{color:#1b5e20!important}.text-green-accent-1{color:#b9f6ca!important}.text-green-accent-2{color:#69f0ae!important}.text-green-accent-3{color:#00e676!important}.text-green-accent-4{color:#00c853!important}.text-light-green{color:#8bc34a!important}.text-light-green-lighten-5{color:#f1f8e9!important}.text-light-green-lighten-4{color:#dcedc8!important}.text-light-green-lighten-3{color:#c5e1a5!important}.text-light-green-lighten-2{color:#aed581!important}.text-light-green-lighten-1{color:#9ccc65!important}.text-light-green-darken-1{color:#7cb342!important}.text-light-green-darken-2{color:#689f38!important}.text-light-green-darken-3{color:#558b2f!important}.text-light-green-darken-4{color:#33691e!important}.text-light-green-accent-1{color:#ccff90!important}.text-light-green-accent-2{color:#b2ff59!important}.text-light-green-accent-3{color:#76ff03!important}.text-light-green-accent-4{color:#64dd17!important}.text-lime{color:#cddc39!important}.text-lime-lighten-5{color:#f9fbe7!important}.text-lime-lighten-4{color:#f0f4c3!important}.text-lime-lighten-3{color:#e6ee9c!important}.text-lime-lighten-2{color:#dce775!important}.text-lime-lighten-1{color:#d4e157!important}.text-lime-darken-1{color:#c0ca33!important}.text-lime-darken-2{color:#afb42b!important}.text-lime-darken-3{color:#9e9d24!important}.text-lime-darken-4{color:#827717!important}.text-lime-accent-1{color:#f4ff81!important}.text-lime-accent-2{color:#eeff41!important}.text-lime-accent-3{color:#c6ff00!important}.text-lime-accent-4{color:#aeea00!important}.text-yellow{color:#ffeb3b!important}.text-yellow-lighten-5{color:#fffde7!important}.text-yellow-lighten-4{color:#fff9c4!important}.text-yellow-lighten-3{color:#fff59d!important}.text-yellow-lighten-2{color:#fff176!important}.text-yellow-lighten-1{color:#ffee58!important}.text-yellow-darken-1{color:#fdd835!important}.text-yellow-darken-2{color:#fbc02d!important}.text-yellow-darken-3{color:#f9a825!important}.text-yellow-darken-4{color:#f57f17!important}.text-yellow-accent-1{color:#ffff8d!important}.text-yellow-accent-2{color:#ff0!important}.text-yellow-accent-3{color:#ffea00!important}.text-yellow-accent-4{color:#ffd600!important}.text-amber{color:#ffc107!important}.text-amber-lighten-5{color:#fff8e1!important}.text-amber-lighten-4{color:#ffecb3!important}.text-amber-lighten-3{color:#ffe082!important}.text-amber-lighten-2{color:#ffd54f!important}.text-amber-lighten-1{color:#ffca28!important}.text-amber-darken-1{color:#ffb300!important}.text-amber-darken-2{color:#ffa000!important}.text-amber-darken-3{color:#ff8f00!important}.text-amber-darken-4{color:#ff6f00!important}.text-amber-accent-1{color:#ffe57f!important}.text-amber-accent-2{color:#ffd740!important}.text-amber-accent-3{color:#ffc400!important}.text-amber-accent-4{color:#ffab00!important}.text-orange{color:#ff9800!important}.text-orange-lighten-5{color:#fff3e0!important}.text-orange-lighten-4{color:#ffe0b2!important}.text-orange-lighten-3{color:#ffcc80!important}.text-orange-lighten-2{color:#ffb74d!important}.text-orange-lighten-1{color:#ffa726!important}.text-orange-darken-1{color:#fb8c00!important}.text-orange-darken-2{color:#f57c00!important}.text-orange-darken-3{color:#ef6c00!important}.text-orange-darken-4{color:#e65100!important}.text-orange-accent-1{color:#ffd180!important}.text-orange-accent-2{color:#ffab40!important}.text-orange-accent-3{color:#ff9100!important}.text-orange-accent-4{color:#ff6d00!important}.text-deep-orange{color:#ff5722!important}.text-deep-orange-lighten-5{color:#fbe9e7!important}.text-deep-orange-lighten-4{color:#ffccbc!important}.text-deep-orange-lighten-3{color:#ffab91!important}.text-deep-orange-lighten-2{color:#ff8a65!important}.text-deep-orange-lighten-1{color:#ff7043!important}.text-deep-orange-darken-1{color:#f4511e!important}.text-deep-orange-darken-2{color:#e64a19!important}.text-deep-orange-darken-3{color:#d84315!important}.text-deep-orange-darken-4{color:#bf360c!important}.text-deep-orange-accent-1{color:#ff9e80!important}.text-deep-orange-accent-2{color:#ff6e40!important}.text-deep-orange-accent-3{color:#ff3d00!important}.text-deep-orange-accent-4{color:#dd2c00!important}.text-brown{color:#795548!important}.text-brown-lighten-5{color:#efebe9!important}.text-brown-lighten-4{color:#d7ccc8!important}.text-brown-lighten-3{color:#bcaaa4!important}.text-brown-lighten-2{color:#a1887f!important}.text-brown-lighten-1{color:#8d6e63!important}.text-brown-darken-1{color:#6d4c41!important}.text-brown-darken-2{color:#5d4037!important}.text-brown-darken-3{color:#4e342e!important}.text-brown-darken-4{color:#3e2723!important}.text-blue-grey{color:#607d8b!important}.text-blue-grey-lighten-5{color:#eceff1!important}.text-blue-grey-lighten-4{color:#cfd8dc!important}.text-blue-grey-lighten-3{color:#b0bec5!important}.text-blue-grey-lighten-2{color:#90a4ae!important}.text-blue-grey-lighten-1{color:#78909c!important}.text-blue-grey-darken-1{color:#546e7a!important}.text-blue-grey-darken-2{color:#455a64!important}.text-blue-grey-darken-3{color:#37474f!important}.text-blue-grey-darken-4{color:#263238!important}.text-grey{color:#9e9e9e!important}.text-grey-lighten-5{color:#fafafa!important}.text-grey-lighten-4{color:#f5f5f5!important}.text-grey-lighten-3{color:#eee!important}.text-grey-lighten-2{color:#e0e0e0!important}.text-grey-lighten-1{color:#bdbdbd!important}.text-grey-darken-1{color:#757575!important}.text-grey-darken-2{color:#616161!important}.text-grey-darken-3{color:#424242!important}.text-grey-darken-4{color:#212121!important}.text-shades-black{color:#000!important}.text-shades-white{color:#fff!important}.text-shades-transparent{color:transparent!important}/*! +.v-popper__popper{z-index:10000;top:0;left:0;outline:none}.v-popper__popper.v-popper__popper--hidden{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s;pointer-events:none}.v-popper__popper.v-popper__popper--shown{visibility:visible;opacity:1;transition:opacity .15s}.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{transition:none!important}.v-popper__backdrop{position:absolute;top:0;left:0;width:100%;height:100%;display:none}.v-popper__inner{position:relative;box-sizing:border-box;overflow-y:auto}.v-popper__inner>div{position:relative;z-index:1;max-width:inherit;max-height:inherit}.v-popper__arrow-container{position:absolute;width:10px;height:10px}.v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{display:none}.v-popper__arrow-inner,.v-popper__arrow-outer{border-style:solid;position:absolute;top:0;left:0;width:0;height:0}.v-popper__arrow-inner{visibility:hidden;border-width:7px}.v-popper__arrow-outer{border-width:6px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{left:-2px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{left:-1px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{border-bottom-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:0}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{border-top-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{top:-4px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{top:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{top:-1px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{border-left-width:0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{left:-4px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{left:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{border-right-width:0;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{left:-2px}.v-popper--theme-tooltip .v-popper__inner{background:rgba(0,0,0,.8);color:#fff;border-radius:6px;padding:7px 12px 6px}.v-popper--theme-tooltip .v-popper__arrow-outer{border-color:#000c}.v-popper--theme-dropdown .v-popper__inner{background:#fff;color:#000;border-radius:6px;border:1px solid #ddd;box-shadow:0 6px 30px #0000001a}.v-popper--theme-dropdown .v-popper__arrow-inner{visibility:visible;border-color:#fff}.v-popper--theme-dropdown .v-popper__arrow-outer{border-color:#ddd}.vue-recycle-scroller{position:relative}.vue-recycle-scroller.direction-vertical:not(.page-mode){overflow-y:auto}.vue-recycle-scroller.direction-horizontal:not(.page-mode){overflow-x:auto}.vue-recycle-scroller.direction-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex}.vue-recycle-scroller__slot{-webkit-box-flex:1;-ms-flex:auto 0 0px;flex:auto 0 0}.vue-recycle-scroller__item-wrapper{-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;position:relative}.vue-recycle-scroller.ready .vue-recycle-scroller__item-view{position:absolute;top:0;left:0;will-change:transform}.vue-recycle-scroller.direction-vertical .vue-recycle-scroller__item-wrapper{width:100%}.vue-recycle-scroller.direction-horizontal .vue-recycle-scroller__item-wrapper{height:100%}.vue-recycle-scroller.ready.direction-vertical .vue-recycle-scroller__item-view{width:100%}.vue-recycle-scroller.ready.direction-horizontal .vue-recycle-scroller__item-view{height:100%}.resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.custom-select[data-v-26225d3c]{position:relative;width:100%}.custom-arrow[data-v-26225d3c]{position:absolute;top:0;right:0;background-color:#0f172a;display:block;height:100%;width:1.5rem;pointer-events:none;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.custom-arrow[data-v-26225d3c]:before,.custom-arrow[data-v-26225d3c]:after{--size: .35em;--arrow-color: rgb(177, 177, 177);content:"";position:absolute;width:0;height:0;left:50%;transform:translate(-50%,-50%)}.custom-arrow[data-v-26225d3c]:before{border-left:var(--size) solid transparent;border-right:var(--size) solid transparent;border-bottom:var(--size) solid var(--arrow-color);top:35%}.custom-arrow[data-v-26225d3c]:after{border-left:var(--size) solid transparent;border-right:var(--size) solid transparent;border-top:var(--size) solid var(--arrow-color);top:65%}.v-card{display:block;overflow:hidden;overflow-wrap:break-word;position:relative;padding:0;text-decoration:none;transition-duration:.28s;transition-property:box-shadow,opacity,background;transition-timing-function:cubic-bezier(.4,0,.2,1);z-index:0;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;border-radius:4px}.v-card--border{border-width:thin;box-shadow:none}.v-card--absolute{position:absolute}.v-card--fixed{position:fixed}.v-card:hover>.v-card__overlay{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-card:focus-visible>.v-card__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-card:focus>.v-card__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}}.v-card--active>.v-card__overlay,.v-card[aria-haspopup=menu][aria-expanded=true]>.v-card__overlay{opacity:calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier))}.v-card--active:hover>.v-card__overlay,.v-card[aria-haspopup=menu][aria-expanded=true]:hover>.v-card__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}.v-card--active:focus-visible>.v-card__overlay,.v-card[aria-haspopup=menu][aria-expanded=true]:focus-visible>.v-card__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-card--active:focus>.v-card__overlay,.v-card[aria-haspopup=menu][aria-expanded=true]:focus>.v-card__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}}.v-card--variant-plain,.v-card--variant-outlined,.v-card--variant-text,.v-card--variant-tonal{background:transparent;color:inherit}.v-card--variant-plain{opacity:.62}.v-card--variant-plain:focus,.v-card--variant-plain:hover{opacity:1}.v-card--variant-plain .v-card__overlay{display:none}.v-card--variant-elevated,.v-card--variant-flat{background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-card--variant-elevated{box-shadow:0 2px 1px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 1px 1px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 3px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-card--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-card--variant-outlined{border:thin solid currentColor}.v-card--variant-text .v-card__overlay{background:currentColor}.v-card--variant-tonal .v-card__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.v-card--disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.v-card--disabled>:not(.v-card__loader){opacity:.6}.v-card--flat{box-shadow:none}.v-card--hover{cursor:pointer}.v-card--hover:before,.v-card--hover:after{border-radius:inherit;bottom:0;content:"";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0;transition:inherit}.v-card--hover:before{opacity:1;z-index:-1;box-shadow:0 2px 1px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 1px 1px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 3px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-card--hover:after{z-index:1;opacity:0;box-shadow:0 5px 5px -3px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 8px 10px 1px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 3px 14px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-card--hover:hover:after{opacity:1}.v-card--hover:hover:before{opacity:0}.v-card--hover:hover{box-shadow:0 5px 5px -3px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 8px 10px 1px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 3px 14px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-card--link{cursor:pointer}.v-card-actions{align-items:center;display:flex;flex:none;min-height:52px;padding:.5rem}.v-card-item{align-items:center;display:grid;flex:none;grid-template-areas:"prepend content append";grid-template-columns:max-content auto max-content;padding:.625rem 1rem}.v-card-item+.v-card-text{padding-top:0}.v-card-item__prepend{grid-area:prepend;padding-inline-end:1rem}.v-card-item__append{grid-area:append;padding-inline-start:1rem}.v-card-item__content{align-self:center;grid-area:content;overflow:hidden}.v-card-title{display:block;flex:none;font-size:1.25rem;font-weight:500;-webkit-hyphens:auto;hyphens:auto;letter-spacing:.0125em;min-width:0;overflow-wrap:normal;overflow:hidden;padding:.5rem 1rem;text-overflow:ellipsis;text-transform:none;white-space:nowrap;word-break:normal;word-wrap:break-word}.v-card .v-card-title{line-height:2rem}.v-card--density-comfortable .v-card-title{line-height:1.75rem}.v-card--density-compact .v-card-title{line-height:1.55rem}.v-card-item .v-card-title{padding:0}.v-card-title+.v-card-text,.v-card-title+.v-card-actions{padding-top:0}.v-card-subtitle{display:block;flex:none;font-size:.875rem;font-weight:400;letter-spacing:.0178571429em;opacity:var(--v-medium-emphasis-opacity);overflow:hidden;padding:0 1rem;text-overflow:ellipsis;text-transform:none;white-space:nowrap}.v-card .v-card-subtitle{line-height:1.25rem}.v-card--density-comfortable .v-card-subtitle{line-height:1.125rem}.v-card--density-compact .v-card-subtitle{line-height:1rem}.v-card-item .v-card-subtitle{padding:0 0 .25rem}.v-card-text{flex:1 1 auto;font-size:.875rem;font-weight:400;letter-spacing:.0178571429em;padding:1rem;text-transform:none}.v-card .v-card-text{line-height:1.25rem}.v-card--density-comfortable .v-card-text{line-height:1.2rem}.v-card--density-compact .v-card-text{line-height:1.15rem}.v-card__image{display:flex;height:100%;flex:1 1 auto;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:-1}.v-card__content{border-radius:inherit;overflow:hidden;position:relative}.v-card__loader{bottom:auto;top:0;left:0;position:absolute;right:0;width:100%;z-index:1}.v-card__overlay{background-color:currentColor;border-radius:inherit;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;transition:opacity .2s ease-in-out}.v-avatar{flex:none;align-items:center;display:inline-flex;justify-content:center;line-height:normal;overflow:hidden;position:relative;text-align:center;transition:.2s cubic-bezier(.4,0,.2,1);transition-property:width,height;vertical-align:middle;border-radius:50%}.v-avatar.v-avatar--size-x-small{--v-avatar-height: 24px}.v-avatar.v-avatar--size-small{--v-avatar-height: 32px}.v-avatar.v-avatar--size-default{--v-avatar-height: 40px}.v-avatar.v-avatar--size-large{--v-avatar-height: 48px}.v-avatar.v-avatar--size-x-large{--v-avatar-height: 56px}.v-avatar.v-avatar--density-default{height:calc(var(--v-avatar-height) + 0px);width:calc(var(--v-avatar-height) + 0px)}.v-avatar.v-avatar--density-comfortable{height:calc(var(--v-avatar-height) + -4px);width:calc(var(--v-avatar-height) + -4px)}.v-avatar.v-avatar--density-compact{height:calc(var(--v-avatar-height) + -8px);width:calc(var(--v-avatar-height) + -8px)}.v-avatar--variant-plain,.v-avatar--variant-outlined,.v-avatar--variant-text,.v-avatar--variant-tonal{background:transparent;color:inherit}.v-avatar--variant-plain{opacity:.62}.v-avatar--variant-plain:focus,.v-avatar--variant-plain:hover{opacity:1}.v-avatar--variant-plain .v-avatar__overlay{display:none}.v-avatar--variant-elevated,.v-avatar--variant-flat{background:var(--v-theme-surface);color:rgba(var(--v-theme-on-surface),var(--v-medium-emphasis-opacity))}.v-avatar--variant-elevated{box-shadow:0 2px 1px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 1px 1px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 3px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-avatar--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-avatar--variant-outlined{border:thin solid currentColor}.v-avatar--variant-text .v-avatar__overlay{background:currentColor}.v-avatar--variant-tonal .v-avatar__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.v-avatar--rounded{border-radius:4px}.v-avatar .v-img{height:100%;width:100%}.v-icon{--v-icon-size-multiplier: 1;align-items:center;display:inline-flex;font-feature-settings:"liga";height:1em;justify-content:center;letter-spacing:normal;line-height:1;position:relative;text-indent:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:1em;min-width:1em}.v-icon--clickable{cursor:pointer}.v-icon--size-x-small{font-size:calc(var(--v-icon-size-multiplier) * 1em)}.v-icon--size-small{font-size:calc(var(--v-icon-size-multiplier) * 1.25em)}.v-icon--size-default{font-size:calc(var(--v-icon-size-multiplier) * 1.5em)}.v-icon--size-large{font-size:calc(var(--v-icon-size-multiplier) * 1.75em)}.v-icon--size-x-large{font-size:calc(var(--v-icon-size-multiplier) * 2em)}.v-icon__svg{fill:currentColor;width:100%;height:100%}.v-icon--start{margin-inline-end:8px}.v-icon--end{margin-inline-start:8px}.v-img{--v-theme-overlay-multiplier: 3;z-index:0}.v-img--booting .v-responsive__sizer{transition:none}.v-img__img,.v-img__picture,.v-img__gradient,.v-img__placeholder,.v-img__error{z-index:-1;position:absolute;top:0;left:0;width:100%;height:100%}.v-img__img--preload{filter:blur(4px)}.v-img__img--contain{-o-object-fit:contain;object-fit:contain}.v-img__img--cover{-o-object-fit:cover;object-fit:cover}.v-img__gradient{background-repeat:no-repeat}.v-responsive{display:flex;flex:1 0 auto;max-height:100%;max-width:100%;overflow:hidden;position:relative}.v-responsive--inline{display:inline-flex;flex:0 0 auto}.v-responsive__content{flex:1 0 0px;max-width:100%}.v-responsive__sizer~.v-responsive__content{margin-inline-start:-100%}.v-responsive__sizer{flex:1 0 0px;transition:padding-bottom .2s cubic-bezier(.4,0,.2,1);pointer-events:none}.v-progress-linear{background:transparent;overflow:hidden;position:relative;transition:.2s cubic-bezier(.4,0,.2,1);width:100%}.v-progress-linear__background{background:currentColor;bottom:0;left:0;opacity:var(--v-border-opacity);position:absolute;top:0;transition-property:width,left,right;transition:inherit}.v-progress-linear__content{align-items:center;display:flex;height:100%;justify-content:center;left:0;pointer-events:none;position:absolute;top:0;width:100%}.v-progress-linear__determinate,.v-progress-linear__indeterminate{background:currentColor}.v-progress-linear__determinate{height:inherit;left:0;position:absolute;transition:inherit;transition-property:width,left,right}.v-progress-linear__indeterminate .long,.v-progress-linear__indeterminate .short{animation-play-state:paused;animation-duration:2.2s;animation-iteration-count:infinite;bottom:0;height:inherit;left:0;position:absolute;right:auto;top:0;width:auto;will-change:left,right}.v-progress-linear__indeterminate .long{animation-name:indeterminate-ltr}.v-progress-linear__indeterminate .short{animation-name:indeterminate-short-ltr}.v-progress-linear__stream{animation:stream .25s infinite linear;animation-play-state:paused;bottom:0;left:auto;opacity:.3;pointer-events:none;position:absolute;transition:inherit;transition-property:width,left,right}.v-progress-linear--reverse .v-progress-linear__background,.v-progress-linear--reverse .v-progress-linear__determinate,.v-progress-linear--reverse .v-progress-linear__content,.v-progress-linear--reverse .v-progress-linear__indeterminate .long,.v-progress-linear--reverse .v-progress-linear__indeterminate .short{left:auto;right:0}.v-progress-linear--reverse .v-progress-linear__indeterminate .long{animation-name:indeterminate-rtl}.v-progress-linear--reverse .v-progress-linear__indeterminate .short{animation-name:indeterminate-short-rtl}.v-progress-linear--reverse .v-progress-linear__stream{right:auto}.v-progress-linear--absolute,.v-progress-linear--fixed{left:0;z-index:1}.v-progress-linear--absolute{position:absolute}.v-progress-linear--fixed{position:fixed}.v-progress-linear--rounded{border-radius:9999px}.v-progress-linear--rounded.v-progress-linear--rounded-bar .v-progress-linear__determinate,.v-progress-linear--rounded.v-progress-linear--rounded-bar .v-progress-linear__indeterminate{border-radius:inherit}.v-progress-linear--striped .v-progress-linear__determinate{animation:progress-linear-stripes 1s infinite linear;background-image:linear-gradient(135deg,hsla(0,0%,100%,.25) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.25) 0,hsla(0,0%,100%,.25) 75%,transparent 0,transparent);background-repeat:repeat;background-size:var(--v-progress-linear-height)}.v-progress-linear--active .v-progress-linear__indeterminate .long,.v-progress-linear--active .v-progress-linear__indeterminate .short,.v-progress-linear--active .v-progress-linear__stream{animation-play-state:running}.v-progress-linear--rounded-bar .v-progress-linear__determinate,.v-progress-linear--rounded-bar .v-progress-linear__indeterminate,.v-progress-linear--rounded-bar .v-progress-linear__stream+.v-progress-linear__background{border-radius:9999px}.v-progress-linear--rounded-bar .v-progress-linear__determinate{border-start-start-radius:0;border-end-start-radius:0}@keyframes indeterminate-ltr{0%{left:-90%;right:100%}60%{left:-90%;right:100%}to{left:100%;right:-35%}}@keyframes indeterminate-rtl{0%{left:100%;right:-90%}60%{left:100%;right:-90%}to{left:-35%;right:100%}}@keyframes indeterminate-short-ltr{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@keyframes indeterminate-short-rtl{0%{left:100%;right:-200%}60%{left:-8%;right:107%}to{left:-8%;right:107%}}@keyframes stream{to{transform:translate(var(--v-progress-linear-stream-to))}}@keyframes progress-linear-stripes{0%{background-position-x:var(--v-progress-linear-height)}}.v-ripple__container{color:inherit;border-radius:inherit;position:absolute;width:100%;height:100%;left:0;top:0;overflow:hidden;z-index:0;pointer-events:none;contain:strict}.v-ripple__animation{color:inherit;position:absolute;top:0;left:0;border-radius:50%;background:currentColor;opacity:0;pointer-events:none;overflow:hidden;will-change:transform,opacity}.v-ripple__animation--enter{transition:none;opacity:0}.v-ripple__animation--in{transition:transform .25s cubic-bezier(0,0,.2,1),opacity .1s cubic-bezier(0,0,.2,1);opacity:calc(.25 * var(--v-theme-overlay-multiplier))}.v-ripple__animation--out{transition:opacity .3s cubic-bezier(0,0,.2,1);opacity:0}.v-divider{display:block;flex:1 1 100%;height:0px;max-height:0px;opacity:var(--v-border-opacity);transition:inherit;border-style:solid;border-width:thin 0 0 0}.v-divider--vertical{align-self:stretch;border-width:0 thin 0 0;display:inline-flex;height:inherit;margin-left:-1px;max-height:100%;max-width:0px;vertical-align:text-bottom;width:0px}.v-divider--inset:not(.v-divider--vertical){max-width:calc(100% - 72px);margin-inline-start:72px}.v-divider--inset.v-divider--vertical{margin-bottom:8px;margin-top:8px;max-height:calc(100% - 16px)}.v-switch .v-label{padding-inline-start:10px}.v-switch .v-switch__thumb{background-color:rgb(var(--v-theme-surface-bright));color:rgb(var(--v-theme-on-surface-bright))}.v-switch__loader{display:flex}.v-switch__loader .v-progress-circular{color:rgb(var(--v-theme-surface))}.v-switch__track,.v-switch__thumb{transition:none}.v-selection-control--error:not(.v-selection-control--disabled) .v-switch__track,.v-selection-control--error:not(.v-selection-control--disabled) .v-switch__thumb{background-color:rgb(var(--v-theme-error));color:rgb(var(--v-theme-on-error))}.v-switch__track{background-color:rgb(var(--v-theme-surface-variant));border-radius:9999px;height:14px;opacity:.6;width:36px;cursor:pointer;transition:.2s background-color cubic-bezier(.4,0,.2,1)}.v-switch--inset .v-switch__track{border-radius:9999px;height:32px;width:52px}.v-switch__thumb{align-items:center;border-radius:50%;display:flex;height:20px;justify-content:center;width:20px;pointer-events:none;transition:.15s .05s transform cubic-bezier(0,0,.2,1),.2s color cubic-bezier(.4,0,.2,1),.2s background-color cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 10px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-switch--inset .v-switch__thumb{height:24px;width:24px;transform:scale(.6666666667);box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-switch--inset .v-switch__thumb--filled{transform:none}.v-switch--inset .v-selection-control--dirty .v-switch__thumb{transform:none;transition:.15s .05s transform cubic-bezier(0,0,.2,1)}.v-switch .v-selection-control{min-height:var(--v-input-control-height)}.v-switch .v-selection-control__input{border-radius:50%;transition:.2s transform cubic-bezier(.4,0,.2,1);transform:translate(-10px);position:absolute}.v-switch .v-selection-control__input .v-icon{position:absolute}.v-switch .v-selection-control--dirty .v-selection-control__input{transform:translate(10px)}.v-switch.v-switch--indeterminate .v-selection-control__input{transform:scale(.8)}.v-switch.v-switch--indeterminate .v-switch__thumb{transform:scale(.75);box-shadow:none}.v-switch.v-switch--inset .v-selection-control__wrapper{width:auto}.v-input{display:grid;flex:1 1 auto;font-size:1rem;font-weight:400;line-height:1.5}.v-input--disabled{pointer-events:none}.v-input--density-default{--v-input-control-height: 56px;--v-input-padding-top: 16px}.v-input--density-comfortable{--v-input-control-height: 48px;--v-input-padding-top: 12px}.v-input--density-compact{--v-input-control-height: 40px;--v-input-padding-top: 8px}.v-input--vertical{grid-template-areas:"append" "control" "prepend";grid-template-rows:max-content auto max-content;grid-template-columns:min-content}.v-input--vertical .v-input__prepend{margin-block-start:16px}.v-input--vertical .v-input__append{margin-block-end:16px}.v-input--horizontal{grid-template-areas:"prepend control append" "a messages b";grid-template-columns:max-content minmax(0,1fr) max-content;grid-template-rows:auto auto}.v-input--horizontal .v-input__prepend{margin-inline-end:16px}.v-input--horizontal .v-input__append{margin-inline-start:16px}.v-input__details{align-items:flex-end;display:flex;font-size:.75rem;font-weight:400;grid-area:messages;letter-spacing:.0333333333em;line-height:normal;min-height:22px;padding-top:6px;overflow:hidden;justify-content:space-between}.v-input__details>.v-icon,.v-input__prepend>.v-icon,.v-input__append>.v-icon{opacity:var(--v-medium-emphasis-opacity)}.v-input--disabled .v-input__details>.v-icon,.v-input--disabled .v-input__details .v-messages,.v-input--error .v-input__details>.v-icon,.v-input--error .v-input__details .v-messages,.v-input--disabled .v-input__prepend>.v-icon,.v-input--disabled .v-input__prepend .v-messages,.v-input--error .v-input__prepend>.v-icon,.v-input--error .v-input__prepend .v-messages,.v-input--disabled .v-input__append>.v-icon,.v-input--disabled .v-input__append .v-messages,.v-input--error .v-input__append>.v-icon,.v-input--error .v-input__append .v-messages{opacity:1}.v-input--disabled .v-input__details,.v-input--disabled .v-input__prepend,.v-input--disabled .v-input__append{opacity:var(--v-disabled-opacity)}.v-input--error:not(.v-input--disabled) .v-input__details>.v-icon,.v-input--error:not(.v-input--disabled) .v-input__details .v-messages,.v-input--error:not(.v-input--disabled) .v-input__prepend>.v-icon,.v-input--error:not(.v-input--disabled) .v-input__prepend .v-messages,.v-input--error:not(.v-input--disabled) .v-input__append>.v-icon,.v-input--error:not(.v-input--disabled) .v-input__append .v-messages{color:rgb(var(--v-theme-error))}.v-input__prepend,.v-input__append{display:flex;align-items:flex-start;padding-top:var(--v-input-padding-top)}.v-input--center-affix .v-input__prepend,.v-input--center-affix .v-input__append{align-items:center;padding-top:0}.v-input__prepend{grid-area:prepend}.v-input__append{grid-area:append}.v-input__control{display:flex;grid-area:control}.v-input--hide-spin-buttons input::-webkit-outer-spin-button,.v-input--hide-spin-buttons input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.v-input--hide-spin-buttons input[type=number]{-moz-appearance:textfield}.v-input--plain-underlined .v-input__prepend,.v-input--plain-underlined .v-input__append{align-items:flex-start}.v-input--density-default.v-input--plain-underlined .v-input__prepend,.v-input--density-default.v-input--plain-underlined .v-input__append{padding-top:calc(var(--v-input-padding-top) + 4px)}.v-input--density-comfortable.v-input--plain-underlined .v-input__prepend,.v-input--density-comfortable.v-input--plain-underlined .v-input__append{padding-top:calc(var(--v-input-padding-top) + 2px)}.v-input--density-compact.v-input--plain-underlined .v-input__prepend,.v-input--density-compact.v-input--plain-underlined .v-input__append{padding-top:calc(var(--v-input-padding-top) + 0px)}.v-messages{flex:1 1 auto;font-size:12px;min-height:14px;min-width:1px;opacity:var(--v-medium-emphasis-opacity);position:relative}.v-messages__message{line-height:12px;word-break:break-word;overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;transition-duration:.15s}.v-progress-circular{align-items:center;display:inline-flex;justify-content:center;position:relative;vertical-align:middle}.v-progress-circular>svg{width:100%;height:100%;margin:auto;position:absolute;top:0;bottom:0;left:0;right:0;z-index:0}.v-progress-circular__content{align-items:center;display:flex;justify-content:center}.v-progress-circular__underlay{color:rgba(var(--v-border-color),var(--v-border-opacity));stroke:currentColor;z-index:1}.v-progress-circular__overlay{stroke:currentColor;transition:all .2s ease-in-out,stroke-width 0s;z-index:2}.v-progress-circular--size-x-small{height:16px;width:16px}.v-progress-circular--size-small{height:24px;width:24px}.v-progress-circular--size-default{height:32px;width:32px}.v-progress-circular--size-large{height:48px;width:48px}.v-progress-circular--size-x-large{height:64px;width:64px}.v-progress-circular--indeterminate>svg{animation:progress-circular-rotate 1.4s linear infinite;transform-origin:center center;transition:all .2s ease-in-out}.v-progress-circular--indeterminate .v-progress-circular__overlay{animation:progress-circular-dash 1.4s ease-in-out infinite,progress-circular-rotate 1.4s linear infinite;stroke-dasharray:25,200;stroke-dashoffset:0;stroke-linecap:round;transform-origin:center center;transform:rotate(-90deg)}.v-progress-circular--disable-shrink>svg{animation-duration:.7s}.v-progress-circular--disable-shrink .v-progress-circular__overlay{animation:none}.v-progress-circular--indeterminate:not(.v-progress-circular--visible)>svg,.v-progress-circular--indeterminate:not(.v-progress-circular--visible) .v-progress-circular__overlay{animation-play-state:paused!important}@keyframes progress-circular-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-124px}}@keyframes progress-circular-rotate{to{transform:rotate(270deg)}}.v-selection-control{align-items:center;contain:layout;display:flex;flex:1 0;grid-area:control;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.v-selection-control .v-label{white-space:normal;word-break:break-word;height:100%}.v-selection-control--disabled{opacity:var(--v-disabled-opacity);pointer-events:none}.v-selection-control--error .v-label,.v-selection-control--disabled .v-label{opacity:1}.v-selection-control--error:not(.v-selection-control--disabled) .v-label{color:rgb(var(--v-theme-error))}.v-selection-control--inline{display:inline-flex;flex:0 0 auto;min-width:0;max-width:100%}.v-selection-control--inline .v-label{width:auto}.v-selection-control--density-default{--v-selection-control-size: 40px}.v-selection-control--density-comfortable{--v-selection-control-size: 36px}.v-selection-control--density-compact{--v-selection-control-size: 28px}.v-selection-control__wrapper{width:var(--v-selection-control-size);height:var(--v-selection-control-size);display:inline-flex;align-items:center;position:relative;justify-content:center;flex:none}.v-selection-control__input{width:var(--v-selection-control-size);height:var(--v-selection-control-size);align-items:center;display:flex;flex:none;justify-content:center;position:relative;border-radius:50%}.v-selection-control__input input{cursor:pointer;position:absolute;left:0;top:0;width:100%;height:100%;opacity:0}.v-selection-control__input:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;border-radius:100%;background-color:currentColor;opacity:0;pointer-events:none}.v-selection-control__input:hover:before{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-selection-control__input>.v-icon{opacity:var(--v-medium-emphasis-opacity)}.v-selection-control--disabled .v-selection-control__input>.v-icon,.v-selection-control--dirty .v-selection-control__input>.v-icon,.v-selection-control--error .v-selection-control__input>.v-icon{opacity:1}.v-selection-control--error:not(.v-selection-control--disabled) .v-selection-control__input>.v-icon{color:rgb(var(--v-theme-error))}.v-selection-control--focus-visible .v-selection-control__input:before{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}.v-label{align-items:center;color:inherit;display:inline-flex;font-size:1rem;letter-spacing:.009375em;min-width:0;opacity:var(--v-medium-emphasis-opacity);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-label--clickable{cursor:pointer}.v-selection-control-group{grid-area:control;display:flex;flex-direction:column}.v-selection-control-group--inline{flex-direction:row;flex-wrap:wrap}.v-data-table{width:100%}.v-data-table__table{width:100%;border-collapse:separate;border-spacing:0}.v-data-table__tr--focus{border:1px dotted black}.v-data-table__tr--clickable{cursor:pointer}.v-data-table .v-table__wrapper>table>thead>tr>td.v-data-table-column--align-end,.v-data-table .v-table__wrapper>table>thead>tr th.v-data-table-column--align-end,.v-data-table .v-table__wrapper>table tbody>tr>td.v-data-table-column--align-end,.v-data-table .v-table__wrapper>table tbody>tr th.v-data-table-column--align-end{text-align:end}.v-data-table .v-table__wrapper>table>thead>tr>td.v-data-table-column--align-end .v-data-table-header__content,.v-data-table .v-table__wrapper>table>thead>tr th.v-data-table-column--align-end .v-data-table-header__content,.v-data-table .v-table__wrapper>table tbody>tr>td.v-data-table-column--align-end .v-data-table-header__content,.v-data-table .v-table__wrapper>table tbody>tr th.v-data-table-column--align-end .v-data-table-header__content{flex-direction:row-reverse}.v-data-table .v-table__wrapper>table>thead>tr>td.v-data-table-column--align-center,.v-data-table .v-table__wrapper>table>thead>tr th.v-data-table-column--align-center,.v-data-table .v-table__wrapper>table tbody>tr>td.v-data-table-column--align-center,.v-data-table .v-table__wrapper>table tbody>tr th.v-data-table-column--align-center{text-align:center}.v-data-table .v-table__wrapper>table>thead>tr>td.v-data-table-column--align-center .v-data-table-header__content,.v-data-table .v-table__wrapper>table>thead>tr th.v-data-table-column--align-center .v-data-table-header__content,.v-data-table .v-table__wrapper>table tbody>tr>td.v-data-table-column--align-center .v-data-table-header__content,.v-data-table .v-table__wrapper>table tbody>tr th.v-data-table-column--align-center .v-data-table-header__content{justify-content:center}.v-data-table .v-table__wrapper>table>thead>tr>td.v-data-table-column--no-padding,.v-data-table .v-table__wrapper>table>thead>tr th.v-data-table-column--no-padding,.v-data-table .v-table__wrapper>table tbody>tr>td.v-data-table-column--no-padding,.v-data-table .v-table__wrapper>table tbody>tr th.v-data-table-column--no-padding{padding:0 8px}.v-data-table .v-table__wrapper>table>thead>tr>th,.v-data-table .v-table__wrapper>table tbody>tr>th{align-items:center}.v-data-table .v-table__wrapper>table>thead>tr>th.v-data-table__th--fixed,.v-data-table .v-table__wrapper>table tbody>tr>th.v-data-table__th--fixed{position:sticky}.v-data-table .v-table__wrapper>table>thead>tr>th.v-data-table__th--sortable:hover,.v-data-table .v-table__wrapper>table tbody>tr>th.v-data-table__th--sortable:hover{cursor:pointer;color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-data-table .v-table__wrapper>table>thead>tr>th:not(.v-data-table__th--sorted) .v-data-table-header__sort-icon,.v-data-table .v-table__wrapper>table tbody>tr>th:not(.v-data-table__th--sorted) .v-data-table-header__sort-icon{opacity:0}.v-data-table .v-table__wrapper>table>thead>tr>th:not(.v-data-table__th--sorted):hover .v-data-table-header__sort-icon,.v-data-table .v-table__wrapper>table tbody>tr>th:not(.v-data-table__th--sorted):hover .v-data-table-header__sort-icon{opacity:.5}.v-data-table-column--fixed{background:rgb(var(--v-theme-surface));position:sticky!important;left:0;z-index:1}.v-data-table-column--last-fixed{border-right:1px solid rgba(var(--v-border-color),var(--v-border-opacity))}.v-data-table.v-table--fixed-header>.v-table__wrapper>table>thead>tr>th.v-data-table-column--fixed{z-index:2}.v-data-table-group-header-row td{background:rgba(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface))}.v-data-table-group-header-row td>span{padding-left:5px}.v-data-table--loading .v-data-table__td{opacity:.3}.v-data-table-group-header-row__column{padding-left:calc(var(--v-data-table-group-header-row-depth) * 16px)!important}.v-data-table-header__content{display:flex;align-items:center}.v-data-table-header__sort-badge{display:inline-flex;justify-content:center;align-items:center;font-size:.875rem;padding:4px;border-radius:50%;background:rgba(var(--v-border-color),var(--v-border-opacity));min-width:20px;min-height:20px;width:20px;height:20px}.v-data-table-progress>th{border:none!important;height:auto!important;padding:0!important}.v-data-table-progress__loader{position:relative}.v-data-table-rows-loading,.v-data-table-rows-no-data{text-align:center}.v-data-table-footer{display:flex;align-items:center;flex-wrap:wrap;padding:4px;justify-content:flex-end}.v-data-table-footer__items-per-page{padding-inline-end:24px;display:flex;align-items:center;justify-content:space-between}.v-data-table-footer__items-per-page>span{padding-inline-end:24px}.v-data-table-footer__info{display:flex;padding-inline-end:24px}.v-data-table-footer__pagination{display:flex;align-items:center}.v-data-table-footer__page{padding:0 8px}.v-pagination__list{display:inline-flex;list-style-type:none;justify-content:center;width:100%}.v-pagination__item,.v-pagination__first,.v-pagination__prev,.v-pagination__next,.v-pagination__last{margin:.3rem}.v-btn{align-items:center;border-radius:4px;display:inline-grid;grid-template-areas:"prepend content append";grid-template-columns:max-content auto max-content;font-weight:500;justify-content:center;letter-spacing:.0892857143em;line-height:normal;max-width:100%;outline:none;position:relative;text-decoration:none;text-indent:.0892857143em;text-transform:uppercase;transition-property:box-shadow,transform,opacity,background;transition-duration:.28s;transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;flex-shrink:0;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0}.v-btn--size-x-small{--v-btn-size: .625rem;--v-btn-height: 20px;font-size:var(--v-btn-size);min-width:36px;padding:0 8px}.v-btn--size-small{--v-btn-size: .75rem;--v-btn-height: 28px;font-size:var(--v-btn-size);min-width:50px;padding:0 12px}.v-btn--size-default{--v-btn-size: .875rem;--v-btn-height: 36px;font-size:var(--v-btn-size);min-width:64px;padding:0 16px}.v-btn--size-large{--v-btn-size: 1rem;--v-btn-height: 44px;font-size:var(--v-btn-size);min-width:78px;padding:0 20px}.v-btn--size-x-large{--v-btn-size: 1.125rem;--v-btn-height: 52px;font-size:var(--v-btn-size);min-width:92px;padding:0 24px}.v-btn.v-btn--density-default{height:calc(var(--v-btn-height) + 0px)}.v-btn.v-btn--density-comfortable{height:calc(var(--v-btn-height) + -8px)}.v-btn.v-btn--density-compact{height:calc(var(--v-btn-height) + -12px)}.v-btn--border{border-width:thin;box-shadow:none}.v-btn--absolute{position:absolute}.v-btn--fixed{position:fixed}.v-btn:hover>.v-btn__overlay{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-btn:focus-visible>.v-btn__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-btn:focus>.v-btn__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}}.v-btn--active>.v-btn__overlay,.v-btn[aria-haspopup=menu][aria-expanded=true]>.v-btn__overlay{opacity:calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier))}.v-btn--active:hover>.v-btn__overlay,.v-btn[aria-haspopup=menu][aria-expanded=true]:hover>.v-btn__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}.v-btn--active:focus-visible>.v-btn__overlay,.v-btn[aria-haspopup=menu][aria-expanded=true]:focus-visible>.v-btn__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-btn--active:focus>.v-btn__overlay,.v-btn[aria-haspopup=menu][aria-expanded=true]:focus>.v-btn__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}}.v-btn--variant-plain,.v-btn--variant-outlined,.v-btn--variant-text,.v-btn--variant-tonal{background:transparent;color:inherit}.v-btn--variant-plain{opacity:.62}.v-btn--variant-plain:focus,.v-btn--variant-plain:hover{opacity:1}.v-btn--variant-plain .v-btn__overlay{display:none}.v-btn--variant-elevated,.v-btn--variant-flat{background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-btn--variant-elevated{box-shadow:0 3px 1px -2px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 2px 2px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-btn--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-btn--variant-outlined{border:thin solid currentColor}.v-btn--variant-text .v-btn__overlay{background:currentColor}.v-btn--variant-tonal .v-btn__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}@supports selector(:focus-visible){.v-btn:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;border:2px solid currentColor;border-radius:inherit;opacity:0;transition:opacity .2s ease-in-out}.v-btn:focus-visible:after{opacity:calc(.25 * var(--v-theme-overlay-multiplier))}}.v-btn--icon{border-radius:50%;min-width:0;padding:0}.v-btn--icon.v-btn--size-default{--v-btn-size: 1rem}.v-btn--icon.v-btn--density-default{width:calc(var(--v-btn-height) + 12px);height:calc(var(--v-btn-height) + 12px)}.v-btn--icon.v-btn--density-comfortable{width:calc(var(--v-btn-height) + 0px);height:calc(var(--v-btn-height) + 0px)}.v-btn--icon.v-btn--density-compact{width:calc(var(--v-btn-height) + -8px);height:calc(var(--v-btn-height) + -8px)}.v-btn--elevated:hover,.v-btn--elevated:focus{box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 10px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-btn--elevated:active{box-shadow:0 5px 5px -3px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 8px 10px 1px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 3px 14px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-btn--flat{box-shadow:none}.v-btn--block{display:flex;flex:1 0 auto;min-width:100%}.v-btn--disabled{pointer-events:none;opacity:.26}.v-btn--disabled:hover{opacity:.26}.v-btn--disabled.v-btn--variant-elevated,.v-btn--disabled.v-btn--variant-flat{box-shadow:none;opacity:1;color:rgba(var(--v-theme-on-surface),.26);background:rgb(var(--v-theme-surface))}.v-btn--disabled.v-btn--variant-elevated .v-btn__overlay,.v-btn--disabled.v-btn--variant-flat .v-btn__overlay{opacity:.4615384615}.v-btn--loading{pointer-events:none}.v-btn--loading .v-btn__content,.v-btn--loading .v-btn__prepend,.v-btn--loading .v-btn__append{opacity:0}.v-btn--stacked{grid-template-areas:"prepend" "content" "append";grid-template-columns:auto;grid-template-rows:max-content max-content max-content;justify-items:center;align-content:center}.v-btn--stacked .v-btn__content{flex-direction:column;line-height:1.25}.v-btn--stacked .v-btn__prepend,.v-btn--stacked .v-btn__append,.v-btn--stacked .v-btn__content>.v-icon--start,.v-btn--stacked .v-btn__content>.v-icon--end{margin-inline:0}.v-btn--stacked .v-btn__prepend,.v-btn--stacked .v-btn__content>.v-icon--start{margin-bottom:4px}.v-btn--stacked .v-btn__append,.v-btn--stacked .v-btn__content>.v-icon--end{margin-top:4px}.v-btn--stacked.v-btn--size-x-small{--v-btn-size: .625rem;--v-btn-height: 56px;font-size:var(--v-btn-size);min-width:56px;padding:0 12px}.v-btn--stacked.v-btn--size-small{--v-btn-size: .75rem;--v-btn-height: 64px;font-size:var(--v-btn-size);min-width:64px;padding:0 14px}.v-btn--stacked.v-btn--size-default{--v-btn-size: .875rem;--v-btn-height: 72px;font-size:var(--v-btn-size);min-width:72px;padding:0 16px}.v-btn--stacked.v-btn--size-large{--v-btn-size: 1rem;--v-btn-height: 80px;font-size:var(--v-btn-size);min-width:80px;padding:0 18px}.v-btn--stacked.v-btn--size-x-large{--v-btn-size: 1.125rem;--v-btn-height: 88px;font-size:var(--v-btn-size);min-width:88px;padding:0 20px}.v-btn--stacked.v-btn--density-default{height:calc(var(--v-btn-height) + 0px)}.v-btn--stacked.v-btn--density-comfortable{height:calc(var(--v-btn-height) + -16px)}.v-btn--stacked.v-btn--density-compact{height:calc(var(--v-btn-height) + -24px)}.v-btn--slim{padding:0 8px}.v-btn--rounded{border-radius:24px}.v-btn--rounded.v-btn--icon{border-radius:4px}.v-btn .v-icon{--v-icon-size-multiplier: .8571428571}.v-btn--icon .v-icon{--v-icon-size-multiplier: 1}.v-btn--stacked .v-icon{--v-icon-size-multiplier: 1.1428571429}.v-btn__loader{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}.v-btn__content,.v-btn__prepend,.v-btn__append{align-items:center;display:flex;transition:transform,opacity .2s cubic-bezier(.4,0,.2,1)}.v-btn__prepend{grid-area:prepend;margin-inline:calc(var(--v-btn-height) / -9) calc(var(--v-btn-height) / 4.5)}.v-btn__append{grid-area:append;margin-inline:calc(var(--v-btn-height) / 4.5) calc(var(--v-btn-height) / -9)}.v-btn__content{grid-area:content;justify-content:center;white-space:nowrap}.v-btn__content>.v-icon--start{margin-inline:calc(var(--v-btn-height) / -9) calc(var(--v-btn-height) / 4.5)}.v-btn__content>.v-icon--end{margin-inline:calc(var(--v-btn-height) / 4.5) calc(var(--v-btn-height) / -9)}.v-btn--stacked .v-btn__content{white-space:normal}.v-btn__overlay{background-color:currentColor;border-radius:inherit;opacity:0;transition:opacity .2s ease-in-out}.v-btn__overlay,.v-btn__underlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.v-card-actions .v-btn~.v-btn:not(.v-btn-toggle .v-btn){margin-inline-start:.5rem}.v-pagination .v-btn{border-radius:4px}.v-pagination .v-btn--rounded{border-radius:50%}.v-btn__overlay{transition:none}.v-pagination__item--is-active .v-btn__overlay{opacity:var(--v-border-opacity)}.v-btn-toggle>.v-btn.v-btn--active:not(.v-btn--disabled)>.v-btn__overlay{opacity:calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier))}.v-btn-toggle>.v-btn.v-btn--active:not(.v-btn--disabled):hover>.v-btn__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}.v-btn-toggle>.v-btn.v-btn--active:not(.v-btn--disabled):focus-visible>.v-btn__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-btn-toggle>.v-btn.v-btn--active:not(.v-btn--disabled):focus>.v-btn__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}}.v-btn-group{display:inline-flex;flex-wrap:nowrap;max-width:100%;min-width:0;overflow:hidden;vertical-align:middle;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12));border-radius:4px;background:transparent;color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-btn-group--border{border-width:thin;box-shadow:none}.v-btn-group--density-default.v-btn-group{height:48px}.v-btn-group--density-comfortable.v-btn-group{height:40px}.v-btn-group--density-compact.v-btn-group{height:36px}.v-btn-group .v-btn{border-radius:0;border-color:inherit}.v-btn-group .v-btn:not(:last-child){border-inline-end:none}.v-btn-group .v-btn:not(:first-child){border-inline-start:none}.v-btn-group .v-btn:first-child{border-start-start-radius:inherit;border-end-start-radius:inherit}.v-btn-group .v-btn:last-child{border-start-end-radius:inherit;border-end-end-radius:inherit}.v-btn-group--divided .v-btn:not(:last-child){border-inline-end-width:thin;border-inline-end-style:solid;border-inline-end-color:rgba(var(--v-border-color),var(--v-border-opacity))}.v-btn-group--tile{border-radius:0}.v-select .v-field .v-text-field__prefix,.v-select .v-field .v-text-field__suffix,.v-select .v-field .v-field__input,.v-select .v-field.v-field{cursor:pointer}.v-select .v-field .v-field__input>input{align-self:flex-start;opacity:1;flex:0 0;position:absolute;width:100%;transition:none;pointer-events:none;caret-color:transparent}.v-select .v-field--dirty .v-select__selection{margin-inline-end:2px}.v-select .v-select__selection-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-select__content{overflow:hidden;box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 10px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12));border-radius:4px}.v-select__selection{display:inline-flex;align-items:center;letter-spacing:inherit;line-height:inherit;max-width:100%}.v-select .v-select__selection:first-child{margin-inline-start:0}.v-select--selected .v-field .v-field__input>input{opacity:0}.v-select__menu-icon{margin-inline-start:4px;transition:.2s cubic-bezier(.4,0,.2,1)}.v-select--active-menu .v-select__menu-icon{opacity:var(--v-high-emphasis-opacity);transform:rotate(180deg)}.v-checkbox .v-selection-control{min-height:var(--v-input-control-height)}.v-chip{align-items:center;cursor:default;display:inline-flex;font-weight:400;max-width:100%;min-width:0;overflow:hidden;position:relative;text-decoration:none;white-space:nowrap;vertical-align:middle;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;border-radius:9999px}.v-chip.v-chip--size-x-small{--v-chip-size: .625rem;--v-chip-height: 20px;font-size:.625rem;padding:0 8px}.v-chip.v-chip--size-x-small .v-avatar{--v-avatar-height: 14px}.v-chip--pill.v-chip.v-chip--size-x-small .v-avatar{--v-avatar-height: 20px}.v-chip.v-chip--size-x-small .v-avatar--start{margin-inline-start:-5.6px;margin-inline-end:4px}.v-chip--pill.v-chip.v-chip--size-x-small .v-avatar--start{margin-inline-start:-8px}.v-chip.v-chip--size-x-small .v-avatar--end{margin-inline-start:4px;margin-inline-end:-5.6px}.v-chip--pill.v-chip.v-chip--size-x-small .v-avatar--end{margin-inline-end:-8px}.v-chip--pill.v-chip.v-chip--size-x-small .v-avatar--end+.v-chip__close{margin-inline-start:12px}.v-chip.v-chip--size-x-small .v-icon--start,.v-chip.v-chip--size-x-small .v-chip__filter{margin-inline-start:-4px;margin-inline-end:4px}.v-chip.v-chip--size-x-small .v-icon--end,.v-chip.v-chip--size-x-small .v-chip__close{margin-inline-start:4px;margin-inline-end:-4px}.v-chip.v-chip--size-x-small .v-icon--end+.v-chip__close,.v-chip.v-chip--size-x-small .v-avatar--end+.v-chip__close,.v-chip.v-chip--size-x-small .v-chip__append+.v-chip__close{margin-inline-start:8px}.v-chip.v-chip--size-small{--v-chip-size: .75rem;--v-chip-height: 26px;font-size:.75rem;padding:0 10px}.v-chip.v-chip--size-small .v-avatar{--v-avatar-height: 20px}.v-chip--pill.v-chip.v-chip--size-small .v-avatar{--v-avatar-height: 26px}.v-chip.v-chip--size-small .v-avatar--start{margin-inline-start:-7px;margin-inline-end:5px}.v-chip--pill.v-chip.v-chip--size-small .v-avatar--start{margin-inline-start:-10px}.v-chip.v-chip--size-small .v-avatar--end{margin-inline-start:5px;margin-inline-end:-7px}.v-chip--pill.v-chip.v-chip--size-small .v-avatar--end{margin-inline-end:-10px}.v-chip--pill.v-chip.v-chip--size-small .v-avatar--end+.v-chip__close{margin-inline-start:15px}.v-chip.v-chip--size-small .v-icon--start,.v-chip.v-chip--size-small .v-chip__filter{margin-inline-start:-5px;margin-inline-end:5px}.v-chip.v-chip--size-small .v-icon--end,.v-chip.v-chip--size-small .v-chip__close{margin-inline-start:5px;margin-inline-end:-5px}.v-chip.v-chip--size-small .v-icon--end+.v-chip__close,.v-chip.v-chip--size-small .v-avatar--end+.v-chip__close,.v-chip.v-chip--size-small .v-chip__append+.v-chip__close{margin-inline-start:10px}.v-chip.v-chip--size-default{--v-chip-size: .875rem;--v-chip-height: 32px;font-size:.875rem;padding:0 12px}.v-chip.v-chip--size-default .v-avatar{--v-avatar-height: 26px}.v-chip--pill.v-chip.v-chip--size-default .v-avatar{--v-avatar-height: 32px}.v-chip.v-chip--size-default .v-avatar--start{margin-inline-start:-8.4px;margin-inline-end:6px}.v-chip--pill.v-chip.v-chip--size-default .v-avatar--start{margin-inline-start:-12px}.v-chip.v-chip--size-default .v-avatar--end{margin-inline-start:6px;margin-inline-end:-8.4px}.v-chip--pill.v-chip.v-chip--size-default .v-avatar--end{margin-inline-end:-12px}.v-chip--pill.v-chip.v-chip--size-default .v-avatar--end+.v-chip__close{margin-inline-start:18px}.v-chip.v-chip--size-default .v-icon--start,.v-chip.v-chip--size-default .v-chip__filter{margin-inline-start:-6px;margin-inline-end:6px}.v-chip.v-chip--size-default .v-icon--end,.v-chip.v-chip--size-default .v-chip__close{margin-inline-start:6px;margin-inline-end:-6px}.v-chip.v-chip--size-default .v-icon--end+.v-chip__close,.v-chip.v-chip--size-default .v-avatar--end+.v-chip__close,.v-chip.v-chip--size-default .v-chip__append+.v-chip__close{margin-inline-start:12px}.v-chip.v-chip--size-large{--v-chip-size: 1rem;--v-chip-height: 38px;font-size:1rem;padding:0 14px}.v-chip.v-chip--size-large .v-avatar{--v-avatar-height: 32px}.v-chip--pill.v-chip.v-chip--size-large .v-avatar{--v-avatar-height: 38px}.v-chip.v-chip--size-large .v-avatar--start{margin-inline-start:-9.8px;margin-inline-end:7px}.v-chip--pill.v-chip.v-chip--size-large .v-avatar--start{margin-inline-start:-14px}.v-chip.v-chip--size-large .v-avatar--end{margin-inline-start:7px;margin-inline-end:-9.8px}.v-chip--pill.v-chip.v-chip--size-large .v-avatar--end{margin-inline-end:-14px}.v-chip--pill.v-chip.v-chip--size-large .v-avatar--end+.v-chip__close{margin-inline-start:21px}.v-chip.v-chip--size-large .v-icon--start,.v-chip.v-chip--size-large .v-chip__filter{margin-inline-start:-7px;margin-inline-end:7px}.v-chip.v-chip--size-large .v-icon--end,.v-chip.v-chip--size-large .v-chip__close{margin-inline-start:7px;margin-inline-end:-7px}.v-chip.v-chip--size-large .v-icon--end+.v-chip__close,.v-chip.v-chip--size-large .v-avatar--end+.v-chip__close,.v-chip.v-chip--size-large .v-chip__append+.v-chip__close{margin-inline-start:14px}.v-chip.v-chip--size-x-large{--v-chip-size: 1.125rem;--v-chip-height: 44px;font-size:1.125rem;padding:0 17px}.v-chip.v-chip--size-x-large .v-avatar{--v-avatar-height: 38px}.v-chip--pill.v-chip.v-chip--size-x-large .v-avatar{--v-avatar-height: 44px}.v-chip.v-chip--size-x-large .v-avatar--start{margin-inline-start:-11.9px;margin-inline-end:8.5px}.v-chip--pill.v-chip.v-chip--size-x-large .v-avatar--start{margin-inline-start:-17px}.v-chip.v-chip--size-x-large .v-avatar--end{margin-inline-start:8.5px;margin-inline-end:-11.9px}.v-chip--pill.v-chip.v-chip--size-x-large .v-avatar--end{margin-inline-end:-17px}.v-chip--pill.v-chip.v-chip--size-x-large .v-avatar--end+.v-chip__close{margin-inline-start:25.5px}.v-chip.v-chip--size-x-large .v-icon--start,.v-chip.v-chip--size-x-large .v-chip__filter{margin-inline-start:-8.5px;margin-inline-end:8.5px}.v-chip.v-chip--size-x-large .v-icon--end,.v-chip.v-chip--size-x-large .v-chip__close{margin-inline-start:8.5px;margin-inline-end:-8.5px}.v-chip.v-chip--size-x-large .v-icon--end+.v-chip__close,.v-chip.v-chip--size-x-large .v-avatar--end+.v-chip__close,.v-chip.v-chip--size-x-large .v-chip__append+.v-chip__close{margin-inline-start:17px}.v-chip.v-chip--density-default{height:calc(var(--v-chip-height) + 0px)}.v-chip.v-chip--density-comfortable{height:calc(var(--v-chip-height) + -8px)}.v-chip.v-chip--density-compact{height:calc(var(--v-chip-height) + -12px)}.v-chip:hover>.v-chip__overlay{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-chip:focus-visible>.v-chip__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-chip:focus>.v-chip__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}}.v-chip--active>.v-chip__overlay,.v-chip[aria-haspopup=menu][aria-expanded=true]>.v-chip__overlay{opacity:calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier))}.v-chip--active:hover>.v-chip__overlay,.v-chip[aria-haspopup=menu][aria-expanded=true]:hover>.v-chip__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}.v-chip--active:focus-visible>.v-chip__overlay,.v-chip[aria-haspopup=menu][aria-expanded=true]:focus-visible>.v-chip__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-chip--active:focus>.v-chip__overlay,.v-chip[aria-haspopup=menu][aria-expanded=true]:focus>.v-chip__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}}.v-chip--variant-plain,.v-chip--variant-outlined,.v-chip--variant-text,.v-chip--variant-tonal{background:transparent;color:inherit}.v-chip--variant-plain{opacity:.26}.v-chip--variant-plain:focus,.v-chip--variant-plain:hover{opacity:1}.v-chip--variant-plain .v-chip__overlay{display:none}.v-chip--variant-elevated,.v-chip--variant-flat{background:rgb(var(--v-theme-surface-variant));color:rgb(var(--v-theme-on-surface-variant))}.v-chip--variant-elevated{box-shadow:0 2px 1px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 1px 1px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 3px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-chip--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-chip--variant-outlined{border:thin solid currentColor}.v-chip--variant-text .v-chip__overlay{background:currentColor}.v-chip--variant-tonal .v-chip__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.v-chip--border{border-width:thin}.v-chip--link{cursor:pointer}.v-chip--filter{-webkit-user-select:none;-moz-user-select:none;user-select:none}.v-chip__content{align-items:center;display:inline-flex}.v-autocomplete__selection .v-chip__content,.v-combobox__selection .v-chip__content,.v-select__selection .v-chip__content{overflow:hidden}.v-chip__filter,.v-chip__prepend,.v-chip__append,.v-chip__close{align-items:center;display:inline-flex}.v-chip__close{cursor:pointer;flex:0 1 auto;font-size:18px;max-height:18px;max-width:18px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.v-chip__close .v-icon{font-size:inherit}.v-chip__filter{transition:.15s cubic-bezier(.4,0,.2,1)}.v-chip__overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:currentColor;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .2s ease-in-out}.v-chip--disabled{opacity:.3;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.v-chip--label{border-radius:4px}.v-chip-group{display:flex;max-width:100%;min-width:0;overflow-x:auto;padding:4px 0;flex-wrap:wrap}.v-chip-group .v-chip{margin:4px 8px 4px 0}.v-chip-group .v-chip.v-chip--selected:not(.v-chip--disabled) .v-chip__overlay{opacity:var(--v-activated-opacity)}.v-chip-group--column{flex-wrap:wrap;white-space:normal}.v-list{overflow:auto;padding:8px 0;position:relative;outline:none;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12));border-radius:0;background:rgba(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-list--border{border-width:thin;box-shadow:none}.v-list--disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.v-list--nav{padding-inline:8px}.v-list--rounded{border-radius:4px}.v-list--subheader{padding-top:0}.v-list-img{border-radius:inherit;display:flex;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:-1}.v-list-subheader{align-items:center;background:inherit;color:rgba(var(--v-theme-on-surface),var(--v-medium-emphasis-opacity));display:flex;font-size:.875rem;font-weight:400;line-height:1.375rem;padding-inline-end:16px;min-height:40px;transition:.2s min-height cubic-bezier(.4,0,.2,1)}.v-list-subheader__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-list--density-default .v-list-subheader{min-height:40px;padding-inline-start:calc(16px + var(--indent-padding))!important}.v-list--density-comfortable .v-list-subheader{min-height:36px;padding-inline-start:calc(16px + var(--indent-padding))!important}.v-list--density-compact .v-list-subheader{min-height:32px;padding-inline-start:calc(16px + var(--indent-padding))!important}.v-list-subheader--inset{--indent-padding: 56px}.v-list--nav .v-list-subheader{font-size:.75rem}.v-list-subheader--sticky{background:inherit;left:0;position:sticky;top:0;z-index:1}.v-list__overlay{background-color:currentColor;border-radius:inherit;bottom:0;left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .2s ease-in-out}.v-list-item{align-items:center;display:grid;flex:none;grid-template-areas:"prepend content append";grid-template-columns:max-content 1fr auto;outline:none;max-width:100%;padding:4px 16px;position:relative;text-decoration:none;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;border-radius:0}.v-list-item--border{border-width:thin;box-shadow:none}.v-list-item:hover>.v-list-item__overlay{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-list-item:focus-visible>.v-list-item__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-list-item:focus>.v-list-item__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}}.v-list-item--active>.v-list-item__overlay,.v-list-item[aria-haspopup=menu][aria-expanded=true]>.v-list-item__overlay{opacity:calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier))}.v-list-item--active:hover>.v-list-item__overlay,.v-list-item[aria-haspopup=menu][aria-expanded=true]:hover>.v-list-item__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}.v-list-item--active:focus-visible>.v-list-item__overlay,.v-list-item[aria-haspopup=menu][aria-expanded=true]:focus-visible>.v-list-item__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-list-item--active:focus>.v-list-item__overlay,.v-list-item[aria-haspopup=menu][aria-expanded=true]:focus>.v-list-item__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}}.v-list-item--variant-plain,.v-list-item--variant-outlined,.v-list-item--variant-text,.v-list-item--variant-tonal{background:transparent;color:inherit}.v-list-item--variant-plain{opacity:.62}.v-list-item--variant-plain:focus,.v-list-item--variant-plain:hover{opacity:1}.v-list-item--variant-plain .v-list-item__overlay{display:none}.v-list-item--variant-elevated,.v-list-item--variant-flat{background:rgba(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-list-item--variant-elevated{box-shadow:0 2px 1px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 1px 1px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 3px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-list-item--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-list-item--variant-outlined{border:thin solid currentColor}.v-list-item--variant-text .v-list-item__overlay{background:currentColor}.v-list-item--variant-tonal .v-list-item__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}@supports selector(:focus-visible){.v-list-item:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;border:2px solid currentColor;border-radius:4px;opacity:0;transition:opacity .2s ease-in-out}.v-list-item:focus-visible:after{opacity:calc(.15 * var(--v-theme-overlay-multiplier))}}.v-list-item__prepend>.v-badge .v-icon,.v-list-item__prepend>.v-icon,.v-list-item__append>.v-badge .v-icon,.v-list-item__append>.v-icon{opacity:var(--v-medium-emphasis-opacity)}.v-list-item--active .v-list-item__prepend>.v-badge .v-icon,.v-list-item--active .v-list-item__prepend>.v-icon,.v-list-item--active .v-list-item__append>.v-badge .v-icon,.v-list-item--active .v-list-item__append>.v-icon{opacity:1}.v-list-item--rounded{border-radius:4px}.v-list-item--disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.6}.v-list-item--link{cursor:pointer}.v-navigation-drawer--rail:not(.v-navigation-drawer--expand-on-hover) .v-list-item .v-avatar,.v-navigation-drawer--rail.v-navigation-drawer--expand-on-hover:not(.v-navigation-drawer--is-hovering) .v-list-item .v-avatar{--v-avatar-height: 24px}.v-list-item__prepend{align-items:center;align-self:center;display:flex;grid-area:prepend}.v-list-item__prepend>.v-badge~.v-list-item__spacer,.v-list-item__prepend>.v-icon~.v-list-item__spacer,.v-list-item__prepend>.v-tooltip~.v-list-item__spacer{width:32px}.v-list-item__prepend>.v-avatar~.v-list-item__spacer{width:16px}.v-list-item--slim .v-list-item__prepend>.v-badge~.v-list-item__spacer,.v-list-item--slim .v-list-item__prepend>.v-icon~.v-list-item__spacer,.v-list-item--slim .v-list-item__prepend>.v-tooltip~.v-list-item__spacer{width:8px}.v-list-item--slim .v-list-item__prepend>.v-avatar~.v-list-item__spacer{width:4px}.v-list-item--three-line .v-list-item__prepend{align-self:start}.v-list-item__append{align-self:center;display:flex;align-items:center;grid-area:append}.v-list-item__append .v-list-item__spacer{order:-1;transition:.15s width cubic-bezier(.4,0,.2,1)}.v-list-item__append>.v-badge~.v-list-item__spacer,.v-list-item__append>.v-icon~.v-list-item__spacer,.v-list-item__append>.v-tooltip~.v-list-item__spacer{width:32px}.v-list-item__append>.v-avatar~.v-list-item__spacer{width:16px}.v-list-item--slim .v-list-item__append>.v-badge~.v-list-item__spacer,.v-list-item--slim .v-list-item__append>.v-icon~.v-list-item__spacer,.v-list-item--slim .v-list-item__append>.v-tooltip~.v-list-item__spacer{width:8px}.v-list-item--slim .v-list-item__append>.v-avatar~.v-list-item__spacer{width:4px}.v-list-item--three-line .v-list-item__append{align-self:start}.v-list-item__content{align-self:center;grid-area:content;overflow:hidden}.v-list-item-action{align-self:center;display:flex;align-items:center;grid-area:prepend;flex:none;transition:inherit;transition-property:height,width}.v-list-item-action--start{margin-inline-end:12px}.v-list-item-action--end{margin-inline-start:12px}.v-list-item-media{margin-top:0;margin-bottom:0}.v-list-item-media--start{margin-inline-end:16px}.v-list-item-media--end{margin-inline-start:16px}.v-list-item--two-line .v-list-item-media{margin-top:-4px;margin-bottom:-4px}.v-list-item--three-line .v-list-item-media{margin-top:0;margin-bottom:0}.v-list-item-subtitle{-webkit-box-orient:vertical;display:-webkit-box;opacity:var(--v-medium-emphasis-opacity);overflow:hidden;padding:0;text-overflow:ellipsis;font-size:.875rem;font-weight:400;letter-spacing:.0178571429em;line-height:1rem;text-transform:none}.v-list-item--one-line .v-list-item-subtitle{-webkit-line-clamp:1}.v-list-item--two-line .v-list-item-subtitle{-webkit-line-clamp:2}.v-list-item--three-line .v-list-item-subtitle{-webkit-line-clamp:3}.v-list-item--nav .v-list-item-subtitle{font-size:.75rem;font-weight:400;letter-spacing:.0178571429em;line-height:1rem}.v-list-item-title{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:normal;overflow:hidden;padding:0;white-space:nowrap;text-overflow:ellipsis;word-break:normal;word-wrap:break-word;font-size:1rem;font-weight:400;letter-spacing:.009375em;line-height:1.5rem;text-transform:none}.v-list-item--nav .v-list-item-title{font-size:.8125rem;font-weight:500;letter-spacing:normal;line-height:1rem}.v-list-item--density-default{min-height:40px}.v-list-item--density-default.v-list-item--one-line{min-height:48px;padding-top:4px;padding-bottom:4px}.v-list-item--density-default.v-list-item--two-line{min-height:64px;padding-top:12px;padding-bottom:12px}.v-list-item--density-default.v-list-item--three-line{min-height:88px;padding-top:16px;padding-bottom:16px}.v-list-item--density-default.v-list-item--three-line .v-list-item__prepend,.v-list-item--density-default.v-list-item--three-line .v-list-item__append{padding-top:8px}.v-list-item--density-default:not(.v-list-item--nav).v-list-item--one-line{padding-inline:16px}.v-list-item--density-default:not(.v-list-item--nav).v-list-item--two-line{padding-inline:16px}.v-list-item--density-default:not(.v-list-item--nav).v-list-item--three-line{padding-inline:16px}.v-list-item--density-comfortable{min-height:36px}.v-list-item--density-comfortable.v-list-item--one-line{min-height:44px}.v-list-item--density-comfortable.v-list-item--two-line{min-height:60px;padding-top:8px;padding-bottom:8px}.v-list-item--density-comfortable.v-list-item--three-line{min-height:84px;padding-top:12px;padding-bottom:12px}.v-list-item--density-comfortable.v-list-item--three-line .v-list-item__prepend,.v-list-item--density-comfortable.v-list-item--three-line .v-list-item__append{padding-top:6px}.v-list-item--density-comfortable:not(.v-list-item--nav).v-list-item--one-line{padding-inline:16px}.v-list-item--density-comfortable:not(.v-list-item--nav).v-list-item--two-line{padding-inline:16px}.v-list-item--density-comfortable:not(.v-list-item--nav).v-list-item--three-line{padding-inline:16px}.v-list-item--density-compact{min-height:32px}.v-list-item--density-compact.v-list-item--one-line{min-height:40px}.v-list-item--density-compact.v-list-item--two-line{min-height:56px;padding-top:4px;padding-bottom:4px}.v-list-item--density-compact.v-list-item--three-line{min-height:80px;padding-top:8px;padding-bottom:8px}.v-list-item--density-compact.v-list-item--three-line .v-list-item__prepend,.v-list-item--density-compact.v-list-item--three-line .v-list-item__append{padding-top:4px}.v-list-item--density-compact:not(.v-list-item--nav).v-list-item--one-line{padding-inline:16px}.v-list-item--density-compact:not(.v-list-item--nav).v-list-item--two-line{padding-inline:16px}.v-list-item--density-compact:not(.v-list-item--nav).v-list-item--three-line{padding-inline:16px}.v-list-item--nav{padding-inline:8px}.v-list .v-list-item--nav:not(:only-child){margin-bottom:4px}.v-list-item__underlay{position:absolute}.v-list-item__overlay{background-color:currentColor;border-radius:inherit;bottom:0;left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .2s ease-in-out}.v-list-item--active.v-list-item--variant-elevated .v-list-item__overlay{--v-theme-overlay-multiplier: 0}.v-list{--indent-padding: 0px}.v-list--nav{--indent-padding: -8px}.v-list-group{--list-indent-size: 16px;--parent-padding: var(--indent-padding);--prepend-width: 40px}.v-list-group--fluid{--list-indent-size: 0px}.v-list-group--prepend{--parent-padding: calc(var(--indent-padding) + var(--prepend-width))}.v-list-group--fluid.v-list-group--prepend{--parent-padding: var(--indent-padding)}.v-list-group__items{--indent-padding: calc(var(--parent-padding) + var(--list-indent-size))}.v-list-group__items .v-list-item{padding-inline-start:calc(16px + var(--indent-padding))!important}.v-list-group__header.v-list-item--active:not(:focus-visible) .v-list-item__overlay{opacity:0}.v-list-group__header.v-list-item--active:hover .v-list-item__overlay{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-menu>.v-overlay__content{display:flex;flex-direction:column;border-radius:4px}.v-menu>.v-overlay__content>.v-card,.v-menu>.v-overlay__content>.v-sheet,.v-menu>.v-overlay__content>.v-list{background:rgb(var(--v-theme-surface));border-radius:inherit;overflow:auto;height:100%;box-shadow:0 5px 5px -3px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 8px 10px 1px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 3px 14px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-overlay-container{contain:layout;left:0;pointer-events:none;position:absolute;top:0;display:contents}.v-overlay-scroll-blocked{padding-inline-end:var(--v-scrollbar-offset)}.v-overlay-scroll-blocked:not(html){overflow-y:hidden!important}html.v-overlay-scroll-blocked{position:fixed;top:var(--v-body-scroll-y);left:var(--v-body-scroll-x);width:100%;height:100%}.v-overlay{border-radius:inherit;display:flex;left:0;pointer-events:none;position:fixed;top:0;bottom:0;right:0}.v-overlay__content{outline:none;position:absolute;pointer-events:auto;contain:layout}.v-overlay__scrim{pointer-events:auto;background:rgb(var(--v-theme-on-surface));border-radius:inherit;bottom:0;left:0;opacity:.32;position:fixed;right:0;top:0}.v-overlay--absolute,.v-overlay--contained .v-overlay__scrim{position:absolute}.v-overlay--scroll-blocked{padding-inline-end:var(--v-scrollbar-offset)}.v-text-field input{color:inherit;opacity:0;flex:1;transition:.15s opacity cubic-bezier(.4,0,.2,1);min-width:0}.v-text-field input:focus,.v-text-field input:active{outline:none}.v-text-field input:invalid{box-shadow:none}.v-text-field .v-field{cursor:text}.v-text-field--prefixed.v-text-field .v-field__input{--v-field-padding-start: 6px}.v-text-field--suffixed.v-text-field .v-field__input{--v-field-padding-end: 0}.v-text-field .v-input__details{padding-inline:16px}.v-input--plain-underlined.v-text-field .v-input__details{padding-inline:0}.v-text-field .v-field--no-label input,.v-text-field .v-field--active input{opacity:1}.v-text-field .v-field--single-line input{transition:none}.v-text-field__prefix,.v-text-field__suffix{align-items:center;color:rgba(var(--v-theme-on-surface),var(--v-medium-emphasis-opacity));cursor:default;display:flex;opacity:0;transition:inherit;white-space:nowrap;min-height:max(var(--v-input-control-height, 56px),1.5rem + var(--v-field-input-padding-top) + var(--v-field-input-padding-bottom));padding-top:calc(var(--v-field-padding-top, 4px) + var(--v-input-padding-top, 0));padding-bottom:var(--v-field-padding-bottom, 6px)}.v-field--active .v-text-field__prefix,.v-field--active .v-text-field__suffix{opacity:1}.v-field--disabled .v-text-field__prefix,.v-field--disabled .v-text-field__suffix{color:rgba(var(--v-theme-on-surface),var(--v-disabled-opacity))}.v-text-field__prefix{padding-inline-start:var(--v-field-padding-start)}.v-text-field__suffix{padding-inline-end:var(--v-field-padding-end)}.v-counter{color:rgba(var(--v-theme-on-surface),var(--v-medium-emphasis-opacity));flex:0 1 auto;font-size:12px;transition-duration:.15s}.v-field{display:grid;grid-template-areas:"prepend-inner field clear append-inner";grid-template-columns:min-content minmax(0,1fr) min-content min-content;font-size:16px;letter-spacing:.009375em;max-width:100%;border-radius:4px;contain:layout;flex:1 0;grid-area:control;position:relative;--v-field-padding-start: 16px;--v-field-padding-end: 16px;--v-field-padding-top: 8px;--v-field-padding-bottom: 4px;--v-field-input-padding-top: calc(var(--v-field-padding-top, 8px) + var(--v-input-padding-top, 0));--v-field-input-padding-bottom: var(--v-field-padding-bottom, 4px)}.v-field--disabled{opacity:var(--v-disabled-opacity);pointer-events:none}.v-field .v-chip{--v-chip-height: 24px}.v-field--prepended{padding-inline-start:12px}.v-field--appended{padding-inline-end:12px}.v-field--variant-solo,.v-field--variant-solo-filled,.v-field--variant-solo-inverted{background:rgb(var(--v-theme-surface));border-color:transparent;color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity));box-shadow:0 3px 1px -2px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 2px 2px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-field--variant-solo-inverted.v-field--focused{color:rgb(var(--v-theme-on-surface-variant))}.v-field--variant-filled{border-bottom-left-radius:0;border-bottom-right-radius:0}.v-input--density-default .v-field--variant-solo,.v-input--density-default .v-field--variant-solo-inverted,.v-input--density-default .v-field--variant-solo-filled,.v-input--density-default .v-field--variant-filled{--v-input-control-height: 56px;--v-field-padding-bottom: 4px}.v-input--density-comfortable .v-field--variant-solo,.v-input--density-comfortable .v-field--variant-solo-inverted,.v-input--density-comfortable .v-field--variant-solo-filled,.v-input--density-comfortable .v-field--variant-filled{--v-input-control-height: 48px;--v-field-padding-bottom: 0px}.v-input--density-compact .v-field--variant-solo,.v-input--density-compact .v-field--variant-solo-inverted,.v-input--density-compact .v-field--variant-solo-filled,.v-input--density-compact .v-field--variant-filled{--v-input-control-height: 40px;--v-field-padding-bottom: 0px}.v-field--variant-outlined,.v-field--single-line,.v-field--no-label{--v-field-padding-top: 0px}.v-input--density-default .v-field--variant-outlined,.v-input--density-default .v-field--single-line,.v-input--density-default .v-field--no-label{--v-field-padding-bottom: 16px}.v-input--density-comfortable .v-field--variant-outlined,.v-input--density-comfortable .v-field--single-line,.v-input--density-comfortable .v-field--no-label{--v-field-padding-bottom: 12px}.v-input--density-compact .v-field--variant-outlined,.v-input--density-compact .v-field--single-line,.v-input--density-compact .v-field--no-label{--v-field-padding-bottom: 8px}.v-field--variant-plain,.v-field--variant-underlined{border-radius:0;padding:0}.v-field--variant-plain.v-field,.v-field--variant-underlined.v-field{--v-field-padding-start: 0px;--v-field-padding-end: 0px}.v-input--density-default .v-field--variant-plain,.v-input--density-default .v-field--variant-underlined{--v-input-control-height: 48px;--v-field-padding-top: 4px;--v-field-padding-bottom: 4px}.v-input--density-comfortable .v-field--variant-plain,.v-input--density-comfortable .v-field--variant-underlined{--v-input-control-height: 40px;--v-field-padding-top: 2px;--v-field-padding-bottom: 0px}.v-input--density-compact .v-field--variant-plain,.v-input--density-compact .v-field--variant-underlined{--v-input-control-height: 32px;--v-field-padding-top: 0px;--v-field-padding-bottom: 0px}.v-field--flat{box-shadow:none}.v-field--rounded{border-radius:9999px}.v-field.v-field--prepended{--v-field-padding-start: 6px}.v-field.v-field--appended{--v-field-padding-end: 6px}.v-field__input{align-items:center;color:inherit;-moz-column-gap:2px;column-gap:2px;display:flex;flex-wrap:wrap;letter-spacing:.009375em;opacity:var(--v-high-emphasis-opacity);min-height:max(var(--v-input-control-height, 56px),1.5rem + var(--v-field-input-padding-top) + var(--v-field-input-padding-bottom));min-width:0;padding-inline:var(--v-field-padding-start) var(--v-field-padding-end);padding-top:var(--v-field-input-padding-top);padding-bottom:var(--v-field-input-padding-bottom);position:relative;width:100%}.v-input--density-default .v-field__input{row-gap:8px}.v-input--density-comfortable .v-field__input{row-gap:6px}.v-input--density-compact .v-field__input{row-gap:4px}.v-field__input input{letter-spacing:inherit}.v-field__input input::-moz-placeholder,input.v-field__input::-moz-placeholder,textarea.v-field__input::-moz-placeholder{color:currentColor;opacity:var(--v-disabled-opacity)}.v-field__input input::placeholder,input.v-field__input::placeholder,textarea.v-field__input::placeholder{color:currentColor;opacity:var(--v-disabled-opacity)}.v-field__input:focus,.v-field__input:active{outline:none}.v-field__input:invalid{box-shadow:none}.v-field__field{flex:1 0;grid-area:field;position:relative;align-items:flex-start;display:flex}.v-field__prepend-inner{grid-area:prepend-inner;padding-inline-end:var(--v-field-padding-after)}.v-field__clearable{grid-area:clear}.v-field__append-inner{grid-area:append-inner;padding-inline-start:var(--v-field-padding-after)}.v-field__append-inner,.v-field__clearable,.v-field__prepend-inner{display:flex;align-items:flex-start;padding-top:var(--v-input-padding-top, 8px)}.v-field--center-affix .v-field__append-inner,.v-field--center-affix .v-field__clearable,.v-field--center-affix .v-field__prepend-inner{align-items:center;padding-top:0}.v-field.v-field--variant-underlined .v-field__append-inner,.v-field.v-field--variant-underlined .v-field__clearable,.v-field.v-field--variant-underlined .v-field__prepend-inner,.v-field.v-field--variant-plain .v-field__append-inner,.v-field.v-field--variant-plain .v-field__clearable,.v-field.v-field--variant-plain .v-field__prepend-inner{align-items:flex-start;padding-top:calc(var(--v-field-padding-top, 8px) + var(--v-input-padding-top, 0));padding-bottom:var(--v-field-padding-bottom, 4px)}.v-field--focused .v-field__prepend-inner,.v-field--focused .v-field__append-inner{opacity:1}.v-field__prepend-inner>.v-icon,.v-field__append-inner>.v-icon,.v-field__clearable>.v-icon{opacity:var(--v-medium-emphasis-opacity)}.v-field--disabled .v-field__prepend-inner>.v-icon,.v-field--error .v-field__prepend-inner>.v-icon,.v-field--disabled .v-field__append-inner>.v-icon,.v-field--error .v-field__append-inner>.v-icon,.v-field--disabled .v-field__clearable>.v-icon,.v-field--error .v-field__clearable>.v-icon{opacity:1}.v-field--error:not(.v-field--disabled) .v-field__prepend-inner>.v-icon,.v-field--error:not(.v-field--disabled) .v-field__append-inner>.v-icon,.v-field--error:not(.v-field--disabled) .v-field__clearable>.v-icon{color:rgb(var(--v-theme-error))}.v-field__clearable{cursor:pointer;opacity:0;overflow:hidden;margin-inline:4px;transition:.15s cubic-bezier(.4,0,.2,1);transition-property:opacity,transform,width}.v-field--focused .v-field__clearable,.v-field--persistent-clear .v-field__clearable{opacity:1}@media (hover: hover){.v-field:hover .v-field__clearable{opacity:1}}@media (hover: none){.v-field__clearable{opacity:1}}.v-label.v-field-label{contain:layout paint;display:block;margin-inline-start:var(--v-field-padding-start);margin-inline-end:var(--v-field-padding-end);max-width:calc(100% - var(--v-field-padding-start) - var(--v-field-padding-end));pointer-events:none;position:absolute;top:var(--v-input-padding-top);transform-origin:left center;transition:.15s cubic-bezier(.4,0,.2,1);transition-property:opacity,transform;z-index:1}.v-field--variant-underlined .v-label.v-field-label,.v-field--variant-plain .v-label.v-field-label{top:calc(var(--v-input-padding-top) + var(--v-field-padding-top))}.v-field--center-affix .v-label.v-field-label{top:50%;transform:translateY(-50%)}.v-field--active .v-label.v-field-label{visibility:hidden}.v-field--focused .v-label.v-field-label,.v-field--error .v-label.v-field-label{opacity:1}.v-field--error:not(.v-field--disabled) .v-label.v-field-label{color:rgb(var(--v-theme-error))}.v-label.v-field-label--floating{--v-field-label-scale: .75em;font-size:var(--v-field-label-scale);visibility:hidden;max-width:100%}.v-field--center-affix .v-label.v-field-label--floating{transform:none}.v-field.v-field--active .v-label.v-field-label--floating{visibility:unset}.v-input--density-default .v-field--variant-solo .v-label.v-field-label--floating,.v-input--density-default .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-input--density-default .v-field--variant-filled .v-label.v-field-label--floating,.v-input--density-default .v-field--variant-solo-filled .v-label.v-field-label--floating{top:7px}.v-input--density-comfortable .v-field--variant-solo .v-label.v-field-label--floating,.v-input--density-comfortable .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-input--density-comfortable .v-field--variant-filled .v-label.v-field-label--floating,.v-input--density-comfortable .v-field--variant-solo-filled .v-label.v-field-label--floating{top:5px}.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating{top:3px}.v-field--variant-plain .v-label.v-field-label--floating,.v-field--variant-underlined .v-label.v-field-label--floating{transform:translateY(-16px);margin:0;top:var(--v-input-padding-top)}.v-field--variant-outlined .v-label.v-field-label--floating{transform:translateY(-50%);transform-origin:center;position:static;margin:0 4px}.v-field__outline{--v-field-border-width: 1px;--v-field-border-opacity: .38;align-items:stretch;contain:layout;display:flex;height:100%;left:0;pointer-events:none;position:absolute;right:0;width:100%}@media (hover: hover){.v-field:hover .v-field__outline{--v-field-border-opacity: var(--v-high-emphasis-opacity)}}.v-field--error:not(.v-field--disabled) .v-field__outline{color:rgb(var(--v-theme-error))}.v-field.v-field--focused .v-field__outline,.v-input.v-input--error .v-field__outline{--v-field-border-opacity: 1}.v-field--variant-outlined.v-field--focused .v-field__outline{--v-field-border-width: 2px}.v-field--variant-filled .v-field__outline:before,.v-field--variant-underlined .v-field__outline:before{border-color:currentColor;border-style:solid;border-width:0 0 var(--v-field-border-width);opacity:var(--v-field-border-opacity);transition:opacity .25s cubic-bezier(.4,0,.2,1);content:"";position:absolute;top:0;left:0;width:100%;height:100%}.v-field--variant-filled .v-field__outline:after,.v-field--variant-underlined .v-field__outline:after{border-color:currentColor;border-style:solid;border-width:0 0 2px;transform:scaleX(0);transition:transform .15s cubic-bezier(.4,0,.2,1);content:"";position:absolute;top:0;left:0;width:100%;height:100%}.v-field--focused.v-field--variant-filled .v-field__outline:after,.v-field--focused.v-field--variant-underlined .v-field__outline:after{transform:scaleX(1)}.v-field--variant-outlined .v-field__outline{border-radius:inherit}.v-field--variant-outlined .v-field__outline__start,.v-field--variant-outlined .v-field__outline__notch:before,.v-field--variant-outlined .v-field__outline__notch:after,.v-field--variant-outlined .v-field__outline__end{border:0 solid currentColor;opacity:var(--v-field-border-opacity);transition:opacity .25s cubic-bezier(.4,0,.2,1)}.v-field--variant-outlined .v-field__outline__start{flex:0 0 12px;border-top-width:var(--v-field-border-width);border-bottom-width:var(--v-field-border-width);border-inline-start-width:var(--v-field-border-width);border-start-start-radius:inherit;border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:inherit}.v-field--rounded.v-field--variant-outlined .v-field__outline__start,[class^=rounded-].v-field--variant-outlined .v-field__outline__start,[class*=" rounded-"].v-field--variant-outlined .v-field__outline__start{flex-basis:calc(var(--v-input-control-height) / 2 + 2px)}.v-field--variant-outlined .v-field__outline__notch{flex:none;position:relative;max-width:calc(100% - 12px)}.v-field--variant-outlined .v-field__outline__notch:before,.v-field--variant-outlined .v-field__outline__notch:after{opacity:var(--v-field-border-opacity);transition:opacity .25s cubic-bezier(.4,0,.2,1);content:"";position:absolute;top:0;left:0;width:100%;height:100%}.v-field--variant-outlined .v-field__outline__notch:before{border-width:var(--v-field-border-width) 0 0}.v-field--variant-outlined .v-field__outline__notch:after{bottom:0;border-width:0 0 var(--v-field-border-width)}.v-field--active.v-field--variant-outlined .v-field__outline__notch:before{opacity:0}.v-field--variant-outlined .v-field__outline__end{flex:1;border-top-width:var(--v-field-border-width);border-bottom-width:var(--v-field-border-width);border-inline-end-width:var(--v-field-border-width);border-start-start-radius:0;border-start-end-radius:inherit;border-end-end-radius:inherit;border-end-start-radius:0}.v-field__loader{top:calc(100% - 2px);left:0;position:absolute;right:0;width:100%;border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;overflow:hidden}.v-field--variant-outlined .v-field__loader{top:calc(100% - 3px)}.v-field__overlay{border-radius:inherit;pointer-events:none;position:absolute;top:0;left:0;width:100%;height:100%}.v-field--variant-filled .v-field__overlay{background-color:currentColor;opacity:.04;transition:opacity .25s cubic-bezier(.4,0,.2,1)}.v-field--variant-filled.v-field--has-background .v-field__overlay{opacity:0}@media (hover: hover){.v-field--variant-filled:hover .v-field__overlay{opacity:calc((.04 + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}}.v-field--variant-filled.v-field--focused .v-field__overlay{opacity:calc((.04 + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}.v-field--variant-solo-filled .v-field__overlay{background-color:currentColor;opacity:.04;transition:opacity .25s cubic-bezier(.4,0,.2,1)}@media (hover: hover){.v-field--variant-solo-filled:hover .v-field__overlay{opacity:calc((.04 + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}}.v-field--variant-solo-filled.v-field--focused .v-field__overlay{opacity:calc((.04 + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}.v-field--variant-solo-inverted .v-field__overlay{transition:opacity .25s cubic-bezier(.4,0,.2,1)}.v-field--variant-solo-inverted.v-field--has-background .v-field__overlay{opacity:0}@media (hover: hover){.v-field--variant-solo-inverted:hover .v-field__overlay{opacity:calc((.04 + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}}.v-field--variant-solo-inverted.v-field--focused .v-field__overlay{background-color:rgb(var(--v-theme-surface-variant));opacity:1}.v-field--reverse .v-field__field,.v-field--reverse .v-field__input{flex-direction:row-reverse}.v-field--reverse .v-field__input,.v-field--reverse input{text-align:end}.v-input--disabled .v-field--variant-filled .v-field__outline:before,.v-input--disabled .v-field--variant-underlined .v-field__outline:before{-o-border-image:repeating-linear-gradient(to right,rgba(var(--v-theme-on-surface),var(--v-disabled-opacity)) 0px,rgba(var(--v-theme-on-surface),var(--v-disabled-opacity)) 2px,transparent 2px,transparent 4px) 1 repeat;border-image:repeating-linear-gradient(to right,rgba(var(--v-theme-on-surface),var(--v-disabled-opacity)) 0px,rgba(var(--v-theme-on-surface),var(--v-disabled-opacity)) 2px,transparent 2px,transparent 4px) 1 repeat}.v-field--loading .v-field__outline:after,.v-field--loading .v-field__outline:before{opacity:0}.v-virtual-scroll{display:block;flex:1 1 auto;max-width:100%;overflow:auto;position:relative}.v-virtual-scroll__container{display:block}.v-table{background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity));font-size:.875rem;transition-duration:.28s;transition-property:box-shadow,opacity,background,height;transition-timing-function:cubic-bezier(.4,0,.2,1)}.v-table .v-table-divider{border-right:thin solid rgba(var(--v-border-color),var(--v-border-opacity))}.v-table .v-table__wrapper>table>thead>tr>th{border-bottom:thin solid rgba(var(--v-border-color),var(--v-border-opacity))}.v-table .v-table__wrapper>table>tbody>tr:not(:last-child)>td,.v-table .v-table__wrapper>table>tbody>tr:not(:last-child)>th{border-bottom:thin solid rgba(var(--v-border-color),var(--v-border-opacity))}.v-table .v-table__wrapper>table>tfoot>tr>td,.v-table .v-table__wrapper>table>tfoot>tr>th{border-top:thin solid rgba(var(--v-border-color),var(--v-border-opacity))}.v-table.v-table--hover>.v-table__wrapper>table>tbody>tr>td{position:relative}.v-table.v-table--hover>.v-table__wrapper>table>tbody>tr:hover>td:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(var(--v-border-color),var(--v-hover-opacity));pointer-events:none}.v-table.v-table--fixed-header>.v-table__wrapper>table>thead>tr>th{background:rgb(var(--v-theme-surface));box-shadow:inset 0 -1px 0 rgba(var(--v-border-color),var(--v-border-opacity));z-index:1}.v-table.v-table--fixed-footer>tfoot>tr>th,.v-table.v-table--fixed-footer>tfoot>tr>td{background:rgb(var(--v-theme-surface));box-shadow:inset 0 1px 0 rgba(var(--v-border-color),var(--v-border-opacity))}.v-table{--v-table-header-height: 56px;border-radius:inherit;line-height:1.5;max-width:100%;display:flex;flex-direction:column}.v-table>.v-table__wrapper>table{width:100%;border-spacing:0}.v-table>.v-table__wrapper>table>tbody>tr>td,.v-table>.v-table__wrapper>table>tbody>tr>th,.v-table>.v-table__wrapper>table>thead>tr>td,.v-table>.v-table__wrapper>table>thead>tr>th,.v-table>.v-table__wrapper>table>tfoot>tr>td,.v-table>.v-table__wrapper>table>tfoot>tr>th{padding:0 16px;transition-duration:.28s;transition-property:box-shadow,opacity,background,height;transition-timing-function:cubic-bezier(.4,0,.2,1)}.v-table>.v-table__wrapper>table>tbody>tr>th,.v-table>.v-table__wrapper>table>thead>tr>th,.v-table>.v-table__wrapper>table>tfoot>tr>th{font-weight:500;-webkit-user-select:none;-moz-user-select:none;user-select:none;text-align:start}.v-table--density-default>.v-table__wrapper>table>tbody>tr>th,.v-table--density-default>.v-table__wrapper>table>thead>tr>th,.v-table--density-default>.v-table__wrapper>table>tfoot>tr>th{height:calc(var(--v-table-header-height) + 0px)}.v-table--density-default>.v-table__wrapper>table>tbody>tr>td,.v-table--density-default>.v-table__wrapper>table>thead>tr>td,.v-table--density-default>.v-table__wrapper>table>tfoot>tr>td{height:calc(var(--v-table-row-height, 52px) + 0px)}.v-table--density-comfortable>.v-table__wrapper>table>tbody>tr>th,.v-table--density-comfortable>.v-table__wrapper>table>thead>tr>th,.v-table--density-comfortable>.v-table__wrapper>table>tfoot>tr>th{height:calc(var(--v-table-header-height) - 8px)}.v-table--density-comfortable>.v-table__wrapper>table>tbody>tr>td,.v-table--density-comfortable>.v-table__wrapper>table>thead>tr>td,.v-table--density-comfortable>.v-table__wrapper>table>tfoot>tr>td{height:calc(var(--v-table-row-height, 52px) - 8px)}.v-table--density-compact>.v-table__wrapper>table>tbody>tr>th,.v-table--density-compact>.v-table__wrapper>table>thead>tr>th,.v-table--density-compact>.v-table__wrapper>table>tfoot>tr>th{height:calc(var(--v-table-header-height) - 16px)}.v-table--density-compact>.v-table__wrapper>table>tbody>tr>td,.v-table--density-compact>.v-table__wrapper>table>thead>tr>td,.v-table--density-compact>.v-table__wrapper>table>tfoot>tr>td{height:calc(var(--v-table-row-height, 52px) - 16px)}.v-table__wrapper{border-radius:inherit;overflow:auto;flex:1 1 auto}.v-table--has-top>.v-table__wrapper>table>tbody>tr:first-child:hover>td:first-child{border-top-left-radius:0}.v-table--has-top>.v-table__wrapper>table>tbody>tr:first-child:hover>td:last-child{border-top-right-radius:0}.v-table--has-bottom>.v-table__wrapper>table>tbody>tr:last-child:hover>td:first-child{border-bottom-left-radius:0}.v-table--has-bottom>.v-table__wrapper>table>tbody>tr:last-child:hover>td:last-child{border-bottom-right-radius:0}.v-table--fixed-height>.v-table__wrapper{overflow-y:auto}.v-table--fixed-header>.v-table__wrapper>table>thead{position:sticky;top:0;z-index:2}.v-table--fixed-header>.v-table__wrapper>table>thead>tr>th{border-bottom:0px!important}.v-table--fixed-footer>.v-table__wrapper>table>tfoot>tr{position:sticky;bottom:0;z-index:1}.v-table--fixed-footer>.v-table__wrapper>table>tfoot>tr>td,.v-table--fixed-footer>.v-table__wrapper>table>tfoot>tr>th{border-top:0px!important}.v-slider .v-slider__container input{cursor:default;padding:0;width:100%;display:none}.v-slider>.v-input__append,.v-slider>.v-input__prepend{padding:0}.v-slider__container{position:relative;min-height:inherit;width:100%;height:100%;display:flex;justify-content:center;align-items:center;cursor:pointer}.v-input--disabled .v-slider__container{opacity:var(--v-disabled-opacity)}.v-input--error:not(.v-input--disabled) .v-slider__container{color:rgb(var(--v-theme-error))}.v-slider.v-input--horizontal{align-items:center;margin-inline:8px 8px}.v-slider.v-input--horizontal>.v-input__control{min-height:32px;display:flex;align-items:center}.v-slider.v-input--vertical{justify-content:center;margin-top:12px;margin-bottom:12px}.v-slider.v-input--vertical>.v-input__control{min-height:300px}.v-slider.v-input--disabled{pointer-events:none}.v-slider--has-labels>.v-input__control{margin-bottom:4px}.v-slider__label{margin-inline-end:12px}.v-slider-thumb{touch-action:none;color:rgb(var(--v-theme-surface-variant))}.v-input--error:not(.v-input--disabled) .v-slider-thumb{color:inherit}.v-slider-thumb__label{background:rgba(var(--v-theme-surface-variant),.7);color:rgb(var(--v-theme-on-surface-variant))}.v-slider-thumb__label:before{color:rgba(var(--v-theme-surface-variant),.7)}.v-slider-thumb{outline:none;position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-slider-thumb__surface{cursor:pointer;width:var(--v-slider-thumb-size);height:var(--v-slider-thumb-size);border-radius:50%;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:currentColor}.v-slider-thumb__surface:before{transition:.3s cubic-bezier(.4,0,.2,1);content:"";color:inherit;top:0;left:0;width:100%;height:100%;border-radius:50%;background:currentColor;position:absolute;pointer-events:none;opacity:0}.v-slider-thumb__surface:after{content:"";width:42px;height:42px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.v-slider-thumb__label-container{position:absolute;transition:.2s cubic-bezier(.4,0,1,1)}.v-slider-thumb__label{display:flex;align-items:center;justify-content:center;font-size:.75rem;min-width:35px;height:25px;border-radius:4px;padding:6px;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:.2s cubic-bezier(.4,0,1,1)}.v-slider-thumb__label:before{content:"";width:0;height:0;position:absolute}.v-slider-thumb__ripple{position:absolute;left:calc(var(--v-slider-thumb-size) / -2);top:calc(var(--v-slider-thumb-size) / -2);width:calc(var(--v-slider-thumb-size) * 2);height:calc(var(--v-slider-thumb-size) * 2);background:inherit}.v-slider.v-input--horizontal .v-slider-thumb{top:50%;transform:translateY(-50%);inset-inline-start:calc(var(--v-slider-thumb-position) - var(--v-slider-thumb-size) / 2)}.v-slider.v-input--horizontal .v-slider-thumb__label-container{left:calc(var(--v-slider-thumb-size) / 2);top:0}.v-slider.v-input--horizontal .v-slider-thumb__label{bottom:calc(var(--v-slider-thumb-size) / 2)}.v-locale--is-ltr.v-slider.v-input--horizontal .v-slider-thumb__label,.v-locale--is-ltr .v-slider.v-input--horizontal .v-slider-thumb__label{transform:translate(-50%)}.v-locale--is-rtl.v-slider.v-input--horizontal .v-slider-thumb__label,.v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-thumb__label{transform:translate(50%)}.v-slider.v-input--horizontal .v-slider-thumb__label:before{border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid currentColor;bottom:-6px}.v-slider.v-input--vertical .v-slider-thumb{top:calc(var(--v-slider-thumb-position) - var(--v-slider-thumb-size) / 2)}.v-slider.v-input--vertical .v-slider-thumb__label-container{top:calc(var(--v-slider-thumb-size) / 2);right:0}.v-slider.v-input--vertical .v-slider-thumb__label{top:-12.5px;left:calc(var(--v-slider-thumb-size) / 2)}.v-slider.v-input--vertical .v-slider-thumb__label:before{border-right:6px solid currentColor;border-top:6px solid transparent;border-bottom:6px solid transparent;left:-6px}.v-slider-thumb--focused .v-slider-thumb__surface:before{transform:scale(2);opacity:var(--v-focus-opacity)}.v-slider-thumb--pressed{transition:none}.v-slider-thumb--pressed .v-slider-thumb__surface:before{opacity:var(--v-pressed-opacity)}@media (hover: hover){.v-slider-thumb:hover .v-slider-thumb__surface:before{transform:scale(2)}.v-slider-thumb:hover:not(.v-slider-thumb--focused) .v-slider-thumb__surface:before{opacity:var(--v-hover-opacity)}}.v-slider-track__background,.v-slider-track__fill,.v-slider-track__tick{background-color:rgb(var(--v-theme-surface-variant))}.v-slider-track__tick--filled{background-color:rgb(var(--v-theme-on-surface-variant))}.v-slider-track{border-radius:6px}.v-slider-track__background,.v-slider-track__fill{position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1);border-radius:inherit}.v-slider--pressed .v-slider-track__background,.v-slider--pressed .v-slider-track__fill{transition:none}.v-input--error:not(.v-input--disabled) .v-slider-track__background,.v-input--error:not(.v-input--disabled) .v-slider-track__fill{background-color:currentColor}.v-slider-track__ticks{height:100%;width:100%;position:relative}.v-slider-track__tick{position:absolute;opacity:0;transition:.2s opacity cubic-bezier(.4,0,.2,1);border-radius:2px;width:var(--v-slider-tick-size);height:var(--v-slider-tick-size);transform:translate(calc(var(--v-slider-tick-size) / -2),calc(var(--v-slider-tick-size) / -2))}.v-locale--is-ltr.v-slider-track__tick--first .v-slider-track__tick-label,.v-locale--is-ltr .v-slider-track__tick--first .v-slider-track__tick-label{transform:none}.v-locale--is-rtl.v-slider-track__tick--first .v-slider-track__tick-label,.v-locale--is-rtl .v-slider-track__tick--first .v-slider-track__tick-label{transform:translate(100%)}.v-locale--is-ltr.v-slider-track__tick--last .v-slider-track__tick-label,.v-locale--is-ltr .v-slider-track__tick--last .v-slider-track__tick-label{transform:translate(-100%)}.v-locale--is-rtl.v-slider-track__tick--last .v-slider-track__tick-label,.v-locale--is-rtl .v-slider-track__tick--last .v-slider-track__tick-label{transform:none}.v-slider-track__tick-label{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.v-slider.v-input--horizontal .v-slider-track{display:flex;align-items:center;width:100%;height:calc(var(--v-slider-track-size) + 2px);touch-action:pan-y}.v-slider.v-input--horizontal .v-slider-track__background{height:var(--v-slider-track-size)}.v-slider.v-input--horizontal .v-slider-track__fill{height:inherit}.v-slider.v-input--horizontal .v-slider-track__tick{margin-top:calc(calc(var(--v-slider-track-size) + 2px) / 2)}.v-locale--is-rtl.v-slider.v-input--horizontal .v-slider-track__tick,.v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-track__tick{transform:translate(calc(var(--v-slider-tick-size) / 2),calc(var(--v-slider-tick-size) / -2))}.v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label{margin-top:calc(var(--v-slider-track-size) / 2 + 8px)}.v-locale--is-ltr.v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label,.v-locale--is-ltr .v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label{transform:translate(-50%)}.v-locale--is-rtl.v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label,.v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label{transform:translate(50%)}.v-slider.v-input--horizontal .v-slider-track__tick--first{margin-inline-start:calc(var(--v-slider-tick-size) + 1px)}.v-locale--is-ltr.v-slider.v-input--horizontal .v-slider-track__tick--first .v-slider-track__tick-label,.v-locale--is-ltr .v-slider.v-input--horizontal .v-slider-track__tick--first .v-slider-track__tick-label,.v-locale--is-rtl.v-slider.v-input--horizontal .v-slider-track__tick--first .v-slider-track__tick-label,.v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-track__tick--first .v-slider-track__tick-label{transform:translate(0)}.v-slider.v-input--horizontal .v-slider-track__tick--last{margin-inline-start:calc(100% - var(--v-slider-tick-size) - 1px)}.v-locale--is-ltr.v-slider.v-input--horizontal .v-slider-track__tick--last .v-slider-track__tick-label,.v-locale--is-ltr .v-slider.v-input--horizontal .v-slider-track__tick--last .v-slider-track__tick-label{transform:translate(-100%)}.v-locale--is-rtl.v-slider.v-input--horizontal .v-slider-track__tick--last .v-slider-track__tick-label,.v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-track__tick--last .v-slider-track__tick-label{transform:translate(100%)}.v-slider.v-input--vertical .v-slider-track{height:100%;display:flex;justify-content:center;width:calc(var(--v-slider-track-size) + 2px);touch-action:pan-x}.v-slider.v-input--vertical .v-slider-track__background{width:var(--v-slider-track-size)}.v-slider.v-input--vertical .v-slider-track__fill{width:inherit}.v-slider.v-input--vertical .v-slider-track__ticks{height:100%}.v-slider.v-input--vertical .v-slider-track__tick{margin-inline-start:calc(calc(var(--v-slider-track-size) + 2px) / 2);transform:translate(calc(var(--v-slider-tick-size) / -2),calc(var(--v-slider-tick-size) / 2))}.v-locale--is-rtl.v-slider.v-input--vertical .v-slider-track__tick,.v-locale--is-rtl .v-slider.v-input--vertical .v-slider-track__tick{transform:translate(calc(var(--v-slider-tick-size) / 2),calc(var(--v-slider-tick-size) / 2))}.v-slider.v-input--vertical .v-slider-track__tick--first{bottom:calc(0% + var(--v-slider-tick-size) + 1px)}.v-slider.v-input--vertical .v-slider-track__tick--last{bottom:calc(100% - var(--v-slider-tick-size) - 1px)}.v-slider.v-input--vertical .v-slider-track__tick .v-slider-track__tick-label{margin-inline-start:calc(var(--v-slider-track-size) / 2 + 12px);transform:translateY(-50%)}.v-slider-track__ticks--always-show .v-slider-track__tick,.v-slider--focused .v-slider-track__tick{opacity:1}.v-slider-track__background--opacity{opacity:.38}.uri-input[data-v-a9389ce3]{min-width:350px}.v-dialog{align-items:center;justify-content:center;margin:auto}.v-dialog>.v-overlay__content{max-height:calc(100% - 48px);width:calc(100% - 48px);max-width:calc(100% - 48px);margin:24px}.v-dialog>.v-overlay__content,.v-dialog>.v-overlay__content>form{display:flex;flex-direction:column;min-height:0}.v-dialog>.v-overlay__content>.v-card,.v-dialog>.v-overlay__content>.v-sheet,.v-dialog>.v-overlay__content>form>.v-card,.v-dialog>.v-overlay__content>form>.v-sheet{--v-scrollbar-offset: 0px;border-radius:4px;overflow-y:auto;box-shadow:0 11px 15px -7px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 24px 38px 3px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 9px 46px 8px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-dialog>.v-overlay__content>.v-card,.v-dialog>.v-overlay__content>form>.v-card{display:flex;flex-direction:column}.v-dialog>.v-overlay__content>.v-card>.v-card-item,.v-dialog>.v-overlay__content>form>.v-card>.v-card-item{padding:14px 24px 0}.v-dialog>.v-overlay__content>.v-card>.v-card-item+.v-card-text,.v-dialog>.v-overlay__content>form>.v-card>.v-card-item+.v-card-text{padding-top:10px}.v-dialog>.v-overlay__content>.v-card>.v-card-text,.v-dialog>.v-overlay__content>form>.v-card>.v-card-text{font-size:inherit;letter-spacing:.03125em;line-height:inherit;padding:16px 24px 10px}.v-dialog--fullscreen{--v-scrollbar-offset: 0px}.v-dialog--fullscreen>.v-overlay__content{border-radius:0;margin:0;padding:0;width:100%;height:100%;max-width:100%;max-height:100%;overflow-y:auto;top:0;left:0}.v-dialog--fullscreen>.v-overlay__content>.v-card,.v-dialog--fullscreen>.v-overlay__content>.v-sheet,.v-dialog--fullscreen>.v-overlay__content>form>.v-card,.v-dialog--fullscreen>.v-overlay__content>form>.v-sheet{min-height:100%;min-width:100%;border-radius:0}.v-dialog--scrollable>.v-overlay__content,.v-dialog--scrollable>.v-overlay__content>form{display:flex}.v-dialog--scrollable>.v-overlay__content>.v-card,.v-dialog--scrollable>.v-overlay__content>form>.v-card{display:flex;flex:1 1 100%;flex-direction:column;max-height:100%;max-width:100%}.v-dialog--scrollable>.v-overlay__content>.v-card>.v-card-text,.v-dialog--scrollable>.v-overlay__content>form>.v-card>.v-card-text{backface-visibility:hidden;overflow-y:auto}.v-combobox .v-field .v-text-field__prefix,.v-combobox .v-field .v-text-field__suffix,.v-combobox .v-field .v-field__input,.v-combobox .v-field.v-field{cursor:text}.v-combobox .v-field .v-field__input>input{flex:1 1}.v-combobox .v-field input{min-width:64px}.v-combobox .v-field:not(.v-field--focused) input{min-width:0}.v-combobox .v-field--dirty .v-combobox__selection{margin-inline-end:2px}.v-combobox .v-combobox__selection-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-combobox__content{overflow:hidden;box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 10px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12));border-radius:4px}.v-combobox__mask{background:rgb(var(--v-theme-on-surface-variant))}.v-combobox__selection{display:inline-flex;align-items:center;height:1.5rem;letter-spacing:inherit;line-height:inherit;max-width:90%}.v-combobox__selection:first-child{margin-inline-start:0}.v-combobox--chips.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating{top:0px}.v-combobox--selecting-index .v-combobox__selection{opacity:var(--v-medium-emphasis-opacity)}.v-combobox--selecting-index .v-combobox__selection--selected{opacity:1}.v-combobox--selecting-index .v-field__input>input{caret-color:transparent}.v-combobox--single.v-text-field .v-field--focused input{flex:1 1;position:absolute;left:0;right:0;width:100%;padding-inline:inherit}.v-combobox--single .v-field--active input{transition:none}.v-combobox--single .v-field--dirty:not(.v-field--focused) input{opacity:0}.v-combobox--single .v-field--focused .v-combobox__selection{opacity:0}.v-combobox__menu-icon{margin-inline-start:4px;transition:.2s cubic-bezier(.4,0,.2,1)}.v-combobox--active-menu .v-combobox__menu-icon{opacity:var(--v-high-emphasis-opacity);transform:rotate(180deg)}.v-layout{--v-scrollbar-offset: 0px;display:flex;flex:1 1 auto}.v-layout--full-height{--v-scrollbar-offset: inherit;height:100%}.v-main{flex:1 0 auto;max-width:100%;transition:.2s cubic-bezier(.4,0,.2,1);padding-left:var(--v-layout-left);padding-right:var(--v-layout-right);padding-top:var(--v-layout-top);padding-bottom:var(--v-layout-bottom)}.v-main__scroller{max-width:100%;position:relative}.v-main--scrollable{display:flex;position:absolute;top:0;left:0;width:100%;height:100%}.v-main--scrollable>.v-main__scroller{flex:1 1 auto;overflow-y:auto;--v-layout-left: 0px;--v-layout-right: 0px;--v-layout-top: 0px;--v-layout-bottom: 0px}.v-navigation-drawer{-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;height:100%;max-width:100%;pointer-events:auto;transition-duration:.2s;transition-property:box-shadow,transform,visibility,width,height,left,right,top,bottom;transition-timing-function:cubic-bezier(.4,0,.2,1);position:absolute;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12));background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-navigation-drawer--border{border-width:thin;box-shadow:none}.v-navigation-drawer--rounded{border-radius:4px}.v-navigation-drawer--top{top:0;border-bottom-width:thin}.v-navigation-drawer--bottom{left:0;border-top-width:thin}.v-navigation-drawer--left{top:0;left:0;right:auto;border-right-width:thin}.v-navigation-drawer--right{top:0;left:auto;right:0;border-left-width:thin}.v-navigation-drawer--floating{border:none}.v-navigation-drawer--temporary{box-shadow:0 8px 10px -5px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 16px 24px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 6px 30px 5px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .12))}.v-navigation-drawer--sticky{height:auto;transition:box-shadow,transform,visibility,width,height,left,right}.v-navigation-drawer .v-list{overflow:hidden}.v-navigation-drawer__content{flex:0 1 auto;height:100%;max-width:100%;overflow-x:hidden;overflow-y:auto}.v-navigation-drawer__img{height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.v-navigation-drawer__img img{height:inherit;-o-object-fit:cover;object-fit:cover;width:inherit}.v-navigation-drawer__scrim{position:absolute;top:0;left:0;width:100%;height:100%;background:black;opacity:.2;transition:opacity .2s cubic-bezier(.4,0,.2,1);z-index:1}.v-navigation-drawer__prepend,.v-navigation-drawer__append{flex:none;overflow:hidden}.slider-value[data-v-d1bc6e0e]{white-space:nowrap;text-align:center;font-size:.8rem}.slider-div[data-v-d1bc6e0e]{position:fixed;right:2%;top:25%;bottom:0;width:25px;height:50%;display:flex;flex-direction:column;justify-content:center;z-index:100}.modal{position:absolute;top:50%;left:50%;margin-right:-50%;transform:translate(-50%,-50%);height:-moz-fit-content;height:fit-content;background-color:#4755694d;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);box-shadow:0 0 20px 5px #00000040;border-radius:5px}.modal::backdrop{background-color:#0000004d;opacity:0}.modal[open]{animation:slide-in .25s forwards,fade-in .25s forwards}.modal[open]::backdrop{animation:fade-in .25s forwards}.modal[closing]{pointer-events:none;animation:fade-out .25s forwards}.modal[closing]::backdrop{animation:fade-out .25s forwards}@keyframes slide-in{0%{top:70%}to{top:50%}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{to{opacity:0}0%{opacity:1}}.battery-icon{font-size:2.25rem;line-height:2.25rem}.blob.red[data-v-9ff76688]{background:rgba(255,82,82,1);box-shadow:0 0 #ff5252;animation:pulse-red-9ff76688 2s infinite}@keyframes pulse-red-9ff76688{0%{transform:scale(.95);box-shadow:0 0 #ff5252b3}70%{transform:scale(1);box-shadow:0 0 0 10px #ff525200}to{transform:scale(.95);box-shadow:0 0 #ff525200}}.scroll-container[data-v-9ff76688]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scroll-text[data-v-9ff76688]{transform:translate(0);transition:transform 1s linear}.scroll-text[data-v-9ff76688]:hover{transform:translate(-100%)}.border-blur[data-v-9ff76688]:hover{background-color:#475569;box-shadow:0 0 3px 3px #475569}.icon-symbol{font-size:2rem;line-height:2rem}.edit-panel[data-v-a5d59b9c]{transition:all .2s;position:absolute;z-index:60;background-color:#475569}.left-panel[data-v-a5d59b9c]{top:0%;height:80%;width:20%;left:-20%}.left-panel.active[data-v-a5d59b9c]{left:0%}.middle-panel[data-v-a5d59b9c]{bottom:-20%;left:-20%;height:20%;width:20%}.middle-panel.active[data-v-a5d59b9c]{bottom:0%;left:0%}.bottom-panel[data-v-a5d59b9c]{right:0%;bottom:-20%;height:20%;width:80%}.bottom-panel.active[data-v-a5d59b9c]{bottom:0%}.v-expansion-panel[data-v-a5d59b9c]{background-color:#0000;color:#fff}.fade-and-suffle-move[data-v-a5d59b9c],.fade-and-suffle-enter-active[data-v-a5d59b9c],.fade-and-suffle-leave-active[data-v-a5d59b9c],.fade-enter-active[data-v-a5d59b9c],.fade-leave-active[data-v-a5d59b9c]{transition:all .3s cubic-bezier(.55,0,.1,1)}.fade-and-suffle-enter-from[data-v-a5d59b9c],.fade-enter-from[data-v-a5d59b9c],.fade-and-suffle-leave-to[data-v-a5d59b9c],.fade-leave-to[data-v-a5d59b9c]{opacity:0;transform:scaleY(.01) translate(30px)}.sortable-ghost[data-v-a5d59b9c]{cursor:grabbing}.icon-btn[data-v-a5d59b9c]{display:flex;align-items:center;justify-content:center;height:1.5rem;aspect-ratio:1;font-size:.875rem;line-height:1.25rem;margin-left:.25rem;transition:all;border-radius:.125rem;cursor:pointer;--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity))}.icon-btn[data-v-a5d59b9c]:hover{--tw-bg-opacity: 1;background-color:rgb(100 116 139 / var(--tw-bg-opacity))}.selected-view[data-v-a5d59b9c]{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity))}.expanded-alerts-bar[invisible][data-v-9c347d0d]{display:none}.v-application{display:flex;background:rgb(var(--v-theme-background));color:rgba(var(--v-theme-on-background),var(--v-high-emphasis-opacity))}.v-application__wrap{backface-visibility:hidden;display:flex;flex-direction:column;flex:1 1 auto;max-width:100%;min-height:100vh;min-height:100dvh;position:relative}html,body{overflow:hidden!important}body.hide-cursor{cursor:none}.router-view{width:100%;height:100%;position:relative}.main-view{transition:all .2s;width:100%;height:100%;position:absolute;right:0%;top:0%}.main-view.edit-mode{transform:scale(.8);right:-10%;top:-10%}.swal2-container{z-index:10000}.fade-enter-active,.fade-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.fade-enter-from,.fade-leave-to{opacity:0;transform:translateY(100px)}.bottom-container{position:absolute;bottom:0;width:100%;display:flex;flex-direction:column;align-items:center;z-index:60}.bottom-bar{width:100%;background:rgba(108,117,125,.5);display:flex;justify-content:space-between}@font-face{font-family:Material Design Icons;src:url(./materialdesignicons-webfont.5159a347.eot?v=7.3.67);src:url(./materialdesignicons-webfont.5159a347.eot?#iefix&v=7.3.67) format("embedded-opentype"),url(./materialdesignicons-webfont.31010194.woff2?v=7.3.67) format("woff2"),url(./materialdesignicons-webfont.28c8f97f.woff?v=7.3.67) format("woff"),url(./materialdesignicons-webfont.be825c12.ttf?v=7.3.67) format("truetype");font-weight:400;font-style:normal}.mdi:before,.mdi-set{display:inline-block;font: 24px/1 Material Design Icons;font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.mdi-ab-testing:before{content:"\f01c9"}.mdi-abacus:before{content:"\f16e0"}.mdi-abjad-arabic:before{content:"\f1328"}.mdi-abjad-hebrew:before{content:"\f1329"}.mdi-abugida-devanagari:before{content:"\f132a"}.mdi-abugida-thai:before{content:"\f132b"}.mdi-access-point:before{content:"\f0003"}.mdi-access-point-check:before{content:"\f1538"}.mdi-access-point-minus:before{content:"\f1539"}.mdi-access-point-network:before{content:"\f0002"}.mdi-access-point-network-off:before{content:"\f0be1"}.mdi-access-point-off:before{content:"\f1511"}.mdi-access-point-plus:before{content:"\f153a"}.mdi-access-point-remove:before{content:"\f153b"}.mdi-account:before{content:"\f0004"}.mdi-account-alert:before{content:"\f0005"}.mdi-account-alert-outline:before{content:"\f0b50"}.mdi-account-arrow-down:before{content:"\f1868"}.mdi-account-arrow-down-outline:before{content:"\f1869"}.mdi-account-arrow-left:before{content:"\f0b51"}.mdi-account-arrow-left-outline:before{content:"\f0b52"}.mdi-account-arrow-right:before{content:"\f0b53"}.mdi-account-arrow-right-outline:before{content:"\f0b54"}.mdi-account-arrow-up:before{content:"\f1867"}.mdi-account-arrow-up-outline:before{content:"\f186a"}.mdi-account-badge:before{content:"\f1b0a"}.mdi-account-badge-outline:before{content:"\f1b0b"}.mdi-account-box:before{content:"\f0006"}.mdi-account-box-multiple:before{content:"\f0934"}.mdi-account-box-multiple-outline:before{content:"\f100a"}.mdi-account-box-outline:before{content:"\f0007"}.mdi-account-cancel:before{content:"\f12df"}.mdi-account-cancel-outline:before{content:"\f12e0"}.mdi-account-card:before{content:"\f1ba4"}.mdi-account-card-outline:before{content:"\f1ba5"}.mdi-account-cash:before{content:"\f1097"}.mdi-account-cash-outline:before{content:"\f1098"}.mdi-account-check:before{content:"\f0008"}.mdi-account-check-outline:before{content:"\f0be2"}.mdi-account-child:before{content:"\f0a89"}.mdi-account-child-circle:before{content:"\f0a8a"}.mdi-account-child-outline:before{content:"\f10c8"}.mdi-account-circle:before{content:"\f0009"}.mdi-account-circle-outline:before{content:"\f0b55"}.mdi-account-clock:before{content:"\f0b56"}.mdi-account-clock-outline:before{content:"\f0b57"}.mdi-account-cog:before{content:"\f1370"}.mdi-account-cog-outline:before{content:"\f1371"}.mdi-account-convert:before{content:"\f000a"}.mdi-account-convert-outline:before{content:"\f1301"}.mdi-account-cowboy-hat:before{content:"\f0e9b"}.mdi-account-cowboy-hat-outline:before{content:"\f17f3"}.mdi-account-credit-card:before{content:"\f1ba6"}.mdi-account-credit-card-outline:before{content:"\f1ba7"}.mdi-account-details:before{content:"\f0631"}.mdi-account-details-outline:before{content:"\f1372"}.mdi-account-edit:before{content:"\f06bc"}.mdi-account-edit-outline:before{content:"\f0ffb"}.mdi-account-eye:before{content:"\f0420"}.mdi-account-eye-outline:before{content:"\f127b"}.mdi-account-file:before{content:"\f1ca7"}.mdi-account-file-outline:before{content:"\f1ca8"}.mdi-account-file-text:before{content:"\f1ca9"}.mdi-account-file-text-outline:before{content:"\f1caa"}.mdi-account-filter:before{content:"\f0936"}.mdi-account-filter-outline:before{content:"\f0f9d"}.mdi-account-group:before{content:"\f0849"}.mdi-account-group-outline:before{content:"\f0b58"}.mdi-account-hard-hat:before{content:"\f05b5"}.mdi-account-hard-hat-outline:before{content:"\f1a1f"}.mdi-account-heart:before{content:"\f0899"}.mdi-account-heart-outline:before{content:"\f0be3"}.mdi-account-injury:before{content:"\f1815"}.mdi-account-injury-outline:before{content:"\f1816"}.mdi-account-key:before{content:"\f000b"}.mdi-account-key-outline:before{content:"\f0be4"}.mdi-account-lock:before{content:"\f115e"}.mdi-account-lock-open:before{content:"\f1960"}.mdi-account-lock-open-outline:before{content:"\f1961"}.mdi-account-lock-outline:before{content:"\f115f"}.mdi-account-minus:before{content:"\f000d"}.mdi-account-minus-outline:before{content:"\f0aec"}.mdi-account-multiple:before{content:"\f000e"}.mdi-account-multiple-check:before{content:"\f08c5"}.mdi-account-multiple-check-outline:before{content:"\f11fe"}.mdi-account-multiple-minus:before{content:"\f05d3"}.mdi-account-multiple-minus-outline:before{content:"\f0be5"}.mdi-account-multiple-outline:before{content:"\f000f"}.mdi-account-multiple-plus:before{content:"\f0010"}.mdi-account-multiple-plus-outline:before{content:"\f0800"}.mdi-account-multiple-remove:before{content:"\f120a"}.mdi-account-multiple-remove-outline:before{content:"\f120b"}.mdi-account-music:before{content:"\f0803"}.mdi-account-music-outline:before{content:"\f0ce9"}.mdi-account-network:before{content:"\f0011"}.mdi-account-network-off:before{content:"\f1af1"}.mdi-account-network-off-outline:before{content:"\f1af2"}.mdi-account-network-outline:before{content:"\f0be6"}.mdi-account-off:before{content:"\f0012"}.mdi-account-off-outline:before{content:"\f0be7"}.mdi-account-outline:before{content:"\f0013"}.mdi-account-plus:before{content:"\f0014"}.mdi-account-plus-outline:before{content:"\f0801"}.mdi-account-question:before{content:"\f0b59"}.mdi-account-question-outline:before{content:"\f0b5a"}.mdi-account-reactivate:before{content:"\f152b"}.mdi-account-reactivate-outline:before{content:"\f152c"}.mdi-account-remove:before{content:"\f0015"}.mdi-account-remove-outline:before{content:"\f0aed"}.mdi-account-school:before{content:"\f1a20"}.mdi-account-school-outline:before{content:"\f1a21"}.mdi-account-search:before{content:"\f0016"}.mdi-account-search-outline:before{content:"\f0935"}.mdi-account-settings:before{content:"\f0630"}.mdi-account-settings-outline:before{content:"\f10c9"}.mdi-account-star:before{content:"\f0017"}.mdi-account-star-outline:before{content:"\f0be8"}.mdi-account-supervisor:before{content:"\f0a8b"}.mdi-account-supervisor-circle:before{content:"\f0a8c"}.mdi-account-supervisor-circle-outline:before{content:"\f14ec"}.mdi-account-supervisor-outline:before{content:"\f112d"}.mdi-account-switch:before{content:"\f0019"}.mdi-account-switch-outline:before{content:"\f04cb"}.mdi-account-sync:before{content:"\f191b"}.mdi-account-sync-outline:before{content:"\f191c"}.mdi-account-tag:before{content:"\f1c1b"}.mdi-account-tag-outline:before{content:"\f1c1c"}.mdi-account-tie:before{content:"\f0ce3"}.mdi-account-tie-hat:before{content:"\f1898"}.mdi-account-tie-hat-outline:before{content:"\f1899"}.mdi-account-tie-outline:before{content:"\f10ca"}.mdi-account-tie-voice:before{content:"\f1308"}.mdi-account-tie-voice-off:before{content:"\f130a"}.mdi-account-tie-voice-off-outline:before{content:"\f130b"}.mdi-account-tie-voice-outline:before{content:"\f1309"}.mdi-account-tie-woman:before{content:"\f1a8c"}.mdi-account-voice:before{content:"\f05cb"}.mdi-account-voice-off:before{content:"\f0ed4"}.mdi-account-wrench:before{content:"\f189a"}.mdi-account-wrench-outline:before{content:"\f189b"}.mdi-adjust:before{content:"\f001a"}.mdi-advertisements:before{content:"\f192a"}.mdi-advertisements-off:before{content:"\f192b"}.mdi-air-conditioner:before{content:"\f001b"}.mdi-air-filter:before{content:"\f0d43"}.mdi-air-horn:before{content:"\f0dac"}.mdi-air-humidifier:before{content:"\f1099"}.mdi-air-humidifier-off:before{content:"\f1466"}.mdi-air-purifier:before{content:"\f0d44"}.mdi-air-purifier-off:before{content:"\f1b57"}.mdi-airbag:before{content:"\f0be9"}.mdi-airballoon:before{content:"\f001c"}.mdi-airballoon-outline:before{content:"\f100b"}.mdi-airplane:before{content:"\f001d"}.mdi-airplane-alert:before{content:"\f187a"}.mdi-airplane-check:before{content:"\f187b"}.mdi-airplane-clock:before{content:"\f187c"}.mdi-airplane-cog:before{content:"\f187d"}.mdi-airplane-edit:before{content:"\f187e"}.mdi-airplane-landing:before{content:"\f05d4"}.mdi-airplane-marker:before{content:"\f187f"}.mdi-airplane-minus:before{content:"\f1880"}.mdi-airplane-off:before{content:"\f001e"}.mdi-airplane-plus:before{content:"\f1881"}.mdi-airplane-remove:before{content:"\f1882"}.mdi-airplane-search:before{content:"\f1883"}.mdi-airplane-settings:before{content:"\f1884"}.mdi-airplane-takeoff:before{content:"\f05d5"}.mdi-airport:before{content:"\f084b"}.mdi-alarm:before{content:"\f0020"}.mdi-alarm-bell:before{content:"\f078e"}.mdi-alarm-check:before{content:"\f0021"}.mdi-alarm-light:before{content:"\f078f"}.mdi-alarm-light-off:before{content:"\f171e"}.mdi-alarm-light-off-outline:before{content:"\f171f"}.mdi-alarm-light-outline:before{content:"\f0bea"}.mdi-alarm-multiple:before{content:"\f0022"}.mdi-alarm-note:before{content:"\f0e71"}.mdi-alarm-note-off:before{content:"\f0e72"}.mdi-alarm-off:before{content:"\f0023"}.mdi-alarm-panel:before{content:"\f15c4"}.mdi-alarm-panel-outline:before{content:"\f15c5"}.mdi-alarm-plus:before{content:"\f0024"}.mdi-alarm-snooze:before{content:"\f068e"}.mdi-album:before{content:"\f0025"}.mdi-alert:before{content:"\f0026"}.mdi-alert-box:before{content:"\f0027"}.mdi-alert-box-outline:before{content:"\f0ce4"}.mdi-alert-circle:before{content:"\f0028"}.mdi-alert-circle-check:before{content:"\f11ed"}.mdi-alert-circle-check-outline:before{content:"\f11ee"}.mdi-alert-circle-outline:before{content:"\f05d6"}.mdi-alert-decagram:before{content:"\f06bd"}.mdi-alert-decagram-outline:before{content:"\f0ce5"}.mdi-alert-minus:before{content:"\f14bb"}.mdi-alert-minus-outline:before{content:"\f14be"}.mdi-alert-octagon:before{content:"\f0029"}.mdi-alert-octagon-outline:before{content:"\f0ce6"}.mdi-alert-octagram:before{content:"\f0767"}.mdi-alert-octagram-outline:before{content:"\f0ce7"}.mdi-alert-outline:before{content:"\f002a"}.mdi-alert-plus:before{content:"\f14ba"}.mdi-alert-plus-outline:before{content:"\f14bd"}.mdi-alert-remove:before{content:"\f14bc"}.mdi-alert-remove-outline:before{content:"\f14bf"}.mdi-alert-rhombus:before{content:"\f11ce"}.mdi-alert-rhombus-outline:before{content:"\f11cf"}.mdi-alien:before{content:"\f089a"}.mdi-alien-outline:before{content:"\f10cb"}.mdi-align-horizontal-center:before{content:"\f11c3"}.mdi-align-horizontal-distribute:before{content:"\f1962"}.mdi-align-horizontal-left:before{content:"\f11c2"}.mdi-align-horizontal-right:before{content:"\f11c4"}.mdi-align-vertical-bottom:before{content:"\f11c5"}.mdi-align-vertical-center:before{content:"\f11c6"}.mdi-align-vertical-distribute:before{content:"\f1963"}.mdi-align-vertical-top:before{content:"\f11c7"}.mdi-all-inclusive:before{content:"\f06be"}.mdi-all-inclusive-box:before{content:"\f188d"}.mdi-all-inclusive-box-outline:before{content:"\f188e"}.mdi-allergy:before{content:"\f1258"}.mdi-alpha:before{content:"\f002b"}.mdi-alpha-a:before{content:"\f0aee"}.mdi-alpha-a-box:before{content:"\f0b08"}.mdi-alpha-a-box-outline:before{content:"\f0beb"}.mdi-alpha-a-circle:before{content:"\f0bec"}.mdi-alpha-a-circle-outline:before{content:"\f0bed"}.mdi-alpha-b:before{content:"\f0aef"}.mdi-alpha-b-box:before{content:"\f0b09"}.mdi-alpha-b-box-outline:before{content:"\f0bee"}.mdi-alpha-b-circle:before{content:"\f0bef"}.mdi-alpha-b-circle-outline:before{content:"\f0bf0"}.mdi-alpha-c:before{content:"\f0af0"}.mdi-alpha-c-box:before{content:"\f0b0a"}.mdi-alpha-c-box-outline:before{content:"\f0bf1"}.mdi-alpha-c-circle:before{content:"\f0bf2"}.mdi-alpha-c-circle-outline:before{content:"\f0bf3"}.mdi-alpha-d:before{content:"\f0af1"}.mdi-alpha-d-box:before{content:"\f0b0b"}.mdi-alpha-d-box-outline:before{content:"\f0bf4"}.mdi-alpha-d-circle:before{content:"\f0bf5"}.mdi-alpha-d-circle-outline:before{content:"\f0bf6"}.mdi-alpha-e:before{content:"\f0af2"}.mdi-alpha-e-box:before{content:"\f0b0c"}.mdi-alpha-e-box-outline:before{content:"\f0bf7"}.mdi-alpha-e-circle:before{content:"\f0bf8"}.mdi-alpha-e-circle-outline:before{content:"\f0bf9"}.mdi-alpha-f:before{content:"\f0af3"}.mdi-alpha-f-box:before{content:"\f0b0d"}.mdi-alpha-f-box-outline:before{content:"\f0bfa"}.mdi-alpha-f-circle:before{content:"\f0bfb"}.mdi-alpha-f-circle-outline:before{content:"\f0bfc"}.mdi-alpha-g:before{content:"\f0af4"}.mdi-alpha-g-box:before{content:"\f0b0e"}.mdi-alpha-g-box-outline:before{content:"\f0bfd"}.mdi-alpha-g-circle:before{content:"\f0bfe"}.mdi-alpha-g-circle-outline:before{content:"\f0bff"}.mdi-alpha-h:before{content:"\f0af5"}.mdi-alpha-h-box:before{content:"\f0b0f"}.mdi-alpha-h-box-outline:before{content:"\f0c00"}.mdi-alpha-h-circle:before{content:"\f0c01"}.mdi-alpha-h-circle-outline:before{content:"\f0c02"}.mdi-alpha-i:before{content:"\f0af6"}.mdi-alpha-i-box:before{content:"\f0b10"}.mdi-alpha-i-box-outline:before{content:"\f0c03"}.mdi-alpha-i-circle:before{content:"\f0c04"}.mdi-alpha-i-circle-outline:before{content:"\f0c05"}.mdi-alpha-j:before{content:"\f0af7"}.mdi-alpha-j-box:before{content:"\f0b11"}.mdi-alpha-j-box-outline:before{content:"\f0c06"}.mdi-alpha-j-circle:before{content:"\f0c07"}.mdi-alpha-j-circle-outline:before{content:"\f0c08"}.mdi-alpha-k:before{content:"\f0af8"}.mdi-alpha-k-box:before{content:"\f0b12"}.mdi-alpha-k-box-outline:before{content:"\f0c09"}.mdi-alpha-k-circle:before{content:"\f0c0a"}.mdi-alpha-k-circle-outline:before{content:"\f0c0b"}.mdi-alpha-l:before{content:"\f0af9"}.mdi-alpha-l-box:before{content:"\f0b13"}.mdi-alpha-l-box-outline:before{content:"\f0c0c"}.mdi-alpha-l-circle:before{content:"\f0c0d"}.mdi-alpha-l-circle-outline:before{content:"\f0c0e"}.mdi-alpha-m:before{content:"\f0afa"}.mdi-alpha-m-box:before{content:"\f0b14"}.mdi-alpha-m-box-outline:before{content:"\f0c0f"}.mdi-alpha-m-circle:before{content:"\f0c10"}.mdi-alpha-m-circle-outline:before{content:"\f0c11"}.mdi-alpha-n:before{content:"\f0afb"}.mdi-alpha-n-box:before{content:"\f0b15"}.mdi-alpha-n-box-outline:before{content:"\f0c12"}.mdi-alpha-n-circle:before{content:"\f0c13"}.mdi-alpha-n-circle-outline:before{content:"\f0c14"}.mdi-alpha-o:before{content:"\f0afc"}.mdi-alpha-o-box:before{content:"\f0b16"}.mdi-alpha-o-box-outline:before{content:"\f0c15"}.mdi-alpha-o-circle:before{content:"\f0c16"}.mdi-alpha-o-circle-outline:before{content:"\f0c17"}.mdi-alpha-p:before{content:"\f0afd"}.mdi-alpha-p-box:before{content:"\f0b17"}.mdi-alpha-p-box-outline:before{content:"\f0c18"}.mdi-alpha-p-circle:before{content:"\f0c19"}.mdi-alpha-p-circle-outline:before{content:"\f0c1a"}.mdi-alpha-q:before{content:"\f0afe"}.mdi-alpha-q-box:before{content:"\f0b18"}.mdi-alpha-q-box-outline:before{content:"\f0c1b"}.mdi-alpha-q-circle:before{content:"\f0c1c"}.mdi-alpha-q-circle-outline:before{content:"\f0c1d"}.mdi-alpha-r:before{content:"\f0aff"}.mdi-alpha-r-box:before{content:"\f0b19"}.mdi-alpha-r-box-outline:before{content:"\f0c1e"}.mdi-alpha-r-circle:before{content:"\f0c1f"}.mdi-alpha-r-circle-outline:before{content:"\f0c20"}.mdi-alpha-s:before{content:"\f0b00"}.mdi-alpha-s-box:before{content:"\f0b1a"}.mdi-alpha-s-box-outline:before{content:"\f0c21"}.mdi-alpha-s-circle:before{content:"\f0c22"}.mdi-alpha-s-circle-outline:before{content:"\f0c23"}.mdi-alpha-t:before{content:"\f0b01"}.mdi-alpha-t-box:before{content:"\f0b1b"}.mdi-alpha-t-box-outline:before{content:"\f0c24"}.mdi-alpha-t-circle:before{content:"\f0c25"}.mdi-alpha-t-circle-outline:before{content:"\f0c26"}.mdi-alpha-u:before{content:"\f0b02"}.mdi-alpha-u-box:before{content:"\f0b1c"}.mdi-alpha-u-box-outline:before{content:"\f0c27"}.mdi-alpha-u-circle:before{content:"\f0c28"}.mdi-alpha-u-circle-outline:before{content:"\f0c29"}.mdi-alpha-v:before{content:"\f0b03"}.mdi-alpha-v-box:before{content:"\f0b1d"}.mdi-alpha-v-box-outline:before{content:"\f0c2a"}.mdi-alpha-v-circle:before{content:"\f0c2b"}.mdi-alpha-v-circle-outline:before{content:"\f0c2c"}.mdi-alpha-w:before{content:"\f0b04"}.mdi-alpha-w-box:before{content:"\f0b1e"}.mdi-alpha-w-box-outline:before{content:"\f0c2d"}.mdi-alpha-w-circle:before{content:"\f0c2e"}.mdi-alpha-w-circle-outline:before{content:"\f0c2f"}.mdi-alpha-x:before{content:"\f0b05"}.mdi-alpha-x-box:before{content:"\f0b1f"}.mdi-alpha-x-box-outline:before{content:"\f0c30"}.mdi-alpha-x-circle:before{content:"\f0c31"}.mdi-alpha-x-circle-outline:before{content:"\f0c32"}.mdi-alpha-y:before{content:"\f0b06"}.mdi-alpha-y-box:before{content:"\f0b20"}.mdi-alpha-y-box-outline:before{content:"\f0c33"}.mdi-alpha-y-circle:before{content:"\f0c34"}.mdi-alpha-y-circle-outline:before{content:"\f0c35"}.mdi-alpha-z:before{content:"\f0b07"}.mdi-alpha-z-box:before{content:"\f0b21"}.mdi-alpha-z-box-outline:before{content:"\f0c36"}.mdi-alpha-z-circle:before{content:"\f0c37"}.mdi-alpha-z-circle-outline:before{content:"\f0c38"}.mdi-alphabet-aurebesh:before{content:"\f132c"}.mdi-alphabet-cyrillic:before{content:"\f132d"}.mdi-alphabet-greek:before{content:"\f132e"}.mdi-alphabet-latin:before{content:"\f132f"}.mdi-alphabet-piqad:before{content:"\f1330"}.mdi-alphabet-tengwar:before{content:"\f1337"}.mdi-alphabetical:before{content:"\f002c"}.mdi-alphabetical-off:before{content:"\f100c"}.mdi-alphabetical-variant:before{content:"\f100d"}.mdi-alphabetical-variant-off:before{content:"\f100e"}.mdi-altimeter:before{content:"\f05d7"}.mdi-ambulance:before{content:"\f002f"}.mdi-ammunition:before{content:"\f0ce8"}.mdi-ampersand:before{content:"\f0a8d"}.mdi-amplifier:before{content:"\f0030"}.mdi-amplifier-off:before{content:"\f11b5"}.mdi-anchor:before{content:"\f0031"}.mdi-android:before{content:"\f0032"}.mdi-android-studio:before{content:"\f0034"}.mdi-angle-acute:before{content:"\f0937"}.mdi-angle-obtuse:before{content:"\f0938"}.mdi-angle-right:before{content:"\f0939"}.mdi-angular:before{content:"\f06b2"}.mdi-angularjs:before{content:"\f06bf"}.mdi-animation:before{content:"\f05d8"}.mdi-animation-outline:before{content:"\f0a8f"}.mdi-animation-play:before{content:"\f093a"}.mdi-animation-play-outline:before{content:"\f0a90"}.mdi-ansible:before{content:"\f109a"}.mdi-antenna:before{content:"\f1119"}.mdi-anvil:before{content:"\f089b"}.mdi-apache-kafka:before{content:"\f100f"}.mdi-api:before{content:"\f109b"}.mdi-api-off:before{content:"\f1257"}.mdi-apple:before{content:"\f0035"}.mdi-apple-finder:before{content:"\f0036"}.mdi-apple-icloud:before{content:"\f0038"}.mdi-apple-ios:before{content:"\f0037"}.mdi-apple-keyboard-caps:before{content:"\f0632"}.mdi-apple-keyboard-command:before{content:"\f0633"}.mdi-apple-keyboard-control:before{content:"\f0634"}.mdi-apple-keyboard-option:before{content:"\f0635"}.mdi-apple-keyboard-shift:before{content:"\f0636"}.mdi-apple-safari:before{content:"\f0039"}.mdi-application:before{content:"\f08c6"}.mdi-application-array:before{content:"\f10f5"}.mdi-application-array-outline:before{content:"\f10f6"}.mdi-application-braces:before{content:"\f10f7"}.mdi-application-braces-outline:before{content:"\f10f8"}.mdi-application-brackets:before{content:"\f0c8b"}.mdi-application-brackets-outline:before{content:"\f0c8c"}.mdi-application-cog:before{content:"\f0675"}.mdi-application-cog-outline:before{content:"\f1577"}.mdi-application-edit:before{content:"\f00ae"}.mdi-application-edit-outline:before{content:"\f0619"}.mdi-application-export:before{content:"\f0dad"}.mdi-application-import:before{content:"\f0dae"}.mdi-application-outline:before{content:"\f0614"}.mdi-application-parentheses:before{content:"\f10f9"}.mdi-application-parentheses-outline:before{content:"\f10fa"}.mdi-application-settings:before{content:"\f0b60"}.mdi-application-settings-outline:before{content:"\f1555"}.mdi-application-variable:before{content:"\f10fb"}.mdi-application-variable-outline:before{content:"\f10fc"}.mdi-approximately-equal:before{content:"\f0f9e"}.mdi-approximately-equal-box:before{content:"\f0f9f"}.mdi-apps:before{content:"\f003b"}.mdi-apps-box:before{content:"\f0d46"}.mdi-arch:before{content:"\f08c7"}.mdi-archive:before{content:"\f003c"}.mdi-archive-alert:before{content:"\f14fd"}.mdi-archive-alert-outline:before{content:"\f14fe"}.mdi-archive-arrow-down:before{content:"\f1259"}.mdi-archive-arrow-down-outline:before{content:"\f125a"}.mdi-archive-arrow-up:before{content:"\f125b"}.mdi-archive-arrow-up-outline:before{content:"\f125c"}.mdi-archive-cancel:before{content:"\f174b"}.mdi-archive-cancel-outline:before{content:"\f174c"}.mdi-archive-check:before{content:"\f174d"}.mdi-archive-check-outline:before{content:"\f174e"}.mdi-archive-clock:before{content:"\f174f"}.mdi-archive-clock-outline:before{content:"\f1750"}.mdi-archive-cog:before{content:"\f1751"}.mdi-archive-cog-outline:before{content:"\f1752"}.mdi-archive-edit:before{content:"\f1753"}.mdi-archive-edit-outline:before{content:"\f1754"}.mdi-archive-eye:before{content:"\f1755"}.mdi-archive-eye-outline:before{content:"\f1756"}.mdi-archive-lock:before{content:"\f1757"}.mdi-archive-lock-open:before{content:"\f1758"}.mdi-archive-lock-open-outline:before{content:"\f1759"}.mdi-archive-lock-outline:before{content:"\f175a"}.mdi-archive-marker:before{content:"\f175b"}.mdi-archive-marker-outline:before{content:"\f175c"}.mdi-archive-minus:before{content:"\f175d"}.mdi-archive-minus-outline:before{content:"\f175e"}.mdi-archive-music:before{content:"\f175f"}.mdi-archive-music-outline:before{content:"\f1760"}.mdi-archive-off:before{content:"\f1761"}.mdi-archive-off-outline:before{content:"\f1762"}.mdi-archive-outline:before{content:"\f120e"}.mdi-archive-plus:before{content:"\f1763"}.mdi-archive-plus-outline:before{content:"\f1764"}.mdi-archive-refresh:before{content:"\f1765"}.mdi-archive-refresh-outline:before{content:"\f1766"}.mdi-archive-remove:before{content:"\f1767"}.mdi-archive-remove-outline:before{content:"\f1768"}.mdi-archive-search:before{content:"\f1769"}.mdi-archive-search-outline:before{content:"\f176a"}.mdi-archive-settings:before{content:"\f176b"}.mdi-archive-settings-outline:before{content:"\f176c"}.mdi-archive-star:before{content:"\f176d"}.mdi-archive-star-outline:before{content:"\f176e"}.mdi-archive-sync:before{content:"\f176f"}.mdi-archive-sync-outline:before{content:"\f1770"}.mdi-arm-flex:before{content:"\f0fd7"}.mdi-arm-flex-outline:before{content:"\f0fd6"}.mdi-arrange-bring-forward:before{content:"\f003d"}.mdi-arrange-bring-to-front:before{content:"\f003e"}.mdi-arrange-send-backward:before{content:"\f003f"}.mdi-arrange-send-to-back:before{content:"\f0040"}.mdi-arrow-all:before{content:"\f0041"}.mdi-arrow-bottom-left:before{content:"\f0042"}.mdi-arrow-bottom-left-bold-box:before{content:"\f1964"}.mdi-arrow-bottom-left-bold-box-outline:before{content:"\f1965"}.mdi-arrow-bottom-left-bold-outline:before{content:"\f09b7"}.mdi-arrow-bottom-left-thick:before{content:"\f09b8"}.mdi-arrow-bottom-left-thin:before{content:"\f19b6"}.mdi-arrow-bottom-left-thin-circle-outline:before{content:"\f1596"}.mdi-arrow-bottom-right:before{content:"\f0043"}.mdi-arrow-bottom-right-bold-box:before{content:"\f1966"}.mdi-arrow-bottom-right-bold-box-outline:before{content:"\f1967"}.mdi-arrow-bottom-right-bold-outline:before{content:"\f09b9"}.mdi-arrow-bottom-right-thick:before{content:"\f09ba"}.mdi-arrow-bottom-right-thin:before{content:"\f19b7"}.mdi-arrow-bottom-right-thin-circle-outline:before{content:"\f1595"}.mdi-arrow-collapse:before{content:"\f0615"}.mdi-arrow-collapse-all:before{content:"\f0044"}.mdi-arrow-collapse-down:before{content:"\f0792"}.mdi-arrow-collapse-horizontal:before{content:"\f084c"}.mdi-arrow-collapse-left:before{content:"\f0793"}.mdi-arrow-collapse-right:before{content:"\f0794"}.mdi-arrow-collapse-up:before{content:"\f0795"}.mdi-arrow-collapse-vertical:before{content:"\f084d"}.mdi-arrow-decision:before{content:"\f09bb"}.mdi-arrow-decision-auto:before{content:"\f09bc"}.mdi-arrow-decision-auto-outline:before{content:"\f09bd"}.mdi-arrow-decision-outline:before{content:"\f09be"}.mdi-arrow-down:before{content:"\f0045"}.mdi-arrow-down-bold:before{content:"\f072e"}.mdi-arrow-down-bold-box:before{content:"\f072f"}.mdi-arrow-down-bold-box-outline:before{content:"\f0730"}.mdi-arrow-down-bold-circle:before{content:"\f0047"}.mdi-arrow-down-bold-circle-outline:before{content:"\f0048"}.mdi-arrow-down-bold-hexagon-outline:before{content:"\f0049"}.mdi-arrow-down-bold-outline:before{content:"\f09bf"}.mdi-arrow-down-box:before{content:"\f06c0"}.mdi-arrow-down-circle:before{content:"\f0cdb"}.mdi-arrow-down-circle-outline:before{content:"\f0cdc"}.mdi-arrow-down-drop-circle:before{content:"\f004a"}.mdi-arrow-down-drop-circle-outline:before{content:"\f004b"}.mdi-arrow-down-left:before{content:"\f17a1"}.mdi-arrow-down-left-bold:before{content:"\f17a2"}.mdi-arrow-down-right:before{content:"\f17a3"}.mdi-arrow-down-right-bold:before{content:"\f17a4"}.mdi-arrow-down-thick:before{content:"\f0046"}.mdi-arrow-down-thin:before{content:"\f19b3"}.mdi-arrow-down-thin-circle-outline:before{content:"\f1599"}.mdi-arrow-expand:before{content:"\f0616"}.mdi-arrow-expand-all:before{content:"\f004c"}.mdi-arrow-expand-down:before{content:"\f0796"}.mdi-arrow-expand-horizontal:before{content:"\f084e"}.mdi-arrow-expand-left:before{content:"\f0797"}.mdi-arrow-expand-right:before{content:"\f0798"}.mdi-arrow-expand-up:before{content:"\f0799"}.mdi-arrow-expand-vertical:before{content:"\f084f"}.mdi-arrow-horizontal-lock:before{content:"\f115b"}.mdi-arrow-left:before{content:"\f004d"}.mdi-arrow-left-bold:before{content:"\f0731"}.mdi-arrow-left-bold-box:before{content:"\f0732"}.mdi-arrow-left-bold-box-outline:before{content:"\f0733"}.mdi-arrow-left-bold-circle:before{content:"\f004f"}.mdi-arrow-left-bold-circle-outline:before{content:"\f0050"}.mdi-arrow-left-bold-hexagon-outline:before{content:"\f0051"}.mdi-arrow-left-bold-outline:before{content:"\f09c0"}.mdi-arrow-left-bottom:before{content:"\f17a5"}.mdi-arrow-left-bottom-bold:before{content:"\f17a6"}.mdi-arrow-left-box:before{content:"\f06c1"}.mdi-arrow-left-circle:before{content:"\f0cdd"}.mdi-arrow-left-circle-outline:before{content:"\f0cde"}.mdi-arrow-left-drop-circle:before{content:"\f0052"}.mdi-arrow-left-drop-circle-outline:before{content:"\f0053"}.mdi-arrow-left-right:before{content:"\f0e73"}.mdi-arrow-left-right-bold:before{content:"\f0e74"}.mdi-arrow-left-right-bold-outline:before{content:"\f09c1"}.mdi-arrow-left-thick:before{content:"\f004e"}.mdi-arrow-left-thin:before{content:"\f19b1"}.mdi-arrow-left-thin-circle-outline:before{content:"\f159a"}.mdi-arrow-left-top:before{content:"\f17a7"}.mdi-arrow-left-top-bold:before{content:"\f17a8"}.mdi-arrow-oscillating:before{content:"\f1c91"}.mdi-arrow-oscillating-off:before{content:"\f1c92"}.mdi-arrow-projectile:before{content:"\f1840"}.mdi-arrow-projectile-multiple:before{content:"\f183f"}.mdi-arrow-right:before{content:"\f0054"}.mdi-arrow-right-bold:before{content:"\f0734"}.mdi-arrow-right-bold-box:before{content:"\f0735"}.mdi-arrow-right-bold-box-outline:before{content:"\f0736"}.mdi-arrow-right-bold-circle:before{content:"\f0056"}.mdi-arrow-right-bold-circle-outline:before{content:"\f0057"}.mdi-arrow-right-bold-hexagon-outline:before{content:"\f0058"}.mdi-arrow-right-bold-outline:before{content:"\f09c2"}.mdi-arrow-right-bottom:before{content:"\f17a9"}.mdi-arrow-right-bottom-bold:before{content:"\f17aa"}.mdi-arrow-right-box:before{content:"\f06c2"}.mdi-arrow-right-circle:before{content:"\f0cdf"}.mdi-arrow-right-circle-outline:before{content:"\f0ce0"}.mdi-arrow-right-drop-circle:before{content:"\f0059"}.mdi-arrow-right-drop-circle-outline:before{content:"\f005a"}.mdi-arrow-right-thick:before{content:"\f0055"}.mdi-arrow-right-thin:before{content:"\f19b0"}.mdi-arrow-right-thin-circle-outline:before{content:"\f1598"}.mdi-arrow-right-top:before{content:"\f17ab"}.mdi-arrow-right-top-bold:before{content:"\f17ac"}.mdi-arrow-split-horizontal:before{content:"\f093b"}.mdi-arrow-split-vertical:before{content:"\f093c"}.mdi-arrow-top-left:before{content:"\f005b"}.mdi-arrow-top-left-bold-box:before{content:"\f1968"}.mdi-arrow-top-left-bold-box-outline:before{content:"\f1969"}.mdi-arrow-top-left-bold-outline:before{content:"\f09c3"}.mdi-arrow-top-left-bottom-right:before{content:"\f0e75"}.mdi-arrow-top-left-bottom-right-bold:before{content:"\f0e76"}.mdi-arrow-top-left-thick:before{content:"\f09c4"}.mdi-arrow-top-left-thin:before{content:"\f19b5"}.mdi-arrow-top-left-thin-circle-outline:before{content:"\f1593"}.mdi-arrow-top-right:before{content:"\f005c"}.mdi-arrow-top-right-bold-box:before{content:"\f196a"}.mdi-arrow-top-right-bold-box-outline:before{content:"\f196b"}.mdi-arrow-top-right-bold-outline:before{content:"\f09c5"}.mdi-arrow-top-right-bottom-left:before{content:"\f0e77"}.mdi-arrow-top-right-bottom-left-bold:before{content:"\f0e78"}.mdi-arrow-top-right-thick:before{content:"\f09c6"}.mdi-arrow-top-right-thin:before{content:"\f19b4"}.mdi-arrow-top-right-thin-circle-outline:before{content:"\f1594"}.mdi-arrow-u-down-left:before{content:"\f17ad"}.mdi-arrow-u-down-left-bold:before{content:"\f17ae"}.mdi-arrow-u-down-right:before{content:"\f17af"}.mdi-arrow-u-down-right-bold:before{content:"\f17b0"}.mdi-arrow-u-left-bottom:before{content:"\f17b1"}.mdi-arrow-u-left-bottom-bold:before{content:"\f17b2"}.mdi-arrow-u-left-top:before{content:"\f17b3"}.mdi-arrow-u-left-top-bold:before{content:"\f17b4"}.mdi-arrow-u-right-bottom:before{content:"\f17b5"}.mdi-arrow-u-right-bottom-bold:before{content:"\f17b6"}.mdi-arrow-u-right-top:before{content:"\f17b7"}.mdi-arrow-u-right-top-bold:before{content:"\f17b8"}.mdi-arrow-u-up-left:before{content:"\f17b9"}.mdi-arrow-u-up-left-bold:before{content:"\f17ba"}.mdi-arrow-u-up-right:before{content:"\f17bb"}.mdi-arrow-u-up-right-bold:before{content:"\f17bc"}.mdi-arrow-up:before{content:"\f005d"}.mdi-arrow-up-bold:before{content:"\f0737"}.mdi-arrow-up-bold-box:before{content:"\f0738"}.mdi-arrow-up-bold-box-outline:before{content:"\f0739"}.mdi-arrow-up-bold-circle:before{content:"\f005f"}.mdi-arrow-up-bold-circle-outline:before{content:"\f0060"}.mdi-arrow-up-bold-hexagon-outline:before{content:"\f0061"}.mdi-arrow-up-bold-outline:before{content:"\f09c7"}.mdi-arrow-up-box:before{content:"\f06c3"}.mdi-arrow-up-circle:before{content:"\f0ce1"}.mdi-arrow-up-circle-outline:before{content:"\f0ce2"}.mdi-arrow-up-down:before{content:"\f0e79"}.mdi-arrow-up-down-bold:before{content:"\f0e7a"}.mdi-arrow-up-down-bold-outline:before{content:"\f09c8"}.mdi-arrow-up-drop-circle:before{content:"\f0062"}.mdi-arrow-up-drop-circle-outline:before{content:"\f0063"}.mdi-arrow-up-left:before{content:"\f17bd"}.mdi-arrow-up-left-bold:before{content:"\f17be"}.mdi-arrow-up-right:before{content:"\f17bf"}.mdi-arrow-up-right-bold:before{content:"\f17c0"}.mdi-arrow-up-thick:before{content:"\f005e"}.mdi-arrow-up-thin:before{content:"\f19b2"}.mdi-arrow-up-thin-circle-outline:before{content:"\f1597"}.mdi-arrow-vertical-lock:before{content:"\f115c"}.mdi-artboard:before{content:"\f1b9a"}.mdi-artstation:before{content:"\f0b5b"}.mdi-aspect-ratio:before{content:"\f0a24"}.mdi-assistant:before{content:"\f0064"}.mdi-asterisk:before{content:"\f06c4"}.mdi-asterisk-circle-outline:before{content:"\f1a27"}.mdi-at:before{content:"\f0065"}.mdi-atlassian:before{content:"\f0804"}.mdi-atm:before{content:"\f0d47"}.mdi-atom:before{content:"\f0768"}.mdi-atom-variant:before{content:"\f0e7b"}.mdi-attachment:before{content:"\f0066"}.mdi-attachment-check:before{content:"\f1ac1"}.mdi-attachment-lock:before{content:"\f19c4"}.mdi-attachment-minus:before{content:"\f1ac2"}.mdi-attachment-off:before{content:"\f1ac3"}.mdi-attachment-plus:before{content:"\f1ac4"}.mdi-attachment-remove:before{content:"\f1ac5"}.mdi-atv:before{content:"\f1b70"}.mdi-audio-input-rca:before{content:"\f186b"}.mdi-audio-input-stereo-minijack:before{content:"\f186c"}.mdi-audio-input-xlr:before{content:"\f186d"}.mdi-audio-video:before{content:"\f093d"}.mdi-audio-video-off:before{content:"\f11b6"}.mdi-augmented-reality:before{content:"\f0850"}.mdi-aurora:before{content:"\f1bb9"}.mdi-auto-download:before{content:"\f137e"}.mdi-auto-fix:before{content:"\f0068"}.mdi-auto-mode:before{content:"\f1c20"}.mdi-auto-upload:before{content:"\f0069"}.mdi-autorenew:before{content:"\f006a"}.mdi-autorenew-off:before{content:"\f19e7"}.mdi-av-timer:before{content:"\f006b"}.mdi-awning:before{content:"\f1b87"}.mdi-awning-outline:before{content:"\f1b88"}.mdi-aws:before{content:"\f0e0f"}.mdi-axe:before{content:"\f08c8"}.mdi-axe-battle:before{content:"\f1842"}.mdi-axis:before{content:"\f0d48"}.mdi-axis-arrow:before{content:"\f0d49"}.mdi-axis-arrow-info:before{content:"\f140e"}.mdi-axis-arrow-lock:before{content:"\f0d4a"}.mdi-axis-lock:before{content:"\f0d4b"}.mdi-axis-x-arrow:before{content:"\f0d4c"}.mdi-axis-x-arrow-lock:before{content:"\f0d4d"}.mdi-axis-x-rotate-clockwise:before{content:"\f0d4e"}.mdi-axis-x-rotate-counterclockwise:before{content:"\f0d4f"}.mdi-axis-x-y-arrow-lock:before{content:"\f0d50"}.mdi-axis-y-arrow:before{content:"\f0d51"}.mdi-axis-y-arrow-lock:before{content:"\f0d52"}.mdi-axis-y-rotate-clockwise:before{content:"\f0d53"}.mdi-axis-y-rotate-counterclockwise:before{content:"\f0d54"}.mdi-axis-z-arrow:before{content:"\f0d55"}.mdi-axis-z-arrow-lock:before{content:"\f0d56"}.mdi-axis-z-rotate-clockwise:before{content:"\f0d57"}.mdi-axis-z-rotate-counterclockwise:before{content:"\f0d58"}.mdi-babel:before{content:"\f0a25"}.mdi-baby:before{content:"\f006c"}.mdi-baby-bottle:before{content:"\f0f39"}.mdi-baby-bottle-outline:before{content:"\f0f3a"}.mdi-baby-buggy:before{content:"\f13e0"}.mdi-baby-buggy-off:before{content:"\f1af3"}.mdi-baby-carriage:before{content:"\f068f"}.mdi-baby-carriage-off:before{content:"\f0fa0"}.mdi-baby-face:before{content:"\f0e7c"}.mdi-baby-face-outline:before{content:"\f0e7d"}.mdi-backburger:before{content:"\f006d"}.mdi-backspace:before{content:"\f006e"}.mdi-backspace-outline:before{content:"\f0b5c"}.mdi-backspace-reverse:before{content:"\f0e7e"}.mdi-backspace-reverse-outline:before{content:"\f0e7f"}.mdi-backup-restore:before{content:"\f006f"}.mdi-bacteria:before{content:"\f0ed5"}.mdi-bacteria-outline:before{content:"\f0ed6"}.mdi-badge-account:before{content:"\f0da7"}.mdi-badge-account-alert:before{content:"\f0da8"}.mdi-badge-account-alert-outline:before{content:"\f0da9"}.mdi-badge-account-horizontal:before{content:"\f0e0d"}.mdi-badge-account-horizontal-outline:before{content:"\f0e0e"}.mdi-badge-account-outline:before{content:"\f0daa"}.mdi-badminton:before{content:"\f0851"}.mdi-bag-carry-on:before{content:"\f0f3b"}.mdi-bag-carry-on-check:before{content:"\f0d65"}.mdi-bag-carry-on-off:before{content:"\f0f3c"}.mdi-bag-checked:before{content:"\f0f3d"}.mdi-bag-personal:before{content:"\f0e10"}.mdi-bag-personal-off:before{content:"\f0e11"}.mdi-bag-personal-off-outline:before{content:"\f0e12"}.mdi-bag-personal-outline:before{content:"\f0e13"}.mdi-bag-personal-plus:before{content:"\f1ca4"}.mdi-bag-personal-plus-outline:before{content:"\f1ca5"}.mdi-bag-personal-tag:before{content:"\f1b0c"}.mdi-bag-personal-tag-outline:before{content:"\f1b0d"}.mdi-bag-suitcase:before{content:"\f158b"}.mdi-bag-suitcase-off:before{content:"\f158d"}.mdi-bag-suitcase-off-outline:before{content:"\f158e"}.mdi-bag-suitcase-outline:before{content:"\f158c"}.mdi-baguette:before{content:"\f0f3e"}.mdi-balcony:before{content:"\f1817"}.mdi-balloon:before{content:"\f0a26"}.mdi-ballot:before{content:"\f09c9"}.mdi-ballot-outline:before{content:"\f09ca"}.mdi-ballot-recount:before{content:"\f0c39"}.mdi-ballot-recount-outline:before{content:"\f0c3a"}.mdi-bandage:before{content:"\f0daf"}.mdi-bank:before{content:"\f0070"}.mdi-bank-check:before{content:"\f1655"}.mdi-bank-circle:before{content:"\f1c03"}.mdi-bank-circle-outline:before{content:"\f1c04"}.mdi-bank-minus:before{content:"\f0db0"}.mdi-bank-off:before{content:"\f1656"}.mdi-bank-off-outline:before{content:"\f1657"}.mdi-bank-outline:before{content:"\f0e80"}.mdi-bank-plus:before{content:"\f0db1"}.mdi-bank-remove:before{content:"\f0db2"}.mdi-bank-transfer:before{content:"\f0a27"}.mdi-bank-transfer-in:before{content:"\f0a28"}.mdi-bank-transfer-out:before{content:"\f0a29"}.mdi-barcode:before{content:"\f0071"}.mdi-barcode-off:before{content:"\f1236"}.mdi-barcode-scan:before{content:"\f0072"}.mdi-barley:before{content:"\f0073"}.mdi-barley-off:before{content:"\f0b5d"}.mdi-barn:before{content:"\f0b5e"}.mdi-barrel:before{content:"\f0074"}.mdi-barrel-outline:before{content:"\f1a28"}.mdi-baseball:before{content:"\f0852"}.mdi-baseball-bat:before{content:"\f0853"}.mdi-baseball-diamond:before{content:"\f15ec"}.mdi-baseball-diamond-outline:before{content:"\f15ed"}.mdi-baseball-outline:before{content:"\f1c5a"}.mdi-bash:before{content:"\f1183"}.mdi-basket:before{content:"\f0076"}.mdi-basket-check:before{content:"\f18e5"}.mdi-basket-check-outline:before{content:"\f18e6"}.mdi-basket-fill:before{content:"\f0077"}.mdi-basket-minus:before{content:"\f1523"}.mdi-basket-minus-outline:before{content:"\f1524"}.mdi-basket-off:before{content:"\f1525"}.mdi-basket-off-outline:before{content:"\f1526"}.mdi-basket-outline:before{content:"\f1181"}.mdi-basket-plus:before{content:"\f1527"}.mdi-basket-plus-outline:before{content:"\f1528"}.mdi-basket-remove:before{content:"\f1529"}.mdi-basket-remove-outline:before{content:"\f152a"}.mdi-basket-unfill:before{content:"\f0078"}.mdi-basketball:before{content:"\f0806"}.mdi-basketball-hoop:before{content:"\f0c3b"}.mdi-basketball-hoop-outline:before{content:"\f0c3c"}.mdi-bat:before{content:"\f0b5f"}.mdi-bathtub:before{content:"\f1818"}.mdi-bathtub-outline:before{content:"\f1819"}.mdi-battery:before{content:"\f0079"}.mdi-battery-10:before{content:"\f007a"}.mdi-battery-10-bluetooth:before{content:"\f093e"}.mdi-battery-20:before{content:"\f007b"}.mdi-battery-20-bluetooth:before{content:"\f093f"}.mdi-battery-30:before{content:"\f007c"}.mdi-battery-30-bluetooth:before{content:"\f0940"}.mdi-battery-40:before{content:"\f007d"}.mdi-battery-40-bluetooth:before{content:"\f0941"}.mdi-battery-50:before{content:"\f007e"}.mdi-battery-50-bluetooth:before{content:"\f0942"}.mdi-battery-60:before{content:"\f007f"}.mdi-battery-60-bluetooth:before{content:"\f0943"}.mdi-battery-70:before{content:"\f0080"}.mdi-battery-70-bluetooth:before{content:"\f0944"}.mdi-battery-80:before{content:"\f0081"}.mdi-battery-80-bluetooth:before{content:"\f0945"}.mdi-battery-90:before{content:"\f0082"}.mdi-battery-90-bluetooth:before{content:"\f0946"}.mdi-battery-alert:before{content:"\f0083"}.mdi-battery-alert-bluetooth:before{content:"\f0947"}.mdi-battery-alert-variant:before{content:"\f10cc"}.mdi-battery-alert-variant-outline:before{content:"\f10cd"}.mdi-battery-arrow-down:before{content:"\f17de"}.mdi-battery-arrow-down-outline:before{content:"\f17df"}.mdi-battery-arrow-up:before{content:"\f17e0"}.mdi-battery-arrow-up-outline:before{content:"\f17e1"}.mdi-battery-bluetooth:before{content:"\f0948"}.mdi-battery-bluetooth-variant:before{content:"\f0949"}.mdi-battery-charging:before{content:"\f0084"}.mdi-battery-charging-10:before{content:"\f089c"}.mdi-battery-charging-100:before{content:"\f0085"}.mdi-battery-charging-20:before{content:"\f0086"}.mdi-battery-charging-30:before{content:"\f0087"}.mdi-battery-charging-40:before{content:"\f0088"}.mdi-battery-charging-50:before{content:"\f089d"}.mdi-battery-charging-60:before{content:"\f0089"}.mdi-battery-charging-70:before{content:"\f089e"}.mdi-battery-charging-80:before{content:"\f008a"}.mdi-battery-charging-90:before{content:"\f008b"}.mdi-battery-charging-high:before{content:"\f12a6"}.mdi-battery-charging-low:before{content:"\f12a4"}.mdi-battery-charging-medium:before{content:"\f12a5"}.mdi-battery-charging-outline:before{content:"\f089f"}.mdi-battery-charging-wireless:before{content:"\f0807"}.mdi-battery-charging-wireless-10:before{content:"\f0808"}.mdi-battery-charging-wireless-20:before{content:"\f0809"}.mdi-battery-charging-wireless-30:before{content:"\f080a"}.mdi-battery-charging-wireless-40:before{content:"\f080b"}.mdi-battery-charging-wireless-50:before{content:"\f080c"}.mdi-battery-charging-wireless-60:before{content:"\f080d"}.mdi-battery-charging-wireless-70:before{content:"\f080e"}.mdi-battery-charging-wireless-80:before{content:"\f080f"}.mdi-battery-charging-wireless-90:before{content:"\f0810"}.mdi-battery-charging-wireless-alert:before{content:"\f0811"}.mdi-battery-charging-wireless-outline:before{content:"\f0812"}.mdi-battery-check:before{content:"\f17e2"}.mdi-battery-check-outline:before{content:"\f17e3"}.mdi-battery-clock:before{content:"\f19e5"}.mdi-battery-clock-outline:before{content:"\f19e6"}.mdi-battery-heart:before{content:"\f120f"}.mdi-battery-heart-outline:before{content:"\f1210"}.mdi-battery-heart-variant:before{content:"\f1211"}.mdi-battery-high:before{content:"\f12a3"}.mdi-battery-lock:before{content:"\f179c"}.mdi-battery-lock-open:before{content:"\f179d"}.mdi-battery-low:before{content:"\f12a1"}.mdi-battery-medium:before{content:"\f12a2"}.mdi-battery-minus:before{content:"\f17e4"}.mdi-battery-minus-outline:before{content:"\f17e5"}.mdi-battery-minus-variant:before{content:"\f008c"}.mdi-battery-negative:before{content:"\f008d"}.mdi-battery-off:before{content:"\f125d"}.mdi-battery-off-outline:before{content:"\f125e"}.mdi-battery-outline:before{content:"\f008e"}.mdi-battery-plus:before{content:"\f17e6"}.mdi-battery-plus-outline:before{content:"\f17e7"}.mdi-battery-plus-variant:before{content:"\f008f"}.mdi-battery-positive:before{content:"\f0090"}.mdi-battery-remove:before{content:"\f17e8"}.mdi-battery-remove-outline:before{content:"\f17e9"}.mdi-battery-sync:before{content:"\f1834"}.mdi-battery-sync-outline:before{content:"\f1835"}.mdi-battery-unknown:before{content:"\f0091"}.mdi-battery-unknown-bluetooth:before{content:"\f094a"}.mdi-beach:before{content:"\f0092"}.mdi-beaker:before{content:"\f0cea"}.mdi-beaker-alert:before{content:"\f1229"}.mdi-beaker-alert-outline:before{content:"\f122a"}.mdi-beaker-check:before{content:"\f122b"}.mdi-beaker-check-outline:before{content:"\f122c"}.mdi-beaker-minus:before{content:"\f122d"}.mdi-beaker-minus-outline:before{content:"\f122e"}.mdi-beaker-outline:before{content:"\f0690"}.mdi-beaker-plus:before{content:"\f122f"}.mdi-beaker-plus-outline:before{content:"\f1230"}.mdi-beaker-question:before{content:"\f1231"}.mdi-beaker-question-outline:before{content:"\f1232"}.mdi-beaker-remove:before{content:"\f1233"}.mdi-beaker-remove-outline:before{content:"\f1234"}.mdi-bed:before{content:"\f02e3"}.mdi-bed-clock:before{content:"\f1b94"}.mdi-bed-double:before{content:"\f0fd4"}.mdi-bed-double-outline:before{content:"\f0fd3"}.mdi-bed-empty:before{content:"\f08a0"}.mdi-bed-king:before{content:"\f0fd2"}.mdi-bed-king-outline:before{content:"\f0fd1"}.mdi-bed-outline:before{content:"\f0099"}.mdi-bed-queen:before{content:"\f0fd0"}.mdi-bed-queen-outline:before{content:"\f0fdb"}.mdi-bed-single:before{content:"\f106d"}.mdi-bed-single-outline:before{content:"\f106e"}.mdi-bee:before{content:"\f0fa1"}.mdi-bee-flower:before{content:"\f0fa2"}.mdi-beehive-off-outline:before{content:"\f13ed"}.mdi-beehive-outline:before{content:"\f10ce"}.mdi-beekeeper:before{content:"\f14e2"}.mdi-beer:before{content:"\f0098"}.mdi-beer-outline:before{content:"\f130c"}.mdi-bell:before{content:"\f009a"}.mdi-bell-alert:before{content:"\f0d59"}.mdi-bell-alert-outline:before{content:"\f0e81"}.mdi-bell-badge:before{content:"\f116b"}.mdi-bell-badge-outline:before{content:"\f0178"}.mdi-bell-cancel:before{content:"\f13e7"}.mdi-bell-cancel-outline:before{content:"\f13e8"}.mdi-bell-check:before{content:"\f11e5"}.mdi-bell-check-outline:before{content:"\f11e6"}.mdi-bell-circle:before{content:"\f0d5a"}.mdi-bell-circle-outline:before{content:"\f0d5b"}.mdi-bell-cog:before{content:"\f1a29"}.mdi-bell-cog-outline:before{content:"\f1a2a"}.mdi-bell-minus:before{content:"\f13e9"}.mdi-bell-minus-outline:before{content:"\f13ea"}.mdi-bell-off:before{content:"\f009b"}.mdi-bell-off-outline:before{content:"\f0a91"}.mdi-bell-outline:before{content:"\f009c"}.mdi-bell-plus:before{content:"\f009d"}.mdi-bell-plus-outline:before{content:"\f0a92"}.mdi-bell-remove:before{content:"\f13eb"}.mdi-bell-remove-outline:before{content:"\f13ec"}.mdi-bell-ring:before{content:"\f009e"}.mdi-bell-ring-outline:before{content:"\f009f"}.mdi-bell-sleep:before{content:"\f00a0"}.mdi-bell-sleep-outline:before{content:"\f0a93"}.mdi-bench:before{content:"\f1c21"}.mdi-bench-back:before{content:"\f1c22"}.mdi-beta:before{content:"\f00a1"}.mdi-betamax:before{content:"\f09cb"}.mdi-biathlon:before{content:"\f0e14"}.mdi-bicycle:before{content:"\f109c"}.mdi-bicycle-basket:before{content:"\f1235"}.mdi-bicycle-cargo:before{content:"\f189c"}.mdi-bicycle-electric:before{content:"\f15b4"}.mdi-bicycle-penny-farthing:before{content:"\f15e9"}.mdi-bike:before{content:"\f00a3"}.mdi-bike-fast:before{content:"\f111f"}.mdi-bike-pedal:before{content:"\f1c23"}.mdi-bike-pedal-clipless:before{content:"\f1c24"}.mdi-bike-pedal-mountain:before{content:"\f1c25"}.mdi-billboard:before{content:"\f1010"}.mdi-billiards:before{content:"\f0b61"}.mdi-billiards-rack:before{content:"\f0b62"}.mdi-binoculars:before{content:"\f00a5"}.mdi-bio:before{content:"\f00a6"}.mdi-biohazard:before{content:"\f00a7"}.mdi-bird:before{content:"\f15c6"}.mdi-bitbucket:before{content:"\f00a8"}.mdi-bitcoin:before{content:"\f0813"}.mdi-black-mesa:before{content:"\f00a9"}.mdi-blender:before{content:"\f0ceb"}.mdi-blender-outline:before{content:"\f181a"}.mdi-blender-software:before{content:"\f00ab"}.mdi-blinds:before{content:"\f00ac"}.mdi-blinds-horizontal:before{content:"\f1a2b"}.mdi-blinds-horizontal-closed:before{content:"\f1a2c"}.mdi-blinds-open:before{content:"\f1011"}.mdi-blinds-vertical:before{content:"\f1a2d"}.mdi-blinds-vertical-closed:before{content:"\f1a2e"}.mdi-block-helper:before{content:"\f00ad"}.mdi-blood-bag:before{content:"\f0cec"}.mdi-bluetooth:before{content:"\f00af"}.mdi-bluetooth-audio:before{content:"\f00b0"}.mdi-bluetooth-connect:before{content:"\f00b1"}.mdi-bluetooth-off:before{content:"\f00b2"}.mdi-bluetooth-settings:before{content:"\f00b3"}.mdi-bluetooth-transfer:before{content:"\f00b4"}.mdi-blur:before{content:"\f00b5"}.mdi-blur-linear:before{content:"\f00b6"}.mdi-blur-off:before{content:"\f00b7"}.mdi-blur-radial:before{content:"\f00b8"}.mdi-bolt:before{content:"\f0db3"}.mdi-bomb:before{content:"\f0691"}.mdi-bomb-off:before{content:"\f06c5"}.mdi-bone:before{content:"\f00b9"}.mdi-bone-off:before{content:"\f19e0"}.mdi-book:before{content:"\f00ba"}.mdi-book-account:before{content:"\f13ad"}.mdi-book-account-outline:before{content:"\f13ae"}.mdi-book-alert:before{content:"\f167c"}.mdi-book-alert-outline:before{content:"\f167d"}.mdi-book-alphabet:before{content:"\f061d"}.mdi-book-arrow-down:before{content:"\f167e"}.mdi-book-arrow-down-outline:before{content:"\f167f"}.mdi-book-arrow-left:before{content:"\f1680"}.mdi-book-arrow-left-outline:before{content:"\f1681"}.mdi-book-arrow-right:before{content:"\f1682"}.mdi-book-arrow-right-outline:before{content:"\f1683"}.mdi-book-arrow-up:before{content:"\f1684"}.mdi-book-arrow-up-outline:before{content:"\f1685"}.mdi-book-cancel:before{content:"\f1686"}.mdi-book-cancel-outline:before{content:"\f1687"}.mdi-book-check:before{content:"\f14f3"}.mdi-book-check-outline:before{content:"\f14f4"}.mdi-book-clock:before{content:"\f1688"}.mdi-book-clock-outline:before{content:"\f1689"}.mdi-book-cog:before{content:"\f168a"}.mdi-book-cog-outline:before{content:"\f168b"}.mdi-book-cross:before{content:"\f00a2"}.mdi-book-edit:before{content:"\f168c"}.mdi-book-edit-outline:before{content:"\f168d"}.mdi-book-education:before{content:"\f16c9"}.mdi-book-education-outline:before{content:"\f16ca"}.mdi-book-heart:before{content:"\f1a1d"}.mdi-book-heart-outline:before{content:"\f1a1e"}.mdi-book-information-variant:before{content:"\f106f"}.mdi-book-lock:before{content:"\f079a"}.mdi-book-lock-open:before{content:"\f079b"}.mdi-book-lock-open-outline:before{content:"\f168e"}.mdi-book-lock-outline:before{content:"\f168f"}.mdi-book-marker:before{content:"\f1690"}.mdi-book-marker-outline:before{content:"\f1691"}.mdi-book-minus:before{content:"\f05d9"}.mdi-book-minus-multiple:before{content:"\f0a94"}.mdi-book-minus-multiple-outline:before{content:"\f090b"}.mdi-book-minus-outline:before{content:"\f1692"}.mdi-book-multiple:before{content:"\f00bb"}.mdi-book-multiple-outline:before{content:"\f0436"}.mdi-book-music:before{content:"\f0067"}.mdi-book-music-outline:before{content:"\f1693"}.mdi-book-off:before{content:"\f1694"}.mdi-book-off-outline:before{content:"\f1695"}.mdi-book-open:before{content:"\f00bd"}.mdi-book-open-blank-variant:before{content:"\f00be"}.mdi-book-open-outline:before{content:"\f0b63"}.mdi-book-open-page-variant:before{content:"\f05da"}.mdi-book-open-page-variant-outline:before{content:"\f15d6"}.mdi-book-open-variant:before{content:"\f14f7"}.mdi-book-outline:before{content:"\f0b64"}.mdi-book-play:before{content:"\f0e82"}.mdi-book-play-outline:before{content:"\f0e83"}.mdi-book-plus:before{content:"\f05db"}.mdi-book-plus-multiple:before{content:"\f0a95"}.mdi-book-plus-multiple-outline:before{content:"\f0ade"}.mdi-book-plus-outline:before{content:"\f1696"}.mdi-book-refresh:before{content:"\f1697"}.mdi-book-refresh-outline:before{content:"\f1698"}.mdi-book-remove:before{content:"\f0a97"}.mdi-book-remove-multiple:before{content:"\f0a96"}.mdi-book-remove-multiple-outline:before{content:"\f04ca"}.mdi-book-remove-outline:before{content:"\f1699"}.mdi-book-search:before{content:"\f0e84"}.mdi-book-search-outline:before{content:"\f0e85"}.mdi-book-settings:before{content:"\f169a"}.mdi-book-settings-outline:before{content:"\f169b"}.mdi-book-sync:before{content:"\f169c"}.mdi-book-sync-outline:before{content:"\f16c8"}.mdi-book-variant:before{content:"\f00bf"}.mdi-bookmark:before{content:"\f00c0"}.mdi-bookmark-box:before{content:"\f1b75"}.mdi-bookmark-box-multiple:before{content:"\f196c"}.mdi-bookmark-box-multiple-outline:before{content:"\f196d"}.mdi-bookmark-box-outline:before{content:"\f1b76"}.mdi-bookmark-check:before{content:"\f00c1"}.mdi-bookmark-check-outline:before{content:"\f137b"}.mdi-bookmark-minus:before{content:"\f09cc"}.mdi-bookmark-minus-outline:before{content:"\f09cd"}.mdi-bookmark-multiple:before{content:"\f0e15"}.mdi-bookmark-multiple-outline:before{content:"\f0e16"}.mdi-bookmark-music:before{content:"\f00c2"}.mdi-bookmark-music-outline:before{content:"\f1379"}.mdi-bookmark-off:before{content:"\f09ce"}.mdi-bookmark-off-outline:before{content:"\f09cf"}.mdi-bookmark-outline:before{content:"\f00c3"}.mdi-bookmark-plus:before{content:"\f00c5"}.mdi-bookmark-plus-outline:before{content:"\f00c4"}.mdi-bookmark-remove:before{content:"\f00c6"}.mdi-bookmark-remove-outline:before{content:"\f137a"}.mdi-bookshelf:before{content:"\f125f"}.mdi-boom-gate:before{content:"\f0e86"}.mdi-boom-gate-alert:before{content:"\f0e87"}.mdi-boom-gate-alert-outline:before{content:"\f0e88"}.mdi-boom-gate-arrow-down:before{content:"\f0e89"}.mdi-boom-gate-arrow-down-outline:before{content:"\f0e8a"}.mdi-boom-gate-arrow-up:before{content:"\f0e8c"}.mdi-boom-gate-arrow-up-outline:before{content:"\f0e8d"}.mdi-boom-gate-outline:before{content:"\f0e8b"}.mdi-boom-gate-up:before{content:"\f17f9"}.mdi-boom-gate-up-outline:before{content:"\f17fa"}.mdi-boombox:before{content:"\f05dc"}.mdi-boomerang:before{content:"\f10cf"}.mdi-bootstrap:before{content:"\f06c6"}.mdi-border-all:before{content:"\f00c7"}.mdi-border-all-variant:before{content:"\f08a1"}.mdi-border-bottom:before{content:"\f00c8"}.mdi-border-bottom-variant:before{content:"\f08a2"}.mdi-border-color:before{content:"\f00c9"}.mdi-border-horizontal:before{content:"\f00ca"}.mdi-border-inside:before{content:"\f00cb"}.mdi-border-left:before{content:"\f00cc"}.mdi-border-left-variant:before{content:"\f08a3"}.mdi-border-none:before{content:"\f00cd"}.mdi-border-none-variant:before{content:"\f08a4"}.mdi-border-outside:before{content:"\f00ce"}.mdi-border-radius:before{content:"\f1af4"}.mdi-border-right:before{content:"\f00cf"}.mdi-border-right-variant:before{content:"\f08a5"}.mdi-border-style:before{content:"\f00d0"}.mdi-border-top:before{content:"\f00d1"}.mdi-border-top-variant:before{content:"\f08a6"}.mdi-border-vertical:before{content:"\f00d2"}.mdi-bottle-soda:before{content:"\f1070"}.mdi-bottle-soda-classic:before{content:"\f1071"}.mdi-bottle-soda-classic-outline:before{content:"\f1363"}.mdi-bottle-soda-outline:before{content:"\f1072"}.mdi-bottle-tonic:before{content:"\f112e"}.mdi-bottle-tonic-outline:before{content:"\f112f"}.mdi-bottle-tonic-plus:before{content:"\f1130"}.mdi-bottle-tonic-plus-outline:before{content:"\f1131"}.mdi-bottle-tonic-skull:before{content:"\f1132"}.mdi-bottle-tonic-skull-outline:before{content:"\f1133"}.mdi-bottle-wine:before{content:"\f0854"}.mdi-bottle-wine-outline:before{content:"\f1310"}.mdi-bow-arrow:before{content:"\f1841"}.mdi-bow-tie:before{content:"\f0678"}.mdi-bowl:before{content:"\f028e"}.mdi-bowl-mix:before{content:"\f0617"}.mdi-bowl-mix-outline:before{content:"\f02e4"}.mdi-bowl-outline:before{content:"\f02a9"}.mdi-bowling:before{content:"\f00d3"}.mdi-box:before{content:"\f00d4"}.mdi-box-cutter:before{content:"\f00d5"}.mdi-box-cutter-off:before{content:"\f0b4a"}.mdi-box-shadow:before{content:"\f0637"}.mdi-boxing-glove:before{content:"\f0b65"}.mdi-braille:before{content:"\f09d0"}.mdi-brain:before{content:"\f09d1"}.mdi-bread-slice:before{content:"\f0cee"}.mdi-bread-slice-outline:before{content:"\f0cef"}.mdi-bridge:before{content:"\f0618"}.mdi-briefcase:before{content:"\f00d6"}.mdi-briefcase-account:before{content:"\f0cf0"}.mdi-briefcase-account-outline:before{content:"\f0cf1"}.mdi-briefcase-arrow-left-right:before{content:"\f1a8d"}.mdi-briefcase-arrow-left-right-outline:before{content:"\f1a8e"}.mdi-briefcase-arrow-up-down:before{content:"\f1a8f"}.mdi-briefcase-arrow-up-down-outline:before{content:"\f1a90"}.mdi-briefcase-check:before{content:"\f00d7"}.mdi-briefcase-check-outline:before{content:"\f131e"}.mdi-briefcase-clock:before{content:"\f10d0"}.mdi-briefcase-clock-outline:before{content:"\f10d1"}.mdi-briefcase-download:before{content:"\f00d8"}.mdi-briefcase-download-outline:before{content:"\f0c3d"}.mdi-briefcase-edit:before{content:"\f0a98"}.mdi-briefcase-edit-outline:before{content:"\f0c3e"}.mdi-briefcase-eye:before{content:"\f17d9"}.mdi-briefcase-eye-outline:before{content:"\f17da"}.mdi-briefcase-minus:before{content:"\f0a2a"}.mdi-briefcase-minus-outline:before{content:"\f0c3f"}.mdi-briefcase-off:before{content:"\f1658"}.mdi-briefcase-off-outline:before{content:"\f1659"}.mdi-briefcase-outline:before{content:"\f0814"}.mdi-briefcase-plus:before{content:"\f0a2b"}.mdi-briefcase-plus-outline:before{content:"\f0c40"}.mdi-briefcase-remove:before{content:"\f0a2c"}.mdi-briefcase-remove-outline:before{content:"\f0c41"}.mdi-briefcase-search:before{content:"\f0a2d"}.mdi-briefcase-search-outline:before{content:"\f0c42"}.mdi-briefcase-upload:before{content:"\f00d9"}.mdi-briefcase-upload-outline:before{content:"\f0c43"}.mdi-briefcase-variant:before{content:"\f1494"}.mdi-briefcase-variant-off:before{content:"\f165a"}.mdi-briefcase-variant-off-outline:before{content:"\f165b"}.mdi-briefcase-variant-outline:before{content:"\f1495"}.mdi-brightness-1:before{content:"\f00da"}.mdi-brightness-2:before{content:"\f00db"}.mdi-brightness-3:before{content:"\f00dc"}.mdi-brightness-4:before{content:"\f00dd"}.mdi-brightness-5:before{content:"\f00de"}.mdi-brightness-6:before{content:"\f00df"}.mdi-brightness-7:before{content:"\f00e0"}.mdi-brightness-auto:before{content:"\f00e1"}.mdi-brightness-percent:before{content:"\f0cf2"}.mdi-broadcast:before{content:"\f1720"}.mdi-broadcast-off:before{content:"\f1721"}.mdi-broom:before{content:"\f00e2"}.mdi-brush:before{content:"\f00e3"}.mdi-brush-off:before{content:"\f1771"}.mdi-brush-outline:before{content:"\f1a0d"}.mdi-brush-variant:before{content:"\f1813"}.mdi-bucket:before{content:"\f1415"}.mdi-bucket-outline:before{content:"\f1416"}.mdi-buffet:before{content:"\f0578"}.mdi-bug:before{content:"\f00e4"}.mdi-bug-check:before{content:"\f0a2e"}.mdi-bug-check-outline:before{content:"\f0a2f"}.mdi-bug-outline:before{content:"\f0a30"}.mdi-bug-pause:before{content:"\f1af5"}.mdi-bug-pause-outline:before{content:"\f1af6"}.mdi-bug-play:before{content:"\f1af7"}.mdi-bug-play-outline:before{content:"\f1af8"}.mdi-bug-stop:before{content:"\f1af9"}.mdi-bug-stop-outline:before{content:"\f1afa"}.mdi-bugle:before{content:"\f0db4"}.mdi-bulkhead-light:before{content:"\f1a2f"}.mdi-bulldozer:before{content:"\f0b22"}.mdi-bullet:before{content:"\f0cf3"}.mdi-bulletin-board:before{content:"\f00e5"}.mdi-bullhorn:before{content:"\f00e6"}.mdi-bullhorn-outline:before{content:"\f0b23"}.mdi-bullhorn-variant:before{content:"\f196e"}.mdi-bullhorn-variant-outline:before{content:"\f196f"}.mdi-bullseye:before{content:"\f05dd"}.mdi-bullseye-arrow:before{content:"\f08c9"}.mdi-bulma:before{content:"\f12e7"}.mdi-bunk-bed:before{content:"\f1302"}.mdi-bunk-bed-outline:before{content:"\f0097"}.mdi-bus:before{content:"\f00e7"}.mdi-bus-alert:before{content:"\f0a99"}.mdi-bus-articulated-end:before{content:"\f079c"}.mdi-bus-articulated-front:before{content:"\f079d"}.mdi-bus-clock:before{content:"\f08ca"}.mdi-bus-double-decker:before{content:"\f079e"}.mdi-bus-electric:before{content:"\f191d"}.mdi-bus-marker:before{content:"\f1212"}.mdi-bus-multiple:before{content:"\f0f3f"}.mdi-bus-school:before{content:"\f079f"}.mdi-bus-side:before{content:"\f07a0"}.mdi-bus-sign:before{content:"\f1cc1"}.mdi-bus-stop:before{content:"\f1012"}.mdi-bus-stop-covered:before{content:"\f1013"}.mdi-bus-stop-uncovered:before{content:"\f1014"}.mdi-bus-wrench:before{content:"\f1cc2"}.mdi-butterfly:before{content:"\f1589"}.mdi-butterfly-outline:before{content:"\f158a"}.mdi-button-cursor:before{content:"\f1b4f"}.mdi-button-pointer:before{content:"\f1b50"}.mdi-cabin-a-frame:before{content:"\f188c"}.mdi-cable-data:before{content:"\f1394"}.mdi-cached:before{content:"\f00e8"}.mdi-cactus:before{content:"\f0db5"}.mdi-cake:before{content:"\f00e9"}.mdi-cake-layered:before{content:"\f00ea"}.mdi-cake-variant:before{content:"\f00eb"}.mdi-cake-variant-outline:before{content:"\f17f0"}.mdi-calculator:before{content:"\f00ec"}.mdi-calculator-variant:before{content:"\f0a9a"}.mdi-calculator-variant-outline:before{content:"\f15a6"}.mdi-calendar:before{content:"\f00ed"}.mdi-calendar-account:before{content:"\f0ed7"}.mdi-calendar-account-outline:before{content:"\f0ed8"}.mdi-calendar-alert:before{content:"\f0a31"}.mdi-calendar-alert-outline:before{content:"\f1b62"}.mdi-calendar-arrow-left:before{content:"\f1134"}.mdi-calendar-arrow-right:before{content:"\f1135"}.mdi-calendar-badge:before{content:"\f1b9d"}.mdi-calendar-badge-outline:before{content:"\f1b9e"}.mdi-calendar-blank:before{content:"\f00ee"}.mdi-calendar-blank-multiple:before{content:"\f1073"}.mdi-calendar-blank-outline:before{content:"\f0b66"}.mdi-calendar-check:before{content:"\f00ef"}.mdi-calendar-check-outline:before{content:"\f0c44"}.mdi-calendar-clock:before{content:"\f00f0"}.mdi-calendar-clock-outline:before{content:"\f16e1"}.mdi-calendar-collapse-horizontal:before{content:"\f189d"}.mdi-calendar-collapse-horizontal-outline:before{content:"\f1b63"}.mdi-calendar-cursor:before{content:"\f157b"}.mdi-calendar-cursor-outline:before{content:"\f1b64"}.mdi-calendar-edit:before{content:"\f08a7"}.mdi-calendar-edit-outline:before{content:"\f1b65"}.mdi-calendar-end:before{content:"\f166c"}.mdi-calendar-end-outline:before{content:"\f1b66"}.mdi-calendar-expand-horizontal:before{content:"\f189e"}.mdi-calendar-expand-horizontal-outline:before{content:"\f1b67"}.mdi-calendar-export:before{content:"\f0b24"}.mdi-calendar-export-outline:before{content:"\f1b68"}.mdi-calendar-filter:before{content:"\f1a32"}.mdi-calendar-filter-outline:before{content:"\f1a33"}.mdi-calendar-heart:before{content:"\f09d2"}.mdi-calendar-heart-outline:before{content:"\f1b69"}.mdi-calendar-import:before{content:"\f0b25"}.mdi-calendar-import-outline:before{content:"\f1b6a"}.mdi-calendar-lock:before{content:"\f1641"}.mdi-calendar-lock-open:before{content:"\f1b5b"}.mdi-calendar-lock-open-outline:before{content:"\f1b5c"}.mdi-calendar-lock-outline:before{content:"\f1642"}.mdi-calendar-minus:before{content:"\f0d5c"}.mdi-calendar-minus-outline:before{content:"\f1b6b"}.mdi-calendar-month:before{content:"\f0e17"}.mdi-calendar-month-outline:before{content:"\f0e18"}.mdi-calendar-multiple:before{content:"\f00f1"}.mdi-calendar-multiple-check:before{content:"\f00f2"}.mdi-calendar-multiselect:before{content:"\f0a32"}.mdi-calendar-multiselect-outline:before{content:"\f1b55"}.mdi-calendar-outline:before{content:"\f0b67"}.mdi-calendar-plus:before{content:"\f00f3"}.mdi-calendar-plus-outline:before{content:"\f1b6c"}.mdi-calendar-question:before{content:"\f0692"}.mdi-calendar-question-outline:before{content:"\f1b6d"}.mdi-calendar-range:before{content:"\f0679"}.mdi-calendar-range-outline:before{content:"\f0b68"}.mdi-calendar-refresh:before{content:"\f01e1"}.mdi-calendar-refresh-outline:before{content:"\f0203"}.mdi-calendar-remove:before{content:"\f00f4"}.mdi-calendar-remove-outline:before{content:"\f0c45"}.mdi-calendar-search:before{content:"\f094c"}.mdi-calendar-search-outline:before{content:"\f1b6e"}.mdi-calendar-star:before{content:"\f09d3"}.mdi-calendar-star-four-points:before{content:"\f1c1f"}.mdi-calendar-star-outline:before{content:"\f1b53"}.mdi-calendar-start:before{content:"\f166d"}.mdi-calendar-start-outline:before{content:"\f1b6f"}.mdi-calendar-sync:before{content:"\f0e8e"}.mdi-calendar-sync-outline:before{content:"\f0e8f"}.mdi-calendar-text:before{content:"\f00f5"}.mdi-calendar-text-outline:before{content:"\f0c46"}.mdi-calendar-today:before{content:"\f00f6"}.mdi-calendar-today-outline:before{content:"\f1a30"}.mdi-calendar-week:before{content:"\f0a33"}.mdi-calendar-week-begin:before{content:"\f0a34"}.mdi-calendar-week-begin-outline:before{content:"\f1a31"}.mdi-calendar-week-outline:before{content:"\f1a34"}.mdi-calendar-weekend:before{content:"\f0ed9"}.mdi-calendar-weekend-outline:before{content:"\f0eda"}.mdi-call-made:before{content:"\f00f7"}.mdi-call-merge:before{content:"\f00f8"}.mdi-call-missed:before{content:"\f00f9"}.mdi-call-received:before{content:"\f00fa"}.mdi-call-split:before{content:"\f00fb"}.mdi-camcorder:before{content:"\f00fc"}.mdi-camcorder-off:before{content:"\f00ff"}.mdi-camera:before{content:"\f0100"}.mdi-camera-account:before{content:"\f08cb"}.mdi-camera-burst:before{content:"\f0693"}.mdi-camera-control:before{content:"\f0b69"}.mdi-camera-document:before{content:"\f1871"}.mdi-camera-document-off:before{content:"\f1872"}.mdi-camera-enhance:before{content:"\f0101"}.mdi-camera-enhance-outline:before{content:"\f0b6a"}.mdi-camera-flip:before{content:"\f15d9"}.mdi-camera-flip-outline:before{content:"\f15da"}.mdi-camera-front:before{content:"\f0102"}.mdi-camera-front-variant:before{content:"\f0103"}.mdi-camera-gopro:before{content:"\f07a1"}.mdi-camera-image:before{content:"\f08cc"}.mdi-camera-iris:before{content:"\f0104"}.mdi-camera-lock:before{content:"\f1a14"}.mdi-camera-lock-open:before{content:"\f1c0d"}.mdi-camera-lock-open-outline:before{content:"\f1c0e"}.mdi-camera-lock-outline:before{content:"\f1a15"}.mdi-camera-marker:before{content:"\f19a7"}.mdi-camera-marker-outline:before{content:"\f19a8"}.mdi-camera-metering-center:before{content:"\f07a2"}.mdi-camera-metering-matrix:before{content:"\f07a3"}.mdi-camera-metering-partial:before{content:"\f07a4"}.mdi-camera-metering-spot:before{content:"\f07a5"}.mdi-camera-off:before{content:"\f05df"}.mdi-camera-off-outline:before{content:"\f19bf"}.mdi-camera-outline:before{content:"\f0d5d"}.mdi-camera-party-mode:before{content:"\f0105"}.mdi-camera-plus:before{content:"\f0edb"}.mdi-camera-plus-outline:before{content:"\f0edc"}.mdi-camera-rear:before{content:"\f0106"}.mdi-camera-rear-variant:before{content:"\f0107"}.mdi-camera-retake:before{content:"\f0e19"}.mdi-camera-retake-outline:before{content:"\f0e1a"}.mdi-camera-switch:before{content:"\f0108"}.mdi-camera-switch-outline:before{content:"\f084a"}.mdi-camera-timer:before{content:"\f0109"}.mdi-camera-wireless:before{content:"\f0db6"}.mdi-camera-wireless-outline:before{content:"\f0db7"}.mdi-campfire:before{content:"\f0edd"}.mdi-cancel:before{content:"\f073a"}.mdi-candelabra:before{content:"\f17d2"}.mdi-candelabra-fire:before{content:"\f17d3"}.mdi-candle:before{content:"\f05e2"}.mdi-candy:before{content:"\f1970"}.mdi-candy-off:before{content:"\f1971"}.mdi-candy-off-outline:before{content:"\f1972"}.mdi-candy-outline:before{content:"\f1973"}.mdi-candycane:before{content:"\f010a"}.mdi-cannabis:before{content:"\f07a6"}.mdi-cannabis-off:before{content:"\f166e"}.mdi-caps-lock:before{content:"\f0a9b"}.mdi-car:before{content:"\f010b"}.mdi-car-2-plus:before{content:"\f1015"}.mdi-car-3-plus:before{content:"\f1016"}.mdi-car-arrow-left:before{content:"\f13b2"}.mdi-car-arrow-right:before{content:"\f13b3"}.mdi-car-back:before{content:"\f0e1b"}.mdi-car-battery:before{content:"\f010c"}.mdi-car-brake-abs:before{content:"\f0c47"}.mdi-car-brake-alert:before{content:"\f0c48"}.mdi-car-brake-fluid-level:before{content:"\f1909"}.mdi-car-brake-hold:before{content:"\f0d5e"}.mdi-car-brake-low-pressure:before{content:"\f190a"}.mdi-car-brake-parking:before{content:"\f0d5f"}.mdi-car-brake-retarder:before{content:"\f1017"}.mdi-car-brake-temperature:before{content:"\f190b"}.mdi-car-brake-worn-linings:before{content:"\f190c"}.mdi-car-child-seat:before{content:"\f0fa3"}.mdi-car-clock:before{content:"\f1974"}.mdi-car-clutch:before{content:"\f1018"}.mdi-car-cog:before{content:"\f13cc"}.mdi-car-connected:before{content:"\f010d"}.mdi-car-convertible:before{content:"\f07a7"}.mdi-car-coolant-level:before{content:"\f1019"}.mdi-car-cruise-control:before{content:"\f0d60"}.mdi-car-defrost-front:before{content:"\f0d61"}.mdi-car-defrost-rear:before{content:"\f0d62"}.mdi-car-door:before{content:"\f0b6b"}.mdi-car-door-lock:before{content:"\f109d"}.mdi-car-door-lock-open:before{content:"\f1c81"}.mdi-car-electric:before{content:"\f0b6c"}.mdi-car-electric-outline:before{content:"\f15b5"}.mdi-car-emergency:before{content:"\f160f"}.mdi-car-esp:before{content:"\f0c49"}.mdi-car-estate:before{content:"\f07a8"}.mdi-car-hatchback:before{content:"\f07a9"}.mdi-car-info:before{content:"\f11be"}.mdi-car-key:before{content:"\f0b6d"}.mdi-car-lifted-pickup:before{content:"\f152d"}.mdi-car-light-alert:before{content:"\f190d"}.mdi-car-light-dimmed:before{content:"\f0c4a"}.mdi-car-light-fog:before{content:"\f0c4b"}.mdi-car-light-high:before{content:"\f0c4c"}.mdi-car-limousine:before{content:"\f08cd"}.mdi-car-multiple:before{content:"\f0b6e"}.mdi-car-off:before{content:"\f0e1c"}.mdi-car-outline:before{content:"\f14ed"}.mdi-car-parking-lights:before{content:"\f0d63"}.mdi-car-pickup:before{content:"\f07aa"}.mdi-car-search:before{content:"\f1b8d"}.mdi-car-search-outline:before{content:"\f1b8e"}.mdi-car-seat:before{content:"\f0fa4"}.mdi-car-seat-cooler:before{content:"\f0fa5"}.mdi-car-seat-heater:before{content:"\f0fa6"}.mdi-car-select:before{content:"\f1879"}.mdi-car-settings:before{content:"\f13cd"}.mdi-car-shift-pattern:before{content:"\f0f40"}.mdi-car-side:before{content:"\f07ab"}.mdi-car-speed-limiter:before{content:"\f190e"}.mdi-car-sports:before{content:"\f07ac"}.mdi-car-tire-alert:before{content:"\f0c4d"}.mdi-car-traction-control:before{content:"\f0d64"}.mdi-car-turbocharger:before{content:"\f101a"}.mdi-car-wash:before{content:"\f010e"}.mdi-car-windshield:before{content:"\f101b"}.mdi-car-windshield-outline:before{content:"\f101c"}.mdi-car-wireless:before{content:"\f1878"}.mdi-car-wrench:before{content:"\f1814"}.mdi-carabiner:before{content:"\f14c0"}.mdi-caravan:before{content:"\f07ad"}.mdi-card:before{content:"\f0b6f"}.mdi-card-account-details:before{content:"\f05d2"}.mdi-card-account-details-outline:before{content:"\f0dab"}.mdi-card-account-details-star:before{content:"\f02a3"}.mdi-card-account-details-star-outline:before{content:"\f06db"}.mdi-card-account-mail:before{content:"\f018e"}.mdi-card-account-mail-outline:before{content:"\f0e98"}.mdi-card-account-phone:before{content:"\f0e99"}.mdi-card-account-phone-outline:before{content:"\f0e9a"}.mdi-card-bulleted:before{content:"\f0b70"}.mdi-card-bulleted-off:before{content:"\f0b71"}.mdi-card-bulleted-off-outline:before{content:"\f0b72"}.mdi-card-bulleted-outline:before{content:"\f0b73"}.mdi-card-bulleted-settings:before{content:"\f0b74"}.mdi-card-bulleted-settings-outline:before{content:"\f0b75"}.mdi-card-minus:before{content:"\f1600"}.mdi-card-minus-outline:before{content:"\f1601"}.mdi-card-multiple:before{content:"\f17f1"}.mdi-card-multiple-outline:before{content:"\f17f2"}.mdi-card-off:before{content:"\f1602"}.mdi-card-off-outline:before{content:"\f1603"}.mdi-card-outline:before{content:"\f0b76"}.mdi-card-plus:before{content:"\f11ff"}.mdi-card-plus-outline:before{content:"\f1200"}.mdi-card-remove:before{content:"\f1604"}.mdi-card-remove-outline:before{content:"\f1605"}.mdi-card-search:before{content:"\f1074"}.mdi-card-search-outline:before{content:"\f1075"}.mdi-card-text:before{content:"\f0b77"}.mdi-card-text-outline:before{content:"\f0b78"}.mdi-cards:before{content:"\f0638"}.mdi-cards-club:before{content:"\f08ce"}.mdi-cards-club-outline:before{content:"\f189f"}.mdi-cards-diamond:before{content:"\f08cf"}.mdi-cards-diamond-outline:before{content:"\f101d"}.mdi-cards-heart:before{content:"\f08d0"}.mdi-cards-heart-outline:before{content:"\f18a0"}.mdi-cards-outline:before{content:"\f0639"}.mdi-cards-playing:before{content:"\f18a1"}.mdi-cards-playing-club:before{content:"\f18a2"}.mdi-cards-playing-club-multiple:before{content:"\f18a3"}.mdi-cards-playing-club-multiple-outline:before{content:"\f18a4"}.mdi-cards-playing-club-outline:before{content:"\f18a5"}.mdi-cards-playing-diamond:before{content:"\f18a6"}.mdi-cards-playing-diamond-multiple:before{content:"\f18a7"}.mdi-cards-playing-diamond-multiple-outline:before{content:"\f18a8"}.mdi-cards-playing-diamond-outline:before{content:"\f18a9"}.mdi-cards-playing-heart:before{content:"\f18aa"}.mdi-cards-playing-heart-multiple:before{content:"\f18ab"}.mdi-cards-playing-heart-multiple-outline:before{content:"\f18ac"}.mdi-cards-playing-heart-outline:before{content:"\f18ad"}.mdi-cards-playing-outline:before{content:"\f063a"}.mdi-cards-playing-spade:before{content:"\f18ae"}.mdi-cards-playing-spade-multiple:before{content:"\f18af"}.mdi-cards-playing-spade-multiple-outline:before{content:"\f18b0"}.mdi-cards-playing-spade-outline:before{content:"\f18b1"}.mdi-cards-spade:before{content:"\f08d1"}.mdi-cards-spade-outline:before{content:"\f18b2"}.mdi-cards-variant:before{content:"\f06c7"}.mdi-carrot:before{content:"\f010f"}.mdi-cart:before{content:"\f0110"}.mdi-cart-arrow-down:before{content:"\f0d66"}.mdi-cart-arrow-right:before{content:"\f0c4e"}.mdi-cart-arrow-up:before{content:"\f0d67"}.mdi-cart-check:before{content:"\f15ea"}.mdi-cart-heart:before{content:"\f18e0"}.mdi-cart-minus:before{content:"\f0d68"}.mdi-cart-off:before{content:"\f066b"}.mdi-cart-outline:before{content:"\f0111"}.mdi-cart-percent:before{content:"\f1bae"}.mdi-cart-plus:before{content:"\f0112"}.mdi-cart-remove:before{content:"\f0d69"}.mdi-cart-variant:before{content:"\f15eb"}.mdi-case-sensitive-alt:before{content:"\f0113"}.mdi-cash:before{content:"\f0114"}.mdi-cash-100:before{content:"\f0115"}.mdi-cash-check:before{content:"\f14ee"}.mdi-cash-clock:before{content:"\f1a91"}.mdi-cash-edit:before{content:"\f1cab"}.mdi-cash-fast:before{content:"\f185c"}.mdi-cash-lock:before{content:"\f14ea"}.mdi-cash-lock-open:before{content:"\f14eb"}.mdi-cash-marker:before{content:"\f0db8"}.mdi-cash-minus:before{content:"\f1260"}.mdi-cash-multiple:before{content:"\f0116"}.mdi-cash-off:before{content:"\f1c79"}.mdi-cash-plus:before{content:"\f1261"}.mdi-cash-refund:before{content:"\f0a9c"}.mdi-cash-register:before{content:"\f0cf4"}.mdi-cash-remove:before{content:"\f1262"}.mdi-cash-sync:before{content:"\f1a92"}.mdi-cassette:before{content:"\f09d4"}.mdi-cast:before{content:"\f0118"}.mdi-cast-audio:before{content:"\f101e"}.mdi-cast-audio-variant:before{content:"\f1749"}.mdi-cast-connected:before{content:"\f0119"}.mdi-cast-education:before{content:"\f0e1d"}.mdi-cast-off:before{content:"\f078a"}.mdi-cast-variant:before{content:"\f001f"}.mdi-castle:before{content:"\f011a"}.mdi-cat:before{content:"\f011b"}.mdi-cctv:before{content:"\f07ae"}.mdi-cctv-off:before{content:"\f185f"}.mdi-ceiling-fan:before{content:"\f1797"}.mdi-ceiling-fan-light:before{content:"\f1798"}.mdi-ceiling-light:before{content:"\f0769"}.mdi-ceiling-light-multiple:before{content:"\f18dd"}.mdi-ceiling-light-multiple-outline:before{content:"\f18de"}.mdi-ceiling-light-outline:before{content:"\f17c7"}.mdi-cellphone:before{content:"\f011c"}.mdi-cellphone-arrow-down:before{content:"\f09d5"}.mdi-cellphone-arrow-down-variant:before{content:"\f19c5"}.mdi-cellphone-basic:before{content:"\f011e"}.mdi-cellphone-charging:before{content:"\f1397"}.mdi-cellphone-check:before{content:"\f17fd"}.mdi-cellphone-cog:before{content:"\f0951"}.mdi-cellphone-dock:before{content:"\f011f"}.mdi-cellphone-information:before{content:"\f0f41"}.mdi-cellphone-key:before{content:"\f094e"}.mdi-cellphone-link:before{content:"\f0121"}.mdi-cellphone-link-off:before{content:"\f0122"}.mdi-cellphone-lock:before{content:"\f094f"}.mdi-cellphone-marker:before{content:"\f183a"}.mdi-cellphone-message:before{content:"\f08d3"}.mdi-cellphone-message-off:before{content:"\f10d2"}.mdi-cellphone-nfc:before{content:"\f0e90"}.mdi-cellphone-nfc-off:before{content:"\f12d8"}.mdi-cellphone-off:before{content:"\f0950"}.mdi-cellphone-play:before{content:"\f101f"}.mdi-cellphone-remove:before{content:"\f094d"}.mdi-cellphone-screenshot:before{content:"\f0a35"}.mdi-cellphone-settings:before{content:"\f0123"}.mdi-cellphone-sound:before{content:"\f0952"}.mdi-cellphone-text:before{content:"\f08d2"}.mdi-cellphone-wireless:before{content:"\f0815"}.mdi-centos:before{content:"\f111a"}.mdi-certificate:before{content:"\f0124"}.mdi-certificate-outline:before{content:"\f1188"}.mdi-chair-rolling:before{content:"\f0f48"}.mdi-chair-school:before{content:"\f0125"}.mdi-chandelier:before{content:"\f1793"}.mdi-charity:before{content:"\f0c4f"}.mdi-charity-search:before{content:"\f1c82"}.mdi-chart-arc:before{content:"\f0126"}.mdi-chart-areaspline:before{content:"\f0127"}.mdi-chart-areaspline-variant:before{content:"\f0e91"}.mdi-chart-bar:before{content:"\f0128"}.mdi-chart-bar-stacked:before{content:"\f076a"}.mdi-chart-bell-curve:before{content:"\f0c50"}.mdi-chart-bell-curve-cumulative:before{content:"\f0fa7"}.mdi-chart-box:before{content:"\f154d"}.mdi-chart-box-outline:before{content:"\f154e"}.mdi-chart-box-plus-outline:before{content:"\f154f"}.mdi-chart-bubble:before{content:"\f05e3"}.mdi-chart-donut:before{content:"\f07af"}.mdi-chart-donut-variant:before{content:"\f07b0"}.mdi-chart-gantt:before{content:"\f066c"}.mdi-chart-histogram:before{content:"\f0129"}.mdi-chart-line:before{content:"\f012a"}.mdi-chart-line-stacked:before{content:"\f076b"}.mdi-chart-line-variant:before{content:"\f07b1"}.mdi-chart-multiline:before{content:"\f08d4"}.mdi-chart-multiple:before{content:"\f1213"}.mdi-chart-pie:before{content:"\f012b"}.mdi-chart-pie-outline:before{content:"\f1bdf"}.mdi-chart-ppf:before{content:"\f1380"}.mdi-chart-sankey:before{content:"\f11df"}.mdi-chart-sankey-variant:before{content:"\f11e0"}.mdi-chart-scatter-plot:before{content:"\f0e92"}.mdi-chart-scatter-plot-hexbin:before{content:"\f066d"}.mdi-chart-timeline:before{content:"\f066e"}.mdi-chart-timeline-variant:before{content:"\f0e93"}.mdi-chart-timeline-variant-shimmer:before{content:"\f15b6"}.mdi-chart-tree:before{content:"\f0e94"}.mdi-chart-waterfall:before{content:"\f1918"}.mdi-chat:before{content:"\f0b79"}.mdi-chat-alert:before{content:"\f0b7a"}.mdi-chat-alert-outline:before{content:"\f12c9"}.mdi-chat-minus:before{content:"\f1410"}.mdi-chat-minus-outline:before{content:"\f1413"}.mdi-chat-outline:before{content:"\f0ede"}.mdi-chat-plus:before{content:"\f140f"}.mdi-chat-plus-outline:before{content:"\f1412"}.mdi-chat-processing:before{content:"\f0b7b"}.mdi-chat-processing-outline:before{content:"\f12ca"}.mdi-chat-question:before{content:"\f1738"}.mdi-chat-question-outline:before{content:"\f1739"}.mdi-chat-remove:before{content:"\f1411"}.mdi-chat-remove-outline:before{content:"\f1414"}.mdi-chat-sleep:before{content:"\f12d1"}.mdi-chat-sleep-outline:before{content:"\f12d2"}.mdi-check:before{content:"\f012c"}.mdi-check-all:before{content:"\f012d"}.mdi-check-bold:before{content:"\f0e1e"}.mdi-check-circle:before{content:"\f05e0"}.mdi-check-circle-outline:before{content:"\f05e1"}.mdi-check-decagram:before{content:"\f0791"}.mdi-check-decagram-outline:before{content:"\f1740"}.mdi-check-network:before{content:"\f0c53"}.mdi-check-network-outline:before{content:"\f0c54"}.mdi-check-outline:before{content:"\f0855"}.mdi-check-underline:before{content:"\f0e1f"}.mdi-check-underline-circle:before{content:"\f0e20"}.mdi-check-underline-circle-outline:before{content:"\f0e21"}.mdi-checkbook:before{content:"\f0a9d"}.mdi-checkbook-arrow-left:before{content:"\f1c1d"}.mdi-checkbook-arrow-right:before{content:"\f1c1e"}.mdi-checkbox-blank:before{content:"\f012e"}.mdi-checkbox-blank-badge:before{content:"\f1176"}.mdi-checkbox-blank-badge-outline:before{content:"\f0117"}.mdi-checkbox-blank-circle:before{content:"\f012f"}.mdi-checkbox-blank-circle-outline:before{content:"\f0130"}.mdi-checkbox-blank-off:before{content:"\f12ec"}.mdi-checkbox-blank-off-outline:before{content:"\f12ed"}.mdi-checkbox-blank-outline:before{content:"\f0131"}.mdi-checkbox-intermediate:before{content:"\f0856"}.mdi-checkbox-intermediate-variant:before{content:"\f1b54"}.mdi-checkbox-marked:before{content:"\f0132"}.mdi-checkbox-marked-circle:before{content:"\f0133"}.mdi-checkbox-marked-circle-auto-outline:before{content:"\f1c26"}.mdi-checkbox-marked-circle-minus-outline:before{content:"\f1c27"}.mdi-checkbox-marked-circle-outline:before{content:"\f0134"}.mdi-checkbox-marked-circle-plus-outline:before{content:"\f1927"}.mdi-checkbox-marked-outline:before{content:"\f0135"}.mdi-checkbox-multiple-blank:before{content:"\f0136"}.mdi-checkbox-multiple-blank-circle:before{content:"\f063b"}.mdi-checkbox-multiple-blank-circle-outline:before{content:"\f063c"}.mdi-checkbox-multiple-blank-outline:before{content:"\f0137"}.mdi-checkbox-multiple-marked:before{content:"\f0138"}.mdi-checkbox-multiple-marked-circle:before{content:"\f063d"}.mdi-checkbox-multiple-marked-circle-outline:before{content:"\f063e"}.mdi-checkbox-multiple-marked-outline:before{content:"\f0139"}.mdi-checkbox-multiple-outline:before{content:"\f0c51"}.mdi-checkbox-outline:before{content:"\f0c52"}.mdi-checkerboard:before{content:"\f013a"}.mdi-checkerboard-minus:before{content:"\f1202"}.mdi-checkerboard-plus:before{content:"\f1201"}.mdi-checkerboard-remove:before{content:"\f1203"}.mdi-cheese:before{content:"\f12b9"}.mdi-cheese-off:before{content:"\f13ee"}.mdi-chef-hat:before{content:"\f0b7c"}.mdi-chemical-weapon:before{content:"\f013b"}.mdi-chess-bishop:before{content:"\f085c"}.mdi-chess-king:before{content:"\f0857"}.mdi-chess-knight:before{content:"\f0858"}.mdi-chess-pawn:before{content:"\f0859"}.mdi-chess-queen:before{content:"\f085a"}.mdi-chess-rook:before{content:"\f085b"}.mdi-chevron-double-down:before{content:"\f013c"}.mdi-chevron-double-left:before{content:"\f013d"}.mdi-chevron-double-right:before{content:"\f013e"}.mdi-chevron-double-up:before{content:"\f013f"}.mdi-chevron-down:before{content:"\f0140"}.mdi-chevron-down-box:before{content:"\f09d6"}.mdi-chevron-down-box-outline:before{content:"\f09d7"}.mdi-chevron-down-circle:before{content:"\f0b26"}.mdi-chevron-down-circle-outline:before{content:"\f0b27"}.mdi-chevron-left:before{content:"\f0141"}.mdi-chevron-left-box:before{content:"\f09d8"}.mdi-chevron-left-box-outline:before{content:"\f09d9"}.mdi-chevron-left-circle:before{content:"\f0b28"}.mdi-chevron-left-circle-outline:before{content:"\f0b29"}.mdi-chevron-right:before{content:"\f0142"}.mdi-chevron-right-box:before{content:"\f09da"}.mdi-chevron-right-box-outline:before{content:"\f09db"}.mdi-chevron-right-circle:before{content:"\f0b2a"}.mdi-chevron-right-circle-outline:before{content:"\f0b2b"}.mdi-chevron-triple-down:before{content:"\f0db9"}.mdi-chevron-triple-left:before{content:"\f0dba"}.mdi-chevron-triple-right:before{content:"\f0dbb"}.mdi-chevron-triple-up:before{content:"\f0dbc"}.mdi-chevron-up:before{content:"\f0143"}.mdi-chevron-up-box:before{content:"\f09dc"}.mdi-chevron-up-box-outline:before{content:"\f09dd"}.mdi-chevron-up-circle:before{content:"\f0b2c"}.mdi-chevron-up-circle-outline:before{content:"\f0b2d"}.mdi-chili-alert:before{content:"\f17ea"}.mdi-chili-alert-outline:before{content:"\f17eb"}.mdi-chili-hot:before{content:"\f07b2"}.mdi-chili-hot-outline:before{content:"\f17ec"}.mdi-chili-medium:before{content:"\f07b3"}.mdi-chili-medium-outline:before{content:"\f17ed"}.mdi-chili-mild:before{content:"\f07b4"}.mdi-chili-mild-outline:before{content:"\f17ee"}.mdi-chili-off:before{content:"\f1467"}.mdi-chili-off-outline:before{content:"\f17ef"}.mdi-chip:before{content:"\f061a"}.mdi-church:before{content:"\f0144"}.mdi-church-outline:before{content:"\f1b02"}.mdi-cigar:before{content:"\f1189"}.mdi-cigar-off:before{content:"\f141b"}.mdi-circle:before{content:"\f0765"}.mdi-circle-box:before{content:"\f15dc"}.mdi-circle-box-outline:before{content:"\f15dd"}.mdi-circle-double:before{content:"\f0e95"}.mdi-circle-edit-outline:before{content:"\f08d5"}.mdi-circle-expand:before{content:"\f0e96"}.mdi-circle-half:before{content:"\f1395"}.mdi-circle-half-full:before{content:"\f1396"}.mdi-circle-medium:before{content:"\f09de"}.mdi-circle-multiple:before{content:"\f0b38"}.mdi-circle-multiple-outline:before{content:"\f0695"}.mdi-circle-off-outline:before{content:"\f10d3"}.mdi-circle-opacity:before{content:"\f1853"}.mdi-circle-outline:before{content:"\f0766"}.mdi-circle-slice-1:before{content:"\f0a9e"}.mdi-circle-slice-2:before{content:"\f0a9f"}.mdi-circle-slice-3:before{content:"\f0aa0"}.mdi-circle-slice-4:before{content:"\f0aa1"}.mdi-circle-slice-5:before{content:"\f0aa2"}.mdi-circle-slice-6:before{content:"\f0aa3"}.mdi-circle-slice-7:before{content:"\f0aa4"}.mdi-circle-slice-8:before{content:"\f0aa5"}.mdi-circle-small:before{content:"\f09df"}.mdi-circular-saw:before{content:"\f0e22"}.mdi-city:before{content:"\f0146"}.mdi-city-switch:before{content:"\f1c28"}.mdi-city-variant:before{content:"\f0a36"}.mdi-city-variant-outline:before{content:"\f0a37"}.mdi-clipboard:before{content:"\f0147"}.mdi-clipboard-account:before{content:"\f0148"}.mdi-clipboard-account-outline:before{content:"\f0c55"}.mdi-clipboard-alert:before{content:"\f0149"}.mdi-clipboard-alert-outline:before{content:"\f0cf7"}.mdi-clipboard-arrow-down:before{content:"\f014a"}.mdi-clipboard-arrow-down-outline:before{content:"\f0c56"}.mdi-clipboard-arrow-left:before{content:"\f014b"}.mdi-clipboard-arrow-left-outline:before{content:"\f0cf8"}.mdi-clipboard-arrow-right:before{content:"\f0cf9"}.mdi-clipboard-arrow-right-outline:before{content:"\f0cfa"}.mdi-clipboard-arrow-up:before{content:"\f0c57"}.mdi-clipboard-arrow-up-outline:before{content:"\f0c58"}.mdi-clipboard-check:before{content:"\f014e"}.mdi-clipboard-check-multiple:before{content:"\f1263"}.mdi-clipboard-check-multiple-outline:before{content:"\f1264"}.mdi-clipboard-check-outline:before{content:"\f08a8"}.mdi-clipboard-clock:before{content:"\f16e2"}.mdi-clipboard-clock-outline:before{content:"\f16e3"}.mdi-clipboard-edit:before{content:"\f14e5"}.mdi-clipboard-edit-outline:before{content:"\f14e6"}.mdi-clipboard-file:before{content:"\f1265"}.mdi-clipboard-file-outline:before{content:"\f1266"}.mdi-clipboard-flow:before{content:"\f06c8"}.mdi-clipboard-flow-outline:before{content:"\f1117"}.mdi-clipboard-list:before{content:"\f10d4"}.mdi-clipboard-list-outline:before{content:"\f10d5"}.mdi-clipboard-minus:before{content:"\f1618"}.mdi-clipboard-minus-outline:before{content:"\f1619"}.mdi-clipboard-multiple:before{content:"\f1267"}.mdi-clipboard-multiple-outline:before{content:"\f1268"}.mdi-clipboard-off:before{content:"\f161a"}.mdi-clipboard-off-outline:before{content:"\f161b"}.mdi-clipboard-outline:before{content:"\f014c"}.mdi-clipboard-play:before{content:"\f0c59"}.mdi-clipboard-play-multiple:before{content:"\f1269"}.mdi-clipboard-play-multiple-outline:before{content:"\f126a"}.mdi-clipboard-play-outline:before{content:"\f0c5a"}.mdi-clipboard-plus:before{content:"\f0751"}.mdi-clipboard-plus-outline:before{content:"\f131f"}.mdi-clipboard-pulse:before{content:"\f085d"}.mdi-clipboard-pulse-outline:before{content:"\f085e"}.mdi-clipboard-remove:before{content:"\f161c"}.mdi-clipboard-remove-outline:before{content:"\f161d"}.mdi-clipboard-search:before{content:"\f161e"}.mdi-clipboard-search-outline:before{content:"\f161f"}.mdi-clipboard-text:before{content:"\f014d"}.mdi-clipboard-text-clock:before{content:"\f18f9"}.mdi-clipboard-text-clock-outline:before{content:"\f18fa"}.mdi-clipboard-text-multiple:before{content:"\f126b"}.mdi-clipboard-text-multiple-outline:before{content:"\f126c"}.mdi-clipboard-text-off:before{content:"\f1620"}.mdi-clipboard-text-off-outline:before{content:"\f1621"}.mdi-clipboard-text-outline:before{content:"\f0a38"}.mdi-clipboard-text-play:before{content:"\f0c5b"}.mdi-clipboard-text-play-outline:before{content:"\f0c5c"}.mdi-clipboard-text-search:before{content:"\f1622"}.mdi-clipboard-text-search-outline:before{content:"\f1623"}.mdi-clippy:before{content:"\f014f"}.mdi-clock:before{content:"\f0954"}.mdi-clock-alert:before{content:"\f0955"}.mdi-clock-alert-outline:before{content:"\f05ce"}.mdi-clock-check:before{content:"\f0fa8"}.mdi-clock-check-outline:before{content:"\f0fa9"}.mdi-clock-digital:before{content:"\f0e97"}.mdi-clock-edit:before{content:"\f19ba"}.mdi-clock-edit-outline:before{content:"\f19bb"}.mdi-clock-end:before{content:"\f0151"}.mdi-clock-fast:before{content:"\f0152"}.mdi-clock-in:before{content:"\f0153"}.mdi-clock-minus:before{content:"\f1863"}.mdi-clock-minus-outline:before{content:"\f1864"}.mdi-clock-out:before{content:"\f0154"}.mdi-clock-outline:before{content:"\f0150"}.mdi-clock-plus:before{content:"\f1861"}.mdi-clock-plus-outline:before{content:"\f1862"}.mdi-clock-remove:before{content:"\f1865"}.mdi-clock-remove-outline:before{content:"\f1866"}.mdi-clock-star-four-points:before{content:"\f1c29"}.mdi-clock-star-four-points-outline:before{content:"\f1c2a"}.mdi-clock-start:before{content:"\f0155"}.mdi-clock-time-eight:before{content:"\f1446"}.mdi-clock-time-eight-outline:before{content:"\f1452"}.mdi-clock-time-eleven:before{content:"\f1449"}.mdi-clock-time-eleven-outline:before{content:"\f1455"}.mdi-clock-time-five:before{content:"\f1443"}.mdi-clock-time-five-outline:before{content:"\f144f"}.mdi-clock-time-four:before{content:"\f1442"}.mdi-clock-time-four-outline:before{content:"\f144e"}.mdi-clock-time-nine:before{content:"\f1447"}.mdi-clock-time-nine-outline:before{content:"\f1453"}.mdi-clock-time-one:before{content:"\f143f"}.mdi-clock-time-one-outline:before{content:"\f144b"}.mdi-clock-time-seven:before{content:"\f1445"}.mdi-clock-time-seven-outline:before{content:"\f1451"}.mdi-clock-time-six:before{content:"\f1444"}.mdi-clock-time-six-outline:before{content:"\f1450"}.mdi-clock-time-ten:before{content:"\f1448"}.mdi-clock-time-ten-outline:before{content:"\f1454"}.mdi-clock-time-three:before{content:"\f1441"}.mdi-clock-time-three-outline:before{content:"\f144d"}.mdi-clock-time-twelve:before{content:"\f144a"}.mdi-clock-time-twelve-outline:before{content:"\f1456"}.mdi-clock-time-two:before{content:"\f1440"}.mdi-clock-time-two-outline:before{content:"\f144c"}.mdi-close:before{content:"\f0156"}.mdi-close-box:before{content:"\f0157"}.mdi-close-box-multiple:before{content:"\f0c5d"}.mdi-close-box-multiple-outline:before{content:"\f0c5e"}.mdi-close-box-outline:before{content:"\f0158"}.mdi-close-circle:before{content:"\f0159"}.mdi-close-circle-multiple:before{content:"\f062a"}.mdi-close-circle-multiple-outline:before{content:"\f0883"}.mdi-close-circle-outline:before{content:"\f015a"}.mdi-close-network:before{content:"\f015b"}.mdi-close-network-outline:before{content:"\f0c5f"}.mdi-close-octagon:before{content:"\f015c"}.mdi-close-octagon-outline:before{content:"\f015d"}.mdi-close-outline:before{content:"\f06c9"}.mdi-close-thick:before{content:"\f1398"}.mdi-closed-caption:before{content:"\f015e"}.mdi-closed-caption-outline:before{content:"\f0dbd"}.mdi-cloud:before{content:"\f015f"}.mdi-cloud-alert:before{content:"\f09e0"}.mdi-cloud-alert-outline:before{content:"\f1be0"}.mdi-cloud-arrow-down:before{content:"\f1be1"}.mdi-cloud-arrow-down-outline:before{content:"\f1be2"}.mdi-cloud-arrow-left:before{content:"\f1be3"}.mdi-cloud-arrow-left-outline:before{content:"\f1be4"}.mdi-cloud-arrow-right:before{content:"\f1be5"}.mdi-cloud-arrow-right-outline:before{content:"\f1be6"}.mdi-cloud-arrow-up:before{content:"\f1be7"}.mdi-cloud-arrow-up-outline:before{content:"\f1be8"}.mdi-cloud-braces:before{content:"\f07b5"}.mdi-cloud-cancel:before{content:"\f1be9"}.mdi-cloud-cancel-outline:before{content:"\f1bea"}.mdi-cloud-check:before{content:"\f1beb"}.mdi-cloud-check-outline:before{content:"\f1bec"}.mdi-cloud-check-variant:before{content:"\f0160"}.mdi-cloud-check-variant-outline:before{content:"\f12cc"}.mdi-cloud-circle:before{content:"\f0161"}.mdi-cloud-circle-outline:before{content:"\f1bed"}.mdi-cloud-clock:before{content:"\f1bee"}.mdi-cloud-clock-outline:before{content:"\f1bef"}.mdi-cloud-cog:before{content:"\f1bf0"}.mdi-cloud-cog-outline:before{content:"\f1bf1"}.mdi-cloud-download:before{content:"\f0162"}.mdi-cloud-download-outline:before{content:"\f0b7d"}.mdi-cloud-key:before{content:"\f1ca1"}.mdi-cloud-key-outline:before{content:"\f1ca2"}.mdi-cloud-lock:before{content:"\f11f1"}.mdi-cloud-lock-open:before{content:"\f1bf2"}.mdi-cloud-lock-open-outline:before{content:"\f1bf3"}.mdi-cloud-lock-outline:before{content:"\f11f2"}.mdi-cloud-minus:before{content:"\f1bf4"}.mdi-cloud-minus-outline:before{content:"\f1bf5"}.mdi-cloud-off:before{content:"\f1bf6"}.mdi-cloud-off-outline:before{content:"\f0164"}.mdi-cloud-outline:before{content:"\f0163"}.mdi-cloud-percent:before{content:"\f1a35"}.mdi-cloud-percent-outline:before{content:"\f1a36"}.mdi-cloud-plus:before{content:"\f1bf7"}.mdi-cloud-plus-outline:before{content:"\f1bf8"}.mdi-cloud-print:before{content:"\f0165"}.mdi-cloud-print-outline:before{content:"\f0166"}.mdi-cloud-question:before{content:"\f0a39"}.mdi-cloud-question-outline:before{content:"\f1bf9"}.mdi-cloud-refresh:before{content:"\f1bfa"}.mdi-cloud-refresh-outline:before{content:"\f1bfb"}.mdi-cloud-refresh-variant:before{content:"\f052a"}.mdi-cloud-refresh-variant-outline:before{content:"\f1bfc"}.mdi-cloud-remove:before{content:"\f1bfd"}.mdi-cloud-remove-outline:before{content:"\f1bfe"}.mdi-cloud-search:before{content:"\f0956"}.mdi-cloud-search-outline:before{content:"\f0957"}.mdi-cloud-sync:before{content:"\f063f"}.mdi-cloud-sync-outline:before{content:"\f12d6"}.mdi-cloud-tags:before{content:"\f07b6"}.mdi-cloud-upload:before{content:"\f0167"}.mdi-cloud-upload-outline:before{content:"\f0b7e"}.mdi-clouds:before{content:"\f1b95"}.mdi-clover:before{content:"\f0816"}.mdi-clover-outline:before{content:"\f1c62"}.mdi-coach-lamp:before{content:"\f1020"}.mdi-coach-lamp-variant:before{content:"\f1a37"}.mdi-coat-rack:before{content:"\f109e"}.mdi-code-array:before{content:"\f0168"}.mdi-code-block-braces:before{content:"\f1c83"}.mdi-code-block-brackets:before{content:"\f1c84"}.mdi-code-block-parentheses:before{content:"\f1c85"}.mdi-code-block-tags:before{content:"\f1c86"}.mdi-code-braces:before{content:"\f0169"}.mdi-code-braces-box:before{content:"\f10d6"}.mdi-code-brackets:before{content:"\f016a"}.mdi-code-equal:before{content:"\f016b"}.mdi-code-greater-than:before{content:"\f016c"}.mdi-code-greater-than-or-equal:before{content:"\f016d"}.mdi-code-json:before{content:"\f0626"}.mdi-code-less-than:before{content:"\f016e"}.mdi-code-less-than-or-equal:before{content:"\f016f"}.mdi-code-not-equal:before{content:"\f0170"}.mdi-code-not-equal-variant:before{content:"\f0171"}.mdi-code-parentheses:before{content:"\f0172"}.mdi-code-parentheses-box:before{content:"\f10d7"}.mdi-code-string:before{content:"\f0173"}.mdi-code-tags:before{content:"\f0174"}.mdi-code-tags-check:before{content:"\f0694"}.mdi-codepen:before{content:"\f0175"}.mdi-coffee:before{content:"\f0176"}.mdi-coffee-maker:before{content:"\f109f"}.mdi-coffee-maker-check:before{content:"\f1931"}.mdi-coffee-maker-check-outline:before{content:"\f1932"}.mdi-coffee-maker-outline:before{content:"\f181b"}.mdi-coffee-off:before{content:"\f0faa"}.mdi-coffee-off-outline:before{content:"\f0fab"}.mdi-coffee-outline:before{content:"\f06ca"}.mdi-coffee-to-go:before{content:"\f0177"}.mdi-coffee-to-go-outline:before{content:"\f130e"}.mdi-coffin:before{content:"\f0b7f"}.mdi-cog:before{content:"\f0493"}.mdi-cog-box:before{content:"\f0494"}.mdi-cog-clockwise:before{content:"\f11dd"}.mdi-cog-counterclockwise:before{content:"\f11de"}.mdi-cog-off:before{content:"\f13ce"}.mdi-cog-off-outline:before{content:"\f13cf"}.mdi-cog-outline:before{content:"\f08bb"}.mdi-cog-pause:before{content:"\f1933"}.mdi-cog-pause-outline:before{content:"\f1934"}.mdi-cog-play:before{content:"\f1935"}.mdi-cog-play-outline:before{content:"\f1936"}.mdi-cog-refresh:before{content:"\f145e"}.mdi-cog-refresh-outline:before{content:"\f145f"}.mdi-cog-stop:before{content:"\f1937"}.mdi-cog-stop-outline:before{content:"\f1938"}.mdi-cog-sync:before{content:"\f1460"}.mdi-cog-sync-outline:before{content:"\f1461"}.mdi-cog-transfer:before{content:"\f105b"}.mdi-cog-transfer-outline:before{content:"\f105c"}.mdi-cogs:before{content:"\f08d6"}.mdi-collage:before{content:"\f0640"}.mdi-collapse-all:before{content:"\f0aa6"}.mdi-collapse-all-outline:before{content:"\f0aa7"}.mdi-color-helper:before{content:"\f0179"}.mdi-comma:before{content:"\f0e23"}.mdi-comma-box:before{content:"\f0e2b"}.mdi-comma-box-outline:before{content:"\f0e24"}.mdi-comma-circle:before{content:"\f0e25"}.mdi-comma-circle-outline:before{content:"\f0e26"}.mdi-comment:before{content:"\f017a"}.mdi-comment-account:before{content:"\f017b"}.mdi-comment-account-outline:before{content:"\f017c"}.mdi-comment-alert:before{content:"\f017d"}.mdi-comment-alert-outline:before{content:"\f017e"}.mdi-comment-arrow-left:before{content:"\f09e1"}.mdi-comment-arrow-left-outline:before{content:"\f09e2"}.mdi-comment-arrow-right:before{content:"\f09e3"}.mdi-comment-arrow-right-outline:before{content:"\f09e4"}.mdi-comment-bookmark:before{content:"\f15ae"}.mdi-comment-bookmark-outline:before{content:"\f15af"}.mdi-comment-check:before{content:"\f017f"}.mdi-comment-check-outline:before{content:"\f0180"}.mdi-comment-edit:before{content:"\f11bf"}.mdi-comment-edit-outline:before{content:"\f12c4"}.mdi-comment-eye:before{content:"\f0a3a"}.mdi-comment-eye-outline:before{content:"\f0a3b"}.mdi-comment-flash:before{content:"\f15b0"}.mdi-comment-flash-outline:before{content:"\f15b1"}.mdi-comment-minus:before{content:"\f15df"}.mdi-comment-minus-outline:before{content:"\f15e0"}.mdi-comment-multiple:before{content:"\f085f"}.mdi-comment-multiple-outline:before{content:"\f0181"}.mdi-comment-off:before{content:"\f15e1"}.mdi-comment-off-outline:before{content:"\f15e2"}.mdi-comment-outline:before{content:"\f0182"}.mdi-comment-plus:before{content:"\f09e5"}.mdi-comment-plus-outline:before{content:"\f0183"}.mdi-comment-processing:before{content:"\f0184"}.mdi-comment-processing-outline:before{content:"\f0185"}.mdi-comment-question:before{content:"\f0817"}.mdi-comment-question-outline:before{content:"\f0186"}.mdi-comment-quote:before{content:"\f1021"}.mdi-comment-quote-outline:before{content:"\f1022"}.mdi-comment-remove:before{content:"\f05de"}.mdi-comment-remove-outline:before{content:"\f0187"}.mdi-comment-search:before{content:"\f0a3c"}.mdi-comment-search-outline:before{content:"\f0a3d"}.mdi-comment-text:before{content:"\f0188"}.mdi-comment-text-multiple:before{content:"\f0860"}.mdi-comment-text-multiple-outline:before{content:"\f0861"}.mdi-comment-text-outline:before{content:"\f0189"}.mdi-compare:before{content:"\f018a"}.mdi-compare-horizontal:before{content:"\f1492"}.mdi-compare-remove:before{content:"\f18b3"}.mdi-compare-vertical:before{content:"\f1493"}.mdi-compass:before{content:"\f018b"}.mdi-compass-off:before{content:"\f0b80"}.mdi-compass-off-outline:before{content:"\f0b81"}.mdi-compass-outline:before{content:"\f018c"}.mdi-compass-rose:before{content:"\f1382"}.mdi-compost:before{content:"\f1a38"}.mdi-cone:before{content:"\f194c"}.mdi-cone-off:before{content:"\f194d"}.mdi-connection:before{content:"\f1616"}.mdi-console:before{content:"\f018d"}.mdi-console-line:before{content:"\f07b7"}.mdi-console-network:before{content:"\f08a9"}.mdi-console-network-outline:before{content:"\f0c60"}.mdi-consolidate:before{content:"\f10d8"}.mdi-contactless-payment:before{content:"\f0d6a"}.mdi-contactless-payment-circle:before{content:"\f0321"}.mdi-contactless-payment-circle-outline:before{content:"\f0408"}.mdi-contacts:before{content:"\f06cb"}.mdi-contacts-outline:before{content:"\f05b8"}.mdi-contain:before{content:"\f0a3e"}.mdi-contain-end:before{content:"\f0a3f"}.mdi-contain-start:before{content:"\f0a40"}.mdi-content-copy:before{content:"\f018f"}.mdi-content-cut:before{content:"\f0190"}.mdi-content-duplicate:before{content:"\f0191"}.mdi-content-paste:before{content:"\f0192"}.mdi-content-save:before{content:"\f0193"}.mdi-content-save-alert:before{content:"\f0f42"}.mdi-content-save-alert-outline:before{content:"\f0f43"}.mdi-content-save-all:before{content:"\f0194"}.mdi-content-save-all-outline:before{content:"\f0f44"}.mdi-content-save-check:before{content:"\f18ea"}.mdi-content-save-check-outline:before{content:"\f18eb"}.mdi-content-save-cog:before{content:"\f145b"}.mdi-content-save-cog-outline:before{content:"\f145c"}.mdi-content-save-edit:before{content:"\f0cfb"}.mdi-content-save-edit-outline:before{content:"\f0cfc"}.mdi-content-save-minus:before{content:"\f1b43"}.mdi-content-save-minus-outline:before{content:"\f1b44"}.mdi-content-save-move:before{content:"\f0e27"}.mdi-content-save-move-outline:before{content:"\f0e28"}.mdi-content-save-off:before{content:"\f1643"}.mdi-content-save-off-outline:before{content:"\f1644"}.mdi-content-save-outline:before{content:"\f0818"}.mdi-content-save-plus:before{content:"\f1b41"}.mdi-content-save-plus-outline:before{content:"\f1b42"}.mdi-content-save-settings:before{content:"\f061b"}.mdi-content-save-settings-outline:before{content:"\f0b2e"}.mdi-contrast:before{content:"\f0195"}.mdi-contrast-box:before{content:"\f0196"}.mdi-contrast-circle:before{content:"\f0197"}.mdi-controller:before{content:"\f02b4"}.mdi-controller-classic:before{content:"\f0b82"}.mdi-controller-classic-outline:before{content:"\f0b83"}.mdi-controller-off:before{content:"\f02b5"}.mdi-cookie:before{content:"\f0198"}.mdi-cookie-alert:before{content:"\f16d0"}.mdi-cookie-alert-outline:before{content:"\f16d1"}.mdi-cookie-check:before{content:"\f16d2"}.mdi-cookie-check-outline:before{content:"\f16d3"}.mdi-cookie-clock:before{content:"\f16e4"}.mdi-cookie-clock-outline:before{content:"\f16e5"}.mdi-cookie-cog:before{content:"\f16d4"}.mdi-cookie-cog-outline:before{content:"\f16d5"}.mdi-cookie-edit:before{content:"\f16e6"}.mdi-cookie-edit-outline:before{content:"\f16e7"}.mdi-cookie-lock:before{content:"\f16e8"}.mdi-cookie-lock-outline:before{content:"\f16e9"}.mdi-cookie-minus:before{content:"\f16da"}.mdi-cookie-minus-outline:before{content:"\f16db"}.mdi-cookie-off:before{content:"\f16ea"}.mdi-cookie-off-outline:before{content:"\f16eb"}.mdi-cookie-outline:before{content:"\f16de"}.mdi-cookie-plus:before{content:"\f16d6"}.mdi-cookie-plus-outline:before{content:"\f16d7"}.mdi-cookie-refresh:before{content:"\f16ec"}.mdi-cookie-refresh-outline:before{content:"\f16ed"}.mdi-cookie-remove:before{content:"\f16d8"}.mdi-cookie-remove-outline:before{content:"\f16d9"}.mdi-cookie-settings:before{content:"\f16dc"}.mdi-cookie-settings-outline:before{content:"\f16dd"}.mdi-coolant-temperature:before{content:"\f03c8"}.mdi-copyleft:before{content:"\f1939"}.mdi-copyright:before{content:"\f05e6"}.mdi-cordova:before{content:"\f0958"}.mdi-corn:before{content:"\f07b8"}.mdi-corn-off:before{content:"\f13ef"}.mdi-cosine-wave:before{content:"\f1479"}.mdi-counter:before{content:"\f0199"}.mdi-countertop:before{content:"\f181c"}.mdi-countertop-outline:before{content:"\f181d"}.mdi-cow:before{content:"\f019a"}.mdi-cow-off:before{content:"\f18fc"}.mdi-cpu-32-bit:before{content:"\f0edf"}.mdi-cpu-64-bit:before{content:"\f0ee0"}.mdi-cradle:before{content:"\f198b"}.mdi-cradle-outline:before{content:"\f1991"}.mdi-crane:before{content:"\f0862"}.mdi-creation:before{content:"\f0674"}.mdi-creation-outline:before{content:"\f1c2b"}.mdi-creative-commons:before{content:"\f0d6b"}.mdi-credit-card:before{content:"\f0fef"}.mdi-credit-card-check:before{content:"\f13d0"}.mdi-credit-card-check-outline:before{content:"\f13d1"}.mdi-credit-card-chip:before{content:"\f190f"}.mdi-credit-card-chip-outline:before{content:"\f1910"}.mdi-credit-card-clock:before{content:"\f0ee1"}.mdi-credit-card-clock-outline:before{content:"\f0ee2"}.mdi-credit-card-edit:before{content:"\f17d7"}.mdi-credit-card-edit-outline:before{content:"\f17d8"}.mdi-credit-card-fast:before{content:"\f1911"}.mdi-credit-card-fast-outline:before{content:"\f1912"}.mdi-credit-card-lock:before{content:"\f18e7"}.mdi-credit-card-lock-outline:before{content:"\f18e8"}.mdi-credit-card-marker:before{content:"\f06a8"}.mdi-credit-card-marker-outline:before{content:"\f0dbe"}.mdi-credit-card-minus:before{content:"\f0fac"}.mdi-credit-card-minus-outline:before{content:"\f0fad"}.mdi-credit-card-multiple:before{content:"\f0ff0"}.mdi-credit-card-multiple-outline:before{content:"\f019c"}.mdi-credit-card-off:before{content:"\f0ff1"}.mdi-credit-card-off-outline:before{content:"\f05e4"}.mdi-credit-card-outline:before{content:"\f019b"}.mdi-credit-card-plus:before{content:"\f0ff2"}.mdi-credit-card-plus-outline:before{content:"\f0676"}.mdi-credit-card-refresh:before{content:"\f1645"}.mdi-credit-card-refresh-outline:before{content:"\f1646"}.mdi-credit-card-refund:before{content:"\f0ff3"}.mdi-credit-card-refund-outline:before{content:"\f0aa8"}.mdi-credit-card-remove:before{content:"\f0fae"}.mdi-credit-card-remove-outline:before{content:"\f0faf"}.mdi-credit-card-scan:before{content:"\f0ff4"}.mdi-credit-card-scan-outline:before{content:"\f019d"}.mdi-credit-card-search:before{content:"\f1647"}.mdi-credit-card-search-outline:before{content:"\f1648"}.mdi-credit-card-settings:before{content:"\f0ff5"}.mdi-credit-card-settings-outline:before{content:"\f08d7"}.mdi-credit-card-sync:before{content:"\f1649"}.mdi-credit-card-sync-outline:before{content:"\f164a"}.mdi-credit-card-wireless:before{content:"\f0802"}.mdi-credit-card-wireless-off:before{content:"\f057a"}.mdi-credit-card-wireless-off-outline:before{content:"\f057b"}.mdi-credit-card-wireless-outline:before{content:"\f0d6c"}.mdi-cricket:before{content:"\f0d6d"}.mdi-crop:before{content:"\f019e"}.mdi-crop-free:before{content:"\f019f"}.mdi-crop-landscape:before{content:"\f01a0"}.mdi-crop-portrait:before{content:"\f01a1"}.mdi-crop-rotate:before{content:"\f0696"}.mdi-crop-square:before{content:"\f01a2"}.mdi-cross:before{content:"\f0953"}.mdi-cross-bolnisi:before{content:"\f0ced"}.mdi-cross-celtic:before{content:"\f0cf5"}.mdi-cross-outline:before{content:"\f0cf6"}.mdi-crosshairs:before{content:"\f01a3"}.mdi-crosshairs-gps:before{content:"\f01a4"}.mdi-crosshairs-off:before{content:"\f0f45"}.mdi-crosshairs-question:before{content:"\f1136"}.mdi-crowd:before{content:"\f1975"}.mdi-crown:before{content:"\f01a5"}.mdi-crown-circle:before{content:"\f17dc"}.mdi-crown-circle-outline:before{content:"\f17dd"}.mdi-crown-outline:before{content:"\f11d0"}.mdi-cryengine:before{content:"\f0959"}.mdi-crystal-ball:before{content:"\f0b2f"}.mdi-cube:before{content:"\f01a6"}.mdi-cube-off:before{content:"\f141c"}.mdi-cube-off-outline:before{content:"\f141d"}.mdi-cube-outline:before{content:"\f01a7"}.mdi-cube-scan:before{content:"\f0b84"}.mdi-cube-send:before{content:"\f01a8"}.mdi-cube-unfolded:before{content:"\f01a9"}.mdi-cup:before{content:"\f01aa"}.mdi-cup-off:before{content:"\f05e5"}.mdi-cup-off-outline:before{content:"\f137d"}.mdi-cup-outline:before{content:"\f130f"}.mdi-cup-water:before{content:"\f01ab"}.mdi-cupboard:before{content:"\f0f46"}.mdi-cupboard-outline:before{content:"\f0f47"}.mdi-cupcake:before{content:"\f095a"}.mdi-curling:before{content:"\f0863"}.mdi-currency-bdt:before{content:"\f0864"}.mdi-currency-brl:before{content:"\f0b85"}.mdi-currency-btc:before{content:"\f01ac"}.mdi-currency-cny:before{content:"\f07ba"}.mdi-currency-eth:before{content:"\f07bb"}.mdi-currency-eur:before{content:"\f01ad"}.mdi-currency-eur-off:before{content:"\f1315"}.mdi-currency-fra:before{content:"\f1a39"}.mdi-currency-gbp:before{content:"\f01ae"}.mdi-currency-ils:before{content:"\f0c61"}.mdi-currency-inr:before{content:"\f01af"}.mdi-currency-jpy:before{content:"\f07bc"}.mdi-currency-krw:before{content:"\f07bd"}.mdi-currency-kzt:before{content:"\f0865"}.mdi-currency-mnt:before{content:"\f1512"}.mdi-currency-ngn:before{content:"\f01b0"}.mdi-currency-php:before{content:"\f09e6"}.mdi-currency-rial:before{content:"\f0e9c"}.mdi-currency-rub:before{content:"\f01b1"}.mdi-currency-rupee:before{content:"\f1976"}.mdi-currency-sign:before{content:"\f07be"}.mdi-currency-thb:before{content:"\f1c05"}.mdi-currency-try:before{content:"\f01b2"}.mdi-currency-twd:before{content:"\f07bf"}.mdi-currency-uah:before{content:"\f1b9b"}.mdi-currency-usd:before{content:"\f01c1"}.mdi-currency-usd-off:before{content:"\f067a"}.mdi-current-ac:before{content:"\f1480"}.mdi-current-dc:before{content:"\f095c"}.mdi-cursor-default:before{content:"\f01c0"}.mdi-cursor-default-click:before{content:"\f0cfd"}.mdi-cursor-default-click-outline:before{content:"\f0cfe"}.mdi-cursor-default-gesture:before{content:"\f1127"}.mdi-cursor-default-gesture-outline:before{content:"\f1128"}.mdi-cursor-default-outline:before{content:"\f01bf"}.mdi-cursor-move:before{content:"\f01be"}.mdi-cursor-pointer:before{content:"\f01bd"}.mdi-cursor-text:before{content:"\f05e7"}.mdi-curtains:before{content:"\f1846"}.mdi-curtains-closed:before{content:"\f1847"}.mdi-cylinder:before{content:"\f194e"}.mdi-cylinder-off:before{content:"\f194f"}.mdi-dance-ballroom:before{content:"\f15fb"}.mdi-dance-pole:before{content:"\f1578"}.mdi-data-matrix:before{content:"\f153c"}.mdi-data-matrix-edit:before{content:"\f153d"}.mdi-data-matrix-minus:before{content:"\f153e"}.mdi-data-matrix-plus:before{content:"\f153f"}.mdi-data-matrix-remove:before{content:"\f1540"}.mdi-data-matrix-scan:before{content:"\f1541"}.mdi-database:before{content:"\f01bc"}.mdi-database-alert:before{content:"\f163a"}.mdi-database-alert-outline:before{content:"\f1624"}.mdi-database-arrow-down:before{content:"\f163b"}.mdi-database-arrow-down-outline:before{content:"\f1625"}.mdi-database-arrow-left:before{content:"\f163c"}.mdi-database-arrow-left-outline:before{content:"\f1626"}.mdi-database-arrow-right:before{content:"\f163d"}.mdi-database-arrow-right-outline:before{content:"\f1627"}.mdi-database-arrow-up:before{content:"\f163e"}.mdi-database-arrow-up-outline:before{content:"\f1628"}.mdi-database-check:before{content:"\f0aa9"}.mdi-database-check-outline:before{content:"\f1629"}.mdi-database-clock:before{content:"\f163f"}.mdi-database-clock-outline:before{content:"\f162a"}.mdi-database-cog:before{content:"\f164b"}.mdi-database-cog-outline:before{content:"\f164c"}.mdi-database-edit:before{content:"\f0b86"}.mdi-database-edit-outline:before{content:"\f162b"}.mdi-database-export:before{content:"\f095e"}.mdi-database-export-outline:before{content:"\f162c"}.mdi-database-eye:before{content:"\f191f"}.mdi-database-eye-off:before{content:"\f1920"}.mdi-database-eye-off-outline:before{content:"\f1921"}.mdi-database-eye-outline:before{content:"\f1922"}.mdi-database-import:before{content:"\f095d"}.mdi-database-import-outline:before{content:"\f162d"}.mdi-database-lock:before{content:"\f0aaa"}.mdi-database-lock-outline:before{content:"\f162e"}.mdi-database-marker:before{content:"\f12f6"}.mdi-database-marker-outline:before{content:"\f162f"}.mdi-database-minus:before{content:"\f01bb"}.mdi-database-minus-outline:before{content:"\f1630"}.mdi-database-off:before{content:"\f1640"}.mdi-database-off-outline:before{content:"\f1631"}.mdi-database-outline:before{content:"\f1632"}.mdi-database-plus:before{content:"\f01ba"}.mdi-database-plus-outline:before{content:"\f1633"}.mdi-database-refresh:before{content:"\f05c2"}.mdi-database-refresh-outline:before{content:"\f1634"}.mdi-database-remove:before{content:"\f0d00"}.mdi-database-remove-outline:before{content:"\f1635"}.mdi-database-search:before{content:"\f0866"}.mdi-database-search-outline:before{content:"\f1636"}.mdi-database-settings:before{content:"\f0d01"}.mdi-database-settings-outline:before{content:"\f1637"}.mdi-database-sync:before{content:"\f0cff"}.mdi-database-sync-outline:before{content:"\f1638"}.mdi-death-star:before{content:"\f08d8"}.mdi-death-star-variant:before{content:"\f08d9"}.mdi-deathly-hallows:before{content:"\f0b87"}.mdi-debian:before{content:"\f08da"}.mdi-debug-step-into:before{content:"\f01b9"}.mdi-debug-step-out:before{content:"\f01b8"}.mdi-debug-step-over:before{content:"\f01b7"}.mdi-decagram:before{content:"\f076c"}.mdi-decagram-outline:before{content:"\f076d"}.mdi-decimal:before{content:"\f10a1"}.mdi-decimal-comma:before{content:"\f10a2"}.mdi-decimal-comma-decrease:before{content:"\f10a3"}.mdi-decimal-comma-increase:before{content:"\f10a4"}.mdi-decimal-decrease:before{content:"\f01b6"}.mdi-decimal-increase:before{content:"\f01b5"}.mdi-delete:before{content:"\f01b4"}.mdi-delete-alert:before{content:"\f10a5"}.mdi-delete-alert-outline:before{content:"\f10a6"}.mdi-delete-circle:before{content:"\f0683"}.mdi-delete-circle-outline:before{content:"\f0b88"}.mdi-delete-clock:before{content:"\f1556"}.mdi-delete-clock-outline:before{content:"\f1557"}.mdi-delete-empty:before{content:"\f06cc"}.mdi-delete-empty-outline:before{content:"\f0e9d"}.mdi-delete-forever:before{content:"\f05e8"}.mdi-delete-forever-outline:before{content:"\f0b89"}.mdi-delete-off:before{content:"\f10a7"}.mdi-delete-off-outline:before{content:"\f10a8"}.mdi-delete-outline:before{content:"\f09e7"}.mdi-delete-restore:before{content:"\f0819"}.mdi-delete-sweep:before{content:"\f05e9"}.mdi-delete-sweep-outline:before{content:"\f0c62"}.mdi-delete-variant:before{content:"\f01b3"}.mdi-delta:before{content:"\f01c2"}.mdi-desk:before{content:"\f1239"}.mdi-desk-lamp:before{content:"\f095f"}.mdi-desk-lamp-off:before{content:"\f1b1f"}.mdi-desk-lamp-on:before{content:"\f1b20"}.mdi-deskphone:before{content:"\f01c3"}.mdi-desktop-classic:before{content:"\f07c0"}.mdi-desktop-tower:before{content:"\f01c5"}.mdi-desktop-tower-monitor:before{content:"\f0aab"}.mdi-details:before{content:"\f01c6"}.mdi-dev-to:before{content:"\f0d6e"}.mdi-developer-board:before{content:"\f0697"}.mdi-deviantart:before{content:"\f01c7"}.mdi-devices:before{content:"\f0fb0"}.mdi-dharmachakra:before{content:"\f094b"}.mdi-diabetes:before{content:"\f1126"}.mdi-dialpad:before{content:"\f061c"}.mdi-diameter:before{content:"\f0c63"}.mdi-diameter-outline:before{content:"\f0c64"}.mdi-diameter-variant:before{content:"\f0c65"}.mdi-diamond:before{content:"\f0b8a"}.mdi-diamond-outline:before{content:"\f0b8b"}.mdi-diamond-stone:before{content:"\f01c8"}.mdi-dice-1:before{content:"\f01ca"}.mdi-dice-1-outline:before{content:"\f114a"}.mdi-dice-2:before{content:"\f01cb"}.mdi-dice-2-outline:before{content:"\f114b"}.mdi-dice-3:before{content:"\f01cc"}.mdi-dice-3-outline:before{content:"\f114c"}.mdi-dice-4:before{content:"\f01cd"}.mdi-dice-4-outline:before{content:"\f114d"}.mdi-dice-5:before{content:"\f01ce"}.mdi-dice-5-outline:before{content:"\f114e"}.mdi-dice-6:before{content:"\f01cf"}.mdi-dice-6-outline:before{content:"\f114f"}.mdi-dice-d10:before{content:"\f1153"}.mdi-dice-d10-outline:before{content:"\f076f"}.mdi-dice-d12:before{content:"\f1154"}.mdi-dice-d12-outline:before{content:"\f0867"}.mdi-dice-d20:before{content:"\f1155"}.mdi-dice-d20-outline:before{content:"\f05ea"}.mdi-dice-d4:before{content:"\f1150"}.mdi-dice-d4-outline:before{content:"\f05eb"}.mdi-dice-d6:before{content:"\f1151"}.mdi-dice-d6-outline:before{content:"\f05ed"}.mdi-dice-d8:before{content:"\f1152"}.mdi-dice-d8-outline:before{content:"\f05ec"}.mdi-dice-multiple:before{content:"\f076e"}.mdi-dice-multiple-outline:before{content:"\f1156"}.mdi-digital-ocean:before{content:"\f1237"}.mdi-dip-switch:before{content:"\f07c1"}.mdi-directions:before{content:"\f01d0"}.mdi-directions-fork:before{content:"\f0641"}.mdi-disc:before{content:"\f05ee"}.mdi-disc-alert:before{content:"\f01d1"}.mdi-disc-player:before{content:"\f0960"}.mdi-dishwasher:before{content:"\f0aac"}.mdi-dishwasher-alert:before{content:"\f11b8"}.mdi-dishwasher-off:before{content:"\f11b9"}.mdi-disqus:before{content:"\f01d2"}.mdi-distribute-horizontal-center:before{content:"\f11c9"}.mdi-distribute-horizontal-left:before{content:"\f11c8"}.mdi-distribute-horizontal-right:before{content:"\f11ca"}.mdi-distribute-vertical-bottom:before{content:"\f11cb"}.mdi-distribute-vertical-center:before{content:"\f11cc"}.mdi-distribute-vertical-top:before{content:"\f11cd"}.mdi-diversify:before{content:"\f1877"}.mdi-diving:before{content:"\f1977"}.mdi-diving-flippers:before{content:"\f0dbf"}.mdi-diving-helmet:before{content:"\f0dc0"}.mdi-diving-scuba:before{content:"\f1b77"}.mdi-diving-scuba-flag:before{content:"\f0dc2"}.mdi-diving-scuba-mask:before{content:"\f0dc1"}.mdi-diving-scuba-tank:before{content:"\f0dc3"}.mdi-diving-scuba-tank-multiple:before{content:"\f0dc4"}.mdi-diving-snorkel:before{content:"\f0dc5"}.mdi-division:before{content:"\f01d4"}.mdi-division-box:before{content:"\f01d5"}.mdi-dlna:before{content:"\f0a41"}.mdi-dna:before{content:"\f0684"}.mdi-dns:before{content:"\f01d6"}.mdi-dns-outline:before{content:"\f0b8c"}.mdi-dock-bottom:before{content:"\f10a9"}.mdi-dock-left:before{content:"\f10aa"}.mdi-dock-right:before{content:"\f10ab"}.mdi-dock-top:before{content:"\f1513"}.mdi-dock-window:before{content:"\f10ac"}.mdi-docker:before{content:"\f0868"}.mdi-doctor:before{content:"\f0a42"}.mdi-dog:before{content:"\f0a43"}.mdi-dog-service:before{content:"\f0aad"}.mdi-dog-side:before{content:"\f0a44"}.mdi-dog-side-off:before{content:"\f16ee"}.mdi-dolby:before{content:"\f06b3"}.mdi-dolly:before{content:"\f0e9e"}.mdi-dolphin:before{content:"\f18b4"}.mdi-domain:before{content:"\f01d7"}.mdi-domain-off:before{content:"\f0d6f"}.mdi-domain-plus:before{content:"\f10ad"}.mdi-domain-remove:before{content:"\f10ae"}.mdi-domain-switch:before{content:"\f1c2c"}.mdi-dome-light:before{content:"\f141e"}.mdi-domino-mask:before{content:"\f1023"}.mdi-donkey:before{content:"\f07c2"}.mdi-door:before{content:"\f081a"}.mdi-door-closed:before{content:"\f081b"}.mdi-door-closed-cancel:before{content:"\f1c93"}.mdi-door-closed-lock:before{content:"\f10af"}.mdi-door-open:before{content:"\f081c"}.mdi-door-sliding:before{content:"\f181e"}.mdi-door-sliding-lock:before{content:"\f181f"}.mdi-door-sliding-open:before{content:"\f1820"}.mdi-doorbell:before{content:"\f12e6"}.mdi-doorbell-video:before{content:"\f0869"}.mdi-dot-net:before{content:"\f0aae"}.mdi-dots-circle:before{content:"\f1978"}.mdi-dots-grid:before{content:"\f15fc"}.mdi-dots-hexagon:before{content:"\f15ff"}.mdi-dots-horizontal:before{content:"\f01d8"}.mdi-dots-horizontal-circle:before{content:"\f07c3"}.mdi-dots-horizontal-circle-outline:before{content:"\f0b8d"}.mdi-dots-square:before{content:"\f15fd"}.mdi-dots-triangle:before{content:"\f15fe"}.mdi-dots-vertical:before{content:"\f01d9"}.mdi-dots-vertical-circle:before{content:"\f07c4"}.mdi-dots-vertical-circle-outline:before{content:"\f0b8e"}.mdi-download:before{content:"\f01da"}.mdi-download-box:before{content:"\f1462"}.mdi-download-box-outline:before{content:"\f1463"}.mdi-download-circle:before{content:"\f1464"}.mdi-download-circle-outline:before{content:"\f1465"}.mdi-download-lock:before{content:"\f1320"}.mdi-download-lock-outline:before{content:"\f1321"}.mdi-download-multiple:before{content:"\f09e9"}.mdi-download-network:before{content:"\f06f4"}.mdi-download-network-outline:before{content:"\f0c66"}.mdi-download-off:before{content:"\f10b0"}.mdi-download-off-outline:before{content:"\f10b1"}.mdi-download-outline:before{content:"\f0b8f"}.mdi-drag:before{content:"\f01db"}.mdi-drag-horizontal:before{content:"\f01dc"}.mdi-drag-horizontal-variant:before{content:"\f12f0"}.mdi-drag-variant:before{content:"\f0b90"}.mdi-drag-vertical:before{content:"\f01dd"}.mdi-drag-vertical-variant:before{content:"\f12f1"}.mdi-drama-masks:before{content:"\f0d02"}.mdi-draw:before{content:"\f0f49"}.mdi-draw-pen:before{content:"\f19b9"}.mdi-drawing:before{content:"\f01de"}.mdi-drawing-box:before{content:"\f01df"}.mdi-dresser:before{content:"\f0f4a"}.mdi-dresser-outline:before{content:"\f0f4b"}.mdi-drone:before{content:"\f01e2"}.mdi-dropbox:before{content:"\f01e3"}.mdi-drupal:before{content:"\f01e4"}.mdi-duck:before{content:"\f01e5"}.mdi-dumbbell:before{content:"\f01e6"}.mdi-dump-truck:before{content:"\f0c67"}.mdi-ear-hearing:before{content:"\f07c5"}.mdi-ear-hearing-loop:before{content:"\f1aee"}.mdi-ear-hearing-off:before{content:"\f0a45"}.mdi-earbuds:before{content:"\f184f"}.mdi-earbuds-off:before{content:"\f1850"}.mdi-earbuds-off-outline:before{content:"\f1851"}.mdi-earbuds-outline:before{content:"\f1852"}.mdi-earth:before{content:"\f01e7"}.mdi-earth-arrow-down:before{content:"\f1c87"}.mdi-earth-arrow-left:before{content:"\f1c88"}.mdi-earth-arrow-right:before{content:"\f1311"}.mdi-earth-arrow-up:before{content:"\f1c89"}.mdi-earth-box:before{content:"\f06cd"}.mdi-earth-box-minus:before{content:"\f1407"}.mdi-earth-box-off:before{content:"\f06ce"}.mdi-earth-box-plus:before{content:"\f1406"}.mdi-earth-box-remove:before{content:"\f1408"}.mdi-earth-minus:before{content:"\f1404"}.mdi-earth-off:before{content:"\f01e8"}.mdi-earth-plus:before{content:"\f1403"}.mdi-earth-remove:before{content:"\f1405"}.mdi-egg:before{content:"\f0aaf"}.mdi-egg-easter:before{content:"\f0ab0"}.mdi-egg-fried:before{content:"\f184a"}.mdi-egg-off:before{content:"\f13f0"}.mdi-egg-off-outline:before{content:"\f13f1"}.mdi-egg-outline:before{content:"\f13f2"}.mdi-eiffel-tower:before{content:"\f156b"}.mdi-eight-track:before{content:"\f09ea"}.mdi-eject:before{content:"\f01ea"}.mdi-eject-circle:before{content:"\f1b23"}.mdi-eject-circle-outline:before{content:"\f1b24"}.mdi-eject-outline:before{content:"\f0b91"}.mdi-electric-switch:before{content:"\f0e9f"}.mdi-electric-switch-closed:before{content:"\f10d9"}.mdi-electron-framework:before{content:"\f1024"}.mdi-elephant:before{content:"\f07c6"}.mdi-elevation-decline:before{content:"\f01eb"}.mdi-elevation-rise:before{content:"\f01ec"}.mdi-elevator:before{content:"\f01ed"}.mdi-elevator-down:before{content:"\f12c2"}.mdi-elevator-passenger:before{content:"\f1381"}.mdi-elevator-passenger-off:before{content:"\f1979"}.mdi-elevator-passenger-off-outline:before{content:"\f197a"}.mdi-elevator-passenger-outline:before{content:"\f197b"}.mdi-elevator-up:before{content:"\f12c1"}.mdi-ellipse:before{content:"\f0ea0"}.mdi-ellipse-outline:before{content:"\f0ea1"}.mdi-email:before{content:"\f01ee"}.mdi-email-alert:before{content:"\f06cf"}.mdi-email-alert-outline:before{content:"\f0d42"}.mdi-email-arrow-left:before{content:"\f10da"}.mdi-email-arrow-left-outline:before{content:"\f10db"}.mdi-email-arrow-right:before{content:"\f10dc"}.mdi-email-arrow-right-outline:before{content:"\f10dd"}.mdi-email-box:before{content:"\f0d03"}.mdi-email-check:before{content:"\f0ab1"}.mdi-email-check-outline:before{content:"\f0ab2"}.mdi-email-edit:before{content:"\f0ee3"}.mdi-email-edit-outline:before{content:"\f0ee4"}.mdi-email-fast:before{content:"\f186f"}.mdi-email-fast-outline:before{content:"\f1870"}.mdi-email-heart-outline:before{content:"\f1c5b"}.mdi-email-lock:before{content:"\f01f1"}.mdi-email-lock-outline:before{content:"\f1b61"}.mdi-email-mark-as-unread:before{content:"\f0b92"}.mdi-email-minus:before{content:"\f0ee5"}.mdi-email-minus-outline:before{content:"\f0ee6"}.mdi-email-multiple:before{content:"\f0ee7"}.mdi-email-multiple-outline:before{content:"\f0ee8"}.mdi-email-newsletter:before{content:"\f0fb1"}.mdi-email-off:before{content:"\f13e3"}.mdi-email-off-outline:before{content:"\f13e4"}.mdi-email-open:before{content:"\f01ef"}.mdi-email-open-heart-outline:before{content:"\f1c5c"}.mdi-email-open-multiple:before{content:"\f0ee9"}.mdi-email-open-multiple-outline:before{content:"\f0eea"}.mdi-email-open-outline:before{content:"\f05ef"}.mdi-email-outline:before{content:"\f01f0"}.mdi-email-plus:before{content:"\f09eb"}.mdi-email-plus-outline:before{content:"\f09ec"}.mdi-email-remove:before{content:"\f1661"}.mdi-email-remove-outline:before{content:"\f1662"}.mdi-email-seal:before{content:"\f195b"}.mdi-email-seal-outline:before{content:"\f195c"}.mdi-email-search:before{content:"\f0961"}.mdi-email-search-outline:before{content:"\f0962"}.mdi-email-sync:before{content:"\f12c7"}.mdi-email-sync-outline:before{content:"\f12c8"}.mdi-email-variant:before{content:"\f05f0"}.mdi-ember:before{content:"\f0b30"}.mdi-emby:before{content:"\f06b4"}.mdi-emoticon:before{content:"\f0c68"}.mdi-emoticon-angry:before{content:"\f0c69"}.mdi-emoticon-angry-outline:before{content:"\f0c6a"}.mdi-emoticon-confused:before{content:"\f10de"}.mdi-emoticon-confused-outline:before{content:"\f10df"}.mdi-emoticon-cool:before{content:"\f0c6b"}.mdi-emoticon-cool-outline:before{content:"\f01f3"}.mdi-emoticon-cry:before{content:"\f0c6c"}.mdi-emoticon-cry-outline:before{content:"\f0c6d"}.mdi-emoticon-dead:before{content:"\f0c6e"}.mdi-emoticon-dead-outline:before{content:"\f069b"}.mdi-emoticon-devil:before{content:"\f0c6f"}.mdi-emoticon-devil-outline:before{content:"\f01f4"}.mdi-emoticon-excited:before{content:"\f0c70"}.mdi-emoticon-excited-outline:before{content:"\f069c"}.mdi-emoticon-frown:before{content:"\f0f4c"}.mdi-emoticon-frown-outline:before{content:"\f0f4d"}.mdi-emoticon-happy:before{content:"\f0c71"}.mdi-emoticon-happy-outline:before{content:"\f01f5"}.mdi-emoticon-kiss:before{content:"\f0c72"}.mdi-emoticon-kiss-outline:before{content:"\f0c73"}.mdi-emoticon-lol:before{content:"\f1214"}.mdi-emoticon-lol-outline:before{content:"\f1215"}.mdi-emoticon-minus:before{content:"\f1cb2"}.mdi-emoticon-minus-outline:before{content:"\f1cb3"}.mdi-emoticon-neutral:before{content:"\f0c74"}.mdi-emoticon-neutral-outline:before{content:"\f01f6"}.mdi-emoticon-outline:before{content:"\f01f2"}.mdi-emoticon-plus:before{content:"\f1cb4"}.mdi-emoticon-plus-outline:before{content:"\f1cb5"}.mdi-emoticon-poop:before{content:"\f01f7"}.mdi-emoticon-poop-outline:before{content:"\f0c75"}.mdi-emoticon-remove:before{content:"\f1cb6"}.mdi-emoticon-remove-outline:before{content:"\f1cb7"}.mdi-emoticon-sad:before{content:"\f0c76"}.mdi-emoticon-sad-outline:before{content:"\f01f8"}.mdi-emoticon-sick:before{content:"\f157c"}.mdi-emoticon-sick-outline:before{content:"\f157d"}.mdi-emoticon-tongue:before{content:"\f01f9"}.mdi-emoticon-tongue-outline:before{content:"\f0c77"}.mdi-emoticon-wink:before{content:"\f0c78"}.mdi-emoticon-wink-outline:before{content:"\f0c79"}.mdi-engine:before{content:"\f01fa"}.mdi-engine-off:before{content:"\f0a46"}.mdi-engine-off-outline:before{content:"\f0a47"}.mdi-engine-outline:before{content:"\f01fb"}.mdi-epsilon:before{content:"\f10e0"}.mdi-equal:before{content:"\f01fc"}.mdi-equal-box:before{content:"\f01fd"}.mdi-equalizer:before{content:"\f0ea2"}.mdi-equalizer-outline:before{content:"\f0ea3"}.mdi-eraser:before{content:"\f01fe"}.mdi-eraser-variant:before{content:"\f0642"}.mdi-escalator:before{content:"\f01ff"}.mdi-escalator-box:before{content:"\f1399"}.mdi-escalator-down:before{content:"\f12c0"}.mdi-escalator-up:before{content:"\f12bf"}.mdi-eslint:before{content:"\f0c7a"}.mdi-et:before{content:"\f0ab3"}.mdi-ethereum:before{content:"\f086a"}.mdi-ethernet:before{content:"\f0200"}.mdi-ethernet-cable:before{content:"\f0201"}.mdi-ethernet-cable-off:before{content:"\f0202"}.mdi-ev-plug-ccs1:before{content:"\f1519"}.mdi-ev-plug-ccs2:before{content:"\f151a"}.mdi-ev-plug-chademo:before{content:"\f151b"}.mdi-ev-plug-tesla:before{content:"\f151c"}.mdi-ev-plug-type1:before{content:"\f151d"}.mdi-ev-plug-type2:before{content:"\f151e"}.mdi-ev-station:before{content:"\f05f1"}.mdi-evernote:before{content:"\f0204"}.mdi-excavator:before{content:"\f1025"}.mdi-exclamation:before{content:"\f0205"}.mdi-exclamation-thick:before{content:"\f1238"}.mdi-exit-run:before{content:"\f0a48"}.mdi-exit-to-app:before{content:"\f0206"}.mdi-expand-all:before{content:"\f0ab4"}.mdi-expand-all-outline:before{content:"\f0ab5"}.mdi-expansion-card:before{content:"\f08ae"}.mdi-expansion-card-variant:before{content:"\f0fb2"}.mdi-exponent:before{content:"\f0963"}.mdi-exponent-box:before{content:"\f0964"}.mdi-export:before{content:"\f0207"}.mdi-export-variant:before{content:"\f0b93"}.mdi-eye:before{content:"\f0208"}.mdi-eye-arrow-left:before{content:"\f18fd"}.mdi-eye-arrow-left-outline:before{content:"\f18fe"}.mdi-eye-arrow-right:before{content:"\f18ff"}.mdi-eye-arrow-right-outline:before{content:"\f1900"}.mdi-eye-check:before{content:"\f0d04"}.mdi-eye-check-outline:before{content:"\f0d05"}.mdi-eye-circle:before{content:"\f0b94"}.mdi-eye-circle-outline:before{content:"\f0b95"}.mdi-eye-closed:before{content:"\f1ca3"}.mdi-eye-lock:before{content:"\f1c06"}.mdi-eye-lock-open:before{content:"\f1c07"}.mdi-eye-lock-open-outline:before{content:"\f1c08"}.mdi-eye-lock-outline:before{content:"\f1c09"}.mdi-eye-minus:before{content:"\f1026"}.mdi-eye-minus-outline:before{content:"\f1027"}.mdi-eye-off:before{content:"\f0209"}.mdi-eye-off-outline:before{content:"\f06d1"}.mdi-eye-outline:before{content:"\f06d0"}.mdi-eye-plus:before{content:"\f086b"}.mdi-eye-plus-outline:before{content:"\f086c"}.mdi-eye-refresh:before{content:"\f197c"}.mdi-eye-refresh-outline:before{content:"\f197d"}.mdi-eye-remove:before{content:"\f15e3"}.mdi-eye-remove-outline:before{content:"\f15e4"}.mdi-eye-settings:before{content:"\f086d"}.mdi-eye-settings-outline:before{content:"\f086e"}.mdi-eyedropper:before{content:"\f020a"}.mdi-eyedropper-minus:before{content:"\f13dd"}.mdi-eyedropper-off:before{content:"\f13df"}.mdi-eyedropper-plus:before{content:"\f13dc"}.mdi-eyedropper-remove:before{content:"\f13de"}.mdi-eyedropper-variant:before{content:"\f020b"}.mdi-face-agent:before{content:"\f0d70"}.mdi-face-man:before{content:"\f0643"}.mdi-face-man-outline:before{content:"\f0b96"}.mdi-face-man-profile:before{content:"\f0644"}.mdi-face-man-shimmer:before{content:"\f15cc"}.mdi-face-man-shimmer-outline:before{content:"\f15cd"}.mdi-face-mask:before{content:"\f1586"}.mdi-face-mask-outline:before{content:"\f1587"}.mdi-face-recognition:before{content:"\f0c7b"}.mdi-face-woman:before{content:"\f1077"}.mdi-face-woman-outline:before{content:"\f1078"}.mdi-face-woman-profile:before{content:"\f1076"}.mdi-face-woman-shimmer:before{content:"\f15ce"}.mdi-face-woman-shimmer-outline:before{content:"\f15cf"}.mdi-facebook:before{content:"\f020c"}.mdi-facebook-gaming:before{content:"\f07dd"}.mdi-facebook-messenger:before{content:"\f020e"}.mdi-facebook-workplace:before{content:"\f0b31"}.mdi-factory:before{content:"\f020f"}.mdi-family-tree:before{content:"\f160e"}.mdi-fan:before{content:"\f0210"}.mdi-fan-alert:before{content:"\f146c"}.mdi-fan-auto:before{content:"\f171d"}.mdi-fan-chevron-down:before{content:"\f146d"}.mdi-fan-chevron-up:before{content:"\f146e"}.mdi-fan-clock:before{content:"\f1a3a"}.mdi-fan-minus:before{content:"\f1470"}.mdi-fan-off:before{content:"\f081d"}.mdi-fan-plus:before{content:"\f146f"}.mdi-fan-remove:before{content:"\f1471"}.mdi-fan-speed-1:before{content:"\f1472"}.mdi-fan-speed-2:before{content:"\f1473"}.mdi-fan-speed-3:before{content:"\f1474"}.mdi-fast-forward:before{content:"\f0211"}.mdi-fast-forward-10:before{content:"\f0d71"}.mdi-fast-forward-15:before{content:"\f193a"}.mdi-fast-forward-30:before{content:"\f0d06"}.mdi-fast-forward-45:before{content:"\f1b12"}.mdi-fast-forward-5:before{content:"\f11f8"}.mdi-fast-forward-60:before{content:"\f160b"}.mdi-fast-forward-outline:before{content:"\f06d2"}.mdi-faucet:before{content:"\f1b29"}.mdi-faucet-variant:before{content:"\f1b2a"}.mdi-fax:before{content:"\f0212"}.mdi-feather:before{content:"\f06d3"}.mdi-feature-search:before{content:"\f0a49"}.mdi-feature-search-outline:before{content:"\f0a4a"}.mdi-fedora:before{content:"\f08db"}.mdi-fence:before{content:"\f179a"}.mdi-fence-electric:before{content:"\f17f6"}.mdi-fencing:before{content:"\f14c1"}.mdi-ferris-wheel:before{content:"\f0ea4"}.mdi-ferry:before{content:"\f0213"}.mdi-file:before{content:"\f0214"}.mdi-file-account:before{content:"\f073b"}.mdi-file-account-outline:before{content:"\f1028"}.mdi-file-alert:before{content:"\f0a4b"}.mdi-file-alert-outline:before{content:"\f0a4c"}.mdi-file-arrow-left-right:before{content:"\f1a93"}.mdi-file-arrow-left-right-outline:before{content:"\f1a94"}.mdi-file-arrow-up-down:before{content:"\f1a95"}.mdi-file-arrow-up-down-outline:before{content:"\f1a96"}.mdi-file-cabinet:before{content:"\f0ab6"}.mdi-file-cad:before{content:"\f0eeb"}.mdi-file-cad-box:before{content:"\f0eec"}.mdi-file-cancel:before{content:"\f0dc6"}.mdi-file-cancel-outline:before{content:"\f0dc7"}.mdi-file-certificate:before{content:"\f1186"}.mdi-file-certificate-outline:before{content:"\f1187"}.mdi-file-chart:before{content:"\f0215"}.mdi-file-chart-check:before{content:"\f19c6"}.mdi-file-chart-check-outline:before{content:"\f19c7"}.mdi-file-chart-outline:before{content:"\f1029"}.mdi-file-check:before{content:"\f0216"}.mdi-file-check-outline:before{content:"\f0e29"}.mdi-file-clock:before{content:"\f12e1"}.mdi-file-clock-outline:before{content:"\f12e2"}.mdi-file-cloud:before{content:"\f0217"}.mdi-file-cloud-outline:before{content:"\f102a"}.mdi-file-code:before{content:"\f022e"}.mdi-file-code-outline:before{content:"\f102b"}.mdi-file-cog:before{content:"\f107b"}.mdi-file-cog-outline:before{content:"\f107c"}.mdi-file-compare:before{content:"\f08aa"}.mdi-file-delimited:before{content:"\f0218"}.mdi-file-delimited-outline:before{content:"\f0ea5"}.mdi-file-document:before{content:"\f0219"}.mdi-file-document-alert:before{content:"\f1a97"}.mdi-file-document-alert-outline:before{content:"\f1a98"}.mdi-file-document-arrow-right:before{content:"\f1c0f"}.mdi-file-document-arrow-right-outline:before{content:"\f1c10"}.mdi-file-document-check:before{content:"\f1a99"}.mdi-file-document-check-outline:before{content:"\f1a9a"}.mdi-file-document-edit:before{content:"\f0dc8"}.mdi-file-document-edit-outline:before{content:"\f0dc9"}.mdi-file-document-minus:before{content:"\f1a9b"}.mdi-file-document-minus-outline:before{content:"\f1a9c"}.mdi-file-document-multiple:before{content:"\f1517"}.mdi-file-document-multiple-outline:before{content:"\f1518"}.mdi-file-document-outline:before{content:"\f09ee"}.mdi-file-document-plus:before{content:"\f1a9d"}.mdi-file-document-plus-outline:before{content:"\f1a9e"}.mdi-file-document-refresh:before{content:"\f1c7a"}.mdi-file-document-refresh-outline:before{content:"\f1c7b"}.mdi-file-document-remove:before{content:"\f1a9f"}.mdi-file-document-remove-outline:before{content:"\f1aa0"}.mdi-file-download:before{content:"\f0965"}.mdi-file-download-outline:before{content:"\f0966"}.mdi-file-edit:before{content:"\f11e7"}.mdi-file-edit-outline:before{content:"\f11e8"}.mdi-file-excel:before{content:"\f021b"}.mdi-file-excel-box:before{content:"\f021c"}.mdi-file-excel-box-outline:before{content:"\f102c"}.mdi-file-excel-outline:before{content:"\f102d"}.mdi-file-export:before{content:"\f021d"}.mdi-file-export-outline:before{content:"\f102e"}.mdi-file-eye:before{content:"\f0dca"}.mdi-file-eye-outline:before{content:"\f0dcb"}.mdi-file-find:before{content:"\f021e"}.mdi-file-find-outline:before{content:"\f0b97"}.mdi-file-gif-box:before{content:"\f0d78"}.mdi-file-hidden:before{content:"\f0613"}.mdi-file-image:before{content:"\f021f"}.mdi-file-image-marker:before{content:"\f1772"}.mdi-file-image-marker-outline:before{content:"\f1773"}.mdi-file-image-minus:before{content:"\f193b"}.mdi-file-image-minus-outline:before{content:"\f193c"}.mdi-file-image-outline:before{content:"\f0eb0"}.mdi-file-image-plus:before{content:"\f193d"}.mdi-file-image-plus-outline:before{content:"\f193e"}.mdi-file-image-remove:before{content:"\f193f"}.mdi-file-image-remove-outline:before{content:"\f1940"}.mdi-file-import:before{content:"\f0220"}.mdi-file-import-outline:before{content:"\f102f"}.mdi-file-jpg-box:before{content:"\f0225"}.mdi-file-key:before{content:"\f1184"}.mdi-file-key-outline:before{content:"\f1185"}.mdi-file-link:before{content:"\f1177"}.mdi-file-link-outline:before{content:"\f1178"}.mdi-file-lock:before{content:"\f0221"}.mdi-file-lock-open:before{content:"\f19c8"}.mdi-file-lock-open-outline:before{content:"\f19c9"}.mdi-file-lock-outline:before{content:"\f1030"}.mdi-file-marker:before{content:"\f1774"}.mdi-file-marker-outline:before{content:"\f1775"}.mdi-file-minus:before{content:"\f1aa1"}.mdi-file-minus-outline:before{content:"\f1aa2"}.mdi-file-move:before{content:"\f0ab9"}.mdi-file-move-outline:before{content:"\f1031"}.mdi-file-multiple:before{content:"\f0222"}.mdi-file-multiple-outline:before{content:"\f1032"}.mdi-file-music:before{content:"\f0223"}.mdi-file-music-outline:before{content:"\f0e2a"}.mdi-file-outline:before{content:"\f0224"}.mdi-file-pdf-box:before{content:"\f0226"}.mdi-file-percent:before{content:"\f081e"}.mdi-file-percent-outline:before{content:"\f1033"}.mdi-file-phone:before{content:"\f1179"}.mdi-file-phone-outline:before{content:"\f117a"}.mdi-file-plus:before{content:"\f0752"}.mdi-file-plus-outline:before{content:"\f0eed"}.mdi-file-png-box:before{content:"\f0e2d"}.mdi-file-powerpoint:before{content:"\f0227"}.mdi-file-powerpoint-box:before{content:"\f0228"}.mdi-file-powerpoint-box-outline:before{content:"\f1034"}.mdi-file-powerpoint-outline:before{content:"\f1035"}.mdi-file-presentation-box:before{content:"\f0229"}.mdi-file-question:before{content:"\f086f"}.mdi-file-question-outline:before{content:"\f1036"}.mdi-file-refresh:before{content:"\f0918"}.mdi-file-refresh-outline:before{content:"\f0541"}.mdi-file-remove:before{content:"\f0b98"}.mdi-file-remove-outline:before{content:"\f1037"}.mdi-file-replace:before{content:"\f0b32"}.mdi-file-replace-outline:before{content:"\f0b33"}.mdi-file-restore:before{content:"\f0670"}.mdi-file-restore-outline:before{content:"\f1038"}.mdi-file-rotate-left:before{content:"\f1a3b"}.mdi-file-rotate-left-outline:before{content:"\f1a3c"}.mdi-file-rotate-right:before{content:"\f1a3d"}.mdi-file-rotate-right-outline:before{content:"\f1a3e"}.mdi-file-search:before{content:"\f0c7c"}.mdi-file-search-outline:before{content:"\f0c7d"}.mdi-file-send:before{content:"\f022a"}.mdi-file-send-outline:before{content:"\f1039"}.mdi-file-settings:before{content:"\f1079"}.mdi-file-settings-outline:before{content:"\f107a"}.mdi-file-sign:before{content:"\f19c3"}.mdi-file-star:before{content:"\f103a"}.mdi-file-star-four-points:before{content:"\f1c2d"}.mdi-file-star-four-points-outline:before{content:"\f1c2e"}.mdi-file-star-outline:before{content:"\f103b"}.mdi-file-swap:before{content:"\f0fb4"}.mdi-file-swap-outline:before{content:"\f0fb5"}.mdi-file-sync:before{content:"\f1216"}.mdi-file-sync-outline:before{content:"\f1217"}.mdi-file-table:before{content:"\f0c7e"}.mdi-file-table-box:before{content:"\f10e1"}.mdi-file-table-box-multiple:before{content:"\f10e2"}.mdi-file-table-box-multiple-outline:before{content:"\f10e3"}.mdi-file-table-box-outline:before{content:"\f10e4"}.mdi-file-table-outline:before{content:"\f0c7f"}.mdi-file-tree:before{content:"\f0645"}.mdi-file-tree-outline:before{content:"\f13d2"}.mdi-file-undo:before{content:"\f08dc"}.mdi-file-undo-outline:before{content:"\f103c"}.mdi-file-upload:before{content:"\f0a4d"}.mdi-file-upload-outline:before{content:"\f0a4e"}.mdi-file-video:before{content:"\f022b"}.mdi-file-video-outline:before{content:"\f0e2c"}.mdi-file-word:before{content:"\f022c"}.mdi-file-word-box:before{content:"\f022d"}.mdi-file-word-box-outline:before{content:"\f103d"}.mdi-file-word-outline:before{content:"\f103e"}.mdi-file-xml-box:before{content:"\f1b4b"}.mdi-film:before{content:"\f022f"}.mdi-filmstrip:before{content:"\f0230"}.mdi-filmstrip-box:before{content:"\f0332"}.mdi-filmstrip-box-multiple:before{content:"\f0d18"}.mdi-filmstrip-off:before{content:"\f0231"}.mdi-filter:before{content:"\f0232"}.mdi-filter-check:before{content:"\f18ec"}.mdi-filter-check-outline:before{content:"\f18ed"}.mdi-filter-cog:before{content:"\f1aa3"}.mdi-filter-cog-outline:before{content:"\f1aa4"}.mdi-filter-menu:before{content:"\f10e5"}.mdi-filter-menu-outline:before{content:"\f10e6"}.mdi-filter-minus:before{content:"\f0eee"}.mdi-filter-minus-outline:before{content:"\f0eef"}.mdi-filter-multiple:before{content:"\f1a3f"}.mdi-filter-multiple-outline:before{content:"\f1a40"}.mdi-filter-off:before{content:"\f14ef"}.mdi-filter-off-outline:before{content:"\f14f0"}.mdi-filter-outline:before{content:"\f0233"}.mdi-filter-plus:before{content:"\f0ef0"}.mdi-filter-plus-outline:before{content:"\f0ef1"}.mdi-filter-remove:before{content:"\f0234"}.mdi-filter-remove-outline:before{content:"\f0235"}.mdi-filter-settings:before{content:"\f1aa5"}.mdi-filter-settings-outline:before{content:"\f1aa6"}.mdi-filter-variant:before{content:"\f0236"}.mdi-filter-variant-minus:before{content:"\f1112"}.mdi-filter-variant-plus:before{content:"\f1113"}.mdi-filter-variant-remove:before{content:"\f103f"}.mdi-finance:before{content:"\f081f"}.mdi-find-replace:before{content:"\f06d4"}.mdi-fingerprint:before{content:"\f0237"}.mdi-fingerprint-off:before{content:"\f0eb1"}.mdi-fire:before{content:"\f0238"}.mdi-fire-alert:before{content:"\f15d7"}.mdi-fire-circle:before{content:"\f1807"}.mdi-fire-extinguisher:before{content:"\f0ef2"}.mdi-fire-hydrant:before{content:"\f1137"}.mdi-fire-hydrant-alert:before{content:"\f1138"}.mdi-fire-hydrant-off:before{content:"\f1139"}.mdi-fire-off:before{content:"\f1722"}.mdi-fire-station:before{content:"\f1cc3"}.mdi-fire-truck:before{content:"\f08ab"}.mdi-firebase:before{content:"\f0967"}.mdi-firefox:before{content:"\f0239"}.mdi-fireplace:before{content:"\f0e2e"}.mdi-fireplace-off:before{content:"\f0e2f"}.mdi-firewire:before{content:"\f05be"}.mdi-firework:before{content:"\f0e30"}.mdi-firework-off:before{content:"\f1723"}.mdi-fish:before{content:"\f023a"}.mdi-fish-off:before{content:"\f13f3"}.mdi-fishbowl:before{content:"\f0ef3"}.mdi-fishbowl-outline:before{content:"\f0ef4"}.mdi-fit-to-page:before{content:"\f0ef5"}.mdi-fit-to-page-outline:before{content:"\f0ef6"}.mdi-fit-to-screen:before{content:"\f18f4"}.mdi-fit-to-screen-outline:before{content:"\f18f5"}.mdi-flag:before{content:"\f023b"}.mdi-flag-checkered:before{content:"\f023c"}.mdi-flag-minus:before{content:"\f0b99"}.mdi-flag-minus-outline:before{content:"\f10b2"}.mdi-flag-off:before{content:"\f18ee"}.mdi-flag-off-outline:before{content:"\f18ef"}.mdi-flag-outline:before{content:"\f023d"}.mdi-flag-plus:before{content:"\f0b9a"}.mdi-flag-plus-outline:before{content:"\f10b3"}.mdi-flag-remove:before{content:"\f0b9b"}.mdi-flag-remove-outline:before{content:"\f10b4"}.mdi-flag-triangle:before{content:"\f023f"}.mdi-flag-variant:before{content:"\f0240"}.mdi-flag-variant-minus:before{content:"\f1bb4"}.mdi-flag-variant-minus-outline:before{content:"\f1bb5"}.mdi-flag-variant-off:before{content:"\f1bb0"}.mdi-flag-variant-off-outline:before{content:"\f1bb1"}.mdi-flag-variant-outline:before{content:"\f023e"}.mdi-flag-variant-plus:before{content:"\f1bb2"}.mdi-flag-variant-plus-outline:before{content:"\f1bb3"}.mdi-flag-variant-remove:before{content:"\f1bb6"}.mdi-flag-variant-remove-outline:before{content:"\f1bb7"}.mdi-flare:before{content:"\f0d72"}.mdi-flash:before{content:"\f0241"}.mdi-flash-alert:before{content:"\f0ef7"}.mdi-flash-alert-outline:before{content:"\f0ef8"}.mdi-flash-auto:before{content:"\f0242"}.mdi-flash-off:before{content:"\f0243"}.mdi-flash-off-outline:before{content:"\f1b45"}.mdi-flash-outline:before{content:"\f06d5"}.mdi-flash-red-eye:before{content:"\f067b"}.mdi-flash-triangle:before{content:"\f1b1d"}.mdi-flash-triangle-outline:before{content:"\f1b1e"}.mdi-flashlight:before{content:"\f0244"}.mdi-flashlight-off:before{content:"\f0245"}.mdi-flask:before{content:"\f0093"}.mdi-flask-empty:before{content:"\f0094"}.mdi-flask-empty-minus:before{content:"\f123a"}.mdi-flask-empty-minus-outline:before{content:"\f123b"}.mdi-flask-empty-off:before{content:"\f13f4"}.mdi-flask-empty-off-outline:before{content:"\f13f5"}.mdi-flask-empty-outline:before{content:"\f0095"}.mdi-flask-empty-plus:before{content:"\f123c"}.mdi-flask-empty-plus-outline:before{content:"\f123d"}.mdi-flask-empty-remove:before{content:"\f123e"}.mdi-flask-empty-remove-outline:before{content:"\f123f"}.mdi-flask-minus:before{content:"\f1240"}.mdi-flask-minus-outline:before{content:"\f1241"}.mdi-flask-off:before{content:"\f13f6"}.mdi-flask-off-outline:before{content:"\f13f7"}.mdi-flask-outline:before{content:"\f0096"}.mdi-flask-plus:before{content:"\f1242"}.mdi-flask-plus-outline:before{content:"\f1243"}.mdi-flask-remove:before{content:"\f1244"}.mdi-flask-remove-outline:before{content:"\f1245"}.mdi-flask-round-bottom:before{content:"\f124b"}.mdi-flask-round-bottom-empty:before{content:"\f124c"}.mdi-flask-round-bottom-empty-outline:before{content:"\f124d"}.mdi-flask-round-bottom-outline:before{content:"\f124e"}.mdi-fleur-de-lis:before{content:"\f1303"}.mdi-flip-horizontal:before{content:"\f10e7"}.mdi-flip-to-back:before{content:"\f0247"}.mdi-flip-to-front:before{content:"\f0248"}.mdi-flip-vertical:before{content:"\f10e8"}.mdi-floor-lamp:before{content:"\f08dd"}.mdi-floor-lamp-dual:before{content:"\f1040"}.mdi-floor-lamp-dual-outline:before{content:"\f17ce"}.mdi-floor-lamp-outline:before{content:"\f17c8"}.mdi-floor-lamp-torchiere:before{content:"\f1747"}.mdi-floor-lamp-torchiere-outline:before{content:"\f17d6"}.mdi-floor-lamp-torchiere-variant:before{content:"\f1041"}.mdi-floor-lamp-torchiere-variant-outline:before{content:"\f17cf"}.mdi-floor-plan:before{content:"\f0821"}.mdi-floppy:before{content:"\f0249"}.mdi-floppy-variant:before{content:"\f09ef"}.mdi-flower:before{content:"\f024a"}.mdi-flower-outline:before{content:"\f09f0"}.mdi-flower-pollen:before{content:"\f1885"}.mdi-flower-pollen-outline:before{content:"\f1886"}.mdi-flower-poppy:before{content:"\f0d08"}.mdi-flower-tulip:before{content:"\f09f1"}.mdi-flower-tulip-outline:before{content:"\f09f2"}.mdi-focus-auto:before{content:"\f0f4e"}.mdi-focus-field:before{content:"\f0f4f"}.mdi-focus-field-horizontal:before{content:"\f0f50"}.mdi-focus-field-vertical:before{content:"\f0f51"}.mdi-folder:before{content:"\f024b"}.mdi-folder-account:before{content:"\f024c"}.mdi-folder-account-outline:before{content:"\f0b9c"}.mdi-folder-alert:before{content:"\f0dcc"}.mdi-folder-alert-outline:before{content:"\f0dcd"}.mdi-folder-arrow-down:before{content:"\f19e8"}.mdi-folder-arrow-down-outline:before{content:"\f19e9"}.mdi-folder-arrow-left:before{content:"\f19ea"}.mdi-folder-arrow-left-outline:before{content:"\f19eb"}.mdi-folder-arrow-left-right:before{content:"\f19ec"}.mdi-folder-arrow-left-right-outline:before{content:"\f19ed"}.mdi-folder-arrow-right:before{content:"\f19ee"}.mdi-folder-arrow-right-outline:before{content:"\f19ef"}.mdi-folder-arrow-up:before{content:"\f19f0"}.mdi-folder-arrow-up-down:before{content:"\f19f1"}.mdi-folder-arrow-up-down-outline:before{content:"\f19f2"}.mdi-folder-arrow-up-outline:before{content:"\f19f3"}.mdi-folder-cancel:before{content:"\f19f4"}.mdi-folder-cancel-outline:before{content:"\f19f5"}.mdi-folder-check:before{content:"\f197e"}.mdi-folder-check-outline:before{content:"\f197f"}.mdi-folder-clock:before{content:"\f0aba"}.mdi-folder-clock-outline:before{content:"\f0abb"}.mdi-folder-cog:before{content:"\f107f"}.mdi-folder-cog-outline:before{content:"\f1080"}.mdi-folder-download:before{content:"\f024d"}.mdi-folder-download-outline:before{content:"\f10e9"}.mdi-folder-edit:before{content:"\f08de"}.mdi-folder-edit-outline:before{content:"\f0dce"}.mdi-folder-eye:before{content:"\f178a"}.mdi-folder-eye-outline:before{content:"\f178b"}.mdi-folder-file:before{content:"\f19f6"}.mdi-folder-file-outline:before{content:"\f19f7"}.mdi-folder-google-drive:before{content:"\f024e"}.mdi-folder-heart:before{content:"\f10ea"}.mdi-folder-heart-outline:before{content:"\f10eb"}.mdi-folder-hidden:before{content:"\f179e"}.mdi-folder-home:before{content:"\f10b5"}.mdi-folder-home-outline:before{content:"\f10b6"}.mdi-folder-image:before{content:"\f024f"}.mdi-folder-information:before{content:"\f10b7"}.mdi-folder-information-outline:before{content:"\f10b8"}.mdi-folder-key:before{content:"\f08ac"}.mdi-folder-key-network:before{content:"\f08ad"}.mdi-folder-key-network-outline:before{content:"\f0c80"}.mdi-folder-key-outline:before{content:"\f10ec"}.mdi-folder-lock:before{content:"\f0250"}.mdi-folder-lock-open:before{content:"\f0251"}.mdi-folder-lock-open-outline:before{content:"\f1aa7"}.mdi-folder-lock-outline:before{content:"\f1aa8"}.mdi-folder-marker:before{content:"\f126d"}.mdi-folder-marker-outline:before{content:"\f126e"}.mdi-folder-minus:before{content:"\f1b49"}.mdi-folder-minus-outline:before{content:"\f1b4a"}.mdi-folder-move:before{content:"\f0252"}.mdi-folder-move-outline:before{content:"\f1246"}.mdi-folder-multiple:before{content:"\f0253"}.mdi-folder-multiple-image:before{content:"\f0254"}.mdi-folder-multiple-outline:before{content:"\f0255"}.mdi-folder-multiple-plus:before{content:"\f147e"}.mdi-folder-multiple-plus-outline:before{content:"\f147f"}.mdi-folder-music:before{content:"\f1359"}.mdi-folder-music-outline:before{content:"\f135a"}.mdi-folder-network:before{content:"\f0870"}.mdi-folder-network-outline:before{content:"\f0c81"}.mdi-folder-off:before{content:"\f19f8"}.mdi-folder-off-outline:before{content:"\f19f9"}.mdi-folder-open:before{content:"\f0770"}.mdi-folder-open-outline:before{content:"\f0dcf"}.mdi-folder-outline:before{content:"\f0256"}.mdi-folder-play:before{content:"\f19fa"}.mdi-folder-play-outline:before{content:"\f19fb"}.mdi-folder-plus:before{content:"\f0257"}.mdi-folder-plus-outline:before{content:"\f0b9d"}.mdi-folder-pound:before{content:"\f0d09"}.mdi-folder-pound-outline:before{content:"\f0d0a"}.mdi-folder-question:before{content:"\f19ca"}.mdi-folder-question-outline:before{content:"\f19cb"}.mdi-folder-refresh:before{content:"\f0749"}.mdi-folder-refresh-outline:before{content:"\f0542"}.mdi-folder-remove:before{content:"\f0258"}.mdi-folder-remove-outline:before{content:"\f0b9e"}.mdi-folder-search:before{content:"\f0968"}.mdi-folder-search-outline:before{content:"\f0969"}.mdi-folder-settings:before{content:"\f107d"}.mdi-folder-settings-outline:before{content:"\f107e"}.mdi-folder-star:before{content:"\f069d"}.mdi-folder-star-multiple:before{content:"\f13d3"}.mdi-folder-star-multiple-outline:before{content:"\f13d4"}.mdi-folder-star-outline:before{content:"\f0b9f"}.mdi-folder-swap:before{content:"\f0fb6"}.mdi-folder-swap-outline:before{content:"\f0fb7"}.mdi-folder-sync:before{content:"\f0d0b"}.mdi-folder-sync-outline:before{content:"\f0d0c"}.mdi-folder-table:before{content:"\f12e3"}.mdi-folder-table-outline:before{content:"\f12e4"}.mdi-folder-text:before{content:"\f0c82"}.mdi-folder-text-outline:before{content:"\f0c83"}.mdi-folder-upload:before{content:"\f0259"}.mdi-folder-upload-outline:before{content:"\f10ed"}.mdi-folder-wrench:before{content:"\f19fc"}.mdi-folder-wrench-outline:before{content:"\f19fd"}.mdi-folder-zip:before{content:"\f06eb"}.mdi-folder-zip-outline:before{content:"\f07b9"}.mdi-font-awesome:before{content:"\f003a"}.mdi-food:before{content:"\f025a"}.mdi-food-apple:before{content:"\f025b"}.mdi-food-apple-outline:before{content:"\f0c84"}.mdi-food-croissant:before{content:"\f07c8"}.mdi-food-drumstick:before{content:"\f141f"}.mdi-food-drumstick-off:before{content:"\f1468"}.mdi-food-drumstick-off-outline:before{content:"\f1469"}.mdi-food-drumstick-outline:before{content:"\f1420"}.mdi-food-fork-drink:before{content:"\f05f2"}.mdi-food-halal:before{content:"\f1572"}.mdi-food-hot-dog:before{content:"\f184b"}.mdi-food-kosher:before{content:"\f1573"}.mdi-food-off:before{content:"\f05f3"}.mdi-food-off-outline:before{content:"\f1915"}.mdi-food-outline:before{content:"\f1916"}.mdi-food-steak:before{content:"\f146a"}.mdi-food-steak-off:before{content:"\f146b"}.mdi-food-takeout-box:before{content:"\f1836"}.mdi-food-takeout-box-outline:before{content:"\f1837"}.mdi-food-turkey:before{content:"\f171c"}.mdi-food-variant:before{content:"\f025c"}.mdi-food-variant-off:before{content:"\f13e5"}.mdi-foot-print:before{content:"\f0f52"}.mdi-football:before{content:"\f025d"}.mdi-football-australian:before{content:"\f025e"}.mdi-football-helmet:before{content:"\f025f"}.mdi-forest:before{content:"\f1897"}.mdi-forest-outline:before{content:"\f1c63"}.mdi-forklift:before{content:"\f07c9"}.mdi-form-dropdown:before{content:"\f1400"}.mdi-form-select:before{content:"\f1401"}.mdi-form-textarea:before{content:"\f1095"}.mdi-form-textbox:before{content:"\f060e"}.mdi-form-textbox-lock:before{content:"\f135d"}.mdi-form-textbox-password:before{content:"\f07f5"}.mdi-format-align-bottom:before{content:"\f0753"}.mdi-format-align-center:before{content:"\f0260"}.mdi-format-align-justify:before{content:"\f0261"}.mdi-format-align-left:before{content:"\f0262"}.mdi-format-align-middle:before{content:"\f0754"}.mdi-format-align-right:before{content:"\f0263"}.mdi-format-align-top:before{content:"\f0755"}.mdi-format-annotation-minus:before{content:"\f0abc"}.mdi-format-annotation-plus:before{content:"\f0646"}.mdi-format-bold:before{content:"\f0264"}.mdi-format-clear:before{content:"\f0265"}.mdi-format-color-fill:before{content:"\f0266"}.mdi-format-color-highlight:before{content:"\f0e31"}.mdi-format-color-marker-cancel:before{content:"\f1313"}.mdi-format-color-text:before{content:"\f069e"}.mdi-format-columns:before{content:"\f08df"}.mdi-format-float-center:before{content:"\f0267"}.mdi-format-float-left:before{content:"\f0268"}.mdi-format-float-none:before{content:"\f0269"}.mdi-format-float-right:before{content:"\f026a"}.mdi-format-font:before{content:"\f06d6"}.mdi-format-font-size-decrease:before{content:"\f09f3"}.mdi-format-font-size-increase:before{content:"\f09f4"}.mdi-format-header-1:before{content:"\f026b"}.mdi-format-header-2:before{content:"\f026c"}.mdi-format-header-3:before{content:"\f026d"}.mdi-format-header-4:before{content:"\f026e"}.mdi-format-header-5:before{content:"\f026f"}.mdi-format-header-6:before{content:"\f0270"}.mdi-format-header-decrease:before{content:"\f0271"}.mdi-format-header-equal:before{content:"\f0272"}.mdi-format-header-increase:before{content:"\f0273"}.mdi-format-header-pound:before{content:"\f0274"}.mdi-format-horizontal-align-center:before{content:"\f061e"}.mdi-format-horizontal-align-left:before{content:"\f061f"}.mdi-format-horizontal-align-right:before{content:"\f0620"}.mdi-format-indent-decrease:before{content:"\f0275"}.mdi-format-indent-increase:before{content:"\f0276"}.mdi-format-italic:before{content:"\f0277"}.mdi-format-letter-case:before{content:"\f0b34"}.mdi-format-letter-case-lower:before{content:"\f0b35"}.mdi-format-letter-case-upper:before{content:"\f0b36"}.mdi-format-letter-ends-with:before{content:"\f0fb8"}.mdi-format-letter-matches:before{content:"\f0fb9"}.mdi-format-letter-spacing:before{content:"\f1956"}.mdi-format-letter-spacing-variant:before{content:"\f1afb"}.mdi-format-letter-starts-with:before{content:"\f0fba"}.mdi-format-line-height:before{content:"\f1afc"}.mdi-format-line-spacing:before{content:"\f0278"}.mdi-format-line-style:before{content:"\f05c8"}.mdi-format-line-weight:before{content:"\f05c9"}.mdi-format-list-bulleted:before{content:"\f0279"}.mdi-format-list-bulleted-square:before{content:"\f0dd0"}.mdi-format-list-bulleted-triangle:before{content:"\f0eb2"}.mdi-format-list-bulleted-type:before{content:"\f027a"}.mdi-format-list-checkbox:before{content:"\f096a"}.mdi-format-list-checks:before{content:"\f0756"}.mdi-format-list-group:before{content:"\f1860"}.mdi-format-list-group-plus:before{content:"\f1b56"}.mdi-format-list-numbered:before{content:"\f027b"}.mdi-format-list-numbered-rtl:before{content:"\f0d0d"}.mdi-format-list-text:before{content:"\f126f"}.mdi-format-overline:before{content:"\f0eb3"}.mdi-format-page-break:before{content:"\f06d7"}.mdi-format-page-split:before{content:"\f1917"}.mdi-format-paint:before{content:"\f027c"}.mdi-format-paragraph:before{content:"\f027d"}.mdi-format-paragraph-spacing:before{content:"\f1afd"}.mdi-format-pilcrow:before{content:"\f06d8"}.mdi-format-pilcrow-arrow-left:before{content:"\f0286"}.mdi-format-pilcrow-arrow-right:before{content:"\f0285"}.mdi-format-quote-close:before{content:"\f027e"}.mdi-format-quote-close-outline:before{content:"\f11a8"}.mdi-format-quote-open:before{content:"\f0757"}.mdi-format-quote-open-outline:before{content:"\f11a7"}.mdi-format-rotate-90:before{content:"\f06aa"}.mdi-format-section:before{content:"\f069f"}.mdi-format-size:before{content:"\f027f"}.mdi-format-strikethrough:before{content:"\f0280"}.mdi-format-strikethrough-variant:before{content:"\f0281"}.mdi-format-subscript:before{content:"\f0282"}.mdi-format-superscript:before{content:"\f0283"}.mdi-format-text:before{content:"\f0284"}.mdi-format-text-rotation-angle-down:before{content:"\f0fbb"}.mdi-format-text-rotation-angle-up:before{content:"\f0fbc"}.mdi-format-text-rotation-down:before{content:"\f0d73"}.mdi-format-text-rotation-down-vertical:before{content:"\f0fbd"}.mdi-format-text-rotation-none:before{content:"\f0d74"}.mdi-format-text-rotation-up:before{content:"\f0fbe"}.mdi-format-text-rotation-vertical:before{content:"\f0fbf"}.mdi-format-text-variant:before{content:"\f0e32"}.mdi-format-text-variant-outline:before{content:"\f150f"}.mdi-format-text-wrapping-clip:before{content:"\f0d0e"}.mdi-format-text-wrapping-overflow:before{content:"\f0d0f"}.mdi-format-text-wrapping-wrap:before{content:"\f0d10"}.mdi-format-textbox:before{content:"\f0d11"}.mdi-format-title:before{content:"\f05f4"}.mdi-format-underline:before{content:"\f0287"}.mdi-format-underline-wavy:before{content:"\f18e9"}.mdi-format-vertical-align-bottom:before{content:"\f0621"}.mdi-format-vertical-align-center:before{content:"\f0622"}.mdi-format-vertical-align-top:before{content:"\f0623"}.mdi-format-wrap-inline:before{content:"\f0288"}.mdi-format-wrap-square:before{content:"\f0289"}.mdi-format-wrap-tight:before{content:"\f028a"}.mdi-format-wrap-top-bottom:before{content:"\f028b"}.mdi-forum:before{content:"\f028c"}.mdi-forum-minus:before{content:"\f1aa9"}.mdi-forum-minus-outline:before{content:"\f1aaa"}.mdi-forum-outline:before{content:"\f0822"}.mdi-forum-plus:before{content:"\f1aab"}.mdi-forum-plus-outline:before{content:"\f1aac"}.mdi-forum-remove:before{content:"\f1aad"}.mdi-forum-remove-outline:before{content:"\f1aae"}.mdi-forward:before{content:"\f028d"}.mdi-forwardburger:before{content:"\f0d75"}.mdi-fountain:before{content:"\f096b"}.mdi-fountain-pen:before{content:"\f0d12"}.mdi-fountain-pen-tip:before{content:"\f0d13"}.mdi-fraction-one-half:before{content:"\f1992"}.mdi-freebsd:before{content:"\f08e0"}.mdi-french-fries:before{content:"\f1957"}.mdi-frequently-asked-questions:before{content:"\f0eb4"}.mdi-fridge:before{content:"\f0290"}.mdi-fridge-alert:before{content:"\f11b1"}.mdi-fridge-alert-outline:before{content:"\f11b2"}.mdi-fridge-bottom:before{content:"\f0292"}.mdi-fridge-industrial:before{content:"\f15ee"}.mdi-fridge-industrial-alert:before{content:"\f15ef"}.mdi-fridge-industrial-alert-outline:before{content:"\f15f0"}.mdi-fridge-industrial-off:before{content:"\f15f1"}.mdi-fridge-industrial-off-outline:before{content:"\f15f2"}.mdi-fridge-industrial-outline:before{content:"\f15f3"}.mdi-fridge-off:before{content:"\f11af"}.mdi-fridge-off-outline:before{content:"\f11b0"}.mdi-fridge-outline:before{content:"\f028f"}.mdi-fridge-top:before{content:"\f0291"}.mdi-fridge-variant:before{content:"\f15f4"}.mdi-fridge-variant-alert:before{content:"\f15f5"}.mdi-fridge-variant-alert-outline:before{content:"\f15f6"}.mdi-fridge-variant-off:before{content:"\f15f7"}.mdi-fridge-variant-off-outline:before{content:"\f15f8"}.mdi-fridge-variant-outline:before{content:"\f15f9"}.mdi-fruit-cherries:before{content:"\f1042"}.mdi-fruit-cherries-off:before{content:"\f13f8"}.mdi-fruit-citrus:before{content:"\f1043"}.mdi-fruit-citrus-off:before{content:"\f13f9"}.mdi-fruit-grapes:before{content:"\f1044"}.mdi-fruit-grapes-outline:before{content:"\f1045"}.mdi-fruit-pear:before{content:"\f1a0e"}.mdi-fruit-pineapple:before{content:"\f1046"}.mdi-fruit-watermelon:before{content:"\f1047"}.mdi-fuel:before{content:"\f07ca"}.mdi-fuel-cell:before{content:"\f18b5"}.mdi-fullscreen:before{content:"\f0293"}.mdi-fullscreen-exit:before{content:"\f0294"}.mdi-function:before{content:"\f0295"}.mdi-function-variant:before{content:"\f0871"}.mdi-furigana-horizontal:before{content:"\f1081"}.mdi-furigana-vertical:before{content:"\f1082"}.mdi-fuse:before{content:"\f0c85"}.mdi-fuse-alert:before{content:"\f142d"}.mdi-fuse-blade:before{content:"\f0c86"}.mdi-fuse-off:before{content:"\f142c"}.mdi-gamepad:before{content:"\f0296"}.mdi-gamepad-circle:before{content:"\f0e33"}.mdi-gamepad-circle-down:before{content:"\f0e34"}.mdi-gamepad-circle-left:before{content:"\f0e35"}.mdi-gamepad-circle-outline:before{content:"\f0e36"}.mdi-gamepad-circle-right:before{content:"\f0e37"}.mdi-gamepad-circle-up:before{content:"\f0e38"}.mdi-gamepad-down:before{content:"\f0e39"}.mdi-gamepad-left:before{content:"\f0e3a"}.mdi-gamepad-outline:before{content:"\f1919"}.mdi-gamepad-right:before{content:"\f0e3b"}.mdi-gamepad-round:before{content:"\f0e3c"}.mdi-gamepad-round-down:before{content:"\f0e3d"}.mdi-gamepad-round-left:before{content:"\f0e3e"}.mdi-gamepad-round-outline:before{content:"\f0e3f"}.mdi-gamepad-round-right:before{content:"\f0e40"}.mdi-gamepad-round-up:before{content:"\f0e41"}.mdi-gamepad-square:before{content:"\f0eb5"}.mdi-gamepad-square-outline:before{content:"\f0eb6"}.mdi-gamepad-up:before{content:"\f0e42"}.mdi-gamepad-variant:before{content:"\f0297"}.mdi-gamepad-variant-outline:before{content:"\f0eb7"}.mdi-gamma:before{content:"\f10ee"}.mdi-gantry-crane:before{content:"\f0dd1"}.mdi-garage:before{content:"\f06d9"}.mdi-garage-alert:before{content:"\f0872"}.mdi-garage-alert-variant:before{content:"\f12d5"}.mdi-garage-lock:before{content:"\f17fb"}.mdi-garage-open:before{content:"\f06da"}.mdi-garage-open-variant:before{content:"\f12d4"}.mdi-garage-variant:before{content:"\f12d3"}.mdi-garage-variant-lock:before{content:"\f17fc"}.mdi-gas-burner:before{content:"\f1a1b"}.mdi-gas-cylinder:before{content:"\f0647"}.mdi-gas-station:before{content:"\f0298"}.mdi-gas-station-in-use:before{content:"\f1cc4"}.mdi-gas-station-in-use-outline:before{content:"\f1cc5"}.mdi-gas-station-off:before{content:"\f1409"}.mdi-gas-station-off-outline:before{content:"\f140a"}.mdi-gas-station-outline:before{content:"\f0eb8"}.mdi-gate:before{content:"\f0299"}.mdi-gate-alert:before{content:"\f17f8"}.mdi-gate-and:before{content:"\f08e1"}.mdi-gate-arrow-left:before{content:"\f17f7"}.mdi-gate-arrow-right:before{content:"\f1169"}.mdi-gate-buffer:before{content:"\f1afe"}.mdi-gate-nand:before{content:"\f08e2"}.mdi-gate-nor:before{content:"\f08e3"}.mdi-gate-not:before{content:"\f08e4"}.mdi-gate-open:before{content:"\f116a"}.mdi-gate-or:before{content:"\f08e5"}.mdi-gate-xnor:before{content:"\f08e6"}.mdi-gate-xor:before{content:"\f08e7"}.mdi-gatsby:before{content:"\f0e43"}.mdi-gauge:before{content:"\f029a"}.mdi-gauge-empty:before{content:"\f0873"}.mdi-gauge-full:before{content:"\f0874"}.mdi-gauge-low:before{content:"\f0875"}.mdi-gavel:before{content:"\f029b"}.mdi-gender-female:before{content:"\f029c"}.mdi-gender-male:before{content:"\f029d"}.mdi-gender-male-female:before{content:"\f029e"}.mdi-gender-male-female-variant:before{content:"\f113f"}.mdi-gender-non-binary:before{content:"\f1140"}.mdi-gender-transgender:before{content:"\f029f"}.mdi-generator-mobile:before{content:"\f1c8a"}.mdi-generator-portable:before{content:"\f1c8b"}.mdi-generator-stationary:before{content:"\f1c8c"}.mdi-gentoo:before{content:"\f08e8"}.mdi-gesture:before{content:"\f07cb"}.mdi-gesture-double-tap:before{content:"\f073c"}.mdi-gesture-pinch:before{content:"\f0abd"}.mdi-gesture-spread:before{content:"\f0abe"}.mdi-gesture-swipe:before{content:"\f0d76"}.mdi-gesture-swipe-down:before{content:"\f073d"}.mdi-gesture-swipe-horizontal:before{content:"\f0abf"}.mdi-gesture-swipe-left:before{content:"\f073e"}.mdi-gesture-swipe-right:before{content:"\f073f"}.mdi-gesture-swipe-up:before{content:"\f0740"}.mdi-gesture-swipe-vertical:before{content:"\f0ac0"}.mdi-gesture-tap:before{content:"\f0741"}.mdi-gesture-tap-box:before{content:"\f12a9"}.mdi-gesture-tap-button:before{content:"\f12a8"}.mdi-gesture-tap-hold:before{content:"\f0d77"}.mdi-gesture-two-double-tap:before{content:"\f0742"}.mdi-gesture-two-tap:before{content:"\f0743"}.mdi-ghost:before{content:"\f02a0"}.mdi-ghost-off:before{content:"\f09f5"}.mdi-ghost-off-outline:before{content:"\f165c"}.mdi-ghost-outline:before{content:"\f165d"}.mdi-gift:before{content:"\f0e44"}.mdi-gift-off:before{content:"\f16ef"}.mdi-gift-off-outline:before{content:"\f16f0"}.mdi-gift-open:before{content:"\f16f1"}.mdi-gift-open-outline:before{content:"\f16f2"}.mdi-gift-outline:before{content:"\f02a1"}.mdi-git:before{content:"\f02a2"}.mdi-github:before{content:"\f02a4"}.mdi-gitlab:before{content:"\f0ba0"}.mdi-glass-cocktail:before{content:"\f0356"}.mdi-glass-cocktail-off:before{content:"\f15e6"}.mdi-glass-flute:before{content:"\f02a5"}.mdi-glass-fragile:before{content:"\f1873"}.mdi-glass-mug:before{content:"\f02a6"}.mdi-glass-mug-off:before{content:"\f15e7"}.mdi-glass-mug-variant:before{content:"\f1116"}.mdi-glass-mug-variant-off:before{content:"\f15e8"}.mdi-glass-pint-outline:before{content:"\f130d"}.mdi-glass-stange:before{content:"\f02a7"}.mdi-glass-tulip:before{content:"\f02a8"}.mdi-glass-wine:before{content:"\f0876"}.mdi-glasses:before{content:"\f02aa"}.mdi-globe-light:before{content:"\f066f"}.mdi-globe-light-outline:before{content:"\f12d7"}.mdi-globe-model:before{content:"\f08e9"}.mdi-gmail:before{content:"\f02ab"}.mdi-gnome:before{content:"\f02ac"}.mdi-go-kart:before{content:"\f0d79"}.mdi-go-kart-track:before{content:"\f0d7a"}.mdi-gog:before{content:"\f0ba1"}.mdi-gold:before{content:"\f124f"}.mdi-golf:before{content:"\f0823"}.mdi-golf-cart:before{content:"\f11a4"}.mdi-golf-tee:before{content:"\f1083"}.mdi-gondola:before{content:"\f0686"}.mdi-goodreads:before{content:"\f0d7b"}.mdi-google:before{content:"\f02ad"}.mdi-google-ads:before{content:"\f0c87"}.mdi-google-analytics:before{content:"\f07cc"}.mdi-google-assistant:before{content:"\f07cd"}.mdi-google-cardboard:before{content:"\f02ae"}.mdi-google-chrome:before{content:"\f02af"}.mdi-google-circles:before{content:"\f02b0"}.mdi-google-circles-communities:before{content:"\f02b1"}.mdi-google-circles-extended:before{content:"\f02b2"}.mdi-google-circles-group:before{content:"\f02b3"}.mdi-google-classroom:before{content:"\f02c0"}.mdi-google-cloud:before{content:"\f11f6"}.mdi-google-downasaur:before{content:"\f1362"}.mdi-google-drive:before{content:"\f02b6"}.mdi-google-earth:before{content:"\f02b7"}.mdi-google-fit:before{content:"\f096c"}.mdi-google-glass:before{content:"\f02b8"}.mdi-google-hangouts:before{content:"\f02c9"}.mdi-google-keep:before{content:"\f06dc"}.mdi-google-lens:before{content:"\f09f6"}.mdi-google-maps:before{content:"\f05f5"}.mdi-google-my-business:before{content:"\f1048"}.mdi-google-nearby:before{content:"\f02b9"}.mdi-google-play:before{content:"\f02bc"}.mdi-google-plus:before{content:"\f02bd"}.mdi-google-podcast:before{content:"\f0eb9"}.mdi-google-spreadsheet:before{content:"\f09f7"}.mdi-google-street-view:before{content:"\f0c88"}.mdi-google-translate:before{content:"\f02bf"}.mdi-gradient-horizontal:before{content:"\f174a"}.mdi-gradient-vertical:before{content:"\f06a0"}.mdi-grain:before{content:"\f0d7c"}.mdi-graph:before{content:"\f1049"}.mdi-graph-outline:before{content:"\f104a"}.mdi-graphql:before{content:"\f0877"}.mdi-grass:before{content:"\f1510"}.mdi-grave-stone:before{content:"\f0ba2"}.mdi-grease-pencil:before{content:"\f0648"}.mdi-greater-than:before{content:"\f096d"}.mdi-greater-than-or-equal:before{content:"\f096e"}.mdi-greenhouse:before{content:"\f002d"}.mdi-grid:before{content:"\f02c1"}.mdi-grid-large:before{content:"\f0758"}.mdi-grid-off:before{content:"\f02c2"}.mdi-grill:before{content:"\f0e45"}.mdi-grill-outline:before{content:"\f118a"}.mdi-group:before{content:"\f02c3"}.mdi-guitar-acoustic:before{content:"\f0771"}.mdi-guitar-electric:before{content:"\f02c4"}.mdi-guitar-pick:before{content:"\f02c5"}.mdi-guitar-pick-outline:before{content:"\f02c6"}.mdi-guy-fawkes-mask:before{content:"\f0825"}.mdi-gymnastics:before{content:"\f1a41"}.mdi-hail:before{content:"\f0ac1"}.mdi-hair-dryer:before{content:"\f10ef"}.mdi-hair-dryer-outline:before{content:"\f10f0"}.mdi-halloween:before{content:"\f0ba3"}.mdi-hamburger:before{content:"\f0685"}.mdi-hamburger-check:before{content:"\f1776"}.mdi-hamburger-minus:before{content:"\f1777"}.mdi-hamburger-off:before{content:"\f1778"}.mdi-hamburger-plus:before{content:"\f1779"}.mdi-hamburger-remove:before{content:"\f177a"}.mdi-hammer:before{content:"\f08ea"}.mdi-hammer-screwdriver:before{content:"\f1322"}.mdi-hammer-sickle:before{content:"\f1887"}.mdi-hammer-wrench:before{content:"\f1323"}.mdi-hand-back-left:before{content:"\f0e46"}.mdi-hand-back-left-off:before{content:"\f1830"}.mdi-hand-back-left-off-outline:before{content:"\f1832"}.mdi-hand-back-left-outline:before{content:"\f182c"}.mdi-hand-back-right:before{content:"\f0e47"}.mdi-hand-back-right-off:before{content:"\f1831"}.mdi-hand-back-right-off-outline:before{content:"\f1833"}.mdi-hand-back-right-outline:before{content:"\f182d"}.mdi-hand-clap:before{content:"\f194b"}.mdi-hand-clap-off:before{content:"\f1a42"}.mdi-hand-coin:before{content:"\f188f"}.mdi-hand-coin-outline:before{content:"\f1890"}.mdi-hand-cycle:before{content:"\f1b9c"}.mdi-hand-extended:before{content:"\f18b6"}.mdi-hand-extended-outline:before{content:"\f18b7"}.mdi-hand-front-left:before{content:"\f182b"}.mdi-hand-front-left-outline:before{content:"\f182e"}.mdi-hand-front-right:before{content:"\f0a4f"}.mdi-hand-front-right-outline:before{content:"\f182f"}.mdi-hand-heart:before{content:"\f10f1"}.mdi-hand-heart-outline:before{content:"\f157e"}.mdi-hand-okay:before{content:"\f0a50"}.mdi-hand-peace:before{content:"\f0a51"}.mdi-hand-peace-variant:before{content:"\f0a52"}.mdi-hand-pointing-down:before{content:"\f0a53"}.mdi-hand-pointing-left:before{content:"\f0a54"}.mdi-hand-pointing-right:before{content:"\f02c7"}.mdi-hand-pointing-up:before{content:"\f0a55"}.mdi-hand-saw:before{content:"\f0e48"}.mdi-hand-wash:before{content:"\f157f"}.mdi-hand-wash-outline:before{content:"\f1580"}.mdi-hand-water:before{content:"\f139f"}.mdi-hand-wave:before{content:"\f1821"}.mdi-hand-wave-outline:before{content:"\f1822"}.mdi-handball:before{content:"\f0f53"}.mdi-handcuffs:before{content:"\f113e"}.mdi-hands-pray:before{content:"\f0579"}.mdi-handshake:before{content:"\f1218"}.mdi-handshake-outline:before{content:"\f15a1"}.mdi-hanger:before{content:"\f02c8"}.mdi-hard-hat:before{content:"\f096f"}.mdi-harddisk:before{content:"\f02ca"}.mdi-harddisk-plus:before{content:"\f104b"}.mdi-harddisk-remove:before{content:"\f104c"}.mdi-hat-fedora:before{content:"\f0ba4"}.mdi-hazard-lights:before{content:"\f0c89"}.mdi-hdmi-port:before{content:"\f1bb8"}.mdi-hdr:before{content:"\f0d7d"}.mdi-hdr-off:before{content:"\f0d7e"}.mdi-head:before{content:"\f135e"}.mdi-head-alert:before{content:"\f1338"}.mdi-head-alert-outline:before{content:"\f1339"}.mdi-head-check:before{content:"\f133a"}.mdi-head-check-outline:before{content:"\f133b"}.mdi-head-cog:before{content:"\f133c"}.mdi-head-cog-outline:before{content:"\f133d"}.mdi-head-dots-horizontal:before{content:"\f133e"}.mdi-head-dots-horizontal-outline:before{content:"\f133f"}.mdi-head-flash:before{content:"\f1340"}.mdi-head-flash-outline:before{content:"\f1341"}.mdi-head-heart:before{content:"\f1342"}.mdi-head-heart-outline:before{content:"\f1343"}.mdi-head-lightbulb:before{content:"\f1344"}.mdi-head-lightbulb-outline:before{content:"\f1345"}.mdi-head-minus:before{content:"\f1346"}.mdi-head-minus-outline:before{content:"\f1347"}.mdi-head-outline:before{content:"\f135f"}.mdi-head-plus:before{content:"\f1348"}.mdi-head-plus-outline:before{content:"\f1349"}.mdi-head-question:before{content:"\f134a"}.mdi-head-question-outline:before{content:"\f134b"}.mdi-head-remove:before{content:"\f134c"}.mdi-head-remove-outline:before{content:"\f134d"}.mdi-head-snowflake:before{content:"\f134e"}.mdi-head-snowflake-outline:before{content:"\f134f"}.mdi-head-sync:before{content:"\f1350"}.mdi-head-sync-outline:before{content:"\f1351"}.mdi-headphones:before{content:"\f02cb"}.mdi-headphones-bluetooth:before{content:"\f0970"}.mdi-headphones-box:before{content:"\f02cc"}.mdi-headphones-off:before{content:"\f07ce"}.mdi-headphones-settings:before{content:"\f02cd"}.mdi-headset:before{content:"\f02ce"}.mdi-headset-dock:before{content:"\f02cf"}.mdi-headset-off:before{content:"\f02d0"}.mdi-heart:before{content:"\f02d1"}.mdi-heart-box:before{content:"\f02d2"}.mdi-heart-box-outline:before{content:"\f02d3"}.mdi-heart-broken:before{content:"\f02d4"}.mdi-heart-broken-outline:before{content:"\f0d14"}.mdi-heart-circle:before{content:"\f0971"}.mdi-heart-circle-outline:before{content:"\f0972"}.mdi-heart-cog:before{content:"\f1663"}.mdi-heart-cog-outline:before{content:"\f1664"}.mdi-heart-flash:before{content:"\f0ef9"}.mdi-heart-half:before{content:"\f06df"}.mdi-heart-half-full:before{content:"\f06de"}.mdi-heart-half-outline:before{content:"\f06e0"}.mdi-heart-minus:before{content:"\f142f"}.mdi-heart-minus-outline:before{content:"\f1432"}.mdi-heart-multiple:before{content:"\f0a56"}.mdi-heart-multiple-outline:before{content:"\f0a57"}.mdi-heart-off:before{content:"\f0759"}.mdi-heart-off-outline:before{content:"\f1434"}.mdi-heart-outline:before{content:"\f02d5"}.mdi-heart-plus:before{content:"\f142e"}.mdi-heart-plus-outline:before{content:"\f1431"}.mdi-heart-pulse:before{content:"\f05f6"}.mdi-heart-remove:before{content:"\f1430"}.mdi-heart-remove-outline:before{content:"\f1433"}.mdi-heart-search:before{content:"\f1c8d"}.mdi-heart-settings:before{content:"\f1665"}.mdi-heart-settings-outline:before{content:"\f1666"}.mdi-heat-pump:before{content:"\f1a43"}.mdi-heat-pump-outline:before{content:"\f1a44"}.mdi-heat-wave:before{content:"\f1a45"}.mdi-heating-coil:before{content:"\f1aaf"}.mdi-helicopter:before{content:"\f0ac2"}.mdi-help:before{content:"\f02d6"}.mdi-help-box:before{content:"\f078b"}.mdi-help-box-multiple:before{content:"\f1c0a"}.mdi-help-box-multiple-outline:before{content:"\f1c0b"}.mdi-help-box-outline:before{content:"\f1c0c"}.mdi-help-circle:before{content:"\f02d7"}.mdi-help-circle-outline:before{content:"\f0625"}.mdi-help-network:before{content:"\f06f5"}.mdi-help-network-outline:before{content:"\f0c8a"}.mdi-help-rhombus:before{content:"\f0ba5"}.mdi-help-rhombus-outline:before{content:"\f0ba6"}.mdi-hexadecimal:before{content:"\f12a7"}.mdi-hexagon:before{content:"\f02d8"}.mdi-hexagon-multiple:before{content:"\f06e1"}.mdi-hexagon-multiple-outline:before{content:"\f10f2"}.mdi-hexagon-outline:before{content:"\f02d9"}.mdi-hexagon-slice-1:before{content:"\f0ac3"}.mdi-hexagon-slice-2:before{content:"\f0ac4"}.mdi-hexagon-slice-3:before{content:"\f0ac5"}.mdi-hexagon-slice-4:before{content:"\f0ac6"}.mdi-hexagon-slice-5:before{content:"\f0ac7"}.mdi-hexagon-slice-6:before{content:"\f0ac8"}.mdi-hexagram:before{content:"\f0ac9"}.mdi-hexagram-outline:before{content:"\f0aca"}.mdi-high-definition:before{content:"\f07cf"}.mdi-high-definition-box:before{content:"\f0878"}.mdi-highway:before{content:"\f05f7"}.mdi-hiking:before{content:"\f0d7f"}.mdi-history:before{content:"\f02da"}.mdi-hockey-puck:before{content:"\f0879"}.mdi-hockey-sticks:before{content:"\f087a"}.mdi-hololens:before{content:"\f02db"}.mdi-home:before{content:"\f02dc"}.mdi-home-account:before{content:"\f0826"}.mdi-home-alert:before{content:"\f087b"}.mdi-home-alert-outline:before{content:"\f15d0"}.mdi-home-analytics:before{content:"\f0eba"}.mdi-home-assistant:before{content:"\f07d0"}.mdi-home-automation:before{content:"\f07d1"}.mdi-home-battery:before{content:"\f1901"}.mdi-home-battery-outline:before{content:"\f1902"}.mdi-home-circle:before{content:"\f07d2"}.mdi-home-circle-outline:before{content:"\f104d"}.mdi-home-city:before{content:"\f0d15"}.mdi-home-city-outline:before{content:"\f0d16"}.mdi-home-clock:before{content:"\f1a12"}.mdi-home-clock-outline:before{content:"\f1a13"}.mdi-home-edit:before{content:"\f1159"}.mdi-home-edit-outline:before{content:"\f115a"}.mdi-home-export-outline:before{content:"\f0f9b"}.mdi-home-flood:before{content:"\f0efa"}.mdi-home-floor-0:before{content:"\f0dd2"}.mdi-home-floor-1:before{content:"\f0d80"}.mdi-home-floor-2:before{content:"\f0d81"}.mdi-home-floor-3:before{content:"\f0d82"}.mdi-home-floor-a:before{content:"\f0d83"}.mdi-home-floor-b:before{content:"\f0d84"}.mdi-home-floor-g:before{content:"\f0d85"}.mdi-home-floor-l:before{content:"\f0d86"}.mdi-home-floor-negative-1:before{content:"\f0dd3"}.mdi-home-group:before{content:"\f0dd4"}.mdi-home-group-minus:before{content:"\f19c1"}.mdi-home-group-plus:before{content:"\f19c0"}.mdi-home-group-remove:before{content:"\f19c2"}.mdi-home-heart:before{content:"\f0827"}.mdi-home-import-outline:before{content:"\f0f9c"}.mdi-home-lightbulb:before{content:"\f1251"}.mdi-home-lightbulb-outline:before{content:"\f1252"}.mdi-home-lightning-bolt:before{content:"\f1903"}.mdi-home-lightning-bolt-outline:before{content:"\f1904"}.mdi-home-lock:before{content:"\f08eb"}.mdi-home-lock-open:before{content:"\f08ec"}.mdi-home-map-marker:before{content:"\f05f8"}.mdi-home-minus:before{content:"\f0974"}.mdi-home-minus-outline:before{content:"\f13d5"}.mdi-home-modern:before{content:"\f02dd"}.mdi-home-off:before{content:"\f1a46"}.mdi-home-off-outline:before{content:"\f1a47"}.mdi-home-outline:before{content:"\f06a1"}.mdi-home-percent:before{content:"\f1c7c"}.mdi-home-percent-outline:before{content:"\f1c7d"}.mdi-home-plus:before{content:"\f0975"}.mdi-home-plus-outline:before{content:"\f13d6"}.mdi-home-remove:before{content:"\f1247"}.mdi-home-remove-outline:before{content:"\f13d7"}.mdi-home-roof:before{content:"\f112b"}.mdi-home-search:before{content:"\f13b0"}.mdi-home-search-outline:before{content:"\f13b1"}.mdi-home-silo:before{content:"\f1ba0"}.mdi-home-silo-outline:before{content:"\f1ba1"}.mdi-home-sound-in:before{content:"\f1c2f"}.mdi-home-sound-in-outline:before{content:"\f1c30"}.mdi-home-sound-out:before{content:"\f1c31"}.mdi-home-sound-out-outline:before{content:"\f1c32"}.mdi-home-switch:before{content:"\f1794"}.mdi-home-switch-outline:before{content:"\f1795"}.mdi-home-thermometer:before{content:"\f0f54"}.mdi-home-thermometer-outline:before{content:"\f0f55"}.mdi-home-variant:before{content:"\f02de"}.mdi-home-variant-outline:before{content:"\f0ba7"}.mdi-hook:before{content:"\f06e2"}.mdi-hook-off:before{content:"\f06e3"}.mdi-hoop-house:before{content:"\f0e56"}.mdi-hops:before{content:"\f02df"}.mdi-horizontal-rotate-clockwise:before{content:"\f10f3"}.mdi-horizontal-rotate-counterclockwise:before{content:"\f10f4"}.mdi-horse:before{content:"\f15bf"}.mdi-horse-human:before{content:"\f15c0"}.mdi-horse-variant:before{content:"\f15c1"}.mdi-horse-variant-fast:before{content:"\f186e"}.mdi-horseshoe:before{content:"\f0a58"}.mdi-hospital:before{content:"\f0ff6"}.mdi-hospital-box:before{content:"\f02e0"}.mdi-hospital-box-outline:before{content:"\f0ff7"}.mdi-hospital-building:before{content:"\f02e1"}.mdi-hospital-marker:before{content:"\f02e2"}.mdi-hot-tub:before{content:"\f0828"}.mdi-hours-12:before{content:"\f1c94"}.mdi-hours-24:before{content:"\f1478"}.mdi-hub:before{content:"\f1c95"}.mdi-hub-outline:before{content:"\f1c96"}.mdi-hubspot:before{content:"\f0d17"}.mdi-hulu:before{content:"\f0829"}.mdi-human:before{content:"\f02e6"}.mdi-human-baby-changing-table:before{content:"\f138b"}.mdi-human-cane:before{content:"\f1581"}.mdi-human-capacity-decrease:before{content:"\f159b"}.mdi-human-capacity-increase:before{content:"\f159c"}.mdi-human-child:before{content:"\f02e7"}.mdi-human-dolly:before{content:"\f1980"}.mdi-human-edit:before{content:"\f14e8"}.mdi-human-female:before{content:"\f0649"}.mdi-human-female-boy:before{content:"\f0a59"}.mdi-human-female-dance:before{content:"\f15c9"}.mdi-human-female-female:before{content:"\f0a5a"}.mdi-human-female-female-child:before{content:"\f1c8e"}.mdi-human-female-girl:before{content:"\f0a5b"}.mdi-human-greeting:before{content:"\f17c4"}.mdi-human-greeting-proximity:before{content:"\f159d"}.mdi-human-greeting-variant:before{content:"\f064a"}.mdi-human-handsdown:before{content:"\f064b"}.mdi-human-handsup:before{content:"\f064c"}.mdi-human-male:before{content:"\f064d"}.mdi-human-male-board:before{content:"\f0890"}.mdi-human-male-board-poll:before{content:"\f0846"}.mdi-human-male-boy:before{content:"\f0a5c"}.mdi-human-male-child:before{content:"\f138c"}.mdi-human-male-female:before{content:"\f02e8"}.mdi-human-male-female-child:before{content:"\f1823"}.mdi-human-male-girl:before{content:"\f0a5d"}.mdi-human-male-height:before{content:"\f0efb"}.mdi-human-male-height-variant:before{content:"\f0efc"}.mdi-human-male-male:before{content:"\f0a5e"}.mdi-human-male-male-child:before{content:"\f1c8f"}.mdi-human-non-binary:before{content:"\f1848"}.mdi-human-pregnant:before{content:"\f05cf"}.mdi-human-queue:before{content:"\f1571"}.mdi-human-scooter:before{content:"\f11e9"}.mdi-human-walker:before{content:"\f1b71"}.mdi-human-wheelchair:before{content:"\f138d"}.mdi-human-white-cane:before{content:"\f1981"}.mdi-humble-bundle:before{content:"\f0744"}.mdi-hvac:before{content:"\f1352"}.mdi-hvac-off:before{content:"\f159e"}.mdi-hydraulic-oil-level:before{content:"\f1324"}.mdi-hydraulic-oil-temperature:before{content:"\f1325"}.mdi-hydro-power:before{content:"\f12e5"}.mdi-hydrogen-station:before{content:"\f1894"}.mdi-ice-cream:before{content:"\f082a"}.mdi-ice-cream-off:before{content:"\f0e52"}.mdi-ice-pop:before{content:"\f0efd"}.mdi-id-card:before{content:"\f0fc0"}.mdi-identifier:before{content:"\f0efe"}.mdi-ideogram-cjk:before{content:"\f1331"}.mdi-ideogram-cjk-variant:before{content:"\f1332"}.mdi-image:before{content:"\f02e9"}.mdi-image-album:before{content:"\f02ea"}.mdi-image-area:before{content:"\f02eb"}.mdi-image-area-close:before{content:"\f02ec"}.mdi-image-auto-adjust:before{content:"\f0fc1"}.mdi-image-broken:before{content:"\f02ed"}.mdi-image-broken-variant:before{content:"\f02ee"}.mdi-image-check:before{content:"\f1b25"}.mdi-image-check-outline:before{content:"\f1b26"}.mdi-image-edit:before{content:"\f11e3"}.mdi-image-edit-outline:before{content:"\f11e4"}.mdi-image-filter-black-white:before{content:"\f02f0"}.mdi-image-filter-center-focus:before{content:"\f02f1"}.mdi-image-filter-center-focus-strong:before{content:"\f0eff"}.mdi-image-filter-center-focus-strong-outline:before{content:"\f0f00"}.mdi-image-filter-center-focus-weak:before{content:"\f02f2"}.mdi-image-filter-drama:before{content:"\f02f3"}.mdi-image-filter-drama-outline:before{content:"\f1bff"}.mdi-image-filter-frames:before{content:"\f02f4"}.mdi-image-filter-hdr:before{content:"\f02f5"}.mdi-image-filter-hdr-outline:before{content:"\f1c64"}.mdi-image-filter-none:before{content:"\f02f6"}.mdi-image-filter-tilt-shift:before{content:"\f02f7"}.mdi-image-filter-vintage:before{content:"\f02f8"}.mdi-image-frame:before{content:"\f0e49"}.mdi-image-lock:before{content:"\f1ab0"}.mdi-image-lock-outline:before{content:"\f1ab1"}.mdi-image-marker:before{content:"\f177b"}.mdi-image-marker-outline:before{content:"\f177c"}.mdi-image-minus:before{content:"\f1419"}.mdi-image-minus-outline:before{content:"\f1b47"}.mdi-image-move:before{content:"\f09f8"}.mdi-image-multiple:before{content:"\f02f9"}.mdi-image-multiple-outline:before{content:"\f02ef"}.mdi-image-off:before{content:"\f082b"}.mdi-image-off-outline:before{content:"\f11d1"}.mdi-image-outline:before{content:"\f0976"}.mdi-image-plus:before{content:"\f087c"}.mdi-image-plus-outline:before{content:"\f1b46"}.mdi-image-refresh:before{content:"\f19fe"}.mdi-image-refresh-outline:before{content:"\f19ff"}.mdi-image-remove:before{content:"\f1418"}.mdi-image-remove-outline:before{content:"\f1b48"}.mdi-image-search:before{content:"\f0977"}.mdi-image-search-outline:before{content:"\f0978"}.mdi-image-size-select-actual:before{content:"\f0c8d"}.mdi-image-size-select-large:before{content:"\f0c8e"}.mdi-image-size-select-small:before{content:"\f0c8f"}.mdi-image-sync:before{content:"\f1a00"}.mdi-image-sync-outline:before{content:"\f1a01"}.mdi-image-text:before{content:"\f160d"}.mdi-import:before{content:"\f02fa"}.mdi-inbox:before{content:"\f0687"}.mdi-inbox-arrow-down:before{content:"\f02fb"}.mdi-inbox-arrow-down-outline:before{content:"\f1270"}.mdi-inbox-arrow-up:before{content:"\f03d1"}.mdi-inbox-arrow-up-outline:before{content:"\f1271"}.mdi-inbox-full:before{content:"\f1272"}.mdi-inbox-full-outline:before{content:"\f1273"}.mdi-inbox-multiple:before{content:"\f08b0"}.mdi-inbox-multiple-outline:before{content:"\f0ba8"}.mdi-inbox-outline:before{content:"\f1274"}.mdi-inbox-remove:before{content:"\f159f"}.mdi-inbox-remove-outline:before{content:"\f15a0"}.mdi-incognito:before{content:"\f05f9"}.mdi-incognito-circle:before{content:"\f1421"}.mdi-incognito-circle-off:before{content:"\f1422"}.mdi-incognito-off:before{content:"\f0075"}.mdi-induction:before{content:"\f184c"}.mdi-infinity:before{content:"\f06e4"}.mdi-information:before{content:"\f02fc"}.mdi-information-box:before{content:"\f1c65"}.mdi-information-box-outline:before{content:"\f1c66"}.mdi-information-off:before{content:"\f178c"}.mdi-information-off-outline:before{content:"\f178d"}.mdi-information-outline:before{content:"\f02fd"}.mdi-information-slab-box:before{content:"\f1c67"}.mdi-information-slab-box-outline:before{content:"\f1c68"}.mdi-information-slab-circle:before{content:"\f1c69"}.mdi-information-slab-circle-outline:before{content:"\f1c6a"}.mdi-information-slab-symbol:before{content:"\f1c6b"}.mdi-information-symbol:before{content:"\f1c6c"}.mdi-information-variant:before{content:"\f064e"}.mdi-information-variant-box:before{content:"\f1c6d"}.mdi-information-variant-box-outline:before{content:"\f1c6e"}.mdi-information-variant-circle:before{content:"\f1c6f"}.mdi-information-variant-circle-outline:before{content:"\f1c70"}.mdi-instagram:before{content:"\f02fe"}.mdi-instrument-triangle:before{content:"\f104e"}.mdi-integrated-circuit-chip:before{content:"\f1913"}.mdi-invert-colors:before{content:"\f0301"}.mdi-invert-colors-off:before{content:"\f0e4a"}.mdi-iobroker:before{content:"\f12e8"}.mdi-ip:before{content:"\f0a5f"}.mdi-ip-network:before{content:"\f0a60"}.mdi-ip-network-outline:before{content:"\f0c90"}.mdi-ip-outline:before{content:"\f1982"}.mdi-ipod:before{content:"\f0c91"}.mdi-iron:before{content:"\f1824"}.mdi-iron-board:before{content:"\f1838"}.mdi-iron-outline:before{content:"\f1825"}.mdi-island:before{content:"\f104f"}.mdi-island-variant:before{content:"\f1cc6"}.mdi-iv-bag:before{content:"\f10b9"}.mdi-jabber:before{content:"\f0dd5"}.mdi-jeepney:before{content:"\f0302"}.mdi-jellyfish:before{content:"\f0f01"}.mdi-jellyfish-outline:before{content:"\f0f02"}.mdi-jira:before{content:"\f0303"}.mdi-jquery:before{content:"\f087d"}.mdi-jsfiddle:before{content:"\f0304"}.mdi-jump-rope:before{content:"\f12ff"}.mdi-kabaddi:before{content:"\f0d87"}.mdi-kangaroo:before{content:"\f1558"}.mdi-karate:before{content:"\f082c"}.mdi-kayaking:before{content:"\f08af"}.mdi-keg:before{content:"\f0305"}.mdi-kettle:before{content:"\f05fa"}.mdi-kettle-alert:before{content:"\f1317"}.mdi-kettle-alert-outline:before{content:"\f1318"}.mdi-kettle-off:before{content:"\f131b"}.mdi-kettle-off-outline:before{content:"\f131c"}.mdi-kettle-outline:before{content:"\f0f56"}.mdi-kettle-pour-over:before{content:"\f173c"}.mdi-kettle-steam:before{content:"\f1319"}.mdi-kettle-steam-outline:before{content:"\f131a"}.mdi-kettlebell:before{content:"\f1300"}.mdi-key:before{content:"\f0306"}.mdi-key-alert:before{content:"\f1983"}.mdi-key-alert-outline:before{content:"\f1984"}.mdi-key-arrow-right:before{content:"\f1312"}.mdi-key-chain:before{content:"\f1574"}.mdi-key-chain-variant:before{content:"\f1575"}.mdi-key-change:before{content:"\f0307"}.mdi-key-link:before{content:"\f119f"}.mdi-key-minus:before{content:"\f0308"}.mdi-key-outline:before{content:"\f0dd6"}.mdi-key-plus:before{content:"\f0309"}.mdi-key-remove:before{content:"\f030a"}.mdi-key-star:before{content:"\f119e"}.mdi-key-variant:before{content:"\f030b"}.mdi-key-wireless:before{content:"\f0fc2"}.mdi-keyboard:before{content:"\f030c"}.mdi-keyboard-backspace:before{content:"\f030d"}.mdi-keyboard-caps:before{content:"\f030e"}.mdi-keyboard-close:before{content:"\f030f"}.mdi-keyboard-close-outline:before{content:"\f1c00"}.mdi-keyboard-esc:before{content:"\f12b7"}.mdi-keyboard-f1:before{content:"\f12ab"}.mdi-keyboard-f10:before{content:"\f12b4"}.mdi-keyboard-f11:before{content:"\f12b5"}.mdi-keyboard-f12:before{content:"\f12b6"}.mdi-keyboard-f2:before{content:"\f12ac"}.mdi-keyboard-f3:before{content:"\f12ad"}.mdi-keyboard-f4:before{content:"\f12ae"}.mdi-keyboard-f5:before{content:"\f12af"}.mdi-keyboard-f6:before{content:"\f12b0"}.mdi-keyboard-f7:before{content:"\f12b1"}.mdi-keyboard-f8:before{content:"\f12b2"}.mdi-keyboard-f9:before{content:"\f12b3"}.mdi-keyboard-off:before{content:"\f0310"}.mdi-keyboard-off-outline:before{content:"\f0e4b"}.mdi-keyboard-outline:before{content:"\f097b"}.mdi-keyboard-return:before{content:"\f0311"}.mdi-keyboard-settings:before{content:"\f09f9"}.mdi-keyboard-settings-outline:before{content:"\f09fa"}.mdi-keyboard-space:before{content:"\f1050"}.mdi-keyboard-tab:before{content:"\f0312"}.mdi-keyboard-tab-reverse:before{content:"\f0325"}.mdi-keyboard-variant:before{content:"\f0313"}.mdi-khanda:before{content:"\f10fd"}.mdi-kickstarter:before{content:"\f0745"}.mdi-kite:before{content:"\f1985"}.mdi-kite-outline:before{content:"\f1986"}.mdi-kitesurfing:before{content:"\f1744"}.mdi-klingon:before{content:"\f135b"}.mdi-knife:before{content:"\f09fb"}.mdi-knife-military:before{content:"\f09fc"}.mdi-knob:before{content:"\f1b96"}.mdi-koala:before{content:"\f173f"}.mdi-kodi:before{content:"\f0314"}.mdi-kubernetes:before{content:"\f10fe"}.mdi-label:before{content:"\f0315"}.mdi-label-multiple:before{content:"\f1375"}.mdi-label-multiple-outline:before{content:"\f1376"}.mdi-label-off:before{content:"\f0acb"}.mdi-label-off-outline:before{content:"\f0acc"}.mdi-label-outline:before{content:"\f0316"}.mdi-label-percent:before{content:"\f12ea"}.mdi-label-percent-outline:before{content:"\f12eb"}.mdi-label-variant:before{content:"\f0acd"}.mdi-label-variant-outline:before{content:"\f0ace"}.mdi-ladder:before{content:"\f15a2"}.mdi-ladybug:before{content:"\f082d"}.mdi-lambda:before{content:"\f0627"}.mdi-lamp:before{content:"\f06b5"}.mdi-lamp-outline:before{content:"\f17d0"}.mdi-lamps:before{content:"\f1576"}.mdi-lamps-outline:before{content:"\f17d1"}.mdi-lan:before{content:"\f0317"}.mdi-lan-check:before{content:"\f12aa"}.mdi-lan-connect:before{content:"\f0318"}.mdi-lan-disconnect:before{content:"\f0319"}.mdi-lan-pending:before{content:"\f031a"}.mdi-land-fields:before{content:"\f1ab2"}.mdi-land-plots:before{content:"\f1ab3"}.mdi-land-plots-circle:before{content:"\f1ab4"}.mdi-land-plots-circle-variant:before{content:"\f1ab5"}.mdi-land-plots-marker:before{content:"\f1c5d"}.mdi-land-rows-horizontal:before{content:"\f1ab6"}.mdi-land-rows-vertical:before{content:"\f1ab7"}.mdi-landslide:before{content:"\f1a48"}.mdi-landslide-outline:before{content:"\f1a49"}.mdi-language-c:before{content:"\f0671"}.mdi-language-cpp:before{content:"\f0672"}.mdi-language-csharp:before{content:"\f031b"}.mdi-language-css3:before{content:"\f031c"}.mdi-language-fortran:before{content:"\f121a"}.mdi-language-go:before{content:"\f07d3"}.mdi-language-haskell:before{content:"\f0c92"}.mdi-language-html5:before{content:"\f031d"}.mdi-language-java:before{content:"\f0b37"}.mdi-language-javascript:before{content:"\f031e"}.mdi-language-kotlin:before{content:"\f1219"}.mdi-language-lua:before{content:"\f08b1"}.mdi-language-markdown:before{content:"\f0354"}.mdi-language-markdown-outline:before{content:"\f0f5b"}.mdi-language-php:before{content:"\f031f"}.mdi-language-python:before{content:"\f0320"}.mdi-language-r:before{content:"\f07d4"}.mdi-language-ruby:before{content:"\f0d2d"}.mdi-language-ruby-on-rails:before{content:"\f0acf"}.mdi-language-rust:before{content:"\f1617"}.mdi-language-swift:before{content:"\f06e5"}.mdi-language-typescript:before{content:"\f06e6"}.mdi-language-xaml:before{content:"\f0673"}.mdi-laptop:before{content:"\f0322"}.mdi-laptop-account:before{content:"\f1a4a"}.mdi-laptop-off:before{content:"\f06e7"}.mdi-laravel:before{content:"\f0ad0"}.mdi-laser-pointer:before{content:"\f1484"}.mdi-lasso:before{content:"\f0f03"}.mdi-lastpass:before{content:"\f0446"}.mdi-latitude:before{content:"\f0f57"}.mdi-launch:before{content:"\f0327"}.mdi-lava-lamp:before{content:"\f07d5"}.mdi-layers:before{content:"\f0328"}.mdi-layers-edit:before{content:"\f1892"}.mdi-layers-minus:before{content:"\f0e4c"}.mdi-layers-off:before{content:"\f0329"}.mdi-layers-off-outline:before{content:"\f09fd"}.mdi-layers-outline:before{content:"\f09fe"}.mdi-layers-plus:before{content:"\f0e4d"}.mdi-layers-remove:before{content:"\f0e4e"}.mdi-layers-search:before{content:"\f1206"}.mdi-layers-search-outline:before{content:"\f1207"}.mdi-layers-triple:before{content:"\f0f58"}.mdi-layers-triple-outline:before{content:"\f0f59"}.mdi-lead-pencil:before{content:"\f064f"}.mdi-leaf:before{content:"\f032a"}.mdi-leaf-circle:before{content:"\f1905"}.mdi-leaf-circle-outline:before{content:"\f1906"}.mdi-leaf-maple:before{content:"\f0c93"}.mdi-leaf-maple-off:before{content:"\f12da"}.mdi-leaf-off:before{content:"\f12d9"}.mdi-leak:before{content:"\f0dd7"}.mdi-leak-off:before{content:"\f0dd8"}.mdi-lectern:before{content:"\f1af0"}.mdi-led-off:before{content:"\f032b"}.mdi-led-on:before{content:"\f032c"}.mdi-led-outline:before{content:"\f032d"}.mdi-led-strip:before{content:"\f07d6"}.mdi-led-strip-variant:before{content:"\f1051"}.mdi-led-strip-variant-off:before{content:"\f1a4b"}.mdi-led-variant-off:before{content:"\f032e"}.mdi-led-variant-on:before{content:"\f032f"}.mdi-led-variant-outline:before{content:"\f0330"}.mdi-leek:before{content:"\f117d"}.mdi-less-than:before{content:"\f097c"}.mdi-less-than-or-equal:before{content:"\f097d"}.mdi-library:before{content:"\f0331"}.mdi-library-outline:before{content:"\f1a22"}.mdi-library-shelves:before{content:"\f0ba9"}.mdi-license:before{content:"\f0fc3"}.mdi-lifebuoy:before{content:"\f087e"}.mdi-light-flood-down:before{content:"\f1987"}.mdi-light-flood-up:before{content:"\f1988"}.mdi-light-recessed:before{content:"\f179b"}.mdi-light-switch:before{content:"\f097e"}.mdi-light-switch-off:before{content:"\f1a24"}.mdi-lightbulb:before{content:"\f0335"}.mdi-lightbulb-alert:before{content:"\f19e1"}.mdi-lightbulb-alert-outline:before{content:"\f19e2"}.mdi-lightbulb-auto:before{content:"\f1800"}.mdi-lightbulb-auto-outline:before{content:"\f1801"}.mdi-lightbulb-cfl:before{content:"\f1208"}.mdi-lightbulb-cfl-off:before{content:"\f1209"}.mdi-lightbulb-cfl-spiral:before{content:"\f1275"}.mdi-lightbulb-cfl-spiral-off:before{content:"\f12c3"}.mdi-lightbulb-fluorescent-tube:before{content:"\f1804"}.mdi-lightbulb-fluorescent-tube-outline:before{content:"\f1805"}.mdi-lightbulb-group:before{content:"\f1253"}.mdi-lightbulb-group-off:before{content:"\f12cd"}.mdi-lightbulb-group-off-outline:before{content:"\f12ce"}.mdi-lightbulb-group-outline:before{content:"\f1254"}.mdi-lightbulb-multiple:before{content:"\f1255"}.mdi-lightbulb-multiple-off:before{content:"\f12cf"}.mdi-lightbulb-multiple-off-outline:before{content:"\f12d0"}.mdi-lightbulb-multiple-outline:before{content:"\f1256"}.mdi-lightbulb-night:before{content:"\f1a4c"}.mdi-lightbulb-night-outline:before{content:"\f1a4d"}.mdi-lightbulb-off:before{content:"\f0e4f"}.mdi-lightbulb-off-outline:before{content:"\f0e50"}.mdi-lightbulb-on:before{content:"\f06e8"}.mdi-lightbulb-on-10:before{content:"\f1a4e"}.mdi-lightbulb-on-20:before{content:"\f1a4f"}.mdi-lightbulb-on-30:before{content:"\f1a50"}.mdi-lightbulb-on-40:before{content:"\f1a51"}.mdi-lightbulb-on-50:before{content:"\f1a52"}.mdi-lightbulb-on-60:before{content:"\f1a53"}.mdi-lightbulb-on-70:before{content:"\f1a54"}.mdi-lightbulb-on-80:before{content:"\f1a55"}.mdi-lightbulb-on-90:before{content:"\f1a56"}.mdi-lightbulb-on-outline:before{content:"\f06e9"}.mdi-lightbulb-outline:before{content:"\f0336"}.mdi-lightbulb-question:before{content:"\f19e3"}.mdi-lightbulb-question-outline:before{content:"\f19e4"}.mdi-lightbulb-spot:before{content:"\f17f4"}.mdi-lightbulb-spot-off:before{content:"\f17f5"}.mdi-lightbulb-variant:before{content:"\f1802"}.mdi-lightbulb-variant-outline:before{content:"\f1803"}.mdi-lighthouse:before{content:"\f09ff"}.mdi-lighthouse-on:before{content:"\f0a00"}.mdi-lightning-bolt:before{content:"\f140b"}.mdi-lightning-bolt-circle:before{content:"\f0820"}.mdi-lightning-bolt-outline:before{content:"\f140c"}.mdi-line-scan:before{content:"\f0624"}.mdi-lingerie:before{content:"\f1476"}.mdi-link:before{content:"\f0337"}.mdi-link-box:before{content:"\f0d1a"}.mdi-link-box-outline:before{content:"\f0d1b"}.mdi-link-box-variant:before{content:"\f0d1c"}.mdi-link-box-variant-outline:before{content:"\f0d1d"}.mdi-link-circle:before{content:"\f1cac"}.mdi-link-circle-outline:before{content:"\f1cad"}.mdi-link-edit:before{content:"\f1cae"}.mdi-link-lock:before{content:"\f10ba"}.mdi-link-off:before{content:"\f0338"}.mdi-link-plus:before{content:"\f0c94"}.mdi-link-variant:before{content:"\f0339"}.mdi-link-variant-minus:before{content:"\f10ff"}.mdi-link-variant-off:before{content:"\f033a"}.mdi-link-variant-plus:before{content:"\f1100"}.mdi-link-variant-remove:before{content:"\f1101"}.mdi-linkedin:before{content:"\f033b"}.mdi-linux:before{content:"\f033d"}.mdi-linux-mint:before{content:"\f08ed"}.mdi-lipstick:before{content:"\f13b5"}.mdi-liquid-spot:before{content:"\f1826"}.mdi-liquor:before{content:"\f191e"}.mdi-list-box:before{content:"\f1b7b"}.mdi-list-box-outline:before{content:"\f1b7c"}.mdi-list-status:before{content:"\f15ab"}.mdi-litecoin:before{content:"\f0a61"}.mdi-loading:before{content:"\f0772"}.mdi-location-enter:before{content:"\f0fc4"}.mdi-location-exit:before{content:"\f0fc5"}.mdi-lock:before{content:"\f033e"}.mdi-lock-alert:before{content:"\f08ee"}.mdi-lock-alert-outline:before{content:"\f15d1"}.mdi-lock-check:before{content:"\f139a"}.mdi-lock-check-outline:before{content:"\f16a8"}.mdi-lock-clock:before{content:"\f097f"}.mdi-lock-minus:before{content:"\f16a9"}.mdi-lock-minus-outline:before{content:"\f16aa"}.mdi-lock-off:before{content:"\f1671"}.mdi-lock-off-outline:before{content:"\f1672"}.mdi-lock-open:before{content:"\f033f"}.mdi-lock-open-alert:before{content:"\f139b"}.mdi-lock-open-alert-outline:before{content:"\f15d2"}.mdi-lock-open-check:before{content:"\f139c"}.mdi-lock-open-check-outline:before{content:"\f16ab"}.mdi-lock-open-minus:before{content:"\f16ac"}.mdi-lock-open-minus-outline:before{content:"\f16ad"}.mdi-lock-open-outline:before{content:"\f0340"}.mdi-lock-open-plus:before{content:"\f16ae"}.mdi-lock-open-plus-outline:before{content:"\f16af"}.mdi-lock-open-remove:before{content:"\f16b0"}.mdi-lock-open-remove-outline:before{content:"\f16b1"}.mdi-lock-open-variant:before{content:"\f0fc6"}.mdi-lock-open-variant-outline:before{content:"\f0fc7"}.mdi-lock-outline:before{content:"\f0341"}.mdi-lock-pattern:before{content:"\f06ea"}.mdi-lock-percent:before{content:"\f1c12"}.mdi-lock-percent-open:before{content:"\f1c13"}.mdi-lock-percent-open-outline:before{content:"\f1c14"}.mdi-lock-percent-open-variant:before{content:"\f1c15"}.mdi-lock-percent-open-variant-outline:before{content:"\f1c16"}.mdi-lock-percent-outline:before{content:"\f1c17"}.mdi-lock-plus:before{content:"\f05fb"}.mdi-lock-plus-outline:before{content:"\f16b2"}.mdi-lock-question:before{content:"\f08ef"}.mdi-lock-remove:before{content:"\f16b3"}.mdi-lock-remove-outline:before{content:"\f16b4"}.mdi-lock-reset:before{content:"\f0773"}.mdi-lock-smart:before{content:"\f08b2"}.mdi-locker:before{content:"\f07d7"}.mdi-locker-multiple:before{content:"\f07d8"}.mdi-login:before{content:"\f0342"}.mdi-login-variant:before{content:"\f05fc"}.mdi-logout:before{content:"\f0343"}.mdi-logout-variant:before{content:"\f05fd"}.mdi-longitude:before{content:"\f0f5a"}.mdi-looks:before{content:"\f0344"}.mdi-lotion:before{content:"\f1582"}.mdi-lotion-outline:before{content:"\f1583"}.mdi-lotion-plus:before{content:"\f1584"}.mdi-lotion-plus-outline:before{content:"\f1585"}.mdi-loupe:before{content:"\f0345"}.mdi-lumx:before{content:"\f0346"}.mdi-lungs:before{content:"\f1084"}.mdi-mace:before{content:"\f1843"}.mdi-magazine-pistol:before{content:"\f0324"}.mdi-magazine-rifle:before{content:"\f0323"}.mdi-magic-staff:before{content:"\f1844"}.mdi-magnet:before{content:"\f0347"}.mdi-magnet-on:before{content:"\f0348"}.mdi-magnify:before{content:"\f0349"}.mdi-magnify-close:before{content:"\f0980"}.mdi-magnify-expand:before{content:"\f1874"}.mdi-magnify-minus:before{content:"\f034a"}.mdi-magnify-minus-cursor:before{content:"\f0a62"}.mdi-magnify-minus-outline:before{content:"\f06ec"}.mdi-magnify-plus:before{content:"\f034b"}.mdi-magnify-plus-cursor:before{content:"\f0a63"}.mdi-magnify-plus-outline:before{content:"\f06ed"}.mdi-magnify-remove-cursor:before{content:"\f120c"}.mdi-magnify-remove-outline:before{content:"\f120d"}.mdi-magnify-scan:before{content:"\f1276"}.mdi-mail:before{content:"\f0ebb"}.mdi-mailbox:before{content:"\f06ee"}.mdi-mailbox-open:before{content:"\f0d88"}.mdi-mailbox-open-outline:before{content:"\f0d89"}.mdi-mailbox-open-up:before{content:"\f0d8a"}.mdi-mailbox-open-up-outline:before{content:"\f0d8b"}.mdi-mailbox-outline:before{content:"\f0d8c"}.mdi-mailbox-up:before{content:"\f0d8d"}.mdi-mailbox-up-outline:before{content:"\f0d8e"}.mdi-manjaro:before{content:"\f160a"}.mdi-map:before{content:"\f034d"}.mdi-map-check:before{content:"\f0ebc"}.mdi-map-check-outline:before{content:"\f0ebd"}.mdi-map-clock:before{content:"\f0d1e"}.mdi-map-clock-outline:before{content:"\f0d1f"}.mdi-map-legend:before{content:"\f0a01"}.mdi-map-marker:before{content:"\f034e"}.mdi-map-marker-account:before{content:"\f18e3"}.mdi-map-marker-account-outline:before{content:"\f18e4"}.mdi-map-marker-alert:before{content:"\f0f05"}.mdi-map-marker-alert-outline:before{content:"\f0f06"}.mdi-map-marker-check:before{content:"\f0c95"}.mdi-map-marker-check-outline:before{content:"\f12fb"}.mdi-map-marker-circle:before{content:"\f034f"}.mdi-map-marker-distance:before{content:"\f08f0"}.mdi-map-marker-down:before{content:"\f1102"}.mdi-map-marker-left:before{content:"\f12db"}.mdi-map-marker-left-outline:before{content:"\f12dd"}.mdi-map-marker-minus:before{content:"\f0650"}.mdi-map-marker-minus-outline:before{content:"\f12f9"}.mdi-map-marker-multiple:before{content:"\f0350"}.mdi-map-marker-multiple-outline:before{content:"\f1277"}.mdi-map-marker-off:before{content:"\f0351"}.mdi-map-marker-off-outline:before{content:"\f12fd"}.mdi-map-marker-outline:before{content:"\f07d9"}.mdi-map-marker-path:before{content:"\f0d20"}.mdi-map-marker-plus:before{content:"\f0651"}.mdi-map-marker-plus-outline:before{content:"\f12f8"}.mdi-map-marker-question:before{content:"\f0f07"}.mdi-map-marker-question-outline:before{content:"\f0f08"}.mdi-map-marker-radius:before{content:"\f0352"}.mdi-map-marker-radius-outline:before{content:"\f12fc"}.mdi-map-marker-remove:before{content:"\f0f09"}.mdi-map-marker-remove-outline:before{content:"\f12fa"}.mdi-map-marker-remove-variant:before{content:"\f0f0a"}.mdi-map-marker-right:before{content:"\f12dc"}.mdi-map-marker-right-outline:before{content:"\f12de"}.mdi-map-marker-star:before{content:"\f1608"}.mdi-map-marker-star-outline:before{content:"\f1609"}.mdi-map-marker-up:before{content:"\f1103"}.mdi-map-minus:before{content:"\f0981"}.mdi-map-outline:before{content:"\f0982"}.mdi-map-plus:before{content:"\f0983"}.mdi-map-search:before{content:"\f0984"}.mdi-map-search-outline:before{content:"\f0985"}.mdi-mapbox:before{content:"\f0baa"}.mdi-margin:before{content:"\f0353"}.mdi-marker:before{content:"\f0652"}.mdi-marker-cancel:before{content:"\f0dd9"}.mdi-marker-check:before{content:"\f0355"}.mdi-mastodon:before{content:"\f0ad1"}.mdi-material-design:before{content:"\f0986"}.mdi-material-ui:before{content:"\f0357"}.mdi-math-compass:before{content:"\f0358"}.mdi-math-cos:before{content:"\f0c96"}.mdi-math-integral:before{content:"\f0fc8"}.mdi-math-integral-box:before{content:"\f0fc9"}.mdi-math-log:before{content:"\f1085"}.mdi-math-norm:before{content:"\f0fca"}.mdi-math-norm-box:before{content:"\f0fcb"}.mdi-math-sin:before{content:"\f0c97"}.mdi-math-tan:before{content:"\f0c98"}.mdi-matrix:before{content:"\f0628"}.mdi-medal:before{content:"\f0987"}.mdi-medal-outline:before{content:"\f1326"}.mdi-medical-bag:before{content:"\f06ef"}.mdi-medical-cotton-swab:before{content:"\f1ab8"}.mdi-medication:before{content:"\f1b14"}.mdi-medication-outline:before{content:"\f1b15"}.mdi-meditation:before{content:"\f117b"}.mdi-memory:before{content:"\f035b"}.mdi-memory-arrow-down:before{content:"\f1ca6"}.mdi-menorah:before{content:"\f17d4"}.mdi-menorah-fire:before{content:"\f17d5"}.mdi-menu:before{content:"\f035c"}.mdi-menu-close:before{content:"\f1c90"}.mdi-menu-down:before{content:"\f035d"}.mdi-menu-down-outline:before{content:"\f06b6"}.mdi-menu-left:before{content:"\f035e"}.mdi-menu-left-outline:before{content:"\f0a02"}.mdi-menu-open:before{content:"\f0bab"}.mdi-menu-right:before{content:"\f035f"}.mdi-menu-right-outline:before{content:"\f0a03"}.mdi-menu-swap:before{content:"\f0a64"}.mdi-menu-swap-outline:before{content:"\f0a65"}.mdi-menu-up:before{content:"\f0360"}.mdi-menu-up-outline:before{content:"\f06b7"}.mdi-merge:before{content:"\f0f5c"}.mdi-message:before{content:"\f0361"}.mdi-message-alert:before{content:"\f0362"}.mdi-message-alert-outline:before{content:"\f0a04"}.mdi-message-arrow-left:before{content:"\f12f2"}.mdi-message-arrow-left-outline:before{content:"\f12f3"}.mdi-message-arrow-right:before{content:"\f12f4"}.mdi-message-arrow-right-outline:before{content:"\f12f5"}.mdi-message-badge:before{content:"\f1941"}.mdi-message-badge-outline:before{content:"\f1942"}.mdi-message-bookmark:before{content:"\f15ac"}.mdi-message-bookmark-outline:before{content:"\f15ad"}.mdi-message-bulleted:before{content:"\f06a2"}.mdi-message-bulleted-off:before{content:"\f06a3"}.mdi-message-check:before{content:"\f1b8a"}.mdi-message-check-outline:before{content:"\f1b8b"}.mdi-message-cog:before{content:"\f06f1"}.mdi-message-cog-outline:before{content:"\f1172"}.mdi-message-draw:before{content:"\f0363"}.mdi-message-fast:before{content:"\f19cc"}.mdi-message-fast-outline:before{content:"\f19cd"}.mdi-message-flash:before{content:"\f15a9"}.mdi-message-flash-outline:before{content:"\f15aa"}.mdi-message-image:before{content:"\f0364"}.mdi-message-image-outline:before{content:"\f116c"}.mdi-message-lock:before{content:"\f0fcc"}.mdi-message-lock-outline:before{content:"\f116d"}.mdi-message-minus:before{content:"\f116e"}.mdi-message-minus-outline:before{content:"\f116f"}.mdi-message-off:before{content:"\f164d"}.mdi-message-off-outline:before{content:"\f164e"}.mdi-message-outline:before{content:"\f0365"}.mdi-message-plus:before{content:"\f0653"}.mdi-message-plus-outline:before{content:"\f10bb"}.mdi-message-processing:before{content:"\f0366"}.mdi-message-processing-outline:before{content:"\f1170"}.mdi-message-question:before{content:"\f173a"}.mdi-message-question-outline:before{content:"\f173b"}.mdi-message-reply:before{content:"\f0367"}.mdi-message-reply-outline:before{content:"\f173d"}.mdi-message-reply-text:before{content:"\f0368"}.mdi-message-reply-text-outline:before{content:"\f173e"}.mdi-message-settings:before{content:"\f06f0"}.mdi-message-settings-outline:before{content:"\f1171"}.mdi-message-star:before{content:"\f069a"}.mdi-message-star-outline:before{content:"\f1250"}.mdi-message-text:before{content:"\f0369"}.mdi-message-text-clock:before{content:"\f1173"}.mdi-message-text-clock-outline:before{content:"\f1174"}.mdi-message-text-fast:before{content:"\f19ce"}.mdi-message-text-fast-outline:before{content:"\f19cf"}.mdi-message-text-lock:before{content:"\f0fcd"}.mdi-message-text-lock-outline:before{content:"\f1175"}.mdi-message-text-outline:before{content:"\f036a"}.mdi-message-video:before{content:"\f036b"}.mdi-meteor:before{content:"\f0629"}.mdi-meter-electric:before{content:"\f1a57"}.mdi-meter-electric-outline:before{content:"\f1a58"}.mdi-meter-gas:before{content:"\f1a59"}.mdi-meter-gas-outline:before{content:"\f1a5a"}.mdi-metronome:before{content:"\f07da"}.mdi-metronome-tick:before{content:"\f07db"}.mdi-micro-sd:before{content:"\f07dc"}.mdi-microphone:before{content:"\f036c"}.mdi-microphone-message:before{content:"\f050a"}.mdi-microphone-message-off:before{content:"\f050b"}.mdi-microphone-minus:before{content:"\f08b3"}.mdi-microphone-off:before{content:"\f036d"}.mdi-microphone-outline:before{content:"\f036e"}.mdi-microphone-plus:before{content:"\f08b4"}.mdi-microphone-question:before{content:"\f1989"}.mdi-microphone-question-outline:before{content:"\f198a"}.mdi-microphone-settings:before{content:"\f036f"}.mdi-microphone-variant:before{content:"\f0370"}.mdi-microphone-variant-off:before{content:"\f0371"}.mdi-microscope:before{content:"\f0654"}.mdi-microsoft:before{content:"\f0372"}.mdi-microsoft-access:before{content:"\f138e"}.mdi-microsoft-azure:before{content:"\f0805"}.mdi-microsoft-azure-devops:before{content:"\f0fd5"}.mdi-microsoft-bing:before{content:"\f00a4"}.mdi-microsoft-dynamics-365:before{content:"\f0988"}.mdi-microsoft-edge:before{content:"\f01e9"}.mdi-microsoft-excel:before{content:"\f138f"}.mdi-microsoft-internet-explorer:before{content:"\f0300"}.mdi-microsoft-office:before{content:"\f03c6"}.mdi-microsoft-onedrive:before{content:"\f03ca"}.mdi-microsoft-onenote:before{content:"\f0747"}.mdi-microsoft-outlook:before{content:"\f0d22"}.mdi-microsoft-powerpoint:before{content:"\f1390"}.mdi-microsoft-sharepoint:before{content:"\f1391"}.mdi-microsoft-teams:before{content:"\f02bb"}.mdi-microsoft-visual-studio:before{content:"\f0610"}.mdi-microsoft-visual-studio-code:before{content:"\f0a1e"}.mdi-microsoft-windows:before{content:"\f05b3"}.mdi-microsoft-windows-classic:before{content:"\f0a21"}.mdi-microsoft-word:before{content:"\f1392"}.mdi-microsoft-xbox:before{content:"\f05b9"}.mdi-microsoft-xbox-controller:before{content:"\f05ba"}.mdi-microsoft-xbox-controller-battery-alert:before{content:"\f074b"}.mdi-microsoft-xbox-controller-battery-charging:before{content:"\f0a22"}.mdi-microsoft-xbox-controller-battery-empty:before{content:"\f074c"}.mdi-microsoft-xbox-controller-battery-full:before{content:"\f074d"}.mdi-microsoft-xbox-controller-battery-low:before{content:"\f074e"}.mdi-microsoft-xbox-controller-battery-medium:before{content:"\f074f"}.mdi-microsoft-xbox-controller-battery-unknown:before{content:"\f0750"}.mdi-microsoft-xbox-controller-menu:before{content:"\f0e6f"}.mdi-microsoft-xbox-controller-off:before{content:"\f05bb"}.mdi-microsoft-xbox-controller-view:before{content:"\f0e70"}.mdi-microwave:before{content:"\f0c99"}.mdi-microwave-off:before{content:"\f1423"}.mdi-middleware:before{content:"\f0f5d"}.mdi-middleware-outline:before{content:"\f0f5e"}.mdi-midi:before{content:"\f08f1"}.mdi-midi-port:before{content:"\f08f2"}.mdi-mine:before{content:"\f0dda"}.mdi-minecraft:before{content:"\f0373"}.mdi-mini-sd:before{content:"\f0a05"}.mdi-minidisc:before{content:"\f0a06"}.mdi-minus:before{content:"\f0374"}.mdi-minus-box:before{content:"\f0375"}.mdi-minus-box-multiple:before{content:"\f1141"}.mdi-minus-box-multiple-outline:before{content:"\f1142"}.mdi-minus-box-outline:before{content:"\f06f2"}.mdi-minus-circle:before{content:"\f0376"}.mdi-minus-circle-multiple:before{content:"\f035a"}.mdi-minus-circle-multiple-outline:before{content:"\f0ad3"}.mdi-minus-circle-off:before{content:"\f1459"}.mdi-minus-circle-off-outline:before{content:"\f145a"}.mdi-minus-circle-outline:before{content:"\f0377"}.mdi-minus-network:before{content:"\f0378"}.mdi-minus-network-outline:before{content:"\f0c9a"}.mdi-minus-thick:before{content:"\f1639"}.mdi-mirror:before{content:"\f11fd"}.mdi-mirror-rectangle:before{content:"\f179f"}.mdi-mirror-variant:before{content:"\f17a0"}.mdi-mixed-martial-arts:before{content:"\f0d8f"}.mdi-mixed-reality:before{content:"\f087f"}.mdi-molecule:before{content:"\f0bac"}.mdi-molecule-co:before{content:"\f12fe"}.mdi-molecule-co2:before{content:"\f07e4"}.mdi-monitor:before{content:"\f0379"}.mdi-monitor-account:before{content:"\f1a5b"}.mdi-monitor-arrow-down:before{content:"\f19d0"}.mdi-monitor-arrow-down-variant:before{content:"\f19d1"}.mdi-monitor-cellphone:before{content:"\f0989"}.mdi-monitor-cellphone-star:before{content:"\f098a"}.mdi-monitor-dashboard:before{content:"\f0a07"}.mdi-monitor-edit:before{content:"\f12c6"}.mdi-monitor-eye:before{content:"\f13b4"}.mdi-monitor-lock:before{content:"\f0ddb"}.mdi-monitor-multiple:before{content:"\f037a"}.mdi-monitor-off:before{content:"\f0d90"}.mdi-monitor-screenshot:before{content:"\f0e51"}.mdi-monitor-share:before{content:"\f1483"}.mdi-monitor-shimmer:before{content:"\f1104"}.mdi-monitor-small:before{content:"\f1876"}.mdi-monitor-speaker:before{content:"\f0f5f"}.mdi-monitor-speaker-off:before{content:"\f0f60"}.mdi-monitor-star:before{content:"\f0ddc"}.mdi-monitor-vertical:before{content:"\f1c33"}.mdi-moon-first-quarter:before{content:"\f0f61"}.mdi-moon-full:before{content:"\f0f62"}.mdi-moon-last-quarter:before{content:"\f0f63"}.mdi-moon-new:before{content:"\f0f64"}.mdi-moon-waning-crescent:before{content:"\f0f65"}.mdi-moon-waning-gibbous:before{content:"\f0f66"}.mdi-moon-waxing-crescent:before{content:"\f0f67"}.mdi-moon-waxing-gibbous:before{content:"\f0f68"}.mdi-moped:before{content:"\f1086"}.mdi-moped-electric:before{content:"\f15b7"}.mdi-moped-electric-outline:before{content:"\f15b8"}.mdi-moped-outline:before{content:"\f15b9"}.mdi-more:before{content:"\f037b"}.mdi-mortar-pestle:before{content:"\f1748"}.mdi-mortar-pestle-plus:before{content:"\f03f1"}.mdi-mosque:before{content:"\f0d45"}.mdi-mosque-outline:before{content:"\f1827"}.mdi-mother-heart:before{content:"\f1314"}.mdi-mother-nurse:before{content:"\f0d21"}.mdi-motion:before{content:"\f15b2"}.mdi-motion-outline:before{content:"\f15b3"}.mdi-motion-pause:before{content:"\f1590"}.mdi-motion-pause-outline:before{content:"\f1592"}.mdi-motion-play:before{content:"\f158f"}.mdi-motion-play-outline:before{content:"\f1591"}.mdi-motion-sensor:before{content:"\f0d91"}.mdi-motion-sensor-off:before{content:"\f1435"}.mdi-motorbike:before{content:"\f037c"}.mdi-motorbike-electric:before{content:"\f15ba"}.mdi-motorbike-off:before{content:"\f1b16"}.mdi-mouse:before{content:"\f037d"}.mdi-mouse-bluetooth:before{content:"\f098b"}.mdi-mouse-move-down:before{content:"\f1550"}.mdi-mouse-move-up:before{content:"\f1551"}.mdi-mouse-move-vertical:before{content:"\f1552"}.mdi-mouse-off:before{content:"\f037e"}.mdi-mouse-variant:before{content:"\f037f"}.mdi-mouse-variant-off:before{content:"\f0380"}.mdi-move-resize:before{content:"\f0655"}.mdi-move-resize-variant:before{content:"\f0656"}.mdi-movie:before{content:"\f0381"}.mdi-movie-check:before{content:"\f16f3"}.mdi-movie-check-outline:before{content:"\f16f4"}.mdi-movie-cog:before{content:"\f16f5"}.mdi-movie-cog-outline:before{content:"\f16f6"}.mdi-movie-edit:before{content:"\f1122"}.mdi-movie-edit-outline:before{content:"\f1123"}.mdi-movie-filter:before{content:"\f1124"}.mdi-movie-filter-outline:before{content:"\f1125"}.mdi-movie-minus:before{content:"\f16f7"}.mdi-movie-minus-outline:before{content:"\f16f8"}.mdi-movie-off:before{content:"\f16f9"}.mdi-movie-off-outline:before{content:"\f16fa"}.mdi-movie-open:before{content:"\f0fce"}.mdi-movie-open-check:before{content:"\f16fb"}.mdi-movie-open-check-outline:before{content:"\f16fc"}.mdi-movie-open-cog:before{content:"\f16fd"}.mdi-movie-open-cog-outline:before{content:"\f16fe"}.mdi-movie-open-edit:before{content:"\f16ff"}.mdi-movie-open-edit-outline:before{content:"\f1700"}.mdi-movie-open-minus:before{content:"\f1701"}.mdi-movie-open-minus-outline:before{content:"\f1702"}.mdi-movie-open-off:before{content:"\f1703"}.mdi-movie-open-off-outline:before{content:"\f1704"}.mdi-movie-open-outline:before{content:"\f0fcf"}.mdi-movie-open-play:before{content:"\f1705"}.mdi-movie-open-play-outline:before{content:"\f1706"}.mdi-movie-open-plus:before{content:"\f1707"}.mdi-movie-open-plus-outline:before{content:"\f1708"}.mdi-movie-open-remove:before{content:"\f1709"}.mdi-movie-open-remove-outline:before{content:"\f170a"}.mdi-movie-open-settings:before{content:"\f170b"}.mdi-movie-open-settings-outline:before{content:"\f170c"}.mdi-movie-open-star:before{content:"\f170d"}.mdi-movie-open-star-outline:before{content:"\f170e"}.mdi-movie-outline:before{content:"\f0ddd"}.mdi-movie-play:before{content:"\f170f"}.mdi-movie-play-outline:before{content:"\f1710"}.mdi-movie-plus:before{content:"\f1711"}.mdi-movie-plus-outline:before{content:"\f1712"}.mdi-movie-remove:before{content:"\f1713"}.mdi-movie-remove-outline:before{content:"\f1714"}.mdi-movie-roll:before{content:"\f07de"}.mdi-movie-search:before{content:"\f11d2"}.mdi-movie-search-outline:before{content:"\f11d3"}.mdi-movie-settings:before{content:"\f1715"}.mdi-movie-settings-outline:before{content:"\f1716"}.mdi-movie-star:before{content:"\f1717"}.mdi-movie-star-outline:before{content:"\f1718"}.mdi-mower:before{content:"\f166f"}.mdi-mower-bag:before{content:"\f1670"}.mdi-mower-bag-on:before{content:"\f1b60"}.mdi-mower-on:before{content:"\f1b5f"}.mdi-muffin:before{content:"\f098c"}.mdi-multicast:before{content:"\f1893"}.mdi-multimedia:before{content:"\f1b97"}.mdi-multiplication:before{content:"\f0382"}.mdi-multiplication-box:before{content:"\f0383"}.mdi-mushroom:before{content:"\f07df"}.mdi-mushroom-off:before{content:"\f13fa"}.mdi-mushroom-off-outline:before{content:"\f13fb"}.mdi-mushroom-outline:before{content:"\f07e0"}.mdi-music:before{content:"\f075a"}.mdi-music-accidental-double-flat:before{content:"\f0f69"}.mdi-music-accidental-double-sharp:before{content:"\f0f6a"}.mdi-music-accidental-flat:before{content:"\f0f6b"}.mdi-music-accidental-natural:before{content:"\f0f6c"}.mdi-music-accidental-sharp:before{content:"\f0f6d"}.mdi-music-box:before{content:"\f0384"}.mdi-music-box-multiple:before{content:"\f0333"}.mdi-music-box-multiple-outline:before{content:"\f0f04"}.mdi-music-box-outline:before{content:"\f0385"}.mdi-music-circle:before{content:"\f0386"}.mdi-music-circle-outline:before{content:"\f0ad4"}.mdi-music-clef-alto:before{content:"\f0f6e"}.mdi-music-clef-bass:before{content:"\f0f6f"}.mdi-music-clef-treble:before{content:"\f0f70"}.mdi-music-note:before{content:"\f0387"}.mdi-music-note-bluetooth:before{content:"\f05fe"}.mdi-music-note-bluetooth-off:before{content:"\f05ff"}.mdi-music-note-eighth:before{content:"\f0388"}.mdi-music-note-eighth-dotted:before{content:"\f0f71"}.mdi-music-note-half:before{content:"\f0389"}.mdi-music-note-half-dotted:before{content:"\f0f72"}.mdi-music-note-minus:before{content:"\f1b89"}.mdi-music-note-off:before{content:"\f038a"}.mdi-music-note-off-outline:before{content:"\f0f73"}.mdi-music-note-outline:before{content:"\f0f74"}.mdi-music-note-plus:before{content:"\f0dde"}.mdi-music-note-quarter:before{content:"\f038b"}.mdi-music-note-quarter-dotted:before{content:"\f0f75"}.mdi-music-note-sixteenth:before{content:"\f038c"}.mdi-music-note-sixteenth-dotted:before{content:"\f0f76"}.mdi-music-note-whole:before{content:"\f038d"}.mdi-music-note-whole-dotted:before{content:"\f0f77"}.mdi-music-off:before{content:"\f075b"}.mdi-music-rest-eighth:before{content:"\f0f78"}.mdi-music-rest-half:before{content:"\f0f79"}.mdi-music-rest-quarter:before{content:"\f0f7a"}.mdi-music-rest-sixteenth:before{content:"\f0f7b"}.mdi-music-rest-whole:before{content:"\f0f7c"}.mdi-mustache:before{content:"\f15de"}.mdi-nail:before{content:"\f0ddf"}.mdi-nas:before{content:"\f08f3"}.mdi-nativescript:before{content:"\f0880"}.mdi-nature:before{content:"\f038e"}.mdi-nature-outline:before{content:"\f1c71"}.mdi-nature-people:before{content:"\f038f"}.mdi-nature-people-outline:before{content:"\f1c72"}.mdi-navigation:before{content:"\f0390"}.mdi-navigation-outline:before{content:"\f1607"}.mdi-navigation-variant:before{content:"\f18f0"}.mdi-navigation-variant-outline:before{content:"\f18f1"}.mdi-near-me:before{content:"\f05cd"}.mdi-necklace:before{content:"\f0f0b"}.mdi-needle:before{content:"\f0391"}.mdi-needle-off:before{content:"\f19d2"}.mdi-netflix:before{content:"\f0746"}.mdi-network:before{content:"\f06f3"}.mdi-network-off:before{content:"\f0c9b"}.mdi-network-off-outline:before{content:"\f0c9c"}.mdi-network-outline:before{content:"\f0c9d"}.mdi-network-pos:before{content:"\f1acb"}.mdi-network-strength-1:before{content:"\f08f4"}.mdi-network-strength-1-alert:before{content:"\f08f5"}.mdi-network-strength-2:before{content:"\f08f6"}.mdi-network-strength-2-alert:before{content:"\f08f7"}.mdi-network-strength-3:before{content:"\f08f8"}.mdi-network-strength-3-alert:before{content:"\f08f9"}.mdi-network-strength-4:before{content:"\f08fa"}.mdi-network-strength-4-alert:before{content:"\f08fb"}.mdi-network-strength-4-cog:before{content:"\f191a"}.mdi-network-strength-off:before{content:"\f08fc"}.mdi-network-strength-off-outline:before{content:"\f08fd"}.mdi-network-strength-outline:before{content:"\f08fe"}.mdi-new-box:before{content:"\f0394"}.mdi-newspaper:before{content:"\f0395"}.mdi-newspaper-check:before{content:"\f1943"}.mdi-newspaper-minus:before{content:"\f0f0c"}.mdi-newspaper-plus:before{content:"\f0f0d"}.mdi-newspaper-remove:before{content:"\f1944"}.mdi-newspaper-variant:before{content:"\f1001"}.mdi-newspaper-variant-multiple:before{content:"\f1002"}.mdi-newspaper-variant-multiple-outline:before{content:"\f1003"}.mdi-newspaper-variant-outline:before{content:"\f1004"}.mdi-nfc:before{content:"\f0396"}.mdi-nfc-search-variant:before{content:"\f0e53"}.mdi-nfc-tap:before{content:"\f0397"}.mdi-nfc-variant:before{content:"\f0398"}.mdi-nfc-variant-off:before{content:"\f0e54"}.mdi-ninja:before{content:"\f0774"}.mdi-nintendo-game-boy:before{content:"\f1393"}.mdi-nintendo-switch:before{content:"\f07e1"}.mdi-nintendo-wii:before{content:"\f05ab"}.mdi-nintendo-wiiu:before{content:"\f072d"}.mdi-nix:before{content:"\f1105"}.mdi-nodejs:before{content:"\f0399"}.mdi-noodles:before{content:"\f117e"}.mdi-not-equal:before{content:"\f098d"}.mdi-not-equal-variant:before{content:"\f098e"}.mdi-note:before{content:"\f039a"}.mdi-note-alert:before{content:"\f177d"}.mdi-note-alert-outline:before{content:"\f177e"}.mdi-note-check:before{content:"\f177f"}.mdi-note-check-outline:before{content:"\f1780"}.mdi-note-edit:before{content:"\f1781"}.mdi-note-edit-outline:before{content:"\f1782"}.mdi-note-minus:before{content:"\f164f"}.mdi-note-minus-outline:before{content:"\f1650"}.mdi-note-multiple:before{content:"\f06b8"}.mdi-note-multiple-outline:before{content:"\f06b9"}.mdi-note-off:before{content:"\f1783"}.mdi-note-off-outline:before{content:"\f1784"}.mdi-note-outline:before{content:"\f039b"}.mdi-note-plus:before{content:"\f039c"}.mdi-note-plus-outline:before{content:"\f039d"}.mdi-note-remove:before{content:"\f1651"}.mdi-note-remove-outline:before{content:"\f1652"}.mdi-note-search:before{content:"\f1653"}.mdi-note-search-outline:before{content:"\f1654"}.mdi-note-text:before{content:"\f039e"}.mdi-note-text-outline:before{content:"\f11d7"}.mdi-notebook:before{content:"\f082e"}.mdi-notebook-check:before{content:"\f14f5"}.mdi-notebook-check-outline:before{content:"\f14f6"}.mdi-notebook-edit:before{content:"\f14e7"}.mdi-notebook-edit-outline:before{content:"\f14e9"}.mdi-notebook-heart:before{content:"\f1a0b"}.mdi-notebook-heart-outline:before{content:"\f1a0c"}.mdi-notebook-minus:before{content:"\f1610"}.mdi-notebook-minus-outline:before{content:"\f1611"}.mdi-notebook-multiple:before{content:"\f0e55"}.mdi-notebook-outline:before{content:"\f0ebf"}.mdi-notebook-plus:before{content:"\f1612"}.mdi-notebook-plus-outline:before{content:"\f1613"}.mdi-notebook-remove:before{content:"\f1614"}.mdi-notebook-remove-outline:before{content:"\f1615"}.mdi-notification-clear-all:before{content:"\f039f"}.mdi-npm:before{content:"\f06f7"}.mdi-nuke:before{content:"\f06a4"}.mdi-null:before{content:"\f07e2"}.mdi-numeric:before{content:"\f03a0"}.mdi-numeric-0:before{content:"\f0b39"}.mdi-numeric-0-box:before{content:"\f03a1"}.mdi-numeric-0-box-multiple:before{content:"\f0f0e"}.mdi-numeric-0-box-multiple-outline:before{content:"\f03a2"}.mdi-numeric-0-box-outline:before{content:"\f03a3"}.mdi-numeric-0-circle:before{content:"\f0c9e"}.mdi-numeric-0-circle-outline:before{content:"\f0c9f"}.mdi-numeric-1:before{content:"\f0b3a"}.mdi-numeric-1-box:before{content:"\f03a4"}.mdi-numeric-1-box-multiple:before{content:"\f0f0f"}.mdi-numeric-1-box-multiple-outline:before{content:"\f03a5"}.mdi-numeric-1-box-outline:before{content:"\f03a6"}.mdi-numeric-1-circle:before{content:"\f0ca0"}.mdi-numeric-1-circle-outline:before{content:"\f0ca1"}.mdi-numeric-10:before{content:"\f0fe9"}.mdi-numeric-10-box:before{content:"\f0f7d"}.mdi-numeric-10-box-multiple:before{content:"\f0fea"}.mdi-numeric-10-box-multiple-outline:before{content:"\f0feb"}.mdi-numeric-10-box-outline:before{content:"\f0f7e"}.mdi-numeric-10-circle:before{content:"\f0fec"}.mdi-numeric-10-circle-outline:before{content:"\f0fed"}.mdi-numeric-2:before{content:"\f0b3b"}.mdi-numeric-2-box:before{content:"\f03a7"}.mdi-numeric-2-box-multiple:before{content:"\f0f10"}.mdi-numeric-2-box-multiple-outline:before{content:"\f03a8"}.mdi-numeric-2-box-outline:before{content:"\f03a9"}.mdi-numeric-2-circle:before{content:"\f0ca2"}.mdi-numeric-2-circle-outline:before{content:"\f0ca3"}.mdi-numeric-3:before{content:"\f0b3c"}.mdi-numeric-3-box:before{content:"\f03aa"}.mdi-numeric-3-box-multiple:before{content:"\f0f11"}.mdi-numeric-3-box-multiple-outline:before{content:"\f03ab"}.mdi-numeric-3-box-outline:before{content:"\f03ac"}.mdi-numeric-3-circle:before{content:"\f0ca4"}.mdi-numeric-3-circle-outline:before{content:"\f0ca5"}.mdi-numeric-4:before{content:"\f0b3d"}.mdi-numeric-4-box:before{content:"\f03ad"}.mdi-numeric-4-box-multiple:before{content:"\f0f12"}.mdi-numeric-4-box-multiple-outline:before{content:"\f03b2"}.mdi-numeric-4-box-outline:before{content:"\f03ae"}.mdi-numeric-4-circle:before{content:"\f0ca6"}.mdi-numeric-4-circle-outline:before{content:"\f0ca7"}.mdi-numeric-5:before{content:"\f0b3e"}.mdi-numeric-5-box:before{content:"\f03b1"}.mdi-numeric-5-box-multiple:before{content:"\f0f13"}.mdi-numeric-5-box-multiple-outline:before{content:"\f03af"}.mdi-numeric-5-box-outline:before{content:"\f03b0"}.mdi-numeric-5-circle:before{content:"\f0ca8"}.mdi-numeric-5-circle-outline:before{content:"\f0ca9"}.mdi-numeric-6:before{content:"\f0b3f"}.mdi-numeric-6-box:before{content:"\f03b3"}.mdi-numeric-6-box-multiple:before{content:"\f0f14"}.mdi-numeric-6-box-multiple-outline:before{content:"\f03b4"}.mdi-numeric-6-box-outline:before{content:"\f03b5"}.mdi-numeric-6-circle:before{content:"\f0caa"}.mdi-numeric-6-circle-outline:before{content:"\f0cab"}.mdi-numeric-7:before{content:"\f0b40"}.mdi-numeric-7-box:before{content:"\f03b6"}.mdi-numeric-7-box-multiple:before{content:"\f0f15"}.mdi-numeric-7-box-multiple-outline:before{content:"\f03b7"}.mdi-numeric-7-box-outline:before{content:"\f03b8"}.mdi-numeric-7-circle:before{content:"\f0cac"}.mdi-numeric-7-circle-outline:before{content:"\f0cad"}.mdi-numeric-8:before{content:"\f0b41"}.mdi-numeric-8-box:before{content:"\f03b9"}.mdi-numeric-8-box-multiple:before{content:"\f0f16"}.mdi-numeric-8-box-multiple-outline:before{content:"\f03ba"}.mdi-numeric-8-box-outline:before{content:"\f03bb"}.mdi-numeric-8-circle:before{content:"\f0cae"}.mdi-numeric-8-circle-outline:before{content:"\f0caf"}.mdi-numeric-9:before{content:"\f0b42"}.mdi-numeric-9-box:before{content:"\f03bc"}.mdi-numeric-9-box-multiple:before{content:"\f0f17"}.mdi-numeric-9-box-multiple-outline:before{content:"\f03bd"}.mdi-numeric-9-box-outline:before{content:"\f03be"}.mdi-numeric-9-circle:before{content:"\f0cb0"}.mdi-numeric-9-circle-outline:before{content:"\f0cb1"}.mdi-numeric-9-plus:before{content:"\f0fee"}.mdi-numeric-9-plus-box:before{content:"\f03bf"}.mdi-numeric-9-plus-box-multiple:before{content:"\f0f18"}.mdi-numeric-9-plus-box-multiple-outline:before{content:"\f03c0"}.mdi-numeric-9-plus-box-outline:before{content:"\f03c1"}.mdi-numeric-9-plus-circle:before{content:"\f0cb2"}.mdi-numeric-9-plus-circle-outline:before{content:"\f0cb3"}.mdi-numeric-negative-1:before{content:"\f1052"}.mdi-numeric-off:before{content:"\f19d3"}.mdi-numeric-positive-1:before{content:"\f15cb"}.mdi-nut:before{content:"\f06f8"}.mdi-nutrition:before{content:"\f03c2"}.mdi-nuxt:before{content:"\f1106"}.mdi-oar:before{content:"\f067c"}.mdi-ocarina:before{content:"\f0de0"}.mdi-oci:before{content:"\f12e9"}.mdi-ocr:before{content:"\f113a"}.mdi-octagon:before{content:"\f03c3"}.mdi-octagon-outline:before{content:"\f03c4"}.mdi-octagram:before{content:"\f06f9"}.mdi-octagram-edit:before{content:"\f1c34"}.mdi-octagram-edit-outline:before{content:"\f1c35"}.mdi-octagram-minus:before{content:"\f1c36"}.mdi-octagram-minus-outline:before{content:"\f1c37"}.mdi-octagram-outline:before{content:"\f0775"}.mdi-octagram-plus:before{content:"\f1c38"}.mdi-octagram-plus-outline:before{content:"\f1c39"}.mdi-octahedron:before{content:"\f1950"}.mdi-octahedron-off:before{content:"\f1951"}.mdi-odnoklassniki:before{content:"\f03c5"}.mdi-offer:before{content:"\f121b"}.mdi-office-building:before{content:"\f0991"}.mdi-office-building-cog:before{content:"\f1949"}.mdi-office-building-cog-outline:before{content:"\f194a"}.mdi-office-building-marker:before{content:"\f1520"}.mdi-office-building-marker-outline:before{content:"\f1521"}.mdi-office-building-minus:before{content:"\f1baa"}.mdi-office-building-minus-outline:before{content:"\f1bab"}.mdi-office-building-outline:before{content:"\f151f"}.mdi-office-building-plus:before{content:"\f1ba8"}.mdi-office-building-plus-outline:before{content:"\f1ba9"}.mdi-office-building-remove:before{content:"\f1bac"}.mdi-office-building-remove-outline:before{content:"\f1bad"}.mdi-oil:before{content:"\f03c7"}.mdi-oil-lamp:before{content:"\f0f19"}.mdi-oil-level:before{content:"\f1053"}.mdi-oil-temperature:before{content:"\f0ff8"}.mdi-om:before{content:"\f0973"}.mdi-omega:before{content:"\f03c9"}.mdi-one-up:before{content:"\f0bad"}.mdi-onepassword:before{content:"\f0881"}.mdi-opacity:before{content:"\f05cc"}.mdi-open-in-app:before{content:"\f03cb"}.mdi-open-in-new:before{content:"\f03cc"}.mdi-open-source-initiative:before{content:"\f0bae"}.mdi-openid:before{content:"\f03cd"}.mdi-opera:before{content:"\f03ce"}.mdi-orbit:before{content:"\f0018"}.mdi-orbit-variant:before{content:"\f15db"}.mdi-order-alphabetical-ascending:before{content:"\f020d"}.mdi-order-alphabetical-descending:before{content:"\f0d07"}.mdi-order-bool-ascending:before{content:"\f02be"}.mdi-order-bool-ascending-variant:before{content:"\f098f"}.mdi-order-bool-descending:before{content:"\f1384"}.mdi-order-bool-descending-variant:before{content:"\f0990"}.mdi-order-numeric-ascending:before{content:"\f0545"}.mdi-order-numeric-descending:before{content:"\f0546"}.mdi-origin:before{content:"\f0b43"}.mdi-ornament:before{content:"\f03cf"}.mdi-ornament-variant:before{content:"\f03d0"}.mdi-outdoor-lamp:before{content:"\f1054"}.mdi-overscan:before{content:"\f1005"}.mdi-owl:before{content:"\f03d2"}.mdi-pac-man:before{content:"\f0baf"}.mdi-package:before{content:"\f03d3"}.mdi-package-check:before{content:"\f1b51"}.mdi-package-down:before{content:"\f03d4"}.mdi-package-up:before{content:"\f03d5"}.mdi-package-variant:before{content:"\f03d6"}.mdi-package-variant-closed:before{content:"\f03d7"}.mdi-package-variant-closed-check:before{content:"\f1b52"}.mdi-package-variant-closed-minus:before{content:"\f19d4"}.mdi-package-variant-closed-plus:before{content:"\f19d5"}.mdi-package-variant-closed-remove:before{content:"\f19d6"}.mdi-package-variant-minus:before{content:"\f19d7"}.mdi-package-variant-plus:before{content:"\f19d8"}.mdi-package-variant-remove:before{content:"\f19d9"}.mdi-page-first:before{content:"\f0600"}.mdi-page-last:before{content:"\f0601"}.mdi-page-layout-body:before{content:"\f06fa"}.mdi-page-layout-footer:before{content:"\f06fb"}.mdi-page-layout-header:before{content:"\f06fc"}.mdi-page-layout-header-footer:before{content:"\f0f7f"}.mdi-page-layout-sidebar-left:before{content:"\f06fd"}.mdi-page-layout-sidebar-right:before{content:"\f06fe"}.mdi-page-next:before{content:"\f0bb0"}.mdi-page-next-outline:before{content:"\f0bb1"}.mdi-page-previous:before{content:"\f0bb2"}.mdi-page-previous-outline:before{content:"\f0bb3"}.mdi-pail:before{content:"\f1417"}.mdi-pail-minus:before{content:"\f1437"}.mdi-pail-minus-outline:before{content:"\f143c"}.mdi-pail-off:before{content:"\f1439"}.mdi-pail-off-outline:before{content:"\f143e"}.mdi-pail-outline:before{content:"\f143a"}.mdi-pail-plus:before{content:"\f1436"}.mdi-pail-plus-outline:before{content:"\f143b"}.mdi-pail-remove:before{content:"\f1438"}.mdi-pail-remove-outline:before{content:"\f143d"}.mdi-palette:before{content:"\f03d8"}.mdi-palette-advanced:before{content:"\f03d9"}.mdi-palette-outline:before{content:"\f0e0c"}.mdi-palette-swatch:before{content:"\f08b5"}.mdi-palette-swatch-outline:before{content:"\f135c"}.mdi-palette-swatch-variant:before{content:"\f195a"}.mdi-palm-tree:before{content:"\f1055"}.mdi-pan:before{content:"\f0bb4"}.mdi-pan-bottom-left:before{content:"\f0bb5"}.mdi-pan-bottom-right:before{content:"\f0bb6"}.mdi-pan-down:before{content:"\f0bb7"}.mdi-pan-horizontal:before{content:"\f0bb8"}.mdi-pan-left:before{content:"\f0bb9"}.mdi-pan-right:before{content:"\f0bba"}.mdi-pan-top-left:before{content:"\f0bbb"}.mdi-pan-top-right:before{content:"\f0bbc"}.mdi-pan-up:before{content:"\f0bbd"}.mdi-pan-vertical:before{content:"\f0bbe"}.mdi-panda:before{content:"\f03da"}.mdi-pandora:before{content:"\f03db"}.mdi-panorama:before{content:"\f03dc"}.mdi-panorama-fisheye:before{content:"\f03dd"}.mdi-panorama-horizontal:before{content:"\f1928"}.mdi-panorama-horizontal-outline:before{content:"\f03de"}.mdi-panorama-outline:before{content:"\f198c"}.mdi-panorama-sphere:before{content:"\f198d"}.mdi-panorama-sphere-outline:before{content:"\f198e"}.mdi-panorama-variant:before{content:"\f198f"}.mdi-panorama-variant-outline:before{content:"\f1990"}.mdi-panorama-vertical:before{content:"\f1929"}.mdi-panorama-vertical-outline:before{content:"\f03df"}.mdi-panorama-wide-angle:before{content:"\f195f"}.mdi-panorama-wide-angle-outline:before{content:"\f03e0"}.mdi-paper-cut-vertical:before{content:"\f03e1"}.mdi-paper-roll:before{content:"\f1157"}.mdi-paper-roll-outline:before{content:"\f1158"}.mdi-paperclip:before{content:"\f03e2"}.mdi-paperclip-check:before{content:"\f1ac6"}.mdi-paperclip-lock:before{content:"\f19da"}.mdi-paperclip-minus:before{content:"\f1ac7"}.mdi-paperclip-off:before{content:"\f1ac8"}.mdi-paperclip-plus:before{content:"\f1ac9"}.mdi-paperclip-remove:before{content:"\f1aca"}.mdi-parachute:before{content:"\f0cb4"}.mdi-parachute-outline:before{content:"\f0cb5"}.mdi-paragliding:before{content:"\f1745"}.mdi-parking:before{content:"\f03e3"}.mdi-party-popper:before{content:"\f1056"}.mdi-passport:before{content:"\f07e3"}.mdi-passport-alert:before{content:"\f1cb8"}.mdi-passport-biometric:before{content:"\f0de1"}.mdi-passport-cancel:before{content:"\f1cb9"}.mdi-passport-check:before{content:"\f1cba"}.mdi-passport-minus:before{content:"\f1cbb"}.mdi-passport-plus:before{content:"\f1cbc"}.mdi-passport-remove:before{content:"\f1cbd"}.mdi-pasta:before{content:"\f1160"}.mdi-patio-heater:before{content:"\f0f80"}.mdi-patreon:before{content:"\f0882"}.mdi-pause:before{content:"\f03e4"}.mdi-pause-box:before{content:"\f00bc"}.mdi-pause-box-outline:before{content:"\f1b7a"}.mdi-pause-circle:before{content:"\f03e5"}.mdi-pause-circle-outline:before{content:"\f03e6"}.mdi-pause-octagon:before{content:"\f03e7"}.mdi-pause-octagon-outline:before{content:"\f03e8"}.mdi-paw:before{content:"\f03e9"}.mdi-paw-off:before{content:"\f0657"}.mdi-paw-off-outline:before{content:"\f1676"}.mdi-paw-outline:before{content:"\f1675"}.mdi-peace:before{content:"\f0884"}.mdi-peanut:before{content:"\f0ffc"}.mdi-peanut-off:before{content:"\f0ffd"}.mdi-peanut-off-outline:before{content:"\f0fff"}.mdi-peanut-outline:before{content:"\f0ffe"}.mdi-pen:before{content:"\f03ea"}.mdi-pen-lock:before{content:"\f0de2"}.mdi-pen-minus:before{content:"\f0de3"}.mdi-pen-off:before{content:"\f0de4"}.mdi-pen-plus:before{content:"\f0de5"}.mdi-pen-remove:before{content:"\f0de6"}.mdi-pencil:before{content:"\f03eb"}.mdi-pencil-box:before{content:"\f03ec"}.mdi-pencil-box-multiple:before{content:"\f1144"}.mdi-pencil-box-multiple-outline:before{content:"\f1145"}.mdi-pencil-box-outline:before{content:"\f03ed"}.mdi-pencil-circle:before{content:"\f06ff"}.mdi-pencil-circle-outline:before{content:"\f0776"}.mdi-pencil-lock:before{content:"\f03ee"}.mdi-pencil-lock-outline:before{content:"\f0de7"}.mdi-pencil-minus:before{content:"\f0de8"}.mdi-pencil-minus-outline:before{content:"\f0de9"}.mdi-pencil-off:before{content:"\f03ef"}.mdi-pencil-off-outline:before{content:"\f0dea"}.mdi-pencil-outline:before{content:"\f0cb6"}.mdi-pencil-plus:before{content:"\f0deb"}.mdi-pencil-plus-outline:before{content:"\f0dec"}.mdi-pencil-remove:before{content:"\f0ded"}.mdi-pencil-remove-outline:before{content:"\f0dee"}.mdi-pencil-ruler:before{content:"\f1353"}.mdi-pencil-ruler-outline:before{content:"\f1c11"}.mdi-penguin:before{content:"\f0ec0"}.mdi-pentagon:before{content:"\f0701"}.mdi-pentagon-outline:before{content:"\f0700"}.mdi-pentagram:before{content:"\f1667"}.mdi-percent:before{content:"\f03f0"}.mdi-percent-box:before{content:"\f1a02"}.mdi-percent-box-outline:before{content:"\f1a03"}.mdi-percent-circle:before{content:"\f1a04"}.mdi-percent-circle-outline:before{content:"\f1a05"}.mdi-percent-outline:before{content:"\f1278"}.mdi-periodic-table:before{content:"\f08b6"}.mdi-perspective-less:before{content:"\f0d23"}.mdi-perspective-more:before{content:"\f0d24"}.mdi-ph:before{content:"\f17c5"}.mdi-phone:before{content:"\f03f2"}.mdi-phone-alert:before{content:"\f0f1a"}.mdi-phone-alert-outline:before{content:"\f118e"}.mdi-phone-bluetooth:before{content:"\f03f3"}.mdi-phone-bluetooth-outline:before{content:"\f118f"}.mdi-phone-cancel:before{content:"\f10bc"}.mdi-phone-cancel-outline:before{content:"\f1190"}.mdi-phone-check:before{content:"\f11a9"}.mdi-phone-check-outline:before{content:"\f11aa"}.mdi-phone-classic:before{content:"\f0602"}.mdi-phone-classic-off:before{content:"\f1279"}.mdi-phone-clock:before{content:"\f19db"}.mdi-phone-dial:before{content:"\f1559"}.mdi-phone-dial-outline:before{content:"\f155a"}.mdi-phone-forward:before{content:"\f03f4"}.mdi-phone-forward-outline:before{content:"\f1191"}.mdi-phone-hangup:before{content:"\f03f5"}.mdi-phone-hangup-outline:before{content:"\f1192"}.mdi-phone-in-talk:before{content:"\f03f6"}.mdi-phone-in-talk-outline:before{content:"\f1182"}.mdi-phone-incoming:before{content:"\f03f7"}.mdi-phone-incoming-outgoing:before{content:"\f1b3f"}.mdi-phone-incoming-outgoing-outline:before{content:"\f1b40"}.mdi-phone-incoming-outline:before{content:"\f1193"}.mdi-phone-lock:before{content:"\f03f8"}.mdi-phone-lock-outline:before{content:"\f1194"}.mdi-phone-log:before{content:"\f03f9"}.mdi-phone-log-outline:before{content:"\f1195"}.mdi-phone-message:before{content:"\f1196"}.mdi-phone-message-outline:before{content:"\f1197"}.mdi-phone-minus:before{content:"\f0658"}.mdi-phone-minus-outline:before{content:"\f1198"}.mdi-phone-missed:before{content:"\f03fa"}.mdi-phone-missed-outline:before{content:"\f11a5"}.mdi-phone-off:before{content:"\f0def"}.mdi-phone-off-outline:before{content:"\f11a6"}.mdi-phone-outgoing:before{content:"\f03fb"}.mdi-phone-outgoing-outline:before{content:"\f1199"}.mdi-phone-outline:before{content:"\f0df0"}.mdi-phone-paused:before{content:"\f03fc"}.mdi-phone-paused-outline:before{content:"\f119a"}.mdi-phone-plus:before{content:"\f0659"}.mdi-phone-plus-outline:before{content:"\f119b"}.mdi-phone-refresh:before{content:"\f1993"}.mdi-phone-refresh-outline:before{content:"\f1994"}.mdi-phone-remove:before{content:"\f152f"}.mdi-phone-remove-outline:before{content:"\f1530"}.mdi-phone-return:before{content:"\f082f"}.mdi-phone-return-outline:before{content:"\f119c"}.mdi-phone-ring:before{content:"\f11ab"}.mdi-phone-ring-outline:before{content:"\f11ac"}.mdi-phone-rotate-landscape:before{content:"\f0885"}.mdi-phone-rotate-portrait:before{content:"\f0886"}.mdi-phone-settings:before{content:"\f03fd"}.mdi-phone-settings-outline:before{content:"\f119d"}.mdi-phone-sync:before{content:"\f1995"}.mdi-phone-sync-outline:before{content:"\f1996"}.mdi-phone-voip:before{content:"\f03fe"}.mdi-pi:before{content:"\f03ff"}.mdi-pi-box:before{content:"\f0400"}.mdi-pi-hole:before{content:"\f0df1"}.mdi-piano:before{content:"\f067d"}.mdi-piano-off:before{content:"\f0698"}.mdi-pickaxe:before{content:"\f08b7"}.mdi-picture-in-picture-bottom-right:before{content:"\f0e57"}.mdi-picture-in-picture-bottom-right-outline:before{content:"\f0e58"}.mdi-picture-in-picture-top-right:before{content:"\f0e59"}.mdi-picture-in-picture-top-right-outline:before{content:"\f0e5a"}.mdi-pier:before{content:"\f0887"}.mdi-pier-crane:before{content:"\f0888"}.mdi-pig:before{content:"\f0401"}.mdi-pig-variant:before{content:"\f1006"}.mdi-pig-variant-outline:before{content:"\f1678"}.mdi-piggy-bank:before{content:"\f1007"}.mdi-piggy-bank-outline:before{content:"\f1679"}.mdi-pill:before{content:"\f0402"}.mdi-pill-multiple:before{content:"\f1b4c"}.mdi-pill-off:before{content:"\f1a5c"}.mdi-pillar:before{content:"\f0702"}.mdi-pin:before{content:"\f0403"}.mdi-pin-off:before{content:"\f0404"}.mdi-pin-off-outline:before{content:"\f0930"}.mdi-pin-outline:before{content:"\f0931"}.mdi-pine-tree:before{content:"\f0405"}.mdi-pine-tree-box:before{content:"\f0406"}.mdi-pine-tree-fire:before{content:"\f141a"}.mdi-pine-tree-variant:before{content:"\f1c73"}.mdi-pine-tree-variant-outline:before{content:"\f1c74"}.mdi-pinterest:before{content:"\f0407"}.mdi-pinwheel:before{content:"\f0ad5"}.mdi-pinwheel-outline:before{content:"\f0ad6"}.mdi-pipe:before{content:"\f07e5"}.mdi-pipe-disconnected:before{content:"\f07e6"}.mdi-pipe-leak:before{content:"\f0889"}.mdi-pipe-valve:before{content:"\f184d"}.mdi-pipe-wrench:before{content:"\f1354"}.mdi-pirate:before{content:"\f0a08"}.mdi-pistol:before{content:"\f0703"}.mdi-piston:before{content:"\f088a"}.mdi-pitchfork:before{content:"\f1553"}.mdi-pizza:before{content:"\f0409"}.mdi-plane-car:before{content:"\f1aff"}.mdi-plane-train:before{content:"\f1b00"}.mdi-play:before{content:"\f040a"}.mdi-play-box:before{content:"\f127a"}.mdi-play-box-edit-outline:before{content:"\f1c3a"}.mdi-play-box-lock:before{content:"\f1a16"}.mdi-play-box-lock-open:before{content:"\f1a17"}.mdi-play-box-lock-open-outline:before{content:"\f1a18"}.mdi-play-box-lock-outline:before{content:"\f1a19"}.mdi-play-box-multiple:before{content:"\f0d19"}.mdi-play-box-multiple-outline:before{content:"\f13e6"}.mdi-play-box-outline:before{content:"\f040b"}.mdi-play-circle:before{content:"\f040c"}.mdi-play-circle-outline:before{content:"\f040d"}.mdi-play-network:before{content:"\f088b"}.mdi-play-network-outline:before{content:"\f0cb7"}.mdi-play-outline:before{content:"\f0f1b"}.mdi-play-pause:before{content:"\f040e"}.mdi-play-protected-content:before{content:"\f040f"}.mdi-play-speed:before{content:"\f08ff"}.mdi-playlist-check:before{content:"\f05c7"}.mdi-playlist-edit:before{content:"\f0900"}.mdi-playlist-minus:before{content:"\f0410"}.mdi-playlist-music:before{content:"\f0cb8"}.mdi-playlist-music-outline:before{content:"\f0cb9"}.mdi-playlist-play:before{content:"\f0411"}.mdi-playlist-plus:before{content:"\f0412"}.mdi-playlist-remove:before{content:"\f0413"}.mdi-playlist-star:before{content:"\f0df2"}.mdi-plex:before{content:"\f06ba"}.mdi-pliers:before{content:"\f19a4"}.mdi-plus:before{content:"\f0415"}.mdi-plus-box:before{content:"\f0416"}.mdi-plus-box-multiple:before{content:"\f0334"}.mdi-plus-box-multiple-outline:before{content:"\f1143"}.mdi-plus-box-outline:before{content:"\f0704"}.mdi-plus-circle:before{content:"\f0417"}.mdi-plus-circle-multiple:before{content:"\f034c"}.mdi-plus-circle-multiple-outline:before{content:"\f0418"}.mdi-plus-circle-outline:before{content:"\f0419"}.mdi-plus-lock:before{content:"\f1a5d"}.mdi-plus-lock-open:before{content:"\f1a5e"}.mdi-plus-minus:before{content:"\f0992"}.mdi-plus-minus-box:before{content:"\f0993"}.mdi-plus-minus-variant:before{content:"\f14c9"}.mdi-plus-network:before{content:"\f041a"}.mdi-plus-network-outline:before{content:"\f0cba"}.mdi-plus-outline:before{content:"\f0705"}.mdi-plus-thick:before{content:"\f11ec"}.mdi-pocket:before{content:"\f1cbe"}.mdi-podcast:before{content:"\f0994"}.mdi-podium:before{content:"\f0d25"}.mdi-podium-bronze:before{content:"\f0d26"}.mdi-podium-gold:before{content:"\f0d27"}.mdi-podium-silver:before{content:"\f0d28"}.mdi-point-of-sale:before{content:"\f0d92"}.mdi-pokeball:before{content:"\f041d"}.mdi-pokemon-go:before{content:"\f0a09"}.mdi-poker-chip:before{content:"\f0830"}.mdi-polaroid:before{content:"\f041e"}.mdi-police-badge:before{content:"\f1167"}.mdi-police-badge-outline:before{content:"\f1168"}.mdi-police-station:before{content:"\f1839"}.mdi-poll:before{content:"\f041f"}.mdi-polo:before{content:"\f14c3"}.mdi-polymer:before{content:"\f0421"}.mdi-pool:before{content:"\f0606"}.mdi-pool-thermometer:before{content:"\f1a5f"}.mdi-popcorn:before{content:"\f0422"}.mdi-post:before{content:"\f1008"}.mdi-post-lamp:before{content:"\f1a60"}.mdi-post-outline:before{content:"\f1009"}.mdi-postage-stamp:before{content:"\f0cbb"}.mdi-pot:before{content:"\f02e5"}.mdi-pot-mix:before{content:"\f065b"}.mdi-pot-mix-outline:before{content:"\f0677"}.mdi-pot-outline:before{content:"\f02ff"}.mdi-pot-steam:before{content:"\f065a"}.mdi-pot-steam-outline:before{content:"\f0326"}.mdi-pound:before{content:"\f0423"}.mdi-pound-box:before{content:"\f0424"}.mdi-pound-box-outline:before{content:"\f117f"}.mdi-power:before{content:"\f0425"}.mdi-power-cycle:before{content:"\f0901"}.mdi-power-off:before{content:"\f0902"}.mdi-power-on:before{content:"\f0903"}.mdi-power-plug:before{content:"\f06a5"}.mdi-power-plug-battery:before{content:"\f1c3b"}.mdi-power-plug-battery-outline:before{content:"\f1c3c"}.mdi-power-plug-off:before{content:"\f06a6"}.mdi-power-plug-off-outline:before{content:"\f1424"}.mdi-power-plug-outline:before{content:"\f1425"}.mdi-power-settings:before{content:"\f0426"}.mdi-power-sleep:before{content:"\f0904"}.mdi-power-socket:before{content:"\f0427"}.mdi-power-socket-au:before{content:"\f0905"}.mdi-power-socket-ch:before{content:"\f0fb3"}.mdi-power-socket-de:before{content:"\f1107"}.mdi-power-socket-eu:before{content:"\f07e7"}.mdi-power-socket-fr:before{content:"\f1108"}.mdi-power-socket-it:before{content:"\f14ff"}.mdi-power-socket-jp:before{content:"\f1109"}.mdi-power-socket-uk:before{content:"\f07e8"}.mdi-power-socket-us:before{content:"\f07e9"}.mdi-power-standby:before{content:"\f0906"}.mdi-powershell:before{content:"\f0a0a"}.mdi-prescription:before{content:"\f0706"}.mdi-presentation:before{content:"\f0428"}.mdi-presentation-play:before{content:"\f0429"}.mdi-pretzel:before{content:"\f1562"}.mdi-printer:before{content:"\f042a"}.mdi-printer-3d:before{content:"\f042b"}.mdi-printer-3d-nozzle:before{content:"\f0e5b"}.mdi-printer-3d-nozzle-alert:before{content:"\f11c0"}.mdi-printer-3d-nozzle-alert-outline:before{content:"\f11c1"}.mdi-printer-3d-nozzle-heat:before{content:"\f18b8"}.mdi-printer-3d-nozzle-heat-outline:before{content:"\f18b9"}.mdi-printer-3d-nozzle-off:before{content:"\f1b19"}.mdi-printer-3d-nozzle-off-outline:before{content:"\f1b1a"}.mdi-printer-3d-nozzle-outline:before{content:"\f0e5c"}.mdi-printer-3d-off:before{content:"\f1b0e"}.mdi-printer-alert:before{content:"\f042c"}.mdi-printer-check:before{content:"\f1146"}.mdi-printer-eye:before{content:"\f1458"}.mdi-printer-off:before{content:"\f0e5d"}.mdi-printer-off-outline:before{content:"\f1785"}.mdi-printer-outline:before{content:"\f1786"}.mdi-printer-pos:before{content:"\f1057"}.mdi-printer-pos-alert:before{content:"\f1bbc"}.mdi-printer-pos-alert-outline:before{content:"\f1bbd"}.mdi-printer-pos-cancel:before{content:"\f1bbe"}.mdi-printer-pos-cancel-outline:before{content:"\f1bbf"}.mdi-printer-pos-check:before{content:"\f1bc0"}.mdi-printer-pos-check-outline:before{content:"\f1bc1"}.mdi-printer-pos-cog:before{content:"\f1bc2"}.mdi-printer-pos-cog-outline:before{content:"\f1bc3"}.mdi-printer-pos-edit:before{content:"\f1bc4"}.mdi-printer-pos-edit-outline:before{content:"\f1bc5"}.mdi-printer-pos-minus:before{content:"\f1bc6"}.mdi-printer-pos-minus-outline:before{content:"\f1bc7"}.mdi-printer-pos-network:before{content:"\f1bc8"}.mdi-printer-pos-network-outline:before{content:"\f1bc9"}.mdi-printer-pos-off:before{content:"\f1bca"}.mdi-printer-pos-off-outline:before{content:"\f1bcb"}.mdi-printer-pos-outline:before{content:"\f1bcc"}.mdi-printer-pos-pause:before{content:"\f1bcd"}.mdi-printer-pos-pause-outline:before{content:"\f1bce"}.mdi-printer-pos-play:before{content:"\f1bcf"}.mdi-printer-pos-play-outline:before{content:"\f1bd0"}.mdi-printer-pos-plus:before{content:"\f1bd1"}.mdi-printer-pos-plus-outline:before{content:"\f1bd2"}.mdi-printer-pos-refresh:before{content:"\f1bd3"}.mdi-printer-pos-refresh-outline:before{content:"\f1bd4"}.mdi-printer-pos-remove:before{content:"\f1bd5"}.mdi-printer-pos-remove-outline:before{content:"\f1bd6"}.mdi-printer-pos-star:before{content:"\f1bd7"}.mdi-printer-pos-star-outline:before{content:"\f1bd8"}.mdi-printer-pos-stop:before{content:"\f1bd9"}.mdi-printer-pos-stop-outline:before{content:"\f1bda"}.mdi-printer-pos-sync:before{content:"\f1bdb"}.mdi-printer-pos-sync-outline:before{content:"\f1bdc"}.mdi-printer-pos-wrench:before{content:"\f1bdd"}.mdi-printer-pos-wrench-outline:before{content:"\f1bde"}.mdi-printer-search:before{content:"\f1457"}.mdi-printer-settings:before{content:"\f0707"}.mdi-printer-wireless:before{content:"\f0a0b"}.mdi-priority-high:before{content:"\f0603"}.mdi-priority-low:before{content:"\f0604"}.mdi-professional-hexagon:before{content:"\f042d"}.mdi-progress-alert:before{content:"\f0cbc"}.mdi-progress-check:before{content:"\f0995"}.mdi-progress-clock:before{content:"\f0996"}.mdi-progress-close:before{content:"\f110a"}.mdi-progress-download:before{content:"\f0997"}.mdi-progress-helper:before{content:"\f1ba2"}.mdi-progress-pencil:before{content:"\f1787"}.mdi-progress-question:before{content:"\f1522"}.mdi-progress-star:before{content:"\f1788"}.mdi-progress-star-four-points:before{content:"\f1c3d"}.mdi-progress-upload:before{content:"\f0998"}.mdi-progress-wrench:before{content:"\f0cbd"}.mdi-projector:before{content:"\f042e"}.mdi-projector-off:before{content:"\f1a23"}.mdi-projector-screen:before{content:"\f042f"}.mdi-projector-screen-off:before{content:"\f180d"}.mdi-projector-screen-off-outline:before{content:"\f180e"}.mdi-projector-screen-outline:before{content:"\f1724"}.mdi-projector-screen-variant:before{content:"\f180f"}.mdi-projector-screen-variant-off:before{content:"\f1810"}.mdi-projector-screen-variant-off-outline:before{content:"\f1811"}.mdi-projector-screen-variant-outline:before{content:"\f1812"}.mdi-propane-tank:before{content:"\f1357"}.mdi-propane-tank-outline:before{content:"\f1358"}.mdi-protocol:before{content:"\f0fd8"}.mdi-publish:before{content:"\f06a7"}.mdi-publish-off:before{content:"\f1945"}.mdi-pulse:before{content:"\f0430"}.mdi-pump:before{content:"\f1402"}.mdi-pump-off:before{content:"\f1b22"}.mdi-pumpkin:before{content:"\f0bbf"}.mdi-purse:before{content:"\f0f1c"}.mdi-purse-outline:before{content:"\f0f1d"}.mdi-puzzle:before{content:"\f0431"}.mdi-puzzle-check:before{content:"\f1426"}.mdi-puzzle-check-outline:before{content:"\f1427"}.mdi-puzzle-edit:before{content:"\f14d3"}.mdi-puzzle-edit-outline:before{content:"\f14d9"}.mdi-puzzle-heart:before{content:"\f14d4"}.mdi-puzzle-heart-outline:before{content:"\f14da"}.mdi-puzzle-minus:before{content:"\f14d1"}.mdi-puzzle-minus-outline:before{content:"\f14d7"}.mdi-puzzle-outline:before{content:"\f0a66"}.mdi-puzzle-plus:before{content:"\f14d0"}.mdi-puzzle-plus-outline:before{content:"\f14d6"}.mdi-puzzle-remove:before{content:"\f14d2"}.mdi-puzzle-remove-outline:before{content:"\f14d8"}.mdi-puzzle-star:before{content:"\f14d5"}.mdi-puzzle-star-outline:before{content:"\f14db"}.mdi-pyramid:before{content:"\f1952"}.mdi-pyramid-off:before{content:"\f1953"}.mdi-qi:before{content:"\f0999"}.mdi-qqchat:before{content:"\f0605"}.mdi-qrcode:before{content:"\f0432"}.mdi-qrcode-edit:before{content:"\f08b8"}.mdi-qrcode-minus:before{content:"\f118c"}.mdi-qrcode-plus:before{content:"\f118b"}.mdi-qrcode-remove:before{content:"\f118d"}.mdi-qrcode-scan:before{content:"\f0433"}.mdi-quadcopter:before{content:"\f0434"}.mdi-quality-high:before{content:"\f0435"}.mdi-quality-low:before{content:"\f0a0c"}.mdi-quality-medium:before{content:"\f0a0d"}.mdi-queue-first-in-last-out:before{content:"\f1caf"}.mdi-quora:before{content:"\f0d29"}.mdi-rabbit:before{content:"\f0907"}.mdi-rabbit-variant:before{content:"\f1a61"}.mdi-rabbit-variant-outline:before{content:"\f1a62"}.mdi-racing-helmet:before{content:"\f0d93"}.mdi-racquetball:before{content:"\f0d94"}.mdi-radar:before{content:"\f0437"}.mdi-radiator:before{content:"\f0438"}.mdi-radiator-disabled:before{content:"\f0ad7"}.mdi-radiator-off:before{content:"\f0ad8"}.mdi-radio:before{content:"\f0439"}.mdi-radio-am:before{content:"\f0cbe"}.mdi-radio-fm:before{content:"\f0cbf"}.mdi-radio-handheld:before{content:"\f043a"}.mdi-radio-off:before{content:"\f121c"}.mdi-radio-tower:before{content:"\f043b"}.mdi-radioactive:before{content:"\f043c"}.mdi-radioactive-circle:before{content:"\f185d"}.mdi-radioactive-circle-outline:before{content:"\f185e"}.mdi-radioactive-off:before{content:"\f0ec1"}.mdi-radiobox-blank:before{content:"\f043d"}.mdi-radiobox-indeterminate-variant:before{content:"\f1c5e"}.mdi-radiobox-marked:before{content:"\f043e"}.mdi-radiology-box:before{content:"\f14c5"}.mdi-radiology-box-outline:before{content:"\f14c6"}.mdi-radius:before{content:"\f0cc0"}.mdi-radius-outline:before{content:"\f0cc1"}.mdi-railroad-light:before{content:"\f0f1e"}.mdi-rake:before{content:"\f1544"}.mdi-raspberry-pi:before{content:"\f043f"}.mdi-raw:before{content:"\f1a0f"}.mdi-raw-off:before{content:"\f1a10"}.mdi-ray-end:before{content:"\f0440"}.mdi-ray-end-arrow:before{content:"\f0441"}.mdi-ray-start:before{content:"\f0442"}.mdi-ray-start-arrow:before{content:"\f0443"}.mdi-ray-start-end:before{content:"\f0444"}.mdi-ray-start-vertex-end:before{content:"\f15d8"}.mdi-ray-vertex:before{content:"\f0445"}.mdi-razor-double-edge:before{content:"\f1997"}.mdi-razor-single-edge:before{content:"\f1998"}.mdi-react:before{content:"\f0708"}.mdi-read:before{content:"\f0447"}.mdi-receipt:before{content:"\f0824"}.mdi-receipt-clock:before{content:"\f1c3e"}.mdi-receipt-clock-outline:before{content:"\f1c3f"}.mdi-receipt-outline:before{content:"\f04f7"}.mdi-receipt-send:before{content:"\f1c40"}.mdi-receipt-send-outline:before{content:"\f1c41"}.mdi-receipt-text:before{content:"\f0449"}.mdi-receipt-text-arrow-left:before{content:"\f1c42"}.mdi-receipt-text-arrow-left-outline:before{content:"\f1c43"}.mdi-receipt-text-arrow-right:before{content:"\f1c44"}.mdi-receipt-text-arrow-right-outline:before{content:"\f1c45"}.mdi-receipt-text-check:before{content:"\f1a63"}.mdi-receipt-text-check-outline:before{content:"\f1a64"}.mdi-receipt-text-clock:before{content:"\f1c46"}.mdi-receipt-text-clock-outline:before{content:"\f1c47"}.mdi-receipt-text-edit:before{content:"\f1c48"}.mdi-receipt-text-edit-outline:before{content:"\f1c49"}.mdi-receipt-text-minus:before{content:"\f1a65"}.mdi-receipt-text-minus-outline:before{content:"\f1a66"}.mdi-receipt-text-outline:before{content:"\f19dc"}.mdi-receipt-text-plus:before{content:"\f1a67"}.mdi-receipt-text-plus-outline:before{content:"\f1a68"}.mdi-receipt-text-remove:before{content:"\f1a69"}.mdi-receipt-text-remove-outline:before{content:"\f1a6a"}.mdi-receipt-text-send:before{content:"\f1c4a"}.mdi-receipt-text-send-outline:before{content:"\f1c4b"}.mdi-record:before{content:"\f044a"}.mdi-record-circle:before{content:"\f0ec2"}.mdi-record-circle-outline:before{content:"\f0ec3"}.mdi-record-player:before{content:"\f099a"}.mdi-record-rec:before{content:"\f044b"}.mdi-rectangle:before{content:"\f0e5e"}.mdi-rectangle-outline:before{content:"\f0e5f"}.mdi-recycle:before{content:"\f044c"}.mdi-recycle-variant:before{content:"\f139d"}.mdi-reddit:before{content:"\f044d"}.mdi-redhat:before{content:"\f111b"}.mdi-redo:before{content:"\f044e"}.mdi-redo-variant:before{content:"\f044f"}.mdi-reflect-horizontal:before{content:"\f0a0e"}.mdi-reflect-vertical:before{content:"\f0a0f"}.mdi-refresh:before{content:"\f0450"}.mdi-refresh-auto:before{content:"\f18f2"}.mdi-refresh-circle:before{content:"\f1377"}.mdi-regex:before{content:"\f0451"}.mdi-registered-trademark:before{content:"\f0a67"}.mdi-reiterate:before{content:"\f1588"}.mdi-relation-many-to-many:before{content:"\f1496"}.mdi-relation-many-to-one:before{content:"\f1497"}.mdi-relation-many-to-one-or-many:before{content:"\f1498"}.mdi-relation-many-to-only-one:before{content:"\f1499"}.mdi-relation-many-to-zero-or-many:before{content:"\f149a"}.mdi-relation-many-to-zero-or-one:before{content:"\f149b"}.mdi-relation-one-or-many-to-many:before{content:"\f149c"}.mdi-relation-one-or-many-to-one:before{content:"\f149d"}.mdi-relation-one-or-many-to-one-or-many:before{content:"\f149e"}.mdi-relation-one-or-many-to-only-one:before{content:"\f149f"}.mdi-relation-one-or-many-to-zero-or-many:before{content:"\f14a0"}.mdi-relation-one-or-many-to-zero-or-one:before{content:"\f14a1"}.mdi-relation-one-to-many:before{content:"\f14a2"}.mdi-relation-one-to-one:before{content:"\f14a3"}.mdi-relation-one-to-one-or-many:before{content:"\f14a4"}.mdi-relation-one-to-only-one:before{content:"\f14a5"}.mdi-relation-one-to-zero-or-many:before{content:"\f14a6"}.mdi-relation-one-to-zero-or-one:before{content:"\f14a7"}.mdi-relation-only-one-to-many:before{content:"\f14a8"}.mdi-relation-only-one-to-one:before{content:"\f14a9"}.mdi-relation-only-one-to-one-or-many:before{content:"\f14aa"}.mdi-relation-only-one-to-only-one:before{content:"\f14ab"}.mdi-relation-only-one-to-zero-or-many:before{content:"\f14ac"}.mdi-relation-only-one-to-zero-or-one:before{content:"\f14ad"}.mdi-relation-zero-or-many-to-many:before{content:"\f14ae"}.mdi-relation-zero-or-many-to-one:before{content:"\f14af"}.mdi-relation-zero-or-many-to-one-or-many:before{content:"\f14b0"}.mdi-relation-zero-or-many-to-only-one:before{content:"\f14b1"}.mdi-relation-zero-or-many-to-zero-or-many:before{content:"\f14b2"}.mdi-relation-zero-or-many-to-zero-or-one:before{content:"\f14b3"}.mdi-relation-zero-or-one-to-many:before{content:"\f14b4"}.mdi-relation-zero-or-one-to-one:before{content:"\f14b5"}.mdi-relation-zero-or-one-to-one-or-many:before{content:"\f14b6"}.mdi-relation-zero-or-one-to-only-one:before{content:"\f14b7"}.mdi-relation-zero-or-one-to-zero-or-many:before{content:"\f14b8"}.mdi-relation-zero-or-one-to-zero-or-one:before{content:"\f14b9"}.mdi-relative-scale:before{content:"\f0452"}.mdi-reload:before{content:"\f0453"}.mdi-reload-alert:before{content:"\f110b"}.mdi-reminder:before{content:"\f088c"}.mdi-remote:before{content:"\f0454"}.mdi-remote-desktop:before{content:"\f08b9"}.mdi-remote-off:before{content:"\f0ec4"}.mdi-remote-tv:before{content:"\f0ec5"}.mdi-remote-tv-off:before{content:"\f0ec6"}.mdi-rename:before{content:"\f1c18"}.mdi-rename-box:before{content:"\f0455"}.mdi-rename-box-outline:before{content:"\f1c19"}.mdi-rename-outline:before{content:"\f1c1a"}.mdi-reorder-horizontal:before{content:"\f0688"}.mdi-reorder-vertical:before{content:"\f0689"}.mdi-repeat:before{content:"\f0456"}.mdi-repeat-off:before{content:"\f0457"}.mdi-repeat-once:before{content:"\f0458"}.mdi-repeat-variant:before{content:"\f0547"}.mdi-replay:before{content:"\f0459"}.mdi-reply:before{content:"\f045a"}.mdi-reply-all:before{content:"\f045b"}.mdi-reply-all-outline:before{content:"\f0f1f"}.mdi-reply-circle:before{content:"\f11ae"}.mdi-reply-outline:before{content:"\f0f20"}.mdi-reproduction:before{content:"\f045c"}.mdi-resistor:before{content:"\f0b44"}.mdi-resistor-nodes:before{content:"\f0b45"}.mdi-resize:before{content:"\f0a68"}.mdi-resize-bottom-right:before{content:"\f045d"}.mdi-responsive:before{content:"\f045e"}.mdi-restart:before{content:"\f0709"}.mdi-restart-alert:before{content:"\f110c"}.mdi-restart-off:before{content:"\f0d95"}.mdi-restore:before{content:"\f099b"}.mdi-restore-alert:before{content:"\f110d"}.mdi-rewind:before{content:"\f045f"}.mdi-rewind-10:before{content:"\f0d2a"}.mdi-rewind-15:before{content:"\f1946"}.mdi-rewind-30:before{content:"\f0d96"}.mdi-rewind-45:before{content:"\f1b13"}.mdi-rewind-5:before{content:"\f11f9"}.mdi-rewind-60:before{content:"\f160c"}.mdi-rewind-outline:before{content:"\f070a"}.mdi-rhombus:before{content:"\f070b"}.mdi-rhombus-medium:before{content:"\f0a10"}.mdi-rhombus-medium-outline:before{content:"\f14dc"}.mdi-rhombus-outline:before{content:"\f070c"}.mdi-rhombus-split:before{content:"\f0a11"}.mdi-rhombus-split-outline:before{content:"\f14dd"}.mdi-ribbon:before{content:"\f0460"}.mdi-rice:before{content:"\f07ea"}.mdi-rickshaw:before{content:"\f15bb"}.mdi-rickshaw-electric:before{content:"\f15bc"}.mdi-ring:before{content:"\f07eb"}.mdi-rivet:before{content:"\f0e60"}.mdi-road:before{content:"\f0461"}.mdi-road-variant:before{content:"\f0462"}.mdi-robber:before{content:"\f1058"}.mdi-robot:before{content:"\f06a9"}.mdi-robot-angry:before{content:"\f169d"}.mdi-robot-angry-outline:before{content:"\f169e"}.mdi-robot-confused:before{content:"\f169f"}.mdi-robot-confused-outline:before{content:"\f16a0"}.mdi-robot-dead:before{content:"\f16a1"}.mdi-robot-dead-outline:before{content:"\f16a2"}.mdi-robot-excited:before{content:"\f16a3"}.mdi-robot-excited-outline:before{content:"\f16a4"}.mdi-robot-happy:before{content:"\f1719"}.mdi-robot-happy-outline:before{content:"\f171a"}.mdi-robot-industrial:before{content:"\f0b46"}.mdi-robot-industrial-outline:before{content:"\f1a1a"}.mdi-robot-love:before{content:"\f16a5"}.mdi-robot-love-outline:before{content:"\f16a6"}.mdi-robot-mower:before{content:"\f11f7"}.mdi-robot-mower-outline:before{content:"\f11f3"}.mdi-robot-off:before{content:"\f16a7"}.mdi-robot-off-outline:before{content:"\f167b"}.mdi-robot-outline:before{content:"\f167a"}.mdi-robot-vacuum:before{content:"\f070d"}.mdi-robot-vacuum-alert:before{content:"\f1b5d"}.mdi-robot-vacuum-off:before{content:"\f1c01"}.mdi-robot-vacuum-variant:before{content:"\f0908"}.mdi-robot-vacuum-variant-alert:before{content:"\f1b5e"}.mdi-robot-vacuum-variant-off:before{content:"\f1c02"}.mdi-rocket:before{content:"\f0463"}.mdi-rocket-launch:before{content:"\f14de"}.mdi-rocket-launch-outline:before{content:"\f14df"}.mdi-rocket-outline:before{content:"\f13af"}.mdi-rodent:before{content:"\f1327"}.mdi-roller-shade:before{content:"\f1a6b"}.mdi-roller-shade-closed:before{content:"\f1a6c"}.mdi-roller-skate:before{content:"\f0d2b"}.mdi-roller-skate-off:before{content:"\f0145"}.mdi-rollerblade:before{content:"\f0d2c"}.mdi-rollerblade-off:before{content:"\f002e"}.mdi-rollupjs:before{content:"\f0bc0"}.mdi-rolodex:before{content:"\f1ab9"}.mdi-rolodex-outline:before{content:"\f1aba"}.mdi-roman-numeral-1:before{content:"\f1088"}.mdi-roman-numeral-10:before{content:"\f1091"}.mdi-roman-numeral-2:before{content:"\f1089"}.mdi-roman-numeral-3:before{content:"\f108a"}.mdi-roman-numeral-4:before{content:"\f108b"}.mdi-roman-numeral-5:before{content:"\f108c"}.mdi-roman-numeral-6:before{content:"\f108d"}.mdi-roman-numeral-7:before{content:"\f108e"}.mdi-roman-numeral-8:before{content:"\f108f"}.mdi-roman-numeral-9:before{content:"\f1090"}.mdi-room-service:before{content:"\f088d"}.mdi-room-service-outline:before{content:"\f0d97"}.mdi-rotate-360:before{content:"\f1999"}.mdi-rotate-3d:before{content:"\f0ec7"}.mdi-rotate-3d-variant:before{content:"\f0464"}.mdi-rotate-left:before{content:"\f0465"}.mdi-rotate-left-variant:before{content:"\f0466"}.mdi-rotate-orbit:before{content:"\f0d98"}.mdi-rotate-right:before{content:"\f0467"}.mdi-rotate-right-variant:before{content:"\f0468"}.mdi-rounded-corner:before{content:"\f0607"}.mdi-router:before{content:"\f11e2"}.mdi-router-network:before{content:"\f1087"}.mdi-router-network-wireless:before{content:"\f1c97"}.mdi-router-wireless:before{content:"\f0469"}.mdi-router-wireless-off:before{content:"\f15a3"}.mdi-router-wireless-settings:before{content:"\f0a69"}.mdi-routes:before{content:"\f046a"}.mdi-routes-clock:before{content:"\f1059"}.mdi-rowing:before{content:"\f0608"}.mdi-rss:before{content:"\f046b"}.mdi-rss-box:before{content:"\f046c"}.mdi-rss-off:before{content:"\f0f21"}.mdi-rug:before{content:"\f1475"}.mdi-rugby:before{content:"\f0d99"}.mdi-ruler:before{content:"\f046d"}.mdi-ruler-square:before{content:"\f0cc2"}.mdi-ruler-square-compass:before{content:"\f0ebe"}.mdi-run:before{content:"\f070e"}.mdi-run-fast:before{content:"\f046e"}.mdi-rv-truck:before{content:"\f11d4"}.mdi-sack:before{content:"\f0d2e"}.mdi-sack-outline:before{content:"\f1c4c"}.mdi-sack-percent:before{content:"\f0d2f"}.mdi-safe:before{content:"\f0a6a"}.mdi-safe-square:before{content:"\f127c"}.mdi-safe-square-outline:before{content:"\f127d"}.mdi-safety-goggles:before{content:"\f0d30"}.mdi-sail-boat:before{content:"\f0ec8"}.mdi-sail-boat-sink:before{content:"\f1aef"}.mdi-sale:before{content:"\f046f"}.mdi-sale-outline:before{content:"\f1a06"}.mdi-salesforce:before{content:"\f088e"}.mdi-sass:before{content:"\f07ec"}.mdi-satellite:before{content:"\f0470"}.mdi-satellite-uplink:before{content:"\f0909"}.mdi-satellite-variant:before{content:"\f0471"}.mdi-sausage:before{content:"\f08ba"}.mdi-sausage-off:before{content:"\f1789"}.mdi-saw-blade:before{content:"\f0e61"}.mdi-sawtooth-wave:before{content:"\f147a"}.mdi-saxophone:before{content:"\f0609"}.mdi-scale:before{content:"\f0472"}.mdi-scale-balance:before{content:"\f05d1"}.mdi-scale-bathroom:before{content:"\f0473"}.mdi-scale-off:before{content:"\f105a"}.mdi-scale-unbalanced:before{content:"\f19b8"}.mdi-scan-helper:before{content:"\f13d8"}.mdi-scanner:before{content:"\f06ab"}.mdi-scanner-off:before{content:"\f090a"}.mdi-scatter-plot:before{content:"\f0ec9"}.mdi-scatter-plot-outline:before{content:"\f0eca"}.mdi-scent:before{content:"\f1958"}.mdi-scent-off:before{content:"\f1959"}.mdi-school:before{content:"\f0474"}.mdi-school-outline:before{content:"\f1180"}.mdi-scissors-cutting:before{content:"\f0a6b"}.mdi-scooter:before{content:"\f15bd"}.mdi-scooter-electric:before{content:"\f15be"}.mdi-scoreboard:before{content:"\f127e"}.mdi-scoreboard-outline:before{content:"\f127f"}.mdi-screen-rotation:before{content:"\f0475"}.mdi-screen-rotation-lock:before{content:"\f0478"}.mdi-screw-flat-top:before{content:"\f0df3"}.mdi-screw-lag:before{content:"\f0df4"}.mdi-screw-machine-flat-top:before{content:"\f0df5"}.mdi-screw-machine-round-top:before{content:"\f0df6"}.mdi-screw-round-top:before{content:"\f0df7"}.mdi-screwdriver:before{content:"\f0476"}.mdi-script:before{content:"\f0bc1"}.mdi-script-outline:before{content:"\f0477"}.mdi-script-text:before{content:"\f0bc2"}.mdi-script-text-key:before{content:"\f1725"}.mdi-script-text-key-outline:before{content:"\f1726"}.mdi-script-text-outline:before{content:"\f0bc3"}.mdi-script-text-play:before{content:"\f1727"}.mdi-script-text-play-outline:before{content:"\f1728"}.mdi-sd:before{content:"\f0479"}.mdi-seal:before{content:"\f047a"}.mdi-seal-variant:before{content:"\f0fd9"}.mdi-search-web:before{content:"\f070f"}.mdi-seat:before{content:"\f0cc3"}.mdi-seat-flat:before{content:"\f047b"}.mdi-seat-flat-angled:before{content:"\f047c"}.mdi-seat-individual-suite:before{content:"\f047d"}.mdi-seat-legroom-extra:before{content:"\f047e"}.mdi-seat-legroom-normal:before{content:"\f047f"}.mdi-seat-legroom-reduced:before{content:"\f0480"}.mdi-seat-outline:before{content:"\f0cc4"}.mdi-seat-passenger:before{content:"\f1249"}.mdi-seat-recline-extra:before{content:"\f0481"}.mdi-seat-recline-normal:before{content:"\f0482"}.mdi-seatbelt:before{content:"\f0cc5"}.mdi-security:before{content:"\f0483"}.mdi-security-network:before{content:"\f0484"}.mdi-seed:before{content:"\f0e62"}.mdi-seed-off:before{content:"\f13fd"}.mdi-seed-off-outline:before{content:"\f13fe"}.mdi-seed-outline:before{content:"\f0e63"}.mdi-seed-plus:before{content:"\f1a6d"}.mdi-seed-plus-outline:before{content:"\f1a6e"}.mdi-seesaw:before{content:"\f15a4"}.mdi-segment:before{content:"\f0ecb"}.mdi-select:before{content:"\f0485"}.mdi-select-all:before{content:"\f0486"}.mdi-select-arrow-down:before{content:"\f1b59"}.mdi-select-arrow-up:before{content:"\f1b58"}.mdi-select-color:before{content:"\f0d31"}.mdi-select-compare:before{content:"\f0ad9"}.mdi-select-drag:before{content:"\f0a6c"}.mdi-select-group:before{content:"\f0f82"}.mdi-select-inverse:before{content:"\f0487"}.mdi-select-marker:before{content:"\f1280"}.mdi-select-multiple:before{content:"\f1281"}.mdi-select-multiple-marker:before{content:"\f1282"}.mdi-select-off:before{content:"\f0488"}.mdi-select-place:before{content:"\f0fda"}.mdi-select-remove:before{content:"\f17c1"}.mdi-select-search:before{content:"\f1204"}.mdi-selection:before{content:"\f0489"}.mdi-selection-drag:before{content:"\f0a6d"}.mdi-selection-ellipse:before{content:"\f0d32"}.mdi-selection-ellipse-arrow-inside:before{content:"\f0f22"}.mdi-selection-ellipse-remove:before{content:"\f17c2"}.mdi-selection-marker:before{content:"\f1283"}.mdi-selection-multiple:before{content:"\f1285"}.mdi-selection-multiple-marker:before{content:"\f1284"}.mdi-selection-off:before{content:"\f0777"}.mdi-selection-remove:before{content:"\f17c3"}.mdi-selection-search:before{content:"\f1205"}.mdi-semantic-web:before{content:"\f1316"}.mdi-send:before{content:"\f048a"}.mdi-send-check:before{content:"\f1161"}.mdi-send-check-outline:before{content:"\f1162"}.mdi-send-circle:before{content:"\f0df8"}.mdi-send-circle-outline:before{content:"\f0df9"}.mdi-send-clock:before{content:"\f1163"}.mdi-send-clock-outline:before{content:"\f1164"}.mdi-send-lock:before{content:"\f07ed"}.mdi-send-lock-outline:before{content:"\f1166"}.mdi-send-outline:before{content:"\f1165"}.mdi-send-variant:before{content:"\f1c4d"}.mdi-send-variant-clock:before{content:"\f1c7e"}.mdi-send-variant-clock-outline:before{content:"\f1c7f"}.mdi-send-variant-outline:before{content:"\f1c4e"}.mdi-serial-port:before{content:"\f065c"}.mdi-server:before{content:"\f048b"}.mdi-server-minus:before{content:"\f048c"}.mdi-server-minus-outline:before{content:"\f1c98"}.mdi-server-network:before{content:"\f048d"}.mdi-server-network-off:before{content:"\f048e"}.mdi-server-network-outline:before{content:"\f1c99"}.mdi-server-off:before{content:"\f048f"}.mdi-server-outline:before{content:"\f1c9a"}.mdi-server-plus:before{content:"\f0490"}.mdi-server-plus-outline:before{content:"\f1c9b"}.mdi-server-remove:before{content:"\f0491"}.mdi-server-security:before{content:"\f0492"}.mdi-set-all:before{content:"\f0778"}.mdi-set-center:before{content:"\f0779"}.mdi-set-center-right:before{content:"\f077a"}.mdi-set-left:before{content:"\f077b"}.mdi-set-left-center:before{content:"\f077c"}.mdi-set-left-right:before{content:"\f077d"}.mdi-set-merge:before{content:"\f14e0"}.mdi-set-none:before{content:"\f077e"}.mdi-set-right:before{content:"\f077f"}.mdi-set-split:before{content:"\f14e1"}.mdi-set-square:before{content:"\f145d"}.mdi-set-top-box:before{content:"\f099f"}.mdi-settings-helper:before{content:"\f0a6e"}.mdi-shaker:before{content:"\f110e"}.mdi-shaker-outline:before{content:"\f110f"}.mdi-shape:before{content:"\f0831"}.mdi-shape-circle-plus:before{content:"\f065d"}.mdi-shape-outline:before{content:"\f0832"}.mdi-shape-oval-plus:before{content:"\f11fa"}.mdi-shape-plus:before{content:"\f0495"}.mdi-shape-plus-outline:before{content:"\f1c4f"}.mdi-shape-polygon-plus:before{content:"\f065e"}.mdi-shape-rectangle-plus:before{content:"\f065f"}.mdi-shape-square-plus:before{content:"\f0660"}.mdi-shape-square-rounded-plus:before{content:"\f14fa"}.mdi-share:before{content:"\f0496"}.mdi-share-all:before{content:"\f11f4"}.mdi-share-all-outline:before{content:"\f11f5"}.mdi-share-circle:before{content:"\f11ad"}.mdi-share-off:before{content:"\f0f23"}.mdi-share-off-outline:before{content:"\f0f24"}.mdi-share-outline:before{content:"\f0932"}.mdi-share-variant:before{content:"\f0497"}.mdi-share-variant-outline:before{content:"\f1514"}.mdi-shark:before{content:"\f18ba"}.mdi-shark-fin:before{content:"\f1673"}.mdi-shark-fin-outline:before{content:"\f1674"}.mdi-shark-off:before{content:"\f18bb"}.mdi-sheep:before{content:"\f0cc6"}.mdi-shield:before{content:"\f0498"}.mdi-shield-account:before{content:"\f088f"}.mdi-shield-account-outline:before{content:"\f0a12"}.mdi-shield-account-variant:before{content:"\f15a7"}.mdi-shield-account-variant-outline:before{content:"\f15a8"}.mdi-shield-airplane:before{content:"\f06bb"}.mdi-shield-airplane-outline:before{content:"\f0cc7"}.mdi-shield-alert:before{content:"\f0ecc"}.mdi-shield-alert-outline:before{content:"\f0ecd"}.mdi-shield-bug:before{content:"\f13da"}.mdi-shield-bug-outline:before{content:"\f13db"}.mdi-shield-car:before{content:"\f0f83"}.mdi-shield-check:before{content:"\f0565"}.mdi-shield-check-outline:before{content:"\f0cc8"}.mdi-shield-cross:before{content:"\f0cc9"}.mdi-shield-cross-outline:before{content:"\f0cca"}.mdi-shield-crown:before{content:"\f18bc"}.mdi-shield-crown-outline:before{content:"\f18bd"}.mdi-shield-edit:before{content:"\f11a0"}.mdi-shield-edit-outline:before{content:"\f11a1"}.mdi-shield-half:before{content:"\f1360"}.mdi-shield-half-full:before{content:"\f0780"}.mdi-shield-home:before{content:"\f068a"}.mdi-shield-home-outline:before{content:"\f0ccb"}.mdi-shield-key:before{content:"\f0bc4"}.mdi-shield-key-outline:before{content:"\f0bc5"}.mdi-shield-link-variant:before{content:"\f0d33"}.mdi-shield-link-variant-outline:before{content:"\f0d34"}.mdi-shield-lock:before{content:"\f099d"}.mdi-shield-lock-open:before{content:"\f199a"}.mdi-shield-lock-open-outline:before{content:"\f199b"}.mdi-shield-lock-outline:before{content:"\f0ccc"}.mdi-shield-moon:before{content:"\f1828"}.mdi-shield-moon-outline:before{content:"\f1829"}.mdi-shield-off:before{content:"\f099e"}.mdi-shield-off-outline:before{content:"\f099c"}.mdi-shield-outline:before{content:"\f0499"}.mdi-shield-plus:before{content:"\f0ada"}.mdi-shield-plus-outline:before{content:"\f0adb"}.mdi-shield-refresh:before{content:"\f00aa"}.mdi-shield-refresh-outline:before{content:"\f01e0"}.mdi-shield-remove:before{content:"\f0adc"}.mdi-shield-remove-outline:before{content:"\f0add"}.mdi-shield-search:before{content:"\f0d9a"}.mdi-shield-star:before{content:"\f113b"}.mdi-shield-star-outline:before{content:"\f113c"}.mdi-shield-sun:before{content:"\f105d"}.mdi-shield-sun-outline:before{content:"\f105e"}.mdi-shield-sword:before{content:"\f18be"}.mdi-shield-sword-outline:before{content:"\f18bf"}.mdi-shield-sync:before{content:"\f11a2"}.mdi-shield-sync-outline:before{content:"\f11a3"}.mdi-shimmer:before{content:"\f1545"}.mdi-ship-wheel:before{content:"\f0833"}.mdi-shipping-pallet:before{content:"\f184e"}.mdi-shoe-ballet:before{content:"\f15ca"}.mdi-shoe-cleat:before{content:"\f15c7"}.mdi-shoe-formal:before{content:"\f0b47"}.mdi-shoe-heel:before{content:"\f0b48"}.mdi-shoe-print:before{content:"\f0dfa"}.mdi-shoe-sneaker:before{content:"\f15c8"}.mdi-shopping:before{content:"\f049a"}.mdi-shopping-music:before{content:"\f049b"}.mdi-shopping-outline:before{content:"\f11d5"}.mdi-shopping-search:before{content:"\f0f84"}.mdi-shopping-search-outline:before{content:"\f1a6f"}.mdi-shore:before{content:"\f14f9"}.mdi-shovel:before{content:"\f0710"}.mdi-shovel-off:before{content:"\f0711"}.mdi-shower:before{content:"\f09a0"}.mdi-shower-head:before{content:"\f09a1"}.mdi-shredder:before{content:"\f049c"}.mdi-shuffle:before{content:"\f049d"}.mdi-shuffle-disabled:before{content:"\f049e"}.mdi-shuffle-variant:before{content:"\f049f"}.mdi-shuriken:before{content:"\f137f"}.mdi-sickle:before{content:"\f18c0"}.mdi-sigma:before{content:"\f04a0"}.mdi-sigma-lower:before{content:"\f062b"}.mdi-sign-caution:before{content:"\f04a1"}.mdi-sign-direction:before{content:"\f0781"}.mdi-sign-direction-minus:before{content:"\f1000"}.mdi-sign-direction-plus:before{content:"\f0fdc"}.mdi-sign-direction-remove:before{content:"\f0fdd"}.mdi-sign-language:before{content:"\f1b4d"}.mdi-sign-language-outline:before{content:"\f1b4e"}.mdi-sign-pole:before{content:"\f14f8"}.mdi-sign-real-estate:before{content:"\f1118"}.mdi-sign-text:before{content:"\f0782"}.mdi-sign-yield:before{content:"\f1baf"}.mdi-signal:before{content:"\f04a2"}.mdi-signal-2g:before{content:"\f0712"}.mdi-signal-3g:before{content:"\f0713"}.mdi-signal-4g:before{content:"\f0714"}.mdi-signal-5g:before{content:"\f0a6f"}.mdi-signal-cellular-1:before{content:"\f08bc"}.mdi-signal-cellular-2:before{content:"\f08bd"}.mdi-signal-cellular-3:before{content:"\f08be"}.mdi-signal-cellular-outline:before{content:"\f08bf"}.mdi-signal-distance-variant:before{content:"\f0e64"}.mdi-signal-hspa:before{content:"\f0715"}.mdi-signal-hspa-plus:before{content:"\f0716"}.mdi-signal-off:before{content:"\f0783"}.mdi-signal-variant:before{content:"\f060a"}.mdi-signature:before{content:"\f0dfb"}.mdi-signature-freehand:before{content:"\f0dfc"}.mdi-signature-image:before{content:"\f0dfd"}.mdi-signature-text:before{content:"\f0dfe"}.mdi-silo:before{content:"\f1b9f"}.mdi-silo-outline:before{content:"\f0b49"}.mdi-silverware:before{content:"\f04a3"}.mdi-silverware-clean:before{content:"\f0fde"}.mdi-silverware-fork:before{content:"\f04a4"}.mdi-silverware-fork-knife:before{content:"\f0a70"}.mdi-silverware-spoon:before{content:"\f04a5"}.mdi-silverware-variant:before{content:"\f04a6"}.mdi-sim:before{content:"\f04a7"}.mdi-sim-alert:before{content:"\f04a8"}.mdi-sim-alert-outline:before{content:"\f15d3"}.mdi-sim-off:before{content:"\f04a9"}.mdi-sim-off-outline:before{content:"\f15d4"}.mdi-sim-outline:before{content:"\f15d5"}.mdi-simple-icons:before{content:"\f131d"}.mdi-sina-weibo:before{content:"\f0adf"}.mdi-sine-wave:before{content:"\f095b"}.mdi-sitemap:before{content:"\f04aa"}.mdi-sitemap-outline:before{content:"\f199c"}.mdi-size-l:before{content:"\f13a6"}.mdi-size-m:before{content:"\f13a5"}.mdi-size-s:before{content:"\f13a4"}.mdi-size-xl:before{content:"\f13a7"}.mdi-size-xs:before{content:"\f13a3"}.mdi-size-xxl:before{content:"\f13a8"}.mdi-size-xxs:before{content:"\f13a2"}.mdi-size-xxxl:before{content:"\f13a9"}.mdi-skate:before{content:"\f0d35"}.mdi-skate-off:before{content:"\f0699"}.mdi-skateboard:before{content:"\f14c2"}.mdi-skateboarding:before{content:"\f0501"}.mdi-skew-less:before{content:"\f0d36"}.mdi-skew-more:before{content:"\f0d37"}.mdi-ski:before{content:"\f1304"}.mdi-ski-cross-country:before{content:"\f1305"}.mdi-ski-water:before{content:"\f1306"}.mdi-skip-backward:before{content:"\f04ab"}.mdi-skip-backward-outline:before{content:"\f0f25"}.mdi-skip-forward:before{content:"\f04ac"}.mdi-skip-forward-outline:before{content:"\f0f26"}.mdi-skip-next:before{content:"\f04ad"}.mdi-skip-next-circle:before{content:"\f0661"}.mdi-skip-next-circle-outline:before{content:"\f0662"}.mdi-skip-next-outline:before{content:"\f0f27"}.mdi-skip-previous:before{content:"\f04ae"}.mdi-skip-previous-circle:before{content:"\f0663"}.mdi-skip-previous-circle-outline:before{content:"\f0664"}.mdi-skip-previous-outline:before{content:"\f0f28"}.mdi-skull:before{content:"\f068c"}.mdi-skull-crossbones:before{content:"\f0bc6"}.mdi-skull-crossbones-outline:before{content:"\f0bc7"}.mdi-skull-outline:before{content:"\f0bc8"}.mdi-skull-scan:before{content:"\f14c7"}.mdi-skull-scan-outline:before{content:"\f14c8"}.mdi-skype:before{content:"\f04af"}.mdi-skype-business:before{content:"\f04b0"}.mdi-slack:before{content:"\f04b1"}.mdi-slash-forward:before{content:"\f0fdf"}.mdi-slash-forward-box:before{content:"\f0fe0"}.mdi-sledding:before{content:"\f041b"}.mdi-sleep:before{content:"\f04b2"}.mdi-sleep-off:before{content:"\f04b3"}.mdi-slide:before{content:"\f15a5"}.mdi-slope-downhill:before{content:"\f0dff"}.mdi-slope-uphill:before{content:"\f0e00"}.mdi-slot-machine:before{content:"\f1114"}.mdi-slot-machine-outline:before{content:"\f1115"}.mdi-smart-card:before{content:"\f10bd"}.mdi-smart-card-off:before{content:"\f18f7"}.mdi-smart-card-off-outline:before{content:"\f18f8"}.mdi-smart-card-outline:before{content:"\f10be"}.mdi-smart-card-reader:before{content:"\f10bf"}.mdi-smart-card-reader-outline:before{content:"\f10c0"}.mdi-smog:before{content:"\f0a71"}.mdi-smoke:before{content:"\f1799"}.mdi-smoke-detector:before{content:"\f0392"}.mdi-smoke-detector-alert:before{content:"\f192e"}.mdi-smoke-detector-alert-outline:before{content:"\f192f"}.mdi-smoke-detector-off:before{content:"\f1809"}.mdi-smoke-detector-off-outline:before{content:"\f180a"}.mdi-smoke-detector-outline:before{content:"\f1808"}.mdi-smoke-detector-variant:before{content:"\f180b"}.mdi-smoke-detector-variant-alert:before{content:"\f1930"}.mdi-smoke-detector-variant-off:before{content:"\f180c"}.mdi-smoking:before{content:"\f04b4"}.mdi-smoking-off:before{content:"\f04b5"}.mdi-smoking-pipe:before{content:"\f140d"}.mdi-smoking-pipe-off:before{content:"\f1428"}.mdi-snail:before{content:"\f1677"}.mdi-snake:before{content:"\f150e"}.mdi-snapchat:before{content:"\f04b6"}.mdi-snowboard:before{content:"\f1307"}.mdi-snowflake:before{content:"\f0717"}.mdi-snowflake-alert:before{content:"\f0f29"}.mdi-snowflake-check:before{content:"\f1a70"}.mdi-snowflake-melt:before{content:"\f12cb"}.mdi-snowflake-off:before{content:"\f14e3"}.mdi-snowflake-thermometer:before{content:"\f1a71"}.mdi-snowflake-variant:before{content:"\f0f2a"}.mdi-snowman:before{content:"\f04b7"}.mdi-snowmobile:before{content:"\f06dd"}.mdi-snowshoeing:before{content:"\f1a72"}.mdi-soccer:before{content:"\f04b8"}.mdi-soccer-field:before{content:"\f0834"}.mdi-social-distance-2-meters:before{content:"\f1579"}.mdi-social-distance-6-feet:before{content:"\f157a"}.mdi-sofa:before{content:"\f04b9"}.mdi-sofa-outline:before{content:"\f156d"}.mdi-sofa-single:before{content:"\f156e"}.mdi-sofa-single-outline:before{content:"\f156f"}.mdi-solar-panel:before{content:"\f0d9b"}.mdi-solar-panel-large:before{content:"\f0d9c"}.mdi-solar-power:before{content:"\f0a72"}.mdi-solar-power-variant:before{content:"\f1a73"}.mdi-solar-power-variant-outline:before{content:"\f1a74"}.mdi-soldering-iron:before{content:"\f1092"}.mdi-solid:before{content:"\f068d"}.mdi-sony-playstation:before{content:"\f0414"}.mdi-sort:before{content:"\f04ba"}.mdi-sort-alphabetical-ascending:before{content:"\f05bd"}.mdi-sort-alphabetical-ascending-variant:before{content:"\f1148"}.mdi-sort-alphabetical-descending:before{content:"\f05bf"}.mdi-sort-alphabetical-descending-variant:before{content:"\f1149"}.mdi-sort-alphabetical-variant:before{content:"\f04bb"}.mdi-sort-ascending:before{content:"\f04bc"}.mdi-sort-bool-ascending:before{content:"\f1385"}.mdi-sort-bool-ascending-variant:before{content:"\f1386"}.mdi-sort-bool-descending:before{content:"\f1387"}.mdi-sort-bool-descending-variant:before{content:"\f1388"}.mdi-sort-calendar-ascending:before{content:"\f1547"}.mdi-sort-calendar-descending:before{content:"\f1548"}.mdi-sort-clock-ascending:before{content:"\f1549"}.mdi-sort-clock-ascending-outline:before{content:"\f154a"}.mdi-sort-clock-descending:before{content:"\f154b"}.mdi-sort-clock-descending-outline:before{content:"\f154c"}.mdi-sort-descending:before{content:"\f04bd"}.mdi-sort-numeric-ascending:before{content:"\f1389"}.mdi-sort-numeric-ascending-variant:before{content:"\f090d"}.mdi-sort-numeric-descending:before{content:"\f138a"}.mdi-sort-numeric-descending-variant:before{content:"\f0ad2"}.mdi-sort-numeric-variant:before{content:"\f04be"}.mdi-sort-reverse-variant:before{content:"\f033c"}.mdi-sort-variant:before{content:"\f04bf"}.mdi-sort-variant-lock:before{content:"\f0ccd"}.mdi-sort-variant-lock-open:before{content:"\f0cce"}.mdi-sort-variant-off:before{content:"\f1abb"}.mdi-sort-variant-remove:before{content:"\f1147"}.mdi-soundbar:before{content:"\f17db"}.mdi-soundcloud:before{content:"\f04c0"}.mdi-source-branch:before{content:"\f062c"}.mdi-source-branch-check:before{content:"\f14cf"}.mdi-source-branch-minus:before{content:"\f14cb"}.mdi-source-branch-plus:before{content:"\f14ca"}.mdi-source-branch-refresh:before{content:"\f14cd"}.mdi-source-branch-remove:before{content:"\f14cc"}.mdi-source-branch-sync:before{content:"\f14ce"}.mdi-source-commit:before{content:"\f0718"}.mdi-source-commit-end:before{content:"\f0719"}.mdi-source-commit-end-local:before{content:"\f071a"}.mdi-source-commit-local:before{content:"\f071b"}.mdi-source-commit-next-local:before{content:"\f071c"}.mdi-source-commit-start:before{content:"\f071d"}.mdi-source-commit-start-next-local:before{content:"\f071e"}.mdi-source-fork:before{content:"\f04c1"}.mdi-source-merge:before{content:"\f062d"}.mdi-source-pull:before{content:"\f04c2"}.mdi-source-repository:before{content:"\f0ccf"}.mdi-source-repository-multiple:before{content:"\f0cd0"}.mdi-soy-sauce:before{content:"\f07ee"}.mdi-soy-sauce-off:before{content:"\f13fc"}.mdi-spa:before{content:"\f0cd1"}.mdi-spa-outline:before{content:"\f0cd2"}.mdi-space-invaders:before{content:"\f0bc9"}.mdi-space-station:before{content:"\f1383"}.mdi-spade:before{content:"\f0e65"}.mdi-speaker:before{content:"\f04c3"}.mdi-speaker-bluetooth:before{content:"\f09a2"}.mdi-speaker-message:before{content:"\f1b11"}.mdi-speaker-multiple:before{content:"\f0d38"}.mdi-speaker-off:before{content:"\f04c4"}.mdi-speaker-pause:before{content:"\f1b73"}.mdi-speaker-play:before{content:"\f1b72"}.mdi-speaker-stop:before{content:"\f1b74"}.mdi-speaker-wireless:before{content:"\f071f"}.mdi-spear:before{content:"\f1845"}.mdi-speedometer:before{content:"\f04c5"}.mdi-speedometer-medium:before{content:"\f0f85"}.mdi-speedometer-slow:before{content:"\f0f86"}.mdi-spellcheck:before{content:"\f04c6"}.mdi-sphere:before{content:"\f1954"}.mdi-sphere-off:before{content:"\f1955"}.mdi-spider:before{content:"\f11ea"}.mdi-spider-outline:before{content:"\f1c75"}.mdi-spider-thread:before{content:"\f11eb"}.mdi-spider-web:before{content:"\f0bca"}.mdi-spirit-level:before{content:"\f14f1"}.mdi-spoon-sugar:before{content:"\f1429"}.mdi-spotify:before{content:"\f04c7"}.mdi-spotlight:before{content:"\f04c8"}.mdi-spotlight-beam:before{content:"\f04c9"}.mdi-spray:before{content:"\f0665"}.mdi-spray-bottle:before{content:"\f0ae0"}.mdi-sprinkler:before{content:"\f105f"}.mdi-sprinkler-fire:before{content:"\f199d"}.mdi-sprinkler-variant:before{content:"\f1060"}.mdi-sprout:before{content:"\f0e66"}.mdi-sprout-outline:before{content:"\f0e67"}.mdi-square:before{content:"\f0764"}.mdi-square-circle:before{content:"\f1500"}.mdi-square-circle-outline:before{content:"\f1c50"}.mdi-square-edit-outline:before{content:"\f090c"}.mdi-square-medium:before{content:"\f0a13"}.mdi-square-medium-outline:before{content:"\f0a14"}.mdi-square-off:before{content:"\f12ee"}.mdi-square-off-outline:before{content:"\f12ef"}.mdi-square-opacity:before{content:"\f1854"}.mdi-square-outline:before{content:"\f0763"}.mdi-square-root:before{content:"\f0784"}.mdi-square-root-box:before{content:"\f09a3"}.mdi-square-rounded:before{content:"\f14fb"}.mdi-square-rounded-badge:before{content:"\f1a07"}.mdi-square-rounded-badge-outline:before{content:"\f1a08"}.mdi-square-rounded-outline:before{content:"\f14fc"}.mdi-square-small:before{content:"\f0a15"}.mdi-square-wave:before{content:"\f147b"}.mdi-squeegee:before{content:"\f0ae1"}.mdi-ssh:before{content:"\f08c0"}.mdi-stack-exchange:before{content:"\f060b"}.mdi-stack-overflow:before{content:"\f04cc"}.mdi-stackpath:before{content:"\f0359"}.mdi-stadium:before{content:"\f0ff9"}.mdi-stadium-outline:before{content:"\f1b03"}.mdi-stadium-variant:before{content:"\f0720"}.mdi-stairs:before{content:"\f04cd"}.mdi-stairs-box:before{content:"\f139e"}.mdi-stairs-down:before{content:"\f12be"}.mdi-stairs-up:before{content:"\f12bd"}.mdi-stamper:before{content:"\f0d39"}.mdi-standard-definition:before{content:"\f07ef"}.mdi-star:before{content:"\f04ce"}.mdi-star-box:before{content:"\f0a73"}.mdi-star-box-multiple:before{content:"\f1286"}.mdi-star-box-multiple-outline:before{content:"\f1287"}.mdi-star-box-outline:before{content:"\f0a74"}.mdi-star-check:before{content:"\f1566"}.mdi-star-check-outline:before{content:"\f156a"}.mdi-star-circle:before{content:"\f04cf"}.mdi-star-circle-outline:before{content:"\f09a4"}.mdi-star-cog:before{content:"\f1668"}.mdi-star-cog-outline:before{content:"\f1669"}.mdi-star-crescent:before{content:"\f0979"}.mdi-star-david:before{content:"\f097a"}.mdi-star-face:before{content:"\f09a5"}.mdi-star-four-points:before{content:"\f0ae2"}.mdi-star-four-points-box:before{content:"\f1c51"}.mdi-star-four-points-box-outline:before{content:"\f1c52"}.mdi-star-four-points-circle:before{content:"\f1c53"}.mdi-star-four-points-circle-outline:before{content:"\f1c54"}.mdi-star-four-points-outline:before{content:"\f0ae3"}.mdi-star-four-points-small:before{content:"\f1c55"}.mdi-star-half:before{content:"\f0246"}.mdi-star-half-full:before{content:"\f04d0"}.mdi-star-minus:before{content:"\f1564"}.mdi-star-minus-outline:before{content:"\f1568"}.mdi-star-off:before{content:"\f04d1"}.mdi-star-off-outline:before{content:"\f155b"}.mdi-star-outline:before{content:"\f04d2"}.mdi-star-plus:before{content:"\f1563"}.mdi-star-plus-outline:before{content:"\f1567"}.mdi-star-remove:before{content:"\f1565"}.mdi-star-remove-outline:before{content:"\f1569"}.mdi-star-settings:before{content:"\f166a"}.mdi-star-settings-outline:before{content:"\f166b"}.mdi-star-shooting:before{content:"\f1741"}.mdi-star-shooting-outline:before{content:"\f1742"}.mdi-star-three-points:before{content:"\f0ae4"}.mdi-star-three-points-outline:before{content:"\f0ae5"}.mdi-state-machine:before{content:"\f11ef"}.mdi-steam:before{content:"\f04d3"}.mdi-steering:before{content:"\f04d4"}.mdi-steering-off:before{content:"\f090e"}.mdi-step-backward:before{content:"\f04d5"}.mdi-step-backward-2:before{content:"\f04d6"}.mdi-step-forward:before{content:"\f04d7"}.mdi-step-forward-2:before{content:"\f04d8"}.mdi-stethoscope:before{content:"\f04d9"}.mdi-sticker:before{content:"\f1364"}.mdi-sticker-alert:before{content:"\f1365"}.mdi-sticker-alert-outline:before{content:"\f1366"}.mdi-sticker-check:before{content:"\f1367"}.mdi-sticker-check-outline:before{content:"\f1368"}.mdi-sticker-circle-outline:before{content:"\f05d0"}.mdi-sticker-emoji:before{content:"\f0785"}.mdi-sticker-minus:before{content:"\f1369"}.mdi-sticker-minus-outline:before{content:"\f136a"}.mdi-sticker-outline:before{content:"\f136b"}.mdi-sticker-plus:before{content:"\f136c"}.mdi-sticker-plus-outline:before{content:"\f136d"}.mdi-sticker-remove:before{content:"\f136e"}.mdi-sticker-remove-outline:before{content:"\f136f"}.mdi-sticker-text:before{content:"\f178e"}.mdi-sticker-text-outline:before{content:"\f178f"}.mdi-stocking:before{content:"\f04da"}.mdi-stomach:before{content:"\f1093"}.mdi-stool:before{content:"\f195d"}.mdi-stool-outline:before{content:"\f195e"}.mdi-stop:before{content:"\f04db"}.mdi-stop-circle:before{content:"\f0666"}.mdi-stop-circle-outline:before{content:"\f0667"}.mdi-storage-tank:before{content:"\f1a75"}.mdi-storage-tank-outline:before{content:"\f1a76"}.mdi-store:before{content:"\f04dc"}.mdi-store-24-hour:before{content:"\f04dd"}.mdi-store-alert:before{content:"\f18c1"}.mdi-store-alert-outline:before{content:"\f18c2"}.mdi-store-check:before{content:"\f18c3"}.mdi-store-check-outline:before{content:"\f18c4"}.mdi-store-clock:before{content:"\f18c5"}.mdi-store-clock-outline:before{content:"\f18c6"}.mdi-store-cog:before{content:"\f18c7"}.mdi-store-cog-outline:before{content:"\f18c8"}.mdi-store-edit:before{content:"\f18c9"}.mdi-store-edit-outline:before{content:"\f18ca"}.mdi-store-marker:before{content:"\f18cb"}.mdi-store-marker-outline:before{content:"\f18cc"}.mdi-store-minus:before{content:"\f165e"}.mdi-store-minus-outline:before{content:"\f18cd"}.mdi-store-off:before{content:"\f18ce"}.mdi-store-off-outline:before{content:"\f18cf"}.mdi-store-outline:before{content:"\f1361"}.mdi-store-plus:before{content:"\f165f"}.mdi-store-plus-outline:before{content:"\f18d0"}.mdi-store-remove:before{content:"\f1660"}.mdi-store-remove-outline:before{content:"\f18d1"}.mdi-store-search:before{content:"\f18d2"}.mdi-store-search-outline:before{content:"\f18d3"}.mdi-store-settings:before{content:"\f18d4"}.mdi-store-settings-outline:before{content:"\f18d5"}.mdi-storefront:before{content:"\f07c7"}.mdi-storefront-check:before{content:"\f1b7d"}.mdi-storefront-check-outline:before{content:"\f1b7e"}.mdi-storefront-edit:before{content:"\f1b7f"}.mdi-storefront-edit-outline:before{content:"\f1b80"}.mdi-storefront-minus:before{content:"\f1b83"}.mdi-storefront-minus-outline:before{content:"\f1b84"}.mdi-storefront-outline:before{content:"\f10c1"}.mdi-storefront-plus:before{content:"\f1b81"}.mdi-storefront-plus-outline:before{content:"\f1b82"}.mdi-storefront-remove:before{content:"\f1b85"}.mdi-storefront-remove-outline:before{content:"\f1b86"}.mdi-stove:before{content:"\f04de"}.mdi-strategy:before{content:"\f11d6"}.mdi-stretch-to-page:before{content:"\f0f2b"}.mdi-stretch-to-page-outline:before{content:"\f0f2c"}.mdi-string-lights:before{content:"\f12ba"}.mdi-string-lights-off:before{content:"\f12bb"}.mdi-subdirectory-arrow-left:before{content:"\f060c"}.mdi-subdirectory-arrow-right:before{content:"\f060d"}.mdi-submarine:before{content:"\f156c"}.mdi-subtitles:before{content:"\f0a16"}.mdi-subtitles-outline:before{content:"\f0a17"}.mdi-subway:before{content:"\f06ac"}.mdi-subway-alert-variant:before{content:"\f0d9d"}.mdi-subway-variant:before{content:"\f04df"}.mdi-summit:before{content:"\f0786"}.mdi-sun-angle:before{content:"\f1b27"}.mdi-sun-angle-outline:before{content:"\f1b28"}.mdi-sun-clock:before{content:"\f1a77"}.mdi-sun-clock-outline:before{content:"\f1a78"}.mdi-sun-compass:before{content:"\f19a5"}.mdi-sun-snowflake:before{content:"\f1796"}.mdi-sun-snowflake-variant:before{content:"\f1a79"}.mdi-sun-thermometer:before{content:"\f18d6"}.mdi-sun-thermometer-outline:before{content:"\f18d7"}.mdi-sun-wireless:before{content:"\f17fe"}.mdi-sun-wireless-outline:before{content:"\f17ff"}.mdi-sunglasses:before{content:"\f04e0"}.mdi-surfing:before{content:"\f1746"}.mdi-surround-sound:before{content:"\f05c5"}.mdi-surround-sound-2-0:before{content:"\f07f0"}.mdi-surround-sound-2-1:before{content:"\f1729"}.mdi-surround-sound-3-1:before{content:"\f07f1"}.mdi-surround-sound-5-1:before{content:"\f07f2"}.mdi-surround-sound-5-1-2:before{content:"\f172a"}.mdi-surround-sound-7-1:before{content:"\f07f3"}.mdi-svg:before{content:"\f0721"}.mdi-swap-horizontal:before{content:"\f04e1"}.mdi-swap-horizontal-bold:before{content:"\f0bcd"}.mdi-swap-horizontal-circle:before{content:"\f0fe1"}.mdi-swap-horizontal-circle-outline:before{content:"\f0fe2"}.mdi-swap-horizontal-variant:before{content:"\f08c1"}.mdi-swap-vertical:before{content:"\f04e2"}.mdi-swap-vertical-bold:before{content:"\f0bce"}.mdi-swap-vertical-circle:before{content:"\f0fe3"}.mdi-swap-vertical-circle-outline:before{content:"\f0fe4"}.mdi-swap-vertical-variant:before{content:"\f08c2"}.mdi-swim:before{content:"\f04e3"}.mdi-switch:before{content:"\f04e4"}.mdi-sword:before{content:"\f04e5"}.mdi-sword-cross:before{content:"\f0787"}.mdi-syllabary-hangul:before{content:"\f1333"}.mdi-syllabary-hiragana:before{content:"\f1334"}.mdi-syllabary-katakana:before{content:"\f1335"}.mdi-syllabary-katakana-halfwidth:before{content:"\f1336"}.mdi-symbol:before{content:"\f1501"}.mdi-symfony:before{content:"\f0ae6"}.mdi-synagogue:before{content:"\f1b04"}.mdi-synagogue-outline:before{content:"\f1b05"}.mdi-sync:before{content:"\f04e6"}.mdi-sync-alert:before{content:"\f04e7"}.mdi-sync-circle:before{content:"\f1378"}.mdi-sync-off:before{content:"\f04e8"}.mdi-tab:before{content:"\f04e9"}.mdi-tab-minus:before{content:"\f0b4b"}.mdi-tab-plus:before{content:"\f075c"}.mdi-tab-remove:before{content:"\f0b4c"}.mdi-tab-search:before{content:"\f199e"}.mdi-tab-unselected:before{content:"\f04ea"}.mdi-table:before{content:"\f04eb"}.mdi-table-account:before{content:"\f13b9"}.mdi-table-alert:before{content:"\f13ba"}.mdi-table-arrow-down:before{content:"\f13bb"}.mdi-table-arrow-left:before{content:"\f13bc"}.mdi-table-arrow-right:before{content:"\f13bd"}.mdi-table-arrow-up:before{content:"\f13be"}.mdi-table-border:before{content:"\f0a18"}.mdi-table-cancel:before{content:"\f13bf"}.mdi-table-chair:before{content:"\f1061"}.mdi-table-check:before{content:"\f13c0"}.mdi-table-clock:before{content:"\f13c1"}.mdi-table-cog:before{content:"\f13c2"}.mdi-table-column:before{content:"\f0835"}.mdi-table-column-plus-after:before{content:"\f04ec"}.mdi-table-column-plus-before:before{content:"\f04ed"}.mdi-table-column-remove:before{content:"\f04ee"}.mdi-table-column-width:before{content:"\f04ef"}.mdi-table-edit:before{content:"\f04f0"}.mdi-table-eye:before{content:"\f1094"}.mdi-table-eye-off:before{content:"\f13c3"}.mdi-table-filter:before{content:"\f1b8c"}.mdi-table-furniture:before{content:"\f05bc"}.mdi-table-headers-eye:before{content:"\f121d"}.mdi-table-headers-eye-off:before{content:"\f121e"}.mdi-table-heart:before{content:"\f13c4"}.mdi-table-key:before{content:"\f13c5"}.mdi-table-large:before{content:"\f04f1"}.mdi-table-large-plus:before{content:"\f0f87"}.mdi-table-large-remove:before{content:"\f0f88"}.mdi-table-lock:before{content:"\f13c6"}.mdi-table-merge-cells:before{content:"\f09a6"}.mdi-table-minus:before{content:"\f13c7"}.mdi-table-multiple:before{content:"\f13c8"}.mdi-table-network:before{content:"\f13c9"}.mdi-table-of-contents:before{content:"\f0836"}.mdi-table-off:before{content:"\f13ca"}.mdi-table-picnic:before{content:"\f1743"}.mdi-table-pivot:before{content:"\f183c"}.mdi-table-plus:before{content:"\f0a75"}.mdi-table-question:before{content:"\f1b21"}.mdi-table-refresh:before{content:"\f13a0"}.mdi-table-remove:before{content:"\f0a76"}.mdi-table-row:before{content:"\f0837"}.mdi-table-row-height:before{content:"\f04f2"}.mdi-table-row-plus-after:before{content:"\f04f3"}.mdi-table-row-plus-before:before{content:"\f04f4"}.mdi-table-row-remove:before{content:"\f04f5"}.mdi-table-search:before{content:"\f090f"}.mdi-table-settings:before{content:"\f0838"}.mdi-table-split-cell:before{content:"\f142a"}.mdi-table-star:before{content:"\f13cb"}.mdi-table-sync:before{content:"\f13a1"}.mdi-table-tennis:before{content:"\f0e68"}.mdi-tablet:before{content:"\f04f6"}.mdi-tablet-cellphone:before{content:"\f09a7"}.mdi-tablet-dashboard:before{content:"\f0ece"}.mdi-taco:before{content:"\f0762"}.mdi-tag:before{content:"\f04f9"}.mdi-tag-arrow-down:before{content:"\f172b"}.mdi-tag-arrow-down-outline:before{content:"\f172c"}.mdi-tag-arrow-left:before{content:"\f172d"}.mdi-tag-arrow-left-outline:before{content:"\f172e"}.mdi-tag-arrow-right:before{content:"\f172f"}.mdi-tag-arrow-right-outline:before{content:"\f1730"}.mdi-tag-arrow-up:before{content:"\f1731"}.mdi-tag-arrow-up-outline:before{content:"\f1732"}.mdi-tag-check:before{content:"\f1a7a"}.mdi-tag-check-outline:before{content:"\f1a7b"}.mdi-tag-edit:before{content:"\f1c9c"}.mdi-tag-edit-outline:before{content:"\f1c9d"}.mdi-tag-faces:before{content:"\f04fa"}.mdi-tag-heart:before{content:"\f068b"}.mdi-tag-heart-outline:before{content:"\f0bcf"}.mdi-tag-hidden:before{content:"\f1c76"}.mdi-tag-minus:before{content:"\f0910"}.mdi-tag-minus-outline:before{content:"\f121f"}.mdi-tag-multiple:before{content:"\f04fb"}.mdi-tag-multiple-outline:before{content:"\f12f7"}.mdi-tag-off:before{content:"\f1220"}.mdi-tag-off-outline:before{content:"\f1221"}.mdi-tag-outline:before{content:"\f04fc"}.mdi-tag-plus:before{content:"\f0722"}.mdi-tag-plus-outline:before{content:"\f1222"}.mdi-tag-remove:before{content:"\f0723"}.mdi-tag-remove-outline:before{content:"\f1223"}.mdi-tag-search:before{content:"\f1907"}.mdi-tag-search-outline:before{content:"\f1908"}.mdi-tag-text:before{content:"\f1224"}.mdi-tag-text-outline:before{content:"\f04fd"}.mdi-tailwind:before{content:"\f13ff"}.mdi-tally-mark-1:before{content:"\f1abc"}.mdi-tally-mark-2:before{content:"\f1abd"}.mdi-tally-mark-3:before{content:"\f1abe"}.mdi-tally-mark-4:before{content:"\f1abf"}.mdi-tally-mark-5:before{content:"\f1ac0"}.mdi-tangram:before{content:"\f04f8"}.mdi-tank:before{content:"\f0d3a"}.mdi-tanker-truck:before{content:"\f0fe5"}.mdi-tape-drive:before{content:"\f16df"}.mdi-tape-measure:before{content:"\f0b4d"}.mdi-target:before{content:"\f04fe"}.mdi-target-account:before{content:"\f0bd0"}.mdi-target-variant:before{content:"\f0a77"}.mdi-taxi:before{content:"\f04ff"}.mdi-tea:before{content:"\f0d9e"}.mdi-tea-outline:before{content:"\f0d9f"}.mdi-teamviewer:before{content:"\f0500"}.mdi-teddy-bear:before{content:"\f18fb"}.mdi-telescope:before{content:"\f0b4e"}.mdi-television:before{content:"\f0502"}.mdi-television-ambient-light:before{content:"\f1356"}.mdi-television-box:before{content:"\f0839"}.mdi-television-classic:before{content:"\f07f4"}.mdi-television-classic-off:before{content:"\f083a"}.mdi-television-guide:before{content:"\f0503"}.mdi-television-off:before{content:"\f083b"}.mdi-television-pause:before{content:"\f0f89"}.mdi-television-play:before{content:"\f0ecf"}.mdi-television-shimmer:before{content:"\f1110"}.mdi-television-speaker:before{content:"\f1b1b"}.mdi-television-speaker-off:before{content:"\f1b1c"}.mdi-television-stop:before{content:"\f0f8a"}.mdi-temperature-celsius:before{content:"\f0504"}.mdi-temperature-fahrenheit:before{content:"\f0505"}.mdi-temperature-kelvin:before{content:"\f0506"}.mdi-temple-buddhist:before{content:"\f1b06"}.mdi-temple-buddhist-outline:before{content:"\f1b07"}.mdi-temple-hindu:before{content:"\f1b08"}.mdi-temple-hindu-outline:before{content:"\f1b09"}.mdi-tennis:before{content:"\f0da0"}.mdi-tennis-ball:before{content:"\f0507"}.mdi-tennis-ball-outline:before{content:"\f1c5f"}.mdi-tent:before{content:"\f0508"}.mdi-terraform:before{content:"\f1062"}.mdi-terrain:before{content:"\f0509"}.mdi-test-tube:before{content:"\f0668"}.mdi-test-tube-empty:before{content:"\f0911"}.mdi-test-tube-off:before{content:"\f0912"}.mdi-text:before{content:"\f09a8"}.mdi-text-account:before{content:"\f1570"}.mdi-text-box:before{content:"\f021a"}.mdi-text-box-check:before{content:"\f0ea6"}.mdi-text-box-check-outline:before{content:"\f0ea7"}.mdi-text-box-edit:before{content:"\f1a7c"}.mdi-text-box-edit-outline:before{content:"\f1a7d"}.mdi-text-box-minus:before{content:"\f0ea8"}.mdi-text-box-minus-outline:before{content:"\f0ea9"}.mdi-text-box-multiple:before{content:"\f0ab7"}.mdi-text-box-multiple-outline:before{content:"\f0ab8"}.mdi-text-box-outline:before{content:"\f09ed"}.mdi-text-box-plus:before{content:"\f0eaa"}.mdi-text-box-plus-outline:before{content:"\f0eab"}.mdi-text-box-remove:before{content:"\f0eac"}.mdi-text-box-remove-outline:before{content:"\f0ead"}.mdi-text-box-search:before{content:"\f0eae"}.mdi-text-box-search-outline:before{content:"\f0eaf"}.mdi-text-long:before{content:"\f09aa"}.mdi-text-recognition:before{content:"\f113d"}.mdi-text-search:before{content:"\f13b8"}.mdi-text-search-variant:before{content:"\f1a7e"}.mdi-text-shadow:before{content:"\f0669"}.mdi-text-short:before{content:"\f09a9"}.mdi-texture:before{content:"\f050c"}.mdi-texture-box:before{content:"\f0fe6"}.mdi-theater:before{content:"\f050d"}.mdi-theme-light-dark:before{content:"\f050e"}.mdi-thermometer:before{content:"\f050f"}.mdi-thermometer-alert:before{content:"\f0e01"}.mdi-thermometer-auto:before{content:"\f1b0f"}.mdi-thermometer-bluetooth:before{content:"\f1895"}.mdi-thermometer-check:before{content:"\f1a7f"}.mdi-thermometer-chevron-down:before{content:"\f0e02"}.mdi-thermometer-chevron-up:before{content:"\f0e03"}.mdi-thermometer-high:before{content:"\f10c2"}.mdi-thermometer-lines:before{content:"\f0510"}.mdi-thermometer-low:before{content:"\f10c3"}.mdi-thermometer-minus:before{content:"\f0e04"}.mdi-thermometer-off:before{content:"\f1531"}.mdi-thermometer-plus:before{content:"\f0e05"}.mdi-thermometer-probe:before{content:"\f1b2b"}.mdi-thermometer-probe-off:before{content:"\f1b2c"}.mdi-thermometer-water:before{content:"\f1a80"}.mdi-thermostat:before{content:"\f0393"}.mdi-thermostat-auto:before{content:"\f1b17"}.mdi-thermostat-box:before{content:"\f0891"}.mdi-thermostat-box-auto:before{content:"\f1b18"}.mdi-thermostat-cog:before{content:"\f1c80"}.mdi-thought-bubble:before{content:"\f07f6"}.mdi-thought-bubble-outline:before{content:"\f07f7"}.mdi-thumb-down:before{content:"\f0511"}.mdi-thumb-down-outline:before{content:"\f0512"}.mdi-thumb-up:before{content:"\f0513"}.mdi-thumb-up-outline:before{content:"\f0514"}.mdi-thumbs-up-down:before{content:"\f0515"}.mdi-thumbs-up-down-outline:before{content:"\f1914"}.mdi-ticket:before{content:"\f0516"}.mdi-ticket-account:before{content:"\f0517"}.mdi-ticket-confirmation:before{content:"\f0518"}.mdi-ticket-confirmation-outline:before{content:"\f13aa"}.mdi-ticket-outline:before{content:"\f0913"}.mdi-ticket-percent:before{content:"\f0724"}.mdi-ticket-percent-outline:before{content:"\f142b"}.mdi-tie:before{content:"\f0519"}.mdi-tilde:before{content:"\f0725"}.mdi-tilde-off:before{content:"\f18f3"}.mdi-timelapse:before{content:"\f051a"}.mdi-timeline:before{content:"\f0bd1"}.mdi-timeline-alert:before{content:"\f0f95"}.mdi-timeline-alert-outline:before{content:"\f0f98"}.mdi-timeline-check:before{content:"\f1532"}.mdi-timeline-check-outline:before{content:"\f1533"}.mdi-timeline-clock:before{content:"\f11fb"}.mdi-timeline-clock-outline:before{content:"\f11fc"}.mdi-timeline-minus:before{content:"\f1534"}.mdi-timeline-minus-outline:before{content:"\f1535"}.mdi-timeline-outline:before{content:"\f0bd2"}.mdi-timeline-plus:before{content:"\f0f96"}.mdi-timeline-plus-outline:before{content:"\f0f97"}.mdi-timeline-question:before{content:"\f0f99"}.mdi-timeline-question-outline:before{content:"\f0f9a"}.mdi-timeline-remove:before{content:"\f1536"}.mdi-timeline-remove-outline:before{content:"\f1537"}.mdi-timeline-text:before{content:"\f0bd3"}.mdi-timeline-text-outline:before{content:"\f0bd4"}.mdi-timer:before{content:"\f13ab"}.mdi-timer-10:before{content:"\f051c"}.mdi-timer-3:before{content:"\f051d"}.mdi-timer-alert:before{content:"\f1acc"}.mdi-timer-alert-outline:before{content:"\f1acd"}.mdi-timer-cancel:before{content:"\f1ace"}.mdi-timer-cancel-outline:before{content:"\f1acf"}.mdi-timer-check:before{content:"\f1ad0"}.mdi-timer-check-outline:before{content:"\f1ad1"}.mdi-timer-cog:before{content:"\f1925"}.mdi-timer-cog-outline:before{content:"\f1926"}.mdi-timer-edit:before{content:"\f1ad2"}.mdi-timer-edit-outline:before{content:"\f1ad3"}.mdi-timer-lock:before{content:"\f1ad4"}.mdi-timer-lock-open:before{content:"\f1ad5"}.mdi-timer-lock-open-outline:before{content:"\f1ad6"}.mdi-timer-lock-outline:before{content:"\f1ad7"}.mdi-timer-marker:before{content:"\f1ad8"}.mdi-timer-marker-outline:before{content:"\f1ad9"}.mdi-timer-minus:before{content:"\f1ada"}.mdi-timer-minus-outline:before{content:"\f1adb"}.mdi-timer-music:before{content:"\f1adc"}.mdi-timer-music-outline:before{content:"\f1add"}.mdi-timer-off:before{content:"\f13ac"}.mdi-timer-off-outline:before{content:"\f051e"}.mdi-timer-outline:before{content:"\f051b"}.mdi-timer-pause:before{content:"\f1ade"}.mdi-timer-pause-outline:before{content:"\f1adf"}.mdi-timer-play:before{content:"\f1ae0"}.mdi-timer-play-outline:before{content:"\f1ae1"}.mdi-timer-plus:before{content:"\f1ae2"}.mdi-timer-plus-outline:before{content:"\f1ae3"}.mdi-timer-refresh:before{content:"\f1ae4"}.mdi-timer-refresh-outline:before{content:"\f1ae5"}.mdi-timer-remove:before{content:"\f1ae6"}.mdi-timer-remove-outline:before{content:"\f1ae7"}.mdi-timer-sand:before{content:"\f051f"}.mdi-timer-sand-complete:before{content:"\f199f"}.mdi-timer-sand-empty:before{content:"\f06ad"}.mdi-timer-sand-full:before{content:"\f078c"}.mdi-timer-sand-paused:before{content:"\f19a0"}.mdi-timer-settings:before{content:"\f1923"}.mdi-timer-settings-outline:before{content:"\f1924"}.mdi-timer-star:before{content:"\f1ae8"}.mdi-timer-star-outline:before{content:"\f1ae9"}.mdi-timer-stop:before{content:"\f1aea"}.mdi-timer-stop-outline:before{content:"\f1aeb"}.mdi-timer-sync:before{content:"\f1aec"}.mdi-timer-sync-outline:before{content:"\f1aed"}.mdi-timetable:before{content:"\f0520"}.mdi-tire:before{content:"\f1896"}.mdi-toaster:before{content:"\f1063"}.mdi-toaster-off:before{content:"\f11b7"}.mdi-toaster-oven:before{content:"\f0cd3"}.mdi-toggle-switch:before{content:"\f0521"}.mdi-toggle-switch-off:before{content:"\f0522"}.mdi-toggle-switch-off-outline:before{content:"\f0a19"}.mdi-toggle-switch-outline:before{content:"\f0a1a"}.mdi-toggle-switch-variant:before{content:"\f1a25"}.mdi-toggle-switch-variant-off:before{content:"\f1a26"}.mdi-toilet:before{content:"\f09ab"}.mdi-toolbox:before{content:"\f09ac"}.mdi-toolbox-outline:before{content:"\f09ad"}.mdi-tools:before{content:"\f1064"}.mdi-tooltip:before{content:"\f0523"}.mdi-tooltip-account:before{content:"\f000c"}.mdi-tooltip-cellphone:before{content:"\f183b"}.mdi-tooltip-check:before{content:"\f155c"}.mdi-tooltip-check-outline:before{content:"\f155d"}.mdi-tooltip-edit:before{content:"\f0524"}.mdi-tooltip-edit-outline:before{content:"\f12c5"}.mdi-tooltip-image:before{content:"\f0525"}.mdi-tooltip-image-outline:before{content:"\f0bd5"}.mdi-tooltip-minus:before{content:"\f155e"}.mdi-tooltip-minus-outline:before{content:"\f155f"}.mdi-tooltip-outline:before{content:"\f0526"}.mdi-tooltip-plus:before{content:"\f0bd6"}.mdi-tooltip-plus-outline:before{content:"\f0527"}.mdi-tooltip-question:before{content:"\f1bba"}.mdi-tooltip-question-outline:before{content:"\f1bbb"}.mdi-tooltip-remove:before{content:"\f1560"}.mdi-tooltip-remove-outline:before{content:"\f1561"}.mdi-tooltip-text:before{content:"\f0528"}.mdi-tooltip-text-outline:before{content:"\f0bd7"}.mdi-tooth:before{content:"\f08c3"}.mdi-tooth-outline:before{content:"\f0529"}.mdi-toothbrush:before{content:"\f1129"}.mdi-toothbrush-electric:before{content:"\f112c"}.mdi-toothbrush-paste:before{content:"\f112a"}.mdi-torch:before{content:"\f1606"}.mdi-tortoise:before{content:"\f0d3b"}.mdi-toslink:before{content:"\f12b8"}.mdi-touch-text-outline:before{content:"\f1c60"}.mdi-tournament:before{content:"\f09ae"}.mdi-tow-truck:before{content:"\f083c"}.mdi-tower-beach:before{content:"\f0681"}.mdi-tower-fire:before{content:"\f0682"}.mdi-town-hall:before{content:"\f1875"}.mdi-toy-brick:before{content:"\f1288"}.mdi-toy-brick-marker:before{content:"\f1289"}.mdi-toy-brick-marker-outline:before{content:"\f128a"}.mdi-toy-brick-minus:before{content:"\f128b"}.mdi-toy-brick-minus-outline:before{content:"\f128c"}.mdi-toy-brick-outline:before{content:"\f128d"}.mdi-toy-brick-plus:before{content:"\f128e"}.mdi-toy-brick-plus-outline:before{content:"\f128f"}.mdi-toy-brick-remove:before{content:"\f1290"}.mdi-toy-brick-remove-outline:before{content:"\f1291"}.mdi-toy-brick-search:before{content:"\f1292"}.mdi-toy-brick-search-outline:before{content:"\f1293"}.mdi-track-light:before{content:"\f0914"}.mdi-track-light-off:before{content:"\f1b01"}.mdi-trackpad:before{content:"\f07f8"}.mdi-trackpad-lock:before{content:"\f0933"}.mdi-tractor:before{content:"\f0892"}.mdi-tractor-variant:before{content:"\f14c4"}.mdi-trademark:before{content:"\f0a78"}.mdi-traffic-cone:before{content:"\f137c"}.mdi-traffic-light:before{content:"\f052b"}.mdi-traffic-light-outline:before{content:"\f182a"}.mdi-train:before{content:"\f052c"}.mdi-train-bus:before{content:"\f1cc7"}.mdi-train-car:before{content:"\f0bd8"}.mdi-train-car-autorack:before{content:"\f1b2d"}.mdi-train-car-box:before{content:"\f1b2e"}.mdi-train-car-box-full:before{content:"\f1b2f"}.mdi-train-car-box-open:before{content:"\f1b30"}.mdi-train-car-caboose:before{content:"\f1b31"}.mdi-train-car-centerbeam:before{content:"\f1b32"}.mdi-train-car-centerbeam-full:before{content:"\f1b33"}.mdi-train-car-container:before{content:"\f1b34"}.mdi-train-car-flatbed:before{content:"\f1b35"}.mdi-train-car-flatbed-car:before{content:"\f1b36"}.mdi-train-car-flatbed-tank:before{content:"\f1b37"}.mdi-train-car-gondola:before{content:"\f1b38"}.mdi-train-car-gondola-full:before{content:"\f1b39"}.mdi-train-car-hopper:before{content:"\f1b3a"}.mdi-train-car-hopper-covered:before{content:"\f1b3b"}.mdi-train-car-hopper-full:before{content:"\f1b3c"}.mdi-train-car-intermodal:before{content:"\f1b3d"}.mdi-train-car-passenger:before{content:"\f1733"}.mdi-train-car-passenger-door:before{content:"\f1734"}.mdi-train-car-passenger-door-open:before{content:"\f1735"}.mdi-train-car-passenger-variant:before{content:"\f1736"}.mdi-train-car-tank:before{content:"\f1b3e"}.mdi-train-variant:before{content:"\f08c4"}.mdi-tram:before{content:"\f052d"}.mdi-tram-side:before{content:"\f0fe7"}.mdi-transcribe:before{content:"\f052e"}.mdi-transcribe-close:before{content:"\f052f"}.mdi-transfer:before{content:"\f1065"}.mdi-transfer-down:before{content:"\f0da1"}.mdi-transfer-left:before{content:"\f0da2"}.mdi-transfer-right:before{content:"\f0530"}.mdi-transfer-up:before{content:"\f0da3"}.mdi-transit-connection:before{content:"\f0d3c"}.mdi-transit-connection-horizontal:before{content:"\f1546"}.mdi-transit-connection-variant:before{content:"\f0d3d"}.mdi-transit-detour:before{content:"\f0f8b"}.mdi-transit-skip:before{content:"\f1515"}.mdi-transit-transfer:before{content:"\f06ae"}.mdi-transition:before{content:"\f0915"}.mdi-transition-masked:before{content:"\f0916"}.mdi-translate:before{content:"\f05ca"}.mdi-translate-off:before{content:"\f0e06"}.mdi-translate-variant:before{content:"\f1b99"}.mdi-transmission-tower:before{content:"\f0d3e"}.mdi-transmission-tower-export:before{content:"\f192c"}.mdi-transmission-tower-import:before{content:"\f192d"}.mdi-transmission-tower-off:before{content:"\f19dd"}.mdi-trash-can:before{content:"\f0a79"}.mdi-trash-can-outline:before{content:"\f0a7a"}.mdi-tray:before{content:"\f1294"}.mdi-tray-alert:before{content:"\f1295"}.mdi-tray-arrow-down:before{content:"\f0120"}.mdi-tray-arrow-up:before{content:"\f011d"}.mdi-tray-full:before{content:"\f1296"}.mdi-tray-minus:before{content:"\f1297"}.mdi-tray-plus:before{content:"\f1298"}.mdi-tray-remove:before{content:"\f1299"}.mdi-treasure-chest:before{content:"\f0726"}.mdi-treasure-chest-outline:before{content:"\f1c77"}.mdi-tree:before{content:"\f0531"}.mdi-tree-outline:before{content:"\f0e69"}.mdi-trello:before{content:"\f0532"}.mdi-trending-down:before{content:"\f0533"}.mdi-trending-neutral:before{content:"\f0534"}.mdi-trending-up:before{content:"\f0535"}.mdi-triangle:before{content:"\f0536"}.mdi-triangle-down:before{content:"\f1c56"}.mdi-triangle-down-outline:before{content:"\f1c57"}.mdi-triangle-outline:before{content:"\f0537"}.mdi-triangle-small-down:before{content:"\f1a09"}.mdi-triangle-small-up:before{content:"\f1a0a"}.mdi-triangle-wave:before{content:"\f147c"}.mdi-triforce:before{content:"\f0bd9"}.mdi-trophy:before{content:"\f0538"}.mdi-trophy-award:before{content:"\f0539"}.mdi-trophy-broken:before{content:"\f0da4"}.mdi-trophy-outline:before{content:"\f053a"}.mdi-trophy-variant:before{content:"\f053b"}.mdi-trophy-variant-outline:before{content:"\f053c"}.mdi-truck:before{content:"\f053d"}.mdi-truck-alert:before{content:"\f19de"}.mdi-truck-alert-outline:before{content:"\f19df"}.mdi-truck-cargo-container:before{content:"\f18d8"}.mdi-truck-check:before{content:"\f0cd4"}.mdi-truck-check-outline:before{content:"\f129a"}.mdi-truck-delivery:before{content:"\f053e"}.mdi-truck-delivery-outline:before{content:"\f129b"}.mdi-truck-fast:before{content:"\f0788"}.mdi-truck-fast-outline:before{content:"\f129c"}.mdi-truck-flatbed:before{content:"\f1891"}.mdi-truck-minus:before{content:"\f19ae"}.mdi-truck-minus-outline:before{content:"\f19bd"}.mdi-truck-off-road:before{content:"\f1c9e"}.mdi-truck-off-road-off:before{content:"\f1c9f"}.mdi-truck-outline:before{content:"\f129d"}.mdi-truck-plus:before{content:"\f19ad"}.mdi-truck-plus-outline:before{content:"\f19bc"}.mdi-truck-remove:before{content:"\f19af"}.mdi-truck-remove-outline:before{content:"\f19be"}.mdi-truck-snowflake:before{content:"\f19a6"}.mdi-truck-trailer:before{content:"\f0727"}.mdi-trumpet:before{content:"\f1096"}.mdi-tshirt-crew:before{content:"\f0a7b"}.mdi-tshirt-crew-outline:before{content:"\f053f"}.mdi-tshirt-v:before{content:"\f0a7c"}.mdi-tshirt-v-outline:before{content:"\f0540"}.mdi-tsunami:before{content:"\f1a81"}.mdi-tumble-dryer:before{content:"\f0917"}.mdi-tumble-dryer-alert:before{content:"\f11ba"}.mdi-tumble-dryer-off:before{content:"\f11bb"}.mdi-tune:before{content:"\f062e"}.mdi-tune-variant:before{content:"\f1542"}.mdi-tune-vertical:before{content:"\f066a"}.mdi-tune-vertical-variant:before{content:"\f1543"}.mdi-tunnel:before{content:"\f183d"}.mdi-tunnel-outline:before{content:"\f183e"}.mdi-turbine:before{content:"\f1a82"}.mdi-turkey:before{content:"\f171b"}.mdi-turnstile:before{content:"\f0cd5"}.mdi-turnstile-outline:before{content:"\f0cd6"}.mdi-turtle:before{content:"\f0cd7"}.mdi-twitch:before{content:"\f0543"}.mdi-twitter:before{content:"\f0544"}.mdi-two-factor-authentication:before{content:"\f09af"}.mdi-typewriter:before{content:"\f0f2d"}.mdi-ubisoft:before{content:"\f0bda"}.mdi-ubuntu:before{content:"\f0548"}.mdi-ufo:before{content:"\f10c4"}.mdi-ufo-outline:before{content:"\f10c5"}.mdi-ultra-high-definition:before{content:"\f07f9"}.mdi-umbraco:before{content:"\f0549"}.mdi-umbrella:before{content:"\f054a"}.mdi-umbrella-beach:before{content:"\f188a"}.mdi-umbrella-beach-outline:before{content:"\f188b"}.mdi-umbrella-closed:before{content:"\f09b0"}.mdi-umbrella-closed-outline:before{content:"\f13e2"}.mdi-umbrella-closed-variant:before{content:"\f13e1"}.mdi-umbrella-outline:before{content:"\f054b"}.mdi-undo:before{content:"\f054c"}.mdi-undo-variant:before{content:"\f054d"}.mdi-unfold-less-horizontal:before{content:"\f054e"}.mdi-unfold-less-vertical:before{content:"\f0760"}.mdi-unfold-more-horizontal:before{content:"\f054f"}.mdi-unfold-more-vertical:before{content:"\f0761"}.mdi-ungroup:before{content:"\f0550"}.mdi-unicode:before{content:"\f0ed0"}.mdi-unicorn:before{content:"\f15c2"}.mdi-unicorn-variant:before{content:"\f15c3"}.mdi-unicycle:before{content:"\f15e5"}.mdi-unity:before{content:"\f06af"}.mdi-unreal:before{content:"\f09b1"}.mdi-update:before{content:"\f06b0"}.mdi-upload:before{content:"\f0552"}.mdi-upload-lock:before{content:"\f1373"}.mdi-upload-lock-outline:before{content:"\f1374"}.mdi-upload-multiple:before{content:"\f083d"}.mdi-upload-network:before{content:"\f06f6"}.mdi-upload-network-outline:before{content:"\f0cd8"}.mdi-upload-off:before{content:"\f10c6"}.mdi-upload-off-outline:before{content:"\f10c7"}.mdi-upload-outline:before{content:"\f0e07"}.mdi-usb:before{content:"\f0553"}.mdi-usb-c-port:before{content:"\f1cbf"}.mdi-usb-flash-drive:before{content:"\f129e"}.mdi-usb-flash-drive-outline:before{content:"\f129f"}.mdi-usb-port:before{content:"\f11f0"}.mdi-vacuum:before{content:"\f19a1"}.mdi-vacuum-outline:before{content:"\f19a2"}.mdi-valve:before{content:"\f1066"}.mdi-valve-closed:before{content:"\f1067"}.mdi-valve-open:before{content:"\f1068"}.mdi-van-passenger:before{content:"\f07fa"}.mdi-van-utility:before{content:"\f07fb"}.mdi-vanish:before{content:"\f07fc"}.mdi-vanish-quarter:before{content:"\f1554"}.mdi-vanity-light:before{content:"\f11e1"}.mdi-variable:before{content:"\f0ae7"}.mdi-variable-box:before{content:"\f1111"}.mdi-vector-arrange-above:before{content:"\f0554"}.mdi-vector-arrange-below:before{content:"\f0555"}.mdi-vector-bezier:before{content:"\f0ae8"}.mdi-vector-circle:before{content:"\f0556"}.mdi-vector-circle-variant:before{content:"\f0557"}.mdi-vector-combine:before{content:"\f0558"}.mdi-vector-curve:before{content:"\f0559"}.mdi-vector-difference:before{content:"\f055a"}.mdi-vector-difference-ab:before{content:"\f055b"}.mdi-vector-difference-ba:before{content:"\f055c"}.mdi-vector-ellipse:before{content:"\f0893"}.mdi-vector-intersection:before{content:"\f055d"}.mdi-vector-line:before{content:"\f055e"}.mdi-vector-link:before{content:"\f0fe8"}.mdi-vector-point:before{content:"\f01c4"}.mdi-vector-point-edit:before{content:"\f09e8"}.mdi-vector-point-minus:before{content:"\f1b78"}.mdi-vector-point-plus:before{content:"\f1b79"}.mdi-vector-point-select:before{content:"\f055f"}.mdi-vector-polygon:before{content:"\f0560"}.mdi-vector-polygon-variant:before{content:"\f1856"}.mdi-vector-polyline:before{content:"\f0561"}.mdi-vector-polyline-edit:before{content:"\f1225"}.mdi-vector-polyline-minus:before{content:"\f1226"}.mdi-vector-polyline-plus:before{content:"\f1227"}.mdi-vector-polyline-remove:before{content:"\f1228"}.mdi-vector-radius:before{content:"\f074a"}.mdi-vector-rectangle:before{content:"\f05c6"}.mdi-vector-selection:before{content:"\f0562"}.mdi-vector-square:before{content:"\f0001"}.mdi-vector-square-close:before{content:"\f1857"}.mdi-vector-square-edit:before{content:"\f18d9"}.mdi-vector-square-minus:before{content:"\f18da"}.mdi-vector-square-open:before{content:"\f1858"}.mdi-vector-square-plus:before{content:"\f18db"}.mdi-vector-square-remove:before{content:"\f18dc"}.mdi-vector-triangle:before{content:"\f0563"}.mdi-vector-union:before{content:"\f0564"}.mdi-vhs:before{content:"\f0a1b"}.mdi-vibrate:before{content:"\f0566"}.mdi-vibrate-off:before{content:"\f0cd9"}.mdi-video:before{content:"\f0567"}.mdi-video-2d:before{content:"\f1a1c"}.mdi-video-3d:before{content:"\f07fd"}.mdi-video-3d-off:before{content:"\f13d9"}.mdi-video-3d-variant:before{content:"\f0ed1"}.mdi-video-4k-box:before{content:"\f083e"}.mdi-video-account:before{content:"\f0919"}.mdi-video-box:before{content:"\f00fd"}.mdi-video-box-off:before{content:"\f00fe"}.mdi-video-check:before{content:"\f1069"}.mdi-video-check-outline:before{content:"\f106a"}.mdi-video-high-definition:before{content:"\f152e"}.mdi-video-image:before{content:"\f091a"}.mdi-video-input-antenna:before{content:"\f083f"}.mdi-video-input-component:before{content:"\f0840"}.mdi-video-input-hdmi:before{content:"\f0841"}.mdi-video-input-scart:before{content:"\f0f8c"}.mdi-video-input-svideo:before{content:"\f0842"}.mdi-video-marker:before{content:"\f19a9"}.mdi-video-marker-outline:before{content:"\f19aa"}.mdi-video-minus:before{content:"\f09b2"}.mdi-video-minus-outline:before{content:"\f02ba"}.mdi-video-off:before{content:"\f0568"}.mdi-video-off-outline:before{content:"\f0bdb"}.mdi-video-outline:before{content:"\f0bdc"}.mdi-video-plus:before{content:"\f09b3"}.mdi-video-plus-outline:before{content:"\f01d3"}.mdi-video-stabilization:before{content:"\f091b"}.mdi-video-standard-definition:before{content:"\f1ca0"}.mdi-video-switch:before{content:"\f0569"}.mdi-video-switch-outline:before{content:"\f0790"}.mdi-video-vintage:before{content:"\f0a1c"}.mdi-video-wireless:before{content:"\f0ed2"}.mdi-video-wireless-outline:before{content:"\f0ed3"}.mdi-view-agenda:before{content:"\f056a"}.mdi-view-agenda-outline:before{content:"\f11d8"}.mdi-view-array:before{content:"\f056b"}.mdi-view-array-outline:before{content:"\f1485"}.mdi-view-carousel:before{content:"\f056c"}.mdi-view-carousel-outline:before{content:"\f1486"}.mdi-view-column:before{content:"\f056d"}.mdi-view-column-outline:before{content:"\f1487"}.mdi-view-comfy:before{content:"\f0e6a"}.mdi-view-comfy-outline:before{content:"\f1488"}.mdi-view-compact:before{content:"\f0e6b"}.mdi-view-compact-outline:before{content:"\f0e6c"}.mdi-view-dashboard:before{content:"\f056e"}.mdi-view-dashboard-edit:before{content:"\f1947"}.mdi-view-dashboard-edit-outline:before{content:"\f1948"}.mdi-view-dashboard-outline:before{content:"\f0a1d"}.mdi-view-dashboard-variant:before{content:"\f0843"}.mdi-view-dashboard-variant-outline:before{content:"\f1489"}.mdi-view-day:before{content:"\f056f"}.mdi-view-day-outline:before{content:"\f148a"}.mdi-view-gallery:before{content:"\f1888"}.mdi-view-gallery-outline:before{content:"\f1889"}.mdi-view-grid:before{content:"\f0570"}.mdi-view-grid-compact:before{content:"\f1c61"}.mdi-view-grid-outline:before{content:"\f11d9"}.mdi-view-grid-plus:before{content:"\f0f8d"}.mdi-view-grid-plus-outline:before{content:"\f11da"}.mdi-view-headline:before{content:"\f0571"}.mdi-view-list:before{content:"\f0572"}.mdi-view-list-outline:before{content:"\f148b"}.mdi-view-module:before{content:"\f0573"}.mdi-view-module-outline:before{content:"\f148c"}.mdi-view-parallel:before{content:"\f0728"}.mdi-view-parallel-outline:before{content:"\f148d"}.mdi-view-quilt:before{content:"\f0574"}.mdi-view-quilt-outline:before{content:"\f148e"}.mdi-view-sequential:before{content:"\f0729"}.mdi-view-sequential-outline:before{content:"\f148f"}.mdi-view-split-horizontal:before{content:"\f0bcb"}.mdi-view-split-vertical:before{content:"\f0bcc"}.mdi-view-stream:before{content:"\f0575"}.mdi-view-stream-outline:before{content:"\f1490"}.mdi-view-week:before{content:"\f0576"}.mdi-view-week-outline:before{content:"\f1491"}.mdi-vimeo:before{content:"\f0577"}.mdi-violin:before{content:"\f060f"}.mdi-virtual-reality:before{content:"\f0894"}.mdi-virus:before{content:"\f13b6"}.mdi-virus-off:before{content:"\f18e1"}.mdi-virus-off-outline:before{content:"\f18e2"}.mdi-virus-outline:before{content:"\f13b7"}.mdi-vlc:before{content:"\f057c"}.mdi-voicemail:before{content:"\f057d"}.mdi-volcano:before{content:"\f1a83"}.mdi-volcano-outline:before{content:"\f1a84"}.mdi-volleyball:before{content:"\f09b4"}.mdi-volume-equal:before{content:"\f1b10"}.mdi-volume-high:before{content:"\f057e"}.mdi-volume-low:before{content:"\f057f"}.mdi-volume-medium:before{content:"\f0580"}.mdi-volume-minus:before{content:"\f075e"}.mdi-volume-mute:before{content:"\f075f"}.mdi-volume-off:before{content:"\f0581"}.mdi-volume-plus:before{content:"\f075d"}.mdi-volume-source:before{content:"\f1120"}.mdi-volume-variant-off:before{content:"\f0e08"}.mdi-volume-vibrate:before{content:"\f1121"}.mdi-vote:before{content:"\f0a1f"}.mdi-vote-outline:before{content:"\f0a20"}.mdi-vpn:before{content:"\f0582"}.mdi-vuejs:before{content:"\f0844"}.mdi-vuetify:before{content:"\f0e6d"}.mdi-walk:before{content:"\f0583"}.mdi-wall:before{content:"\f07fe"}.mdi-wall-fire:before{content:"\f1a11"}.mdi-wall-sconce:before{content:"\f091c"}.mdi-wall-sconce-flat:before{content:"\f091d"}.mdi-wall-sconce-flat-outline:before{content:"\f17c9"}.mdi-wall-sconce-flat-variant:before{content:"\f041c"}.mdi-wall-sconce-flat-variant-outline:before{content:"\f17ca"}.mdi-wall-sconce-outline:before{content:"\f17cb"}.mdi-wall-sconce-round:before{content:"\f0748"}.mdi-wall-sconce-round-outline:before{content:"\f17cc"}.mdi-wall-sconce-round-variant:before{content:"\f091e"}.mdi-wall-sconce-round-variant-outline:before{content:"\f17cd"}.mdi-wallet:before{content:"\f0584"}.mdi-wallet-bifold:before{content:"\f1c58"}.mdi-wallet-bifold-outline:before{content:"\f1c59"}.mdi-wallet-giftcard:before{content:"\f0585"}.mdi-wallet-membership:before{content:"\f0586"}.mdi-wallet-outline:before{content:"\f0bdd"}.mdi-wallet-plus:before{content:"\f0f8e"}.mdi-wallet-plus-outline:before{content:"\f0f8f"}.mdi-wallet-travel:before{content:"\f0587"}.mdi-wallpaper:before{content:"\f0e09"}.mdi-wan:before{content:"\f0588"}.mdi-wardrobe:before{content:"\f0f90"}.mdi-wardrobe-outline:before{content:"\f0f91"}.mdi-warehouse:before{content:"\f0f81"}.mdi-washing-machine:before{content:"\f072a"}.mdi-washing-machine-alert:before{content:"\f11bc"}.mdi-washing-machine-off:before{content:"\f11bd"}.mdi-watch:before{content:"\f0589"}.mdi-watch-export:before{content:"\f058a"}.mdi-watch-export-variant:before{content:"\f0895"}.mdi-watch-import:before{content:"\f058b"}.mdi-watch-import-variant:before{content:"\f0896"}.mdi-watch-variant:before{content:"\f0897"}.mdi-watch-vibrate:before{content:"\f06b1"}.mdi-watch-vibrate-off:before{content:"\f0cda"}.mdi-water:before{content:"\f058c"}.mdi-water-alert:before{content:"\f1502"}.mdi-water-alert-outline:before{content:"\f1503"}.mdi-water-boiler:before{content:"\f0f92"}.mdi-water-boiler-alert:before{content:"\f11b3"}.mdi-water-boiler-auto:before{content:"\f1b98"}.mdi-water-boiler-off:before{content:"\f11b4"}.mdi-water-check:before{content:"\f1504"}.mdi-water-check-outline:before{content:"\f1505"}.mdi-water-circle:before{content:"\f1806"}.mdi-water-minus:before{content:"\f1506"}.mdi-water-minus-outline:before{content:"\f1507"}.mdi-water-off:before{content:"\f058d"}.mdi-water-off-outline:before{content:"\f1508"}.mdi-water-opacity:before{content:"\f1855"}.mdi-water-outline:before{content:"\f0e0a"}.mdi-water-percent:before{content:"\f058e"}.mdi-water-percent-alert:before{content:"\f1509"}.mdi-water-plus:before{content:"\f150a"}.mdi-water-plus-outline:before{content:"\f150b"}.mdi-water-polo:before{content:"\f12a0"}.mdi-water-pump:before{content:"\f058f"}.mdi-water-pump-off:before{content:"\f0f93"}.mdi-water-remove:before{content:"\f150c"}.mdi-water-remove-outline:before{content:"\f150d"}.mdi-water-sync:before{content:"\f17c6"}.mdi-water-thermometer:before{content:"\f1a85"}.mdi-water-thermometer-outline:before{content:"\f1a86"}.mdi-water-well:before{content:"\f106b"}.mdi-water-well-outline:before{content:"\f106c"}.mdi-waterfall:before{content:"\f1849"}.mdi-watering-can:before{content:"\f1481"}.mdi-watering-can-outline:before{content:"\f1482"}.mdi-watermark:before{content:"\f0612"}.mdi-wave:before{content:"\f0f2e"}.mdi-wave-arrow-down:before{content:"\f1cb0"}.mdi-wave-arrow-up:before{content:"\f1cb1"}.mdi-wave-undercurrent:before{content:"\f1cc0"}.mdi-waveform:before{content:"\f147d"}.mdi-waves:before{content:"\f078d"}.mdi-waves-arrow-left:before{content:"\f1859"}.mdi-waves-arrow-right:before{content:"\f185a"}.mdi-waves-arrow-up:before{content:"\f185b"}.mdi-waze:before{content:"\f0bde"}.mdi-weather-cloudy:before{content:"\f0590"}.mdi-weather-cloudy-alert:before{content:"\f0f2f"}.mdi-weather-cloudy-arrow-right:before{content:"\f0e6e"}.mdi-weather-cloudy-clock:before{content:"\f18f6"}.mdi-weather-dust:before{content:"\f1b5a"}.mdi-weather-fog:before{content:"\f0591"}.mdi-weather-hail:before{content:"\f0592"}.mdi-weather-hazy:before{content:"\f0f30"}.mdi-weather-hurricane:before{content:"\f0898"}.mdi-weather-hurricane-outline:before{content:"\f1c78"}.mdi-weather-lightning:before{content:"\f0593"}.mdi-weather-lightning-rainy:before{content:"\f067e"}.mdi-weather-night:before{content:"\f0594"}.mdi-weather-night-partly-cloudy:before{content:"\f0f31"}.mdi-weather-partly-cloudy:before{content:"\f0595"}.mdi-weather-partly-lightning:before{content:"\f0f32"}.mdi-weather-partly-rainy:before{content:"\f0f33"}.mdi-weather-partly-snowy:before{content:"\f0f34"}.mdi-weather-partly-snowy-rainy:before{content:"\f0f35"}.mdi-weather-pouring:before{content:"\f0596"}.mdi-weather-rainy:before{content:"\f0597"}.mdi-weather-snowy:before{content:"\f0598"}.mdi-weather-snowy-heavy:before{content:"\f0f36"}.mdi-weather-snowy-rainy:before{content:"\f067f"}.mdi-weather-sunny:before{content:"\f0599"}.mdi-weather-sunny-alert:before{content:"\f0f37"}.mdi-weather-sunny-off:before{content:"\f14e4"}.mdi-weather-sunset:before{content:"\f059a"}.mdi-weather-sunset-down:before{content:"\f059b"}.mdi-weather-sunset-up:before{content:"\f059c"}.mdi-weather-tornado:before{content:"\f0f38"}.mdi-weather-windy:before{content:"\f059d"}.mdi-weather-windy-variant:before{content:"\f059e"}.mdi-web:before{content:"\f059f"}.mdi-web-box:before{content:"\f0f94"}.mdi-web-cancel:before{content:"\f1790"}.mdi-web-check:before{content:"\f0789"}.mdi-web-clock:before{content:"\f124a"}.mdi-web-minus:before{content:"\f10a0"}.mdi-web-off:before{content:"\f0a8e"}.mdi-web-plus:before{content:"\f0033"}.mdi-web-refresh:before{content:"\f1791"}.mdi-web-remove:before{content:"\f0551"}.mdi-web-sync:before{content:"\f1792"}.mdi-webcam:before{content:"\f05a0"}.mdi-webcam-off:before{content:"\f1737"}.mdi-webhook:before{content:"\f062f"}.mdi-webpack:before{content:"\f072b"}.mdi-webrtc:before{content:"\f1248"}.mdi-wechat:before{content:"\f0611"}.mdi-weight:before{content:"\f05a1"}.mdi-weight-gram:before{content:"\f0d3f"}.mdi-weight-kilogram:before{content:"\f05a2"}.mdi-weight-lifter:before{content:"\f115d"}.mdi-weight-pound:before{content:"\f09b5"}.mdi-whatsapp:before{content:"\f05a3"}.mdi-wheel-barrow:before{content:"\f14f2"}.mdi-wheelchair:before{content:"\f1a87"}.mdi-wheelchair-accessibility:before{content:"\f05a4"}.mdi-whistle:before{content:"\f09b6"}.mdi-whistle-outline:before{content:"\f12bc"}.mdi-white-balance-auto:before{content:"\f05a5"}.mdi-white-balance-incandescent:before{content:"\f05a6"}.mdi-white-balance-iridescent:before{content:"\f05a7"}.mdi-white-balance-sunny:before{content:"\f05a8"}.mdi-widgets:before{content:"\f072c"}.mdi-widgets-outline:before{content:"\f1355"}.mdi-wifi:before{content:"\f05a9"}.mdi-wifi-alert:before{content:"\f16b5"}.mdi-wifi-arrow-down:before{content:"\f16b6"}.mdi-wifi-arrow-left:before{content:"\f16b7"}.mdi-wifi-arrow-left-right:before{content:"\f16b8"}.mdi-wifi-arrow-right:before{content:"\f16b9"}.mdi-wifi-arrow-up:before{content:"\f16ba"}.mdi-wifi-arrow-up-down:before{content:"\f16bb"}.mdi-wifi-cancel:before{content:"\f16bc"}.mdi-wifi-check:before{content:"\f16bd"}.mdi-wifi-cog:before{content:"\f16be"}.mdi-wifi-lock:before{content:"\f16bf"}.mdi-wifi-lock-open:before{content:"\f16c0"}.mdi-wifi-marker:before{content:"\f16c1"}.mdi-wifi-minus:before{content:"\f16c2"}.mdi-wifi-off:before{content:"\f05aa"}.mdi-wifi-plus:before{content:"\f16c3"}.mdi-wifi-refresh:before{content:"\f16c4"}.mdi-wifi-remove:before{content:"\f16c5"}.mdi-wifi-settings:before{content:"\f16c6"}.mdi-wifi-star:before{content:"\f0e0b"}.mdi-wifi-strength-1:before{content:"\f091f"}.mdi-wifi-strength-1-alert:before{content:"\f0920"}.mdi-wifi-strength-1-lock:before{content:"\f0921"}.mdi-wifi-strength-1-lock-open:before{content:"\f16cb"}.mdi-wifi-strength-2:before{content:"\f0922"}.mdi-wifi-strength-2-alert:before{content:"\f0923"}.mdi-wifi-strength-2-lock:before{content:"\f0924"}.mdi-wifi-strength-2-lock-open:before{content:"\f16cc"}.mdi-wifi-strength-3:before{content:"\f0925"}.mdi-wifi-strength-3-alert:before{content:"\f0926"}.mdi-wifi-strength-3-lock:before{content:"\f0927"}.mdi-wifi-strength-3-lock-open:before{content:"\f16cd"}.mdi-wifi-strength-4:before{content:"\f0928"}.mdi-wifi-strength-4-alert:before{content:"\f0929"}.mdi-wifi-strength-4-lock:before{content:"\f092a"}.mdi-wifi-strength-4-lock-open:before{content:"\f16ce"}.mdi-wifi-strength-alert-outline:before{content:"\f092b"}.mdi-wifi-strength-lock-open-outline:before{content:"\f16cf"}.mdi-wifi-strength-lock-outline:before{content:"\f092c"}.mdi-wifi-strength-off:before{content:"\f092d"}.mdi-wifi-strength-off-outline:before{content:"\f092e"}.mdi-wifi-strength-outline:before{content:"\f092f"}.mdi-wifi-sync:before{content:"\f16c7"}.mdi-wikipedia:before{content:"\f05ac"}.mdi-wind-power:before{content:"\f1a88"}.mdi-wind-power-outline:before{content:"\f1a89"}.mdi-wind-turbine:before{content:"\f0da5"}.mdi-wind-turbine-alert:before{content:"\f19ab"}.mdi-wind-turbine-check:before{content:"\f19ac"}.mdi-window-close:before{content:"\f05ad"}.mdi-window-closed:before{content:"\f05ae"}.mdi-window-closed-variant:before{content:"\f11db"}.mdi-window-maximize:before{content:"\f05af"}.mdi-window-minimize:before{content:"\f05b0"}.mdi-window-open:before{content:"\f05b1"}.mdi-window-open-variant:before{content:"\f11dc"}.mdi-window-restore:before{content:"\f05b2"}.mdi-window-shutter:before{content:"\f111c"}.mdi-window-shutter-alert:before{content:"\f111d"}.mdi-window-shutter-auto:before{content:"\f1ba3"}.mdi-window-shutter-cog:before{content:"\f1a8a"}.mdi-window-shutter-open:before{content:"\f111e"}.mdi-window-shutter-settings:before{content:"\f1a8b"}.mdi-windsock:before{content:"\f15fa"}.mdi-wiper:before{content:"\f0ae9"}.mdi-wiper-wash:before{content:"\f0da6"}.mdi-wiper-wash-alert:before{content:"\f18df"}.mdi-wizard-hat:before{content:"\f1477"}.mdi-wordpress:before{content:"\f05b4"}.mdi-wrap:before{content:"\f05b6"}.mdi-wrap-disabled:before{content:"\f0bdf"}.mdi-wrench:before{content:"\f05b7"}.mdi-wrench-check:before{content:"\f1b8f"}.mdi-wrench-check-outline:before{content:"\f1b90"}.mdi-wrench-clock:before{content:"\f19a3"}.mdi-wrench-clock-outline:before{content:"\f1b93"}.mdi-wrench-cog:before{content:"\f1b91"}.mdi-wrench-cog-outline:before{content:"\f1b92"}.mdi-wrench-outline:before{content:"\f0be0"}.mdi-xamarin:before{content:"\f0845"}.mdi-xml:before{content:"\f05c0"}.mdi-xmpp:before{content:"\f07ff"}.mdi-yahoo:before{content:"\f0b4f"}.mdi-yeast:before{content:"\f05c1"}.mdi-yin-yang:before{content:"\f0680"}.mdi-yoga:before{content:"\f117c"}.mdi-youtube:before{content:"\f05c3"}.mdi-youtube-gaming:before{content:"\f0848"}.mdi-youtube-studio:before{content:"\f0847"}.mdi-youtube-subscription:before{content:"\f0d40"}.mdi-youtube-tv:before{content:"\f0448"}.mdi-yurt:before{content:"\f1516"}.mdi-z-wave:before{content:"\f0aea"}.mdi-zend:before{content:"\f0aeb"}.mdi-zigbee:before{content:"\f0d41"}.mdi-zip-box:before{content:"\f05c4"}.mdi-zip-box-outline:before{content:"\f0ffa"}.mdi-zip-disk:before{content:"\f0a23"}.mdi-zodiac-aquarius:before{content:"\f0a7d"}.mdi-zodiac-aries:before{content:"\f0a7e"}.mdi-zodiac-cancer:before{content:"\f0a7f"}.mdi-zodiac-capricorn:before{content:"\f0a80"}.mdi-zodiac-gemini:before{content:"\f0a81"}.mdi-zodiac-leo:before{content:"\f0a82"}.mdi-zodiac-libra:before{content:"\f0a83"}.mdi-zodiac-pisces:before{content:"\f0a84"}.mdi-zodiac-sagittarius:before{content:"\f0a85"}.mdi-zodiac-scorpio:before{content:"\f0a86"}.mdi-zodiac-taurus:before{content:"\f0a87"}.mdi-zodiac-virgo:before{content:"\f0a88"}.mdi-blank:before{content:"\f68c";visibility:hidden}.mdi-18px.mdi-set,.mdi-18px.mdi:before{font-size:18px}.mdi-24px.mdi-set,.mdi-24px.mdi:before{font-size:24px}.mdi-36px.mdi-set,.mdi-36px.mdi:before{font-size:36px}.mdi-48px.mdi-set,.mdi-48px.mdi:before{font-size:48px}.mdi-dark:before{color:#0000008a}.mdi-dark.mdi-inactive:before{color:#00000042}.mdi-light:before{color:#fff}.mdi-light.mdi-inactive:before{color:#ffffff4d}.mdi-rotate-45:before{transform:rotate(45deg)}.mdi-rotate-90:before{transform:rotate(90deg)}.mdi-rotate-135:before{transform:rotate(135deg)}.mdi-rotate-180:before{transform:rotate(180deg)}.mdi-rotate-225:before{transform:rotate(225deg)}.mdi-rotate-270:before{transform:rotate(270deg)}.mdi-rotate-315:before{transform:rotate(315deg)}.mdi-flip-h:before{transform:scaleX(-1);filter:FlipH;-ms-filter:"FlipH"}.mdi-flip-v:before{transform:scaleY(-1);filter:FlipV;-ms-filter:"FlipV"}.mdi-spin:before{animation:mdi-spin 2s infinite linear}@keyframes mdi-spin{0%{transform:rotate(0)}to{transform:rotate(359deg)}}@keyframes v-shake{59%{margin-left:0}60%,80%{margin-left:2px}70%,90%{margin-left:-2px}}.bg-black{background-color:#000!important;color:#fff!important}.bg-white{background-color:#fff!important;color:#000!important}.bg-transparent{background-color:transparent!important;color:currentColor!important}.bg-red{background-color:#f44336!important;color:#fff!important}.bg-red-lighten-5{background-color:#ffebee!important;color:#000!important}.bg-red-lighten-4{background-color:#ffcdd2!important;color:#000!important}.bg-red-lighten-3{background-color:#ef9a9a!important;color:#000!important}.bg-red-lighten-2{background-color:#e57373!important;color:#fff!important}.bg-red-lighten-1{background-color:#ef5350!important;color:#fff!important}.bg-red-darken-1{background-color:#e53935!important;color:#fff!important}.bg-red-darken-2{background-color:#d32f2f!important;color:#fff!important}.bg-red-darken-3{background-color:#c62828!important;color:#fff!important}.bg-red-darken-4{background-color:#b71c1c!important;color:#fff!important}.bg-red-accent-1{background-color:#ff8a80!important;color:#000!important}.bg-red-accent-2{background-color:#ff5252!important;color:#fff!important}.bg-red-accent-3{background-color:#ff1744!important;color:#fff!important}.bg-red-accent-4{background-color:#d50000!important;color:#fff!important}.bg-pink{background-color:#e91e63!important;color:#fff!important}.bg-pink-lighten-5{background-color:#fce4ec!important;color:#000!important}.bg-pink-lighten-4{background-color:#f8bbd0!important;color:#000!important}.bg-pink-lighten-3{background-color:#f48fb1!important;color:#000!important}.bg-pink-lighten-2{background-color:#f06292!important;color:#fff!important}.bg-pink-lighten-1{background-color:#ec407a!important;color:#fff!important}.bg-pink-darken-1{background-color:#d81b60!important;color:#fff!important}.bg-pink-darken-2{background-color:#c2185b!important;color:#fff!important}.bg-pink-darken-3{background-color:#ad1457!important;color:#fff!important}.bg-pink-darken-4{background-color:#880e4f!important;color:#fff!important}.bg-pink-accent-1{background-color:#ff80ab!important;color:#fff!important}.bg-pink-accent-2{background-color:#ff4081!important;color:#fff!important}.bg-pink-accent-3{background-color:#f50057!important;color:#fff!important}.bg-pink-accent-4{background-color:#c51162!important;color:#fff!important}.bg-purple{background-color:#9c27b0!important;color:#fff!important}.bg-purple-lighten-5{background-color:#f3e5f5!important;color:#000!important}.bg-purple-lighten-4{background-color:#e1bee7!important;color:#000!important}.bg-purple-lighten-3{background-color:#ce93d8!important;color:#fff!important}.bg-purple-lighten-2{background-color:#ba68c8!important;color:#fff!important}.bg-purple-lighten-1{background-color:#ab47bc!important;color:#fff!important}.bg-purple-darken-1{background-color:#8e24aa!important;color:#fff!important}.bg-purple-darken-2{background-color:#7b1fa2!important;color:#fff!important}.bg-purple-darken-3{background-color:#6a1b9a!important;color:#fff!important}.bg-purple-darken-4{background-color:#4a148c!important;color:#fff!important}.bg-purple-accent-1{background-color:#ea80fc!important;color:#fff!important}.bg-purple-accent-2{background-color:#e040fb!important;color:#fff!important}.bg-purple-accent-3{background-color:#d500f9!important;color:#fff!important}.bg-purple-accent-4{background-color:#a0f!important;color:#fff!important}.bg-deep-purple{background-color:#673ab7!important;color:#fff!important}.bg-deep-purple-lighten-5{background-color:#ede7f6!important;color:#000!important}.bg-deep-purple-lighten-4{background-color:#d1c4e9!important;color:#000!important}.bg-deep-purple-lighten-3{background-color:#b39ddb!important;color:#fff!important}.bg-deep-purple-lighten-2{background-color:#9575cd!important;color:#fff!important}.bg-deep-purple-lighten-1{background-color:#7e57c2!important;color:#fff!important}.bg-deep-purple-darken-1{background-color:#5e35b1!important;color:#fff!important}.bg-deep-purple-darken-2{background-color:#512da8!important;color:#fff!important}.bg-deep-purple-darken-3{background-color:#4527a0!important;color:#fff!important}.bg-deep-purple-darken-4{background-color:#311b92!important;color:#fff!important}.bg-deep-purple-accent-1{background-color:#b388ff!important;color:#fff!important}.bg-deep-purple-accent-2{background-color:#7c4dff!important;color:#fff!important}.bg-deep-purple-accent-3{background-color:#651fff!important;color:#fff!important}.bg-deep-purple-accent-4{background-color:#6200ea!important;color:#fff!important}.bg-indigo{background-color:#3f51b5!important;color:#fff!important}.bg-indigo-lighten-5{background-color:#e8eaf6!important;color:#000!important}.bg-indigo-lighten-4{background-color:#c5cae9!important;color:#000!important}.bg-indigo-lighten-3{background-color:#9fa8da!important;color:#fff!important}.bg-indigo-lighten-2{background-color:#7986cb!important;color:#fff!important}.bg-indigo-lighten-1{background-color:#5c6bc0!important;color:#fff!important}.bg-indigo-darken-1{background-color:#3949ab!important;color:#fff!important}.bg-indigo-darken-2{background-color:#303f9f!important;color:#fff!important}.bg-indigo-darken-3{background-color:#283593!important;color:#fff!important}.bg-indigo-darken-4{background-color:#1a237e!important;color:#fff!important}.bg-indigo-accent-1{background-color:#8c9eff!important;color:#fff!important}.bg-indigo-accent-2{background-color:#536dfe!important;color:#fff!important}.bg-indigo-accent-3{background-color:#3d5afe!important;color:#fff!important}.bg-indigo-accent-4{background-color:#304ffe!important;color:#fff!important}.bg-blue{background-color:#2196f3!important;color:#fff!important}.bg-blue-lighten-5{background-color:#e3f2fd!important;color:#000!important}.bg-blue-lighten-4{background-color:#bbdefb!important;color:#000!important}.bg-blue-lighten-3{background-color:#90caf9!important;color:#000!important}.bg-blue-lighten-2{background-color:#64b5f6!important;color:#000!important}.bg-blue-lighten-1{background-color:#42a5f5!important;color:#fff!important}.bg-blue-darken-1{background-color:#1e88e5!important;color:#fff!important}.bg-blue-darken-2{background-color:#1976d2!important;color:#fff!important}.bg-blue-darken-3{background-color:#1565c0!important;color:#fff!important}.bg-blue-darken-4{background-color:#0d47a1!important;color:#fff!important}.bg-blue-accent-1{background-color:#82b1ff!important;color:#000!important}.bg-blue-accent-2{background-color:#448aff!important;color:#fff!important}.bg-blue-accent-3{background-color:#2979ff!important;color:#fff!important}.bg-blue-accent-4{background-color:#2962ff!important;color:#fff!important}.bg-light-blue{background-color:#03a9f4!important;color:#fff!important}.bg-light-blue-lighten-5{background-color:#e1f5fe!important;color:#000!important}.bg-light-blue-lighten-4{background-color:#b3e5fc!important;color:#000!important}.bg-light-blue-lighten-3{background-color:#81d4fa!important;color:#000!important}.bg-light-blue-lighten-2{background-color:#4fc3f7!important;color:#000!important}.bg-light-blue-lighten-1{background-color:#29b6f6!important;color:#000!important}.bg-light-blue-darken-1{background-color:#039be5!important;color:#fff!important}.bg-light-blue-darken-2{background-color:#0288d1!important;color:#fff!important}.bg-light-blue-darken-3{background-color:#0277bd!important;color:#fff!important}.bg-light-blue-darken-4{background-color:#01579b!important;color:#fff!important}.bg-light-blue-accent-1{background-color:#80d8ff!important;color:#000!important}.bg-light-blue-accent-2{background-color:#40c4ff!important;color:#000!important}.bg-light-blue-accent-3{background-color:#00b0ff!important;color:#fff!important}.bg-light-blue-accent-4{background-color:#0091ea!important;color:#fff!important}.bg-cyan{background-color:#00bcd4!important;color:#000!important}.bg-cyan-lighten-5{background-color:#e0f7fa!important;color:#000!important}.bg-cyan-lighten-4{background-color:#b2ebf2!important;color:#000!important}.bg-cyan-lighten-3{background-color:#80deea!important;color:#000!important}.bg-cyan-lighten-2{background-color:#4dd0e1!important;color:#000!important}.bg-cyan-lighten-1{background-color:#26c6da!important;color:#000!important}.bg-cyan-darken-1{background-color:#00acc1!important;color:#fff!important}.bg-cyan-darken-2{background-color:#0097a7!important;color:#fff!important}.bg-cyan-darken-3{background-color:#00838f!important;color:#fff!important}.bg-cyan-darken-4{background-color:#006064!important;color:#fff!important}.bg-cyan-accent-1{background-color:#84ffff!important;color:#000!important}.bg-cyan-accent-2{background-color:#18ffff!important;color:#000!important}.bg-cyan-accent-3{background-color:#00e5ff!important;color:#000!important}.bg-cyan-accent-4{background-color:#00b8d4!important;color:#fff!important}.bg-teal{background-color:#009688!important;color:#fff!important}.bg-teal-lighten-5{background-color:#e0f2f1!important;color:#000!important}.bg-teal-lighten-4{background-color:#b2dfdb!important;color:#000!important}.bg-teal-lighten-3{background-color:#80cbc4!important;color:#000!important}.bg-teal-lighten-2{background-color:#4db6ac!important;color:#fff!important}.bg-teal-lighten-1{background-color:#26a69a!important;color:#fff!important}.bg-teal-darken-1{background-color:#00897b!important;color:#fff!important}.bg-teal-darken-2{background-color:#00796b!important;color:#fff!important}.bg-teal-darken-3{background-color:#00695c!important;color:#fff!important}.bg-teal-darken-4{background-color:#004d40!important;color:#fff!important}.bg-teal-accent-1{background-color:#a7ffeb!important;color:#000!important}.bg-teal-accent-2{background-color:#64ffda!important;color:#000!important}.bg-teal-accent-3{background-color:#1de9b6!important;color:#000!important}.bg-teal-accent-4{background-color:#00bfa5!important;color:#fff!important}.bg-green{background-color:#4caf50!important;color:#fff!important}.bg-green-lighten-5{background-color:#e8f5e9!important;color:#000!important}.bg-green-lighten-4{background-color:#c8e6c9!important;color:#000!important}.bg-green-lighten-3{background-color:#a5d6a7!important;color:#000!important}.bg-green-lighten-2{background-color:#81c784!important;color:#000!important}.bg-green-lighten-1{background-color:#66bb6a!important;color:#fff!important}.bg-green-darken-1{background-color:#43a047!important;color:#fff!important}.bg-green-darken-2{background-color:#388e3c!important;color:#fff!important}.bg-green-darken-3{background-color:#2e7d32!important;color:#fff!important}.bg-green-darken-4{background-color:#1b5e20!important;color:#fff!important}.bg-green-accent-1{background-color:#b9f6ca!important;color:#000!important}.bg-green-accent-2{background-color:#69f0ae!important;color:#000!important}.bg-green-accent-3{background-color:#00e676!important;color:#000!important}.bg-green-accent-4{background-color:#00c853!important;color:#000!important}.bg-light-green{background-color:#8bc34a!important;color:#000!important}.bg-light-green-lighten-5{background-color:#f1f8e9!important;color:#000!important}.bg-light-green-lighten-4{background-color:#dcedc8!important;color:#000!important}.bg-light-green-lighten-3{background-color:#c5e1a5!important;color:#000!important}.bg-light-green-lighten-2{background-color:#aed581!important;color:#000!important}.bg-light-green-lighten-1{background-color:#9ccc65!important;color:#000!important}.bg-light-green-darken-1{background-color:#7cb342!important;color:#fff!important}.bg-light-green-darken-2{background-color:#689f38!important;color:#fff!important}.bg-light-green-darken-3{background-color:#558b2f!important;color:#fff!important}.bg-light-green-darken-4{background-color:#33691e!important;color:#fff!important}.bg-light-green-accent-1{background-color:#ccff90!important;color:#000!important}.bg-light-green-accent-2{background-color:#b2ff59!important;color:#000!important}.bg-light-green-accent-3{background-color:#76ff03!important;color:#000!important}.bg-light-green-accent-4{background-color:#64dd17!important;color:#000!important}.bg-lime{background-color:#cddc39!important;color:#000!important}.bg-lime-lighten-5{background-color:#f9fbe7!important;color:#000!important}.bg-lime-lighten-4{background-color:#f0f4c3!important;color:#000!important}.bg-lime-lighten-3{background-color:#e6ee9c!important;color:#000!important}.bg-lime-lighten-2{background-color:#dce775!important;color:#000!important}.bg-lime-lighten-1{background-color:#d4e157!important;color:#000!important}.bg-lime-darken-1{background-color:#c0ca33!important;color:#000!important}.bg-lime-darken-2{background-color:#afb42b!important;color:#000!important}.bg-lime-darken-3{background-color:#9e9d24!important;color:#fff!important}.bg-lime-darken-4{background-color:#827717!important;color:#fff!important}.bg-lime-accent-1{background-color:#f4ff81!important;color:#000!important}.bg-lime-accent-2{background-color:#eeff41!important;color:#000!important}.bg-lime-accent-3{background-color:#c6ff00!important;color:#000!important}.bg-lime-accent-4{background-color:#aeea00!important;color:#000!important}.bg-yellow{background-color:#ffeb3b!important;color:#000!important}.bg-yellow-lighten-5{background-color:#fffde7!important;color:#000!important}.bg-yellow-lighten-4{background-color:#fff9c4!important;color:#000!important}.bg-yellow-lighten-3{background-color:#fff59d!important;color:#000!important}.bg-yellow-lighten-2{background-color:#fff176!important;color:#000!important}.bg-yellow-lighten-1{background-color:#ffee58!important;color:#000!important}.bg-yellow-darken-1{background-color:#fdd835!important;color:#000!important}.bg-yellow-darken-2{background-color:#fbc02d!important;color:#000!important}.bg-yellow-darken-3{background-color:#f9a825!important;color:#000!important}.bg-yellow-darken-4{background-color:#f57f17!important;color:#fff!important}.bg-yellow-accent-1{background-color:#ffff8d!important;color:#000!important}.bg-yellow-accent-2{background-color:#ff0!important;color:#000!important}.bg-yellow-accent-3{background-color:#ffea00!important;color:#000!important}.bg-yellow-accent-4{background-color:#ffd600!important;color:#000!important}.bg-amber{background-color:#ffc107!important;color:#000!important}.bg-amber-lighten-5{background-color:#fff8e1!important;color:#000!important}.bg-amber-lighten-4{background-color:#ffecb3!important;color:#000!important}.bg-amber-lighten-3{background-color:#ffe082!important;color:#000!important}.bg-amber-lighten-2{background-color:#ffd54f!important;color:#000!important}.bg-amber-lighten-1{background-color:#ffca28!important;color:#000!important}.bg-amber-darken-1{background-color:#ffb300!important;color:#000!important}.bg-amber-darken-2{background-color:#ffa000!important;color:#000!important}.bg-amber-darken-3{background-color:#ff8f00!important;color:#000!important}.bg-amber-darken-4{background-color:#ff6f00!important;color:#fff!important}.bg-amber-accent-1{background-color:#ffe57f!important;color:#000!important}.bg-amber-accent-2{background-color:#ffd740!important;color:#000!important}.bg-amber-accent-3{background-color:#ffc400!important;color:#000!important}.bg-amber-accent-4{background-color:#ffab00!important;color:#000!important}.bg-orange{background-color:#ff9800!important;color:#000!important}.bg-orange-lighten-5{background-color:#fff3e0!important;color:#000!important}.bg-orange-lighten-4{background-color:#ffe0b2!important;color:#000!important}.bg-orange-lighten-3{background-color:#ffcc80!important;color:#000!important}.bg-orange-lighten-2{background-color:#ffb74d!important;color:#000!important}.bg-orange-lighten-1{background-color:#ffa726!important;color:#000!important}.bg-orange-darken-1{background-color:#fb8c00!important;color:#fff!important}.bg-orange-darken-2{background-color:#f57c00!important;color:#fff!important}.bg-orange-darken-3{background-color:#ef6c00!important;color:#fff!important}.bg-orange-darken-4{background-color:#e65100!important;color:#fff!important}.bg-orange-accent-1{background-color:#ffd180!important;color:#000!important}.bg-orange-accent-2{background-color:#ffab40!important;color:#000!important}.bg-orange-accent-3{background-color:#ff9100!important;color:#000!important}.bg-orange-accent-4{background-color:#ff6d00!important;color:#fff!important}.bg-deep-orange{background-color:#ff5722!important;color:#fff!important}.bg-deep-orange-lighten-5{background-color:#fbe9e7!important;color:#000!important}.bg-deep-orange-lighten-4{background-color:#ffccbc!important;color:#000!important}.bg-deep-orange-lighten-3{background-color:#ffab91!important;color:#000!important}.bg-deep-orange-lighten-2{background-color:#ff8a65!important;color:#000!important}.bg-deep-orange-lighten-1{background-color:#ff7043!important;color:#fff!important}.bg-deep-orange-darken-1{background-color:#f4511e!important;color:#fff!important}.bg-deep-orange-darken-2{background-color:#e64a19!important;color:#fff!important}.bg-deep-orange-darken-3{background-color:#d84315!important;color:#fff!important}.bg-deep-orange-darken-4{background-color:#bf360c!important;color:#fff!important}.bg-deep-orange-accent-1{background-color:#ff9e80!important;color:#000!important}.bg-deep-orange-accent-2{background-color:#ff6e40!important;color:#fff!important}.bg-deep-orange-accent-3{background-color:#ff3d00!important;color:#fff!important}.bg-deep-orange-accent-4{background-color:#dd2c00!important;color:#fff!important}.bg-brown{background-color:#795548!important;color:#fff!important}.bg-brown-lighten-5{background-color:#efebe9!important;color:#000!important}.bg-brown-lighten-4{background-color:#d7ccc8!important;color:#000!important}.bg-brown-lighten-3{background-color:#bcaaa4!important;color:#000!important}.bg-brown-lighten-2{background-color:#a1887f!important;color:#fff!important}.bg-brown-lighten-1{background-color:#8d6e63!important;color:#fff!important}.bg-brown-darken-1{background-color:#6d4c41!important;color:#fff!important}.bg-brown-darken-2{background-color:#5d4037!important;color:#fff!important}.bg-brown-darken-3{background-color:#4e342e!important;color:#fff!important}.bg-brown-darken-4{background-color:#3e2723!important;color:#fff!important}.bg-blue-grey{background-color:#607d8b!important;color:#fff!important}.bg-blue-grey-lighten-5{background-color:#eceff1!important;color:#000!important}.bg-blue-grey-lighten-4{background-color:#cfd8dc!important;color:#000!important}.bg-blue-grey-lighten-3{background-color:#b0bec5!important;color:#000!important}.bg-blue-grey-lighten-2{background-color:#90a4ae!important;color:#fff!important}.bg-blue-grey-lighten-1{background-color:#78909c!important;color:#fff!important}.bg-blue-grey-darken-1{background-color:#546e7a!important;color:#fff!important}.bg-blue-grey-darken-2{background-color:#455a64!important;color:#fff!important}.bg-blue-grey-darken-3{background-color:#37474f!important;color:#fff!important}.bg-blue-grey-darken-4{background-color:#263238!important;color:#fff!important}.bg-grey{background-color:#9e9e9e!important;color:#fff!important}.bg-grey-lighten-5{background-color:#fafafa!important;color:#000!important}.bg-grey-lighten-4{background-color:#f5f5f5!important;color:#000!important}.bg-grey-lighten-3{background-color:#eee!important;color:#000!important}.bg-grey-lighten-2{background-color:#e0e0e0!important;color:#000!important}.bg-grey-lighten-1{background-color:#bdbdbd!important;color:#000!important}.bg-grey-darken-1{background-color:#757575!important;color:#fff!important}.bg-grey-darken-2{background-color:#616161!important;color:#fff!important}.bg-grey-darken-3{background-color:#424242!important;color:#fff!important}.bg-grey-darken-4{background-color:#212121!important;color:#fff!important}.bg-shades-black{background-color:#000!important;color:#fff!important}.bg-shades-white{background-color:#fff!important;color:#000!important}.bg-shades-transparent{background-color:transparent!important;color:currentColor!important}.text-black{color:#000!important}.text-white{color:#fff!important}.text-transparent{color:transparent!important}.text-red{color:#f44336!important}.text-red-lighten-5{color:#ffebee!important}.text-red-lighten-4{color:#ffcdd2!important}.text-red-lighten-3{color:#ef9a9a!important}.text-red-lighten-2{color:#e57373!important}.text-red-lighten-1{color:#ef5350!important}.text-red-darken-1{color:#e53935!important}.text-red-darken-2{color:#d32f2f!important}.text-red-darken-3{color:#c62828!important}.text-red-darken-4{color:#b71c1c!important}.text-red-accent-1{color:#ff8a80!important}.text-red-accent-2{color:#ff5252!important}.text-red-accent-3{color:#ff1744!important}.text-red-accent-4{color:#d50000!important}.text-pink{color:#e91e63!important}.text-pink-lighten-5{color:#fce4ec!important}.text-pink-lighten-4{color:#f8bbd0!important}.text-pink-lighten-3{color:#f48fb1!important}.text-pink-lighten-2{color:#f06292!important}.text-pink-lighten-1{color:#ec407a!important}.text-pink-darken-1{color:#d81b60!important}.text-pink-darken-2{color:#c2185b!important}.text-pink-darken-3{color:#ad1457!important}.text-pink-darken-4{color:#880e4f!important}.text-pink-accent-1{color:#ff80ab!important}.text-pink-accent-2{color:#ff4081!important}.text-pink-accent-3{color:#f50057!important}.text-pink-accent-4{color:#c51162!important}.text-purple{color:#9c27b0!important}.text-purple-lighten-5{color:#f3e5f5!important}.text-purple-lighten-4{color:#e1bee7!important}.text-purple-lighten-3{color:#ce93d8!important}.text-purple-lighten-2{color:#ba68c8!important}.text-purple-lighten-1{color:#ab47bc!important}.text-purple-darken-1{color:#8e24aa!important}.text-purple-darken-2{color:#7b1fa2!important}.text-purple-darken-3{color:#6a1b9a!important}.text-purple-darken-4{color:#4a148c!important}.text-purple-accent-1{color:#ea80fc!important}.text-purple-accent-2{color:#e040fb!important}.text-purple-accent-3{color:#d500f9!important}.text-purple-accent-4{color:#a0f!important}.text-deep-purple{color:#673ab7!important}.text-deep-purple-lighten-5{color:#ede7f6!important}.text-deep-purple-lighten-4{color:#d1c4e9!important}.text-deep-purple-lighten-3{color:#b39ddb!important}.text-deep-purple-lighten-2{color:#9575cd!important}.text-deep-purple-lighten-1{color:#7e57c2!important}.text-deep-purple-darken-1{color:#5e35b1!important}.text-deep-purple-darken-2{color:#512da8!important}.text-deep-purple-darken-3{color:#4527a0!important}.text-deep-purple-darken-4{color:#311b92!important}.text-deep-purple-accent-1{color:#b388ff!important}.text-deep-purple-accent-2{color:#7c4dff!important}.text-deep-purple-accent-3{color:#651fff!important}.text-deep-purple-accent-4{color:#6200ea!important}.text-indigo{color:#3f51b5!important}.text-indigo-lighten-5{color:#e8eaf6!important}.text-indigo-lighten-4{color:#c5cae9!important}.text-indigo-lighten-3{color:#9fa8da!important}.text-indigo-lighten-2{color:#7986cb!important}.text-indigo-lighten-1{color:#5c6bc0!important}.text-indigo-darken-1{color:#3949ab!important}.text-indigo-darken-2{color:#303f9f!important}.text-indigo-darken-3{color:#283593!important}.text-indigo-darken-4{color:#1a237e!important}.text-indigo-accent-1{color:#8c9eff!important}.text-indigo-accent-2{color:#536dfe!important}.text-indigo-accent-3{color:#3d5afe!important}.text-indigo-accent-4{color:#304ffe!important}.text-blue{color:#2196f3!important}.text-blue-lighten-5{color:#e3f2fd!important}.text-blue-lighten-4{color:#bbdefb!important}.text-blue-lighten-3{color:#90caf9!important}.text-blue-lighten-2{color:#64b5f6!important}.text-blue-lighten-1{color:#42a5f5!important}.text-blue-darken-1{color:#1e88e5!important}.text-blue-darken-2{color:#1976d2!important}.text-blue-darken-3{color:#1565c0!important}.text-blue-darken-4{color:#0d47a1!important}.text-blue-accent-1{color:#82b1ff!important}.text-blue-accent-2{color:#448aff!important}.text-blue-accent-3{color:#2979ff!important}.text-blue-accent-4{color:#2962ff!important}.text-light-blue{color:#03a9f4!important}.text-light-blue-lighten-5{color:#e1f5fe!important}.text-light-blue-lighten-4{color:#b3e5fc!important}.text-light-blue-lighten-3{color:#81d4fa!important}.text-light-blue-lighten-2{color:#4fc3f7!important}.text-light-blue-lighten-1{color:#29b6f6!important}.text-light-blue-darken-1{color:#039be5!important}.text-light-blue-darken-2{color:#0288d1!important}.text-light-blue-darken-3{color:#0277bd!important}.text-light-blue-darken-4{color:#01579b!important}.text-light-blue-accent-1{color:#80d8ff!important}.text-light-blue-accent-2{color:#40c4ff!important}.text-light-blue-accent-3{color:#00b0ff!important}.text-light-blue-accent-4{color:#0091ea!important}.text-cyan{color:#00bcd4!important}.text-cyan-lighten-5{color:#e0f7fa!important}.text-cyan-lighten-4{color:#b2ebf2!important}.text-cyan-lighten-3{color:#80deea!important}.text-cyan-lighten-2{color:#4dd0e1!important}.text-cyan-lighten-1{color:#26c6da!important}.text-cyan-darken-1{color:#00acc1!important}.text-cyan-darken-2{color:#0097a7!important}.text-cyan-darken-3{color:#00838f!important}.text-cyan-darken-4{color:#006064!important}.text-cyan-accent-1{color:#84ffff!important}.text-cyan-accent-2{color:#18ffff!important}.text-cyan-accent-3{color:#00e5ff!important}.text-cyan-accent-4{color:#00b8d4!important}.text-teal{color:#009688!important}.text-teal-lighten-5{color:#e0f2f1!important}.text-teal-lighten-4{color:#b2dfdb!important}.text-teal-lighten-3{color:#80cbc4!important}.text-teal-lighten-2{color:#4db6ac!important}.text-teal-lighten-1{color:#26a69a!important}.text-teal-darken-1{color:#00897b!important}.text-teal-darken-2{color:#00796b!important}.text-teal-darken-3{color:#00695c!important}.text-teal-darken-4{color:#004d40!important}.text-teal-accent-1{color:#a7ffeb!important}.text-teal-accent-2{color:#64ffda!important}.text-teal-accent-3{color:#1de9b6!important}.text-teal-accent-4{color:#00bfa5!important}.text-green{color:#4caf50!important}.text-green-lighten-5{color:#e8f5e9!important}.text-green-lighten-4{color:#c8e6c9!important}.text-green-lighten-3{color:#a5d6a7!important}.text-green-lighten-2{color:#81c784!important}.text-green-lighten-1{color:#66bb6a!important}.text-green-darken-1{color:#43a047!important}.text-green-darken-2{color:#388e3c!important}.text-green-darken-3{color:#2e7d32!important}.text-green-darken-4{color:#1b5e20!important}.text-green-accent-1{color:#b9f6ca!important}.text-green-accent-2{color:#69f0ae!important}.text-green-accent-3{color:#00e676!important}.text-green-accent-4{color:#00c853!important}.text-light-green{color:#8bc34a!important}.text-light-green-lighten-5{color:#f1f8e9!important}.text-light-green-lighten-4{color:#dcedc8!important}.text-light-green-lighten-3{color:#c5e1a5!important}.text-light-green-lighten-2{color:#aed581!important}.text-light-green-lighten-1{color:#9ccc65!important}.text-light-green-darken-1{color:#7cb342!important}.text-light-green-darken-2{color:#689f38!important}.text-light-green-darken-3{color:#558b2f!important}.text-light-green-darken-4{color:#33691e!important}.text-light-green-accent-1{color:#ccff90!important}.text-light-green-accent-2{color:#b2ff59!important}.text-light-green-accent-3{color:#76ff03!important}.text-light-green-accent-4{color:#64dd17!important}.text-lime{color:#cddc39!important}.text-lime-lighten-5{color:#f9fbe7!important}.text-lime-lighten-4{color:#f0f4c3!important}.text-lime-lighten-3{color:#e6ee9c!important}.text-lime-lighten-2{color:#dce775!important}.text-lime-lighten-1{color:#d4e157!important}.text-lime-darken-1{color:#c0ca33!important}.text-lime-darken-2{color:#afb42b!important}.text-lime-darken-3{color:#9e9d24!important}.text-lime-darken-4{color:#827717!important}.text-lime-accent-1{color:#f4ff81!important}.text-lime-accent-2{color:#eeff41!important}.text-lime-accent-3{color:#c6ff00!important}.text-lime-accent-4{color:#aeea00!important}.text-yellow{color:#ffeb3b!important}.text-yellow-lighten-5{color:#fffde7!important}.text-yellow-lighten-4{color:#fff9c4!important}.text-yellow-lighten-3{color:#fff59d!important}.text-yellow-lighten-2{color:#fff176!important}.text-yellow-lighten-1{color:#ffee58!important}.text-yellow-darken-1{color:#fdd835!important}.text-yellow-darken-2{color:#fbc02d!important}.text-yellow-darken-3{color:#f9a825!important}.text-yellow-darken-4{color:#f57f17!important}.text-yellow-accent-1{color:#ffff8d!important}.text-yellow-accent-2{color:#ff0!important}.text-yellow-accent-3{color:#ffea00!important}.text-yellow-accent-4{color:#ffd600!important}.text-amber{color:#ffc107!important}.text-amber-lighten-5{color:#fff8e1!important}.text-amber-lighten-4{color:#ffecb3!important}.text-amber-lighten-3{color:#ffe082!important}.text-amber-lighten-2{color:#ffd54f!important}.text-amber-lighten-1{color:#ffca28!important}.text-amber-darken-1{color:#ffb300!important}.text-amber-darken-2{color:#ffa000!important}.text-amber-darken-3{color:#ff8f00!important}.text-amber-darken-4{color:#ff6f00!important}.text-amber-accent-1{color:#ffe57f!important}.text-amber-accent-2{color:#ffd740!important}.text-amber-accent-3{color:#ffc400!important}.text-amber-accent-4{color:#ffab00!important}.text-orange{color:#ff9800!important}.text-orange-lighten-5{color:#fff3e0!important}.text-orange-lighten-4{color:#ffe0b2!important}.text-orange-lighten-3{color:#ffcc80!important}.text-orange-lighten-2{color:#ffb74d!important}.text-orange-lighten-1{color:#ffa726!important}.text-orange-darken-1{color:#fb8c00!important}.text-orange-darken-2{color:#f57c00!important}.text-orange-darken-3{color:#ef6c00!important}.text-orange-darken-4{color:#e65100!important}.text-orange-accent-1{color:#ffd180!important}.text-orange-accent-2{color:#ffab40!important}.text-orange-accent-3{color:#ff9100!important}.text-orange-accent-4{color:#ff6d00!important}.text-deep-orange{color:#ff5722!important}.text-deep-orange-lighten-5{color:#fbe9e7!important}.text-deep-orange-lighten-4{color:#ffccbc!important}.text-deep-orange-lighten-3{color:#ffab91!important}.text-deep-orange-lighten-2{color:#ff8a65!important}.text-deep-orange-lighten-1{color:#ff7043!important}.text-deep-orange-darken-1{color:#f4511e!important}.text-deep-orange-darken-2{color:#e64a19!important}.text-deep-orange-darken-3{color:#d84315!important}.text-deep-orange-darken-4{color:#bf360c!important}.text-deep-orange-accent-1{color:#ff9e80!important}.text-deep-orange-accent-2{color:#ff6e40!important}.text-deep-orange-accent-3{color:#ff3d00!important}.text-deep-orange-accent-4{color:#dd2c00!important}.text-brown{color:#795548!important}.text-brown-lighten-5{color:#efebe9!important}.text-brown-lighten-4{color:#d7ccc8!important}.text-brown-lighten-3{color:#bcaaa4!important}.text-brown-lighten-2{color:#a1887f!important}.text-brown-lighten-1{color:#8d6e63!important}.text-brown-darken-1{color:#6d4c41!important}.text-brown-darken-2{color:#5d4037!important}.text-brown-darken-3{color:#4e342e!important}.text-brown-darken-4{color:#3e2723!important}.text-blue-grey{color:#607d8b!important}.text-blue-grey-lighten-5{color:#eceff1!important}.text-blue-grey-lighten-4{color:#cfd8dc!important}.text-blue-grey-lighten-3{color:#b0bec5!important}.text-blue-grey-lighten-2{color:#90a4ae!important}.text-blue-grey-lighten-1{color:#78909c!important}.text-blue-grey-darken-1{color:#546e7a!important}.text-blue-grey-darken-2{color:#455a64!important}.text-blue-grey-darken-3{color:#37474f!important}.text-blue-grey-darken-4{color:#263238!important}.text-grey{color:#9e9e9e!important}.text-grey-lighten-5{color:#fafafa!important}.text-grey-lighten-4{color:#f5f5f5!important}.text-grey-lighten-3{color:#eee!important}.text-grey-lighten-2{color:#e0e0e0!important}.text-grey-lighten-1{color:#bdbdbd!important}.text-grey-darken-1{color:#757575!important}.text-grey-darken-2{color:#616161!important}.text-grey-darken-3{color:#424242!important}.text-grey-darken-4{color:#212121!important}.text-shades-black{color:#000!important}.text-shades-white{color:#fff!important}.text-shades-transparent{color:transparent!important}/*! * ress.css • v2.0.4 * MIT License * github.com/filipelinhares/ress diff --git a/sw.js b/sw.js index 695b758dd..01b27d6b5 100644 --- a/sw.js +++ b/sw.js @@ -1 +1 @@ -if(!self.define){let e,r={};const i=(i,n)=>(i=new URL(i+".js",n).href,r[i]||new Promise((r=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=r,document.head.appendChild(e)}else e=i,importScripts(i),r()})).then((()=>{let e=r[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e})));self.define=(n,s)=>{const l=e||("document"in self?document.currentScript.src:"")||location.href;if(r[l])return;let o={};const t=e=>i(e,l),c={module:{uri:l},exports:o,require:t};r[l]=Promise.all(n.map((e=>c[e]||t(e)))).then((e=>(s(...e),o)))}}define(["./workbox-06233651"],(function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"electron/main.js",revision:"79f3bbfb05e945b35c338b1d717f0adf"},{url:"index.html",revision:"ea993e28330e2499b8abde804ac2b7bb"},{url:"leaflet-src.esm.13473dcf.js",revision:null},{url:"marker-icon-2x.68378269.js",revision:null},{url:"marker-icon.753d5637.js",revision:null},{url:"marker-shadow.40fd21b3.js",revision:null},{url:"registerSW.js",revision:"402b66900e731ca748771b6fc5e7a068"},{url:"style.a9a3a478.css",revision:null},{url:"webfontloader.3696e2c4.js",revision:null},{url:"favicon.ico",revision:"b54531a824aa22f592590e347be8347c"},{url:"apple-touch-icon.png",revision:"4d6428d260d0f769a26ed6ce0387d0c1"},{url:"manifest.webmanifest",revision:"a28c2c0a5d92b960e17dd3757933e534"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))})); +if(!self.define){let e,r={};const i=(i,n)=>(i=new URL(i+".js",n).href,r[i]||new Promise((r=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=r,document.head.appendChild(e)}else e=i,importScripts(i),r()})).then((()=>{let e=r[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e})));self.define=(n,s)=>{const l=e||("document"in self?document.currentScript.src:"")||location.href;if(r[l])return;let o={};const c=e=>i(e,l),t={module:{uri:l},exports:o,require:c};r[l]=Promise.all(n.map((e=>t[e]||c(e)))).then((e=>(s(...e),o)))}}define(["./workbox-06233651"],(function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"electron/main.js",revision:"79f3bbfb05e945b35c338b1d717f0adf"},{url:"index.html",revision:"2e50324c07f216cd0e0e5153f326d7ac"},{url:"leaflet-src.esm.13473dcf.js",revision:null},{url:"marker-icon-2x.68378269.js",revision:null},{url:"marker-icon.753d5637.js",revision:null},{url:"marker-shadow.40fd21b3.js",revision:null},{url:"registerSW.js",revision:"402b66900e731ca748771b6fc5e7a068"},{url:"style.e6ba9f84.css",revision:null},{url:"webfontloader.3696e2c4.js",revision:null},{url:"favicon.ico",revision:"b54531a824aa22f592590e347be8347c"},{url:"apple-touch-icon.png",revision:"4d6428d260d0f769a26ed6ce0387d0c1"},{url:"manifest.webmanifest",revision:"a28c2c0a5d92b960e17dd3757933e534"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))}));